Compare commits

..
756 Commits
Author SHA1 Message Date
github-actions[bot] 194d6b3748 @Joe0720 has signed the CLA in Wei-Shaw/sub2api#7986 2026-10-10 03:42:20 +00:00
github-actions[bot] 035609e4e9 @hutututtt has signed the CLA in Wei-Shaw/sub2api#7983 2026-10-10 02:00:11 +00:00
github-actions[bot] 8556477168 @XKHoshizora has signed the CLA in Wei-Shaw/sub2api#7962 2026-10-09 12:21:06 +00:00
github-actions[bot] dd4fed1d45 @kevin335200 has signed the CLA in Wei-Shaw/sub2api#7968 2026-10-09 11:55:37 +00:00
github-actions[bot] c718afaa32 @ydbox has signed the CLA in Wei-Shaw/sub2api#7965 2026-10-09 06:00:41 +00:00
github-actions[bot] 10b62274b2 @OS-Lihua has signed the CLA in Wei-Shaw/sub2api#7938 2026-10-09 05:04:37 +00:00
github-actions[bot] d40590f0f7 @riofutab has signed the CLA in Wei-Shaw/sub2api#7958 2026-10-09 02:22:22 +00:00
github-actions[bot] 0446361bc3 @xcrong has signed the CLA in Wei-Shaw/sub2api#7956 2026-10-09 01:45:57 +00:00
github-actions[bot] 1f219c3198 @CNSeniorious000 has signed the CLA in Wei-Shaw/sub2api#7948 2026-10-08 16:00:20 +00:00
github-actions[bot] cc05a5a034 @jxbaoxiaodong has signed the CLA in Wei-Shaw/sub2api#7941 2026-10-08 11:22:17 +00:00
github-actions[bot] ae7e2f3c92 @yangdachao1024 has signed the CLA in Wei-Shaw/sub2api#7940 2026-10-08 10:22:52 +00:00
github-actions[bot] dd3321b3f0 @Cd1s has signed the CLA in Wei-Shaw/sub2api#7930 2026-10-08 07:54:24 +00:00
github-actions[bot] 16a34457e9 @MrCrazyLeo has signed the CLA in Wei-Shaw/sub2api#7920 2026-10-08 05:42:54 +00:00
github-actions[bot] 4ba0083a68 @liuyh06 has signed the CLA in Wei-Shaw/sub2api#7910 2026-10-07 17:15:11 +00:00
github-actions[bot] 53a953f286 @smwbev has signed the CLA in Wei-Shaw/sub2api#7892 2026-10-06 19:21:25 +00:00
github-actions[bot] e6f57bd750 @aishangwuji has signed the CLA in Wei-Shaw/sub2api#7889 2026-10-06 15:29:16 +00:00
github-actions[bot] 7b00763ea2 @honestTai has signed the CLA in Wei-Shaw/sub2api#7888 2026-10-06 15:22:03 +00:00
github-actions[bot] 103d68b0be @lgloq has signed the CLA in Wei-Shaw/sub2api#7883 2026-10-06 12:50:20 +00:00
github-actions[bot] 367b731b96 @xidongyuandong has signed the CLA in Wei-Shaw/sub2api#7872 2026-10-05 14:16:28 +00:00
github-actions[bot] 2c1e62b51a @cursor[bot] has signed the CLA in Wei-Shaw/sub2api#7870 2026-10-05 09:49:46 +00:00
github-actions[bot] f6e816584d @Tony1026 has signed the CLA in Wei-Shaw/sub2api#7862 2026-10-05 04:30:54 +00:00
github-actions[bot] 066a18696c @yJader has signed the CLA in Wei-Shaw/sub2api#7837 2026-10-04 10:18:17 +00:00
github-actions[bot] 3039148833 @DeoLeung has signed the CLA in Wei-Shaw/sub2api#7832 2026-10-03 09:50:22 +00:00
github-actions[bot] 4d6539f30d @cursor[bot] has signed the CLA in Wei-Shaw/sub2api#7688 2026-10-03 09:50:10 +00:00
github-actions[bot] a846789882 @ShanYi-Hui has signed the CLA in Wei-Shaw/sub2api#7833 2026-10-03 09:25:21 +00:00
github-actions[bot] 73cd4e8414 @neotan has signed the CLA in Wei-Shaw/sub2api#7822 2026-10-02 16:02:42 +00:00
github-actions[bot] 0a86e74469 @rstqxq has signed the CLA in Wei-Shaw/sub2api#7805 2026-10-01 17:29:53 +00:00
github-actions[bot] bde2462ca0 @duckducktw has signed the CLA in Wei-Shaw/sub2api#7800 2026-10-01 16:01:58 +00:00
github-actions[bot] 7f0f6be484 @reusu has signed the CLA in Wei-Shaw/sub2api#7771 2026-09-30 23:36:31 +00:00
github-actions[bot] c9023cb05e @YahooYuan666 has signed the CLA in Wei-Shaw/sub2api#7775 2026-09-30 18:24:01 +00:00
github-actions[bot] cf31496839 @znlsl has signed the CLA in Wei-Shaw/sub2api#7772 2026-09-30 17:20:37 +00:00
github-actions[bot] ffbb91345e @lideming has signed the CLA in Wei-Shaw/sub2api#7766 2026-09-30 11:21:05 +00:00
github-actions[bot] 7f333a2b23 @apple050620312 has signed the CLA in Wei-Shaw/sub2api#7735 2026-09-29 19:52:37 +00:00
github-actions[bot] 3af57faca2 @hnboy2005 has signed the CLA in Wei-Shaw/sub2api#7697 2026-09-29 05:27:42 +00:00
github-actions[bot] 099a8b0398 @yifayun has signed the CLA in Wei-Shaw/sub2api#7698 2026-09-29 04:17:17 +00:00
github-actions[bot] 76a994e389 @jmm01740 has signed the CLA in Wei-Shaw/sub2api#7677 2026-09-28 16:53:47 +00:00
github-actions[bot] d606c21a0c @fading723 has signed the CLA in Wei-Shaw/sub2api#7660 2026-09-28 09:24:26 +00:00
github-actions[bot] 8dceacc5aa @xxk-123-ux has signed the CLA in Wei-Shaw/sub2api#7656 2026-09-28 09:20:57 +00:00
github-actions[bot] 3e0c869481 @Sterbennicht has signed the CLA in Wei-Shaw/sub2api#7628 2026-09-27 15:03:18 +00:00
github-actions[bot] 1dfb3e61c6 @pmkol has signed the CLA in Wei-Shaw/sub2api#7616 2026-09-26 20:13:47 +00:00
github-actions[bot] 8ef6aef84f @far5man has signed the CLA in Wei-Shaw/sub2api#7597 2026-09-26 13:22:46 +00:00
github-actions[bot] 9af4967ac7 @yujunkim has signed the CLA in Wei-Shaw/sub2api#7613 2026-09-26 11:58:20 +00:00
github-actions[bot] bed4a4c076 @nhirsama has signed the CLA in Wei-Shaw/sub2api#7610 2026-09-26 10:11:06 +00:00
github-actions[bot] 46ddf9bf1b @longzhenren has signed the CLA in Wei-Shaw/sub2api#7605 2026-09-26 04:03:50 +00:00
github-actions[bot] 561c13da98 @qinfyy has signed the CLA in Wei-Shaw/sub2api#7601 2026-09-25 16:06:15 +00:00
github-actions[bot] 62fcc20f38 @Gs-ygc has signed the CLA in Wei-Shaw/sub2api#7588 2026-09-25 14:30:18 +00:00
github-actions[bot] 61eef2b7d5 @fkysly has signed the CLA in Wei-Shaw/sub2api#7600 2026-09-25 10:13:03 +00:00
github-actions[bot] 985bf2d973 @korkin25 has signed the CLA in Wei-Shaw/sub2api#7589 2026-09-24 22:25:17 +00:00
github-actions[bot] 3e56f1fb86 @ResidualBlood has signed the CLA in Wei-Shaw/sub2api#7585 2026-09-24 15:19:58 +00:00
github-actions[bot] c01e2890bf @SPHINX998 has signed the CLA in Wei-Shaw/sub2api#7568 2026-09-24 09:04:40 +00:00
github-actions[bot] 398a2c4fc5 @magicJie has signed the CLA in Wei-Shaw/sub2api#7559 2026-09-23 15:28:10 +00:00
github-actions[bot] 0c741afaac @atomlong has signed the CLA in Wei-Shaw/sub2api#7545 2026-09-23 13:17:23 +00:00
github-actions[bot] 3af111c5ba @obst4cle has signed the CLA in Wei-Shaw/sub2api#7558 2026-09-23 12:43:05 +00:00
github-actions[bot] 56e8130ae8 @Yukinoshita-Yukino has signed the CLA in Wei-Shaw/sub2api#7555 2026-09-23 12:08:15 +00:00
github-actions[bot] f4c1027eb0 @helianthus1 has signed the CLA in Wei-Shaw/sub2api#7549 2026-09-23 11:25:42 +00:00
github-actions[bot] ec78bfa304 @TouHouQing has signed the CLA in Wei-Shaw/sub2api#7538 2026-09-23 09:00:50 +00:00
github-actions[bot] a0e41f9a6f @pangpang778 has signed the CLA in Wei-Shaw/sub2api#7535 2026-09-23 07:12:41 +00:00
github-actions[bot] fc04b14625 @maidol has signed the CLA in Wei-Shaw/sub2api#7534 2026-09-23 06:41:21 +00:00
github-actions[bot] 2eeb9ddd41 @anyin233 has signed the CLA in Wei-Shaw/sub2api#7508 2026-09-22 19:09:03 +00:00
github-actions[bot] f44500a894 @Thinker-Joe has signed the CLA in Wei-Shaw/sub2api#7491 2026-09-22 13:17:07 +00:00
github-actions[bot] 51fecd3659 @dude1wudv has signed the CLA in Wei-Shaw/sub2api#7490 2026-09-22 13:12:45 +00:00
github-actions[bot] dfdcf3c578 @i-square has signed the CLA in Wei-Shaw/sub2api#7433 2026-09-22 11:33:56 +00:00
github-actions[bot] a0e57026eb @ktKongTong has signed the CLA in Wei-Shaw/sub2api#7480 2026-09-22 08:24:00 +00:00
github-actions[bot] fcb88f6dc6 @superzcj has signed the CLA in Wei-Shaw/sub2api#7472 2026-09-22 07:20:21 +00:00
github-actions[bot] 3d7a7ec313 @lzfxxx has signed the CLA in Wei-Shaw/sub2api#7473 2026-09-22 06:56:44 +00:00
github-actions[bot] bb1db54bc3 @zhuyinghua6961 has signed the CLA in Wei-Shaw/sub2api#7445 2026-09-21 04:16:41 +00:00
github-actions[bot] 9e45b6a885 @blackdm666 has signed the CLA in Wei-Shaw/sub2api#7428 2026-09-20 12:59:14 +00:00
github-actions[bot] b741089851 @DueGin has signed the CLA in Wei-Shaw/sub2api#7421 2026-09-20 10:32:30 +00:00
github-actions[bot] 7d10f9f59b @paicha has signed the CLA in Wei-Shaw/sub2api#7415 2026-09-20 10:11:15 +00:00
github-actions[bot] 87e99570a2 @jeesoul-001 has signed the CLA in Wei-Shaw/sub2api#7403 2026-09-20 07:05:25 +00:00
github-actions[bot] 4568523663 @zhuzhihaocool-bit has signed the CLA in Wei-Shaw/sub2api#7395 2026-09-20 03:11:27 +00:00
github-actions[bot] c45a401786 @Achordchan has signed the CLA in Wei-Shaw/sub2api#7393 2026-09-20 02:48:52 +00:00
github-actions[bot] d96a2aeaa0 @jiajiaxd has signed the CLA in Wei-Shaw/sub2api#7391 2026-09-20 02:22:07 +00:00
github-actions[bot] a1088da882 @tianhao98 has signed the CLA in Wei-Shaw/sub2api#7383 2026-09-19 15:57:05 +00:00
github-actions[bot] a79c51d391 @4zhousheng has signed the CLA in Wei-Shaw/sub2api#7343 2026-09-19 15:55:21 +00:00
github-actions[bot] 08583e171d @semyin has signed the CLA in Wei-Shaw/sub2api#7352 2026-09-19 04:13:11 +00:00
github-actions[bot] b0354af321 @Tinghecui has signed the CLA in Wei-Shaw/sub2api#7315 2026-09-18 08:08:21 +00:00
github-actions[bot] 88be54a617 @little-greenbean has signed the CLA in Wei-Shaw/sub2api#7303 2026-09-18 06:01:56 +00:00
github-actions[bot] c0efb3d652 @damian2848 has signed the CLA in Wei-Shaw/sub2api#7293 2026-09-18 01:48:31 +00:00
github-actions[bot] 3676e6f615 @zcychar has signed the CLA in Wei-Shaw/sub2api#7273 2026-09-17 09:33:44 +00:00
github-actions[bot] e452178c5a @zoutao212 has signed the CLA in Wei-Shaw/sub2api#7272 2026-09-17 09:02:48 +00:00
github-actions[bot] bce6c3be61 @Lanturewen has signed the CLA in Wei-Shaw/sub2api#7249 2026-09-17 00:33:01 +00:00
github-actions[bot] 0cfc9ebae2 @Qiaogun has signed the CLA in Wei-Shaw/sub2api#7247 2026-09-16 19:25:45 +00:00
github-actions[bot] 70f6c3776e @Liu8Can has signed the CLA in Wei-Shaw/sub2api#7239 2026-09-16 10:47:46 +00:00
github-actions[bot] 820400541a @steven-ld has signed the CLA in Wei-Shaw/sub2api#7231 2026-09-16 09:43:22 +00:00
github-actions[bot] e5255ab58d @NIKOPACK has signed the CLA in Wei-Shaw/sub2api#7230 2026-09-16 09:25:22 +00:00
github-actions[bot] b24aedd9ed @a408665321 has signed the CLA in Wei-Shaw/sub2api#7228 2026-09-16 09:09:54 +00:00
github-actions[bot] 4c4a113703 @AnInsomniacy has signed the CLA in Wei-Shaw/sub2api#7214 2026-09-16 05:49:11 +00:00
github-actions[bot] dc00b45f2c @lizhaoxinlizhaoxin2-lab has signed the CLA in Wei-Shaw/sub2api#6619 2026-09-15 15:36:13 +00:00
github-actions[bot] 15d63aa621 @uvlydxba56648 has signed the CLA in Wei-Shaw/sub2api#7171 2026-09-15 08:44:02 +00:00
github-actions[bot] 7919d150ec @HP-network has signed the CLA in Wei-Shaw/sub2api#7139 2026-09-15 03:22:46 +00:00
github-actions[bot] 33759912ae @zhanzijienb has signed the CLA in Wei-Shaw/sub2api#7144 2026-09-14 17:55:51 +00:00
github-actions[bot] 3dfeeaee15 @MiaM1ku has signed the CLA in Wei-Shaw/sub2api#7096 2026-09-14 15:33:22 +00:00
github-actions[bot] 740d4e05c4 @fzlzjerry has signed the CLA in Wei-Shaw/sub2api#7121 2026-09-14 12:43:56 +00:00
github-actions[bot] f8cc66895c @Undertone0809 has signed the CLA in Wei-Shaw/sub2api#7141 2026-09-14 10:25:16 +00:00
github-actions[bot] 4b9ce08210 @xO-ox-ai has signed the CLA in Wei-Shaw/sub2api#7126 2026-09-14 03:40:59 +00:00
github-actions[bot] 80234a3f80 @kexinoh has signed the CLA in Wei-Shaw/sub2api#7120 2026-09-13 16:54:22 +00:00
github-actions[bot] c0c212a8e5 @MHJoy99 has signed the CLA in Wei-Shaw/sub2api#7099 2026-09-13 07:30:58 +00:00
github-actions[bot] 398e837d2a @liuyuzhou666 has signed the CLA in Wei-Shaw/sub2api#7094 2026-09-13 06:09:14 +00:00
github-actions[bot] a67fd29d92 @Caisin has signed the CLA in Wei-Shaw/sub2api#7086 2026-09-13 00:06:58 +00:00
github-actions[bot] 2de20e0ea8 @Dev-next-gen has signed the CLA in Wei-Shaw/sub2api#7079 2026-09-12 16:40:45 +00:00
github-actions[bot] 33be67854e @ggllzz04 has signed the CLA in Wei-Shaw/sub2api#7077 2026-09-12 15:27:38 +00:00
github-actions[bot] 3a84f2f60e @Shen-An has signed the CLA in Wei-Shaw/sub2api#7076 2026-09-12 15:02:17 +00:00
github-actions[bot] 7c05853d51 @Lorikein12138 has signed the CLA in Wei-Shaw/sub2api#7069 2026-09-12 12:18:40 +00:00
github-actions[bot] 39841f068b @wc4440222 has signed the CLA in Wei-Shaw/sub2api#7062 2026-09-12 07:35:37 +00:00
github-actions[bot] d6f83f6170 @Sjeary has signed the CLA in Wei-Shaw/sub2api#7057 2026-09-12 06:20:54 +00:00
github-actions[bot] 80d9af1228 @qwIvan has signed the CLA in Wei-Shaw/sub2api#7056 2026-09-12 06:18:48 +00:00
github-actions[bot] 6669fc23e4 @liuyunfz has signed the CLA in Wei-Shaw/sub2api#7045 2026-09-12 04:36:43 +00:00
github-actions[bot] e25f152557 @zenggang has signed the CLA in Wei-Shaw/sub2api#7038 2026-09-12 00:10:34 +00:00
github-actions[bot] b0703849b7 @kibght has signed the CLA in Wei-Shaw/sub2api#7028 2026-09-11 12:51:38 +00:00
github-actions[bot] 8edbadd686 @kuswardhanietidims-svg has signed the CLA in Wei-Shaw/sub2api#6160 2026-09-11 08:13:18 +00:00
github-actions[bot] 38c3a153da @dongdonglog has signed the CLA in Wei-Shaw/sub2api#7005 2026-09-11 03:45:55 +00:00
github-actions[bot] dded303562 @ByePastHub has signed the CLA in Wei-Shaw/sub2api#6997 2026-09-11 02:30:41 +00:00
github-actions[bot] 7c6c45ce4f @JunxuanB has signed the CLA in Wei-Shaw/sub2api#6980 2026-09-10 15:56:57 +00:00
github-actions[bot] 14327a1543 @liuliping has signed the CLA in Wei-Shaw/sub2api#6979 2026-09-10 14:55:07 +00:00
github-actions[bot] eeba563f6d @tccpc has signed the CLA in Wei-Shaw/sub2api#6963 2026-09-10 12:35:30 +00:00
github-actions[bot] 15f1775faa @nekocode has signed the CLA in Wei-Shaw/sub2api#6943 2026-09-10 07:51:50 +00:00
github-actions[bot] 20a2d2c9d9 @smyyyyy2025 has signed the CLA in Wei-Shaw/sub2api#6924 2026-09-09 19:21:31 +00:00
github-actions[bot] d308480429 @aman048 has signed the CLA in Wei-Shaw/sub2api#6898 2026-09-09 11:18:27 +00:00
github-actions[bot] 78d03006c0 @Garfielk has signed the CLA in Wei-Shaw/sub2api#6869 2026-09-09 04:49:16 +00:00
github-actions[bot] f42a3adb56 @GongTengXY has signed the CLA in Wei-Shaw/sub2api#6880 2026-09-09 03:42:24 +00:00
github-actions[bot] 6fd6c8dc57 @reallyfeishi has signed the CLA in Wei-Shaw/sub2api#6850 2026-09-08 15:02:24 +00:00
github-actions[bot] ad6e189ccb @22zyfeng-collab has signed the CLA in Wei-Shaw/sub2api#6821 2026-09-08 07:16:09 +00:00
github-actions[bot] 15fe67eb34 @savvym has signed the CLA in Wei-Shaw/sub2api#6798 2026-09-08 02:57:50 +00:00
github-actions[bot] fb8a9035b2 @LeeeeeeM has signed the CLA in Wei-Shaw/sub2api#6788 2026-09-08 00:42:23 +00:00
github-actions[bot] 84445836b6 @lam584 has signed the CLA in Wei-Shaw/sub2api#6786 2026-09-07 23:18:55 +00:00
github-actions[bot] a2507afde1 @asmoyou has signed the CLA in Wei-Shaw/sub2api#6783 2026-09-07 18:14:30 +00:00
github-actions[bot] cc68fc9982 @neiro-o has signed the CLA in Wei-Shaw/sub2api#6778 2026-09-07 16:29:35 +00:00
github-actions[bot] 129a9d185b @happykl-cn has signed the CLA in Wei-Shaw/sub2api#6770 2026-09-07 13:55:57 +00:00
github-actions[bot] 7019218e13 @ccemoji has signed the CLA in Wei-Shaw/sub2api#6754 2026-09-07 09:02:59 +00:00
github-actions[bot] 3b4c358eba @AndrewZhuCC has signed the CLA in Wei-Shaw/sub2api#6733 2026-09-07 02:53:59 +00:00
github-actions[bot] 8579e5a32f @wolfhead has signed the CLA in Wei-Shaw/sub2api#6633 2026-09-07 01:57:25 +00:00
github-actions[bot] 873a6523e8 @Tommy-LXDAO has signed the CLA in Wei-Shaw/sub2api#6720 2026-09-06 17:20:52 +00:00
github-actions[bot] f39d5bf964 @qiu121 has signed the CLA in Wei-Shaw/sub2api#6700 2026-09-06 09:50:41 +00:00
github-actions[bot] cb234f0920 @a1gaoshanlaiyige has signed the CLA in Wei-Shaw/sub2api#6702 2026-09-06 08:53:21 +00:00
github-actions[bot] 6de8b31f45 @tunsuy has signed the CLA in Wei-Shaw/sub2api#6689 2026-09-06 05:24:08 +00:00
github-actions[bot] e7f2e19650 @luchibei has signed the CLA in Wei-Shaw/sub2api#6589 2026-09-06 04:53:52 +00:00
github-actions[bot] 856341fb73 @suixincrazy has signed the CLA in Wei-Shaw/sub2api#6688 2026-09-06 04:30:48 +00:00
github-actions[bot] 28efa2ac0c @Chenning-Tao has signed the CLA in Wei-Shaw/sub2api#6687 2026-09-06 02:19:08 +00:00
github-actions[bot] fe4527bc6b @SakuraPuare has signed the CLA in Wei-Shaw/sub2api#6684 2026-09-05 20:28:44 +00:00
github-actions[bot] d73ffdd015 @Anti2077 has signed the CLA in Wei-Shaw/sub2api#6666 2026-09-05 15:46:26 +00:00
github-actions[bot] 42d88bafdf @ssharkkky has signed the CLA in Wei-Shaw/sub2api#6665 2026-09-05 15:26:37 +00:00
github-actions[bot] 1ede67d804 @superdav42 has signed the CLA in Wei-Shaw/sub2api#6629 2026-09-05 15:07:47 +00:00
github-actions[bot] 401ef54b45 @whhphd has signed the CLA in Wei-Shaw/sub2api#6661 2026-09-05 12:27:44 +00:00
github-actions[bot] f9eb0057a9 @ouchihao has signed the CLA in Wei-Shaw/sub2api#6648 2026-09-05 11:02:00 +00:00
github-actions[bot] 49b1607105 @MarushiruDonato has signed the CLA in Wei-Shaw/sub2api#6643 2026-09-05 09:24:57 +00:00
github-actions[bot] d9647d79fd @gcslaoli has signed the CLA in Wei-Shaw/sub2api#6642 2026-09-05 09:16:14 +00:00
github-actions[bot] 49bfd88d2b @varrge has signed the CLA in Wei-Shaw/sub2api#6637 2026-09-05 08:00:13 +00:00
github-actions[bot] 4230376da1 @CatStack-pixe has signed the CLA in Wei-Shaw/sub2api#6605 2026-09-04 17:48:14 +00:00
github-actions[bot] 4fcb7093fc @viewer12 has signed the CLA in Wei-Shaw/sub2api#6603 2026-09-04 16:28:04 +00:00
github-actions[bot] 8692f788e0 @lalala049 has signed the CLA in Wei-Shaw/sub2api#6600 2026-09-04 15:19:10 +00:00
github-actions[bot] 1e4ea809a0 @doublepi123 has signed the CLA in Wei-Shaw/sub2api#6575 2026-09-04 08:05:13 +00:00
github-actions[bot] a6f130b040 @atogumo has signed the CLA in Wei-Shaw/sub2api#6585 2026-09-04 05:39:32 +00:00
github-actions[bot] d3a1ef3668 @karta0807913 has signed the CLA in Wei-Shaw/sub2api#6576 2026-09-04 03:16:18 +00:00
github-actions[bot] ea335c009d @ttxslol has signed the CLA in Wei-Shaw/sub2api#6568 2026-09-04 01:21:52 +00:00
github-actions[bot] a9b2ac8af3 @xtianowner has signed the CLA in Wei-Shaw/sub2api#6533 2026-09-03 05:29:42 +00:00
github-actions[bot] 5590bd8adc @a20020307 has signed the CLA in Wei-Shaw/sub2api#6538 2026-09-03 03:29:02 +00:00
github-actions[bot] 175719115b @jiahaoxie61-alt has signed the CLA in Wei-Shaw/sub2api#6522 2026-09-02 15:15:14 +00:00
github-actions[bot] 0718acc217 @yuanyuan19 has signed the CLA in Wei-Shaw/sub2api#6516 2026-09-02 12:38:23 +00:00
github-actions[bot] ed4ac36bd5 @soulxyz has signed the CLA in Wei-Shaw/sub2api#6499 2026-09-02 07:54:46 +00:00
github-actions[bot] 6b15216b53 @techblack has signed the CLA in Wei-Shaw/sub2api#6491 2026-09-02 04:44:19 +00:00
github-actions[bot] 70eb551cbf @handsomeXZ has signed the CLA in Wei-Shaw/sub2api#6482 2026-09-02 02:51:14 +00:00
github-actions[bot] 85f15f5364 @cxx-cod has signed the CLA in Wei-Shaw/sub2api#6473 2026-09-01 19:37:09 +00:00
github-actions[bot] 9fa3a2411b @sunshinebird has signed the CLA in Wei-Shaw/sub2api#6455 2026-09-01 07:59:20 +00:00
github-actions[bot] 32041ab5c5 @WizardPro has signed the CLA in Wei-Shaw/sub2api#6450 2026-09-01 03:41:06 +00:00
github-actions[bot] 34c0c8cc98 @xpflying has signed the CLA in Wei-Shaw/sub2api#6439 2026-08-31 15:26:09 +00:00
github-actions[bot] 808ae18ab5 @spin6lock has signed the CLA in Wei-Shaw/sub2api#6429 2026-08-31 14:46:17 +00:00
github-actions[bot] 2ce7dbc699 @peter2317238492 has signed the CLA in Wei-Shaw/sub2api#6427 2026-08-31 11:48:46 +00:00
github-actions[bot] b295a098b0 @ylzz1997 has signed the CLA in Wei-Shaw/sub2api#6423 2026-08-31 10:38:40 +00:00
github-actions[bot] 54105b0e75 @sonofmagic has signed the CLA in Wei-Shaw/sub2api#6415 2026-08-31 08:45:09 +00:00
github-actions[bot] b3d5d13a67 @Wrxsidox-88 has signed the CLA in Wei-Shaw/sub2api#6399 2026-08-31 00:21:21 +00:00
github-actions[bot] b33690fb51 @lylelllll has signed the CLA in Wei-Shaw/sub2api#6395 2026-08-30 15:49:21 +00:00
github-actions[bot] 9847f387fa @Ritel-T has signed the CLA in Wei-Shaw/sub2api#6378 2026-08-30 04:34:08 +00:00
github-actions[bot] 56f6dece8d @qiujun8023 has signed the CLA in Wei-Shaw/sub2api#6367 2026-08-29 09:57:51 +00:00
github-actions[bot] ab9d9efdef @PengShangyi has signed the CLA in Wei-Shaw/sub2api#6363 2026-08-29 07:47:04 +00:00
github-actions[bot] 0d7cd182b1 @Imccccc has signed the CLA in Wei-Shaw/sub2api#6337 2026-08-28 15:09:09 +00:00
github-actions[bot] b711e77f51 @wall-wxk has signed the CLA in Wei-Shaw/sub2api#6330 2026-08-28 08:45:36 +00:00
github-actions[bot] b10ebfbfc2 @251392463 has signed the CLA in Wei-Shaw/sub2api#6325 2026-08-28 07:38:17 +00:00
github-actions[bot] f9e15b7344 @QHSsss has signed the CLA in Wei-Shaw/sub2api#6321 2026-08-28 07:15:54 +00:00
github-actions[bot] 0179e452ab @swjturay has signed the CLA in Wei-Shaw/sub2api#6316 2026-08-28 06:38:58 +00:00
github-actions[bot] 34f976982c @chhuax has signed the CLA in Wei-Shaw/sub2api#6315 2026-08-28 06:04:34 +00:00
github-actions[bot] ad97faaebe @JnyRoad has signed the CLA in Wei-Shaw/sub2api#6300 2026-08-28 03:47:22 +00:00
github-actions[bot] 138b2279df @Whisper-stark has signed the CLA in Wei-Shaw/sub2api#6291 2026-08-27 11:29:38 +00:00
github-actions[bot] 6560f1ec67 @Inokinoki has signed the CLA in Wei-Shaw/sub2api#6289 2026-08-27 09:51:51 +00:00
github-actions[bot] dcfd713388 @wuji-labs has signed the CLA in Wei-Shaw/sub2api#6280 2026-08-27 07:58:17 +00:00
github-actions[bot] 42fb0adb00 @kk-418 has signed the CLA in Wei-Shaw/sub2api#6278 2026-08-27 07:50:25 +00:00
github-actions[bot] a98c19b68b @TYzzt has signed the CLA in Wei-Shaw/sub2api#6277 2026-08-27 07:29:56 +00:00
github-actions[bot] 614da4ff41 @zenor0 has signed the CLA in Wei-Shaw/sub2api#6263 2026-08-27 03:41:54 +00:00
github-actions[bot] 9696d296b1 @88766lawrence has signed the CLA in Wei-Shaw/sub2api#6257 2026-08-26 13:17:00 +00:00
github-actions[bot] a5352ad9de @holeenlu has signed the CLA in Wei-Shaw/sub2api#6224 2026-08-26 04:54:54 +00:00
github-actions[bot] e7c3bc7925 @a515642 has signed the CLA in Wei-Shaw/sub2api#6212 2026-08-25 14:50:13 +00:00
github-actions[bot] 96491e9c78 @Monika-shipship has signed the CLA in Wei-Shaw/sub2api#6211 2026-08-25 14:00:03 +00:00
github-actions[bot] 8e92cfe566 @wang-bao-le has signed the CLA in Wei-Shaw/sub2api#6207 2026-08-25 12:19:46 +00:00
github-actions[bot] 3362fab7d8 @antTing has signed the CLA in Wei-Shaw/sub2api#6193 2026-08-25 08:55:29 +00:00
github-actions[bot] a914d50108 @JialinLiu-codedance has signed the CLA in Wei-Shaw/sub2api#6188 2026-08-25 07:22:08 +00:00
github-actions[bot] c0ffcda2ea @jinsc123 has signed the CLA in Wei-Shaw/sub2api#6186 2026-08-25 07:03:14 +00:00
github-actions[bot] 3f76e53a4a @wwcchh0123 has signed the CLA in Wei-Shaw/sub2api#6179 2026-08-25 06:36:55 +00:00
github-actions[bot] 88df34be2c @jyking has signed the CLA in Wei-Shaw/sub2api#6166 2026-08-25 02:47:30 +00:00
github-actions[bot] b797d92635 @jimbirthday has signed the CLA in Wei-Shaw/sub2api#6164 2026-08-25 02:31:04 +00:00
github-actions[bot] a2227ffa48 @zsj423123 has signed the CLA in Wei-Shaw/sub2api#6162 2026-08-25 01:50:26 +00:00
github-actions[bot] 87f3a718ff @LiPu-jpg has signed the CLA in Wei-Shaw/sub2api#6157 2026-08-24 16:53:57 +00:00
github-actions[bot] a1672ef051 @ranxi2001 has signed the CLA in Wei-Shaw/sub2api#6152 2026-08-24 14:31:54 +00:00
github-actions[bot] f94405200c @zichuanwangcloud-gif has signed the CLA in Wei-Shaw/sub2api#6128 2026-08-24 07:19:38 +00:00
github-actions[bot] a59cc423fe @xz-dev has signed the CLA in Wei-Shaw/sub2api#6139 2026-08-24 06:48:15 +00:00
github-actions[bot] 0ea8b0121c @weicheng59 has signed the CLA in Wei-Shaw/sub2api#6042 2026-08-24 02:24:03 +00:00
github-actions[bot] 8fe6d2f152 @aeonframework has signed the CLA in Wei-Shaw/sub2api#6122 2026-08-23 20:33:24 +00:00
github-actions[bot] a421d02824 @akihitohyh has signed the CLA in Wei-Shaw/sub2api#6058 2026-08-23 05:50:16 +00:00
github-actions[bot] 4ac275c4ab @CRAZYShimakaze has signed the CLA in Wei-Shaw/sub2api#4391 2026-08-23 05:06:23 +00:00
github-actions[bot] e65c1bf71f @xiaxiaxaia has signed the CLA in Wei-Shaw/sub2api#6095 2026-08-22 18:11:25 +00:00
github-actions[bot] 27810fd7a8 @huangguang1999 has signed the CLA in Wei-Shaw/sub2api#6046 2026-08-22 03:07:30 +00:00
github-actions[bot] 431bb76a2d @wangfangcai has signed the CLA in Wei-Shaw/sub2api#6064 2026-08-21 19:41:57 +00:00
github-actions[bot] 5055afc9da @laoxiechuzheng has signed the CLA in Wei-Shaw/sub2api#6062 2026-08-21 17:35:36 +00:00
github-actions[bot] 953b0a2c02 @shunwang-crypto has signed the CLA in Wei-Shaw/sub2api#6061 2026-08-21 17:18:42 +00:00
github-actions[bot] 4acbc13c87 @anguobao123 has signed the CLA in Wei-Shaw/sub2api#6060 2026-08-21 16:16:22 +00:00
github-actions[bot] aa236f8e55 @YogaSakti has signed the CLA in Wei-Shaw/sub2api#6016 2026-08-21 08:58:18 +00:00
github-actions[bot] 2739e4a5c0 @baryon has signed the CLA in Wei-Shaw/sub2api#5923 2026-08-20 15:41:05 +00:00
github-actions[bot] 769721d361 @clearmann has signed the CLA in Wei-Shaw/sub2api#5919 2026-08-20 12:16:41 +00:00
github-actions[bot] b45840cf09 @cwj2001 has signed the CLA in Wei-Shaw/sub2api#5914 2026-08-20 10:41:08 +00:00
github-actions[bot] 8bbcab9ec7 @JonathanChan-geek has signed the CLA in Wei-Shaw/sub2api#5894 2026-08-20 07:51:39 +00:00
github-actions[bot] 6d5511903d @229196637 has signed the CLA in Wei-Shaw/sub2api#5861 2026-08-19 16:39:04 +00:00
github-actions[bot] 4d60765577 @lumincui has signed the CLA in Wei-Shaw/sub2api#5845 2026-08-19 10:53:43 +00:00
github-actions[bot] b995c2659e @xuhaihan has signed the CLA in Wei-Shaw/sub2api#5831 2026-08-19 08:57:32 +00:00
github-actions[bot] 404aa033ae @jinyaxuan has signed the CLA in Wei-Shaw/sub2api#5808 2026-08-19 06:33:37 +00:00
github-actions[bot] 23582e996d @kingsleydon has signed the CLA in Wei-Shaw/sub2api#5816 2026-08-19 04:51:31 +00:00
github-actions[bot] fcf7ce2189 @MokoYee has signed the CLA in Wei-Shaw/sub2api#5801 2026-08-19 02:41:23 +00:00
github-actions[bot] 38e7a272a7 @Hakunm has signed the CLA in Wei-Shaw/sub2api#5791 2026-08-18 16:51:41 +00:00
github-actions[bot] 3bad045089 @UnlastingR has signed the CLA in Wei-Shaw/sub2api#5782 2026-08-18 12:49:47 +00:00
github-actions[bot] 564b91b24c @JiKaiLee has signed the CLA in Wei-Shaw/sub2api#5769 2026-08-18 08:28:19 +00:00
github-actions[bot] 2d65aee5bb @o2e has signed the CLA in Wei-Shaw/sub2api#5759 2026-08-18 05:10:02 +00:00
github-actions[bot] 0ce0d390b0 @Emt-lin has signed the CLA in Wei-Shaw/sub2api#5752 2026-08-18 02:22:56 +00:00
github-actions[bot] 36d2ee0a47 @PIKACHUIM has signed the CLA in Wei-Shaw/sub2api#5736 2026-08-17 11:11:31 +00:00
github-actions[bot] fc80967f7b @tamseno has signed the CLA in Wei-Shaw/sub2api#5720 2026-08-17 05:56:17 +00:00
github-actions[bot] cc069cb331 @xiaobo121388 has signed the CLA in Wei-Shaw/sub2api#5712 2026-08-17 04:47:06 +00:00
github-actions[bot] d5a4e0e594 @xtt22175-svg has signed the CLA in Wei-Shaw/sub2api#5693 2026-08-16 07:58:07 +00:00
github-actions[bot] 4585683c2d @Monster-DP has signed the CLA in Wei-Shaw/sub2api#5685 2026-08-16 00:36:45 +00:00
github-actions[bot] 3d1cb1e617 @Perfecto23 has signed the CLA in Wei-Shaw/sub2api#5676 2026-08-15 14:56:24 +00:00
github-actions[bot] 89c646fe9b @LingyeNBird has signed the CLA in Wei-Shaw/sub2api#5672 2026-08-15 10:49:26 +00:00
github-actions[bot] 1c5d1522b8 @genhoi has signed the CLA in Wei-Shaw/sub2api#5670 2026-08-15 10:19:26 +00:00
github-actions[bot] 35d497bf93 @william-drakemond has signed the CLA in Wei-Shaw/sub2api#5658 2026-08-15 00:03:26 +00:00
github-actions[bot] 146dfdd6fa @albert210596 has signed the CLA in Wei-Shaw/sub2api#5656 2026-08-14 18:55:37 +00:00
github-actions[bot] b1d5972aab @zninggo has signed the CLA in Wei-Shaw/sub2api#5654 2026-08-14 17:17:16 +00:00
github-actions[bot] 9c9f8a00bc @InCerryGit has signed the CLA in Wei-Shaw/sub2api#5641 2026-08-14 08:29:58 +00:00
github-actions[bot] 4070d49d63 @TheEarlyWinter has signed the CLA in Wei-Shaw/sub2api#5640 2026-08-14 08:12:58 +00:00
github-actions[bot] 3dbbf5f252 @vinson0522 has signed the CLA in Wei-Shaw/sub2api#5635 2026-08-14 07:26:02 +00:00
github-actions[bot] 44f9fb99af @3219378872 has signed the CLA in Wei-Shaw/sub2api#5632 2026-08-14 06:37:27 +00:00
github-actions[bot] d4788a4cb2 @sweetcornna has signed the CLA in Wei-Shaw/sub2api#5625 2026-08-14 04:34:57 +00:00
github-actions[bot] dbac4172be @wasd345 has signed the CLA in Wei-Shaw/sub2api#5622 2026-08-14 03:31:44 +00:00
github-actions[bot] 2a8adf25a1 @cying22 has signed the CLA in Wei-Shaw/sub2api#5610 2026-08-13 16:39:45 +00:00
github-actions[bot] 196b6c011a @YoungZM339 has signed the CLA in Wei-Shaw/sub2api#5602 2026-08-13 12:39:41 +00:00
github-actions[bot] d82d5afe36 @yanhao22m has signed the CLA in Wei-Shaw/sub2api#5597 2026-08-13 10:09:14 +00:00
github-actions[bot] 0ae03dd2bd @HemuCoder has signed the CLA in Wei-Shaw/sub2api#5590 2026-08-13 07:26:00 +00:00
github-actions[bot] c71b16d4e0 @KKBK-233 has signed the CLA in Wei-Shaw/sub2api#5585 2026-08-13 06:33:49 +00:00
github-actions[bot] 68c3c7880f @liulixin-lex has signed the CLA in Wei-Shaw/sub2api#5562 2026-08-12 17:01:13 +00:00
github-actions[bot] c7d94415d5 @joneswxg has signed the CLA in Wei-Shaw/sub2api#5561 2026-08-12 15:35:22 +00:00
github-actions[bot] e93fda1d8a @zcxads666 has signed the CLA in Wei-Shaw/sub2api#5549 2026-08-12 07:30:29 +00:00
github-actions[bot] c90a679486 @chenyanchen has signed the CLA in Wei-Shaw/sub2api#5548 2026-08-12 07:03:48 +00:00
github-actions[bot] 7c3528f173 @szbfwdy has signed the CLA in Wei-Shaw/sub2api#5541 2026-08-12 02:24:20 +00:00
github-actions[bot] c9eb8c4535 @Loliyer520 has signed the CLA in Wei-Shaw/sub2api#5534 2026-08-11 16:11:55 +00:00
github-actions[bot] 2fbfa58faf @allenxln has signed the CLA in Wei-Shaw/sub2api#5532 2026-08-11 15:16:14 +00:00
github-actions[bot] 9633d0d986 @SamizuHM has signed the CLA in Wei-Shaw/sub2api#5531 2026-08-11 13:52:19 +00:00
github-actions[bot] cbed21d14f @zijiren233 has signed the CLA in Wei-Shaw/sub2api#5522 2026-08-11 07:47:33 +00:00
github-actions[bot] 623001b1c1 @m11y has signed the CLA in Wei-Shaw/sub2api#5515 2026-08-11 05:55:34 +00:00
github-actions[bot] 68f9c682e2 @pyt111 has signed the CLA in Wei-Shaw/sub2api#5502 2026-08-11 02:10:32 +00:00
github-actions[bot] c201f5a38c @kmittle has signed the CLA in Wei-Shaw/sub2api#5499 2026-08-10 18:16:56 +00:00
github-actions[bot] c37ff3fa1f @heyrry has signed the CLA in Wei-Shaw/sub2api#4992 2026-08-10 14:35:57 +00:00
github-actions[bot] 25ef24ae6a @LaplaceOrange has signed the CLA in Wei-Shaw/sub2api#5494 2026-08-10 13:38:31 +00:00
github-actions[bot] d2bf872b95 @East5RingRoad-kyle has signed the CLA in Wei-Shaw/sub2api#5491 2026-08-10 08:34:16 +00:00
github-actions[bot] 8190b94d70 @kmiaojun has signed the CLA in Wei-Shaw/sub2api#5490 2026-08-10 08:09:53 +00:00
github-actions[bot] 96a33a1db6 @Pengap has signed the CLA in Wei-Shaw/sub2api#5487 2026-08-10 06:03:36 +00:00
github-actions[bot] ce02823b2e @llissery has signed the CLA in Wei-Shaw/sub2api#5443 2026-08-10 02:19:43 +00:00
github-actions[bot] 71ece7871e @xiongnemo has signed the CLA in Wei-Shaw/sub2api#5471 2026-08-09 19:42:56 +00:00
github-actions[bot] 56e363a823 @jeong-ai has signed the CLA in Wei-Shaw/sub2api#5470 2026-08-09 19:16:30 +00:00
github-actions[bot] 4b10435b79 @liyunzm has signed the CLA in Wei-Shaw/sub2api#5457 2026-08-09 13:02:19 +00:00
github-actions[bot] a9202f200f @siri666666 has signed the CLA in Wei-Shaw/sub2api#5450 2026-08-09 10:39:06 +00:00
github-actions[bot] e926fca15b @666-999b has signed the CLA in Wei-Shaw/sub2api#5429 2026-08-09 05:12:59 +00:00
github-actions[bot] 806e0b0f03 @a1073097082 has signed the CLA in Wei-Shaw/sub2api#5440 2026-08-09 03:14:49 +00:00
github-actions[bot] 284203ed4b @shirosoralumie648 has signed the CLA in Wei-Shaw/sub2api#5441 2026-08-09 03:07:01 +00:00
github-actions[bot] 64b9606445 @yefengr has signed the CLA in Wei-Shaw/sub2api#5421 2026-08-08 12:06:32 +00:00
github-actions[bot] 05676d19a5 @hasagiiii has signed the CLA in Wei-Shaw/sub2api#5419 2026-08-08 09:52:25 +00:00
github-actions[bot] 0d97af9a0d @Yuxin-Qiao has signed the CLA in Wei-Shaw/sub2api#5415 2026-08-08 07:51:29 +00:00
github-actions[bot] 01d0a7e7bc @hezhaoqian1 has signed the CLA in Wei-Shaw/sub2api#5389 2026-08-07 11:34:55 +00:00
github-actions[bot] c6289176d1 @Randark-JMT has signed the CLA in Wei-Shaw/sub2api#5385 2026-08-07 10:59:26 +00:00
github-actions[bot] 20637f7a1f @vhuk2025 has signed the CLA in Wei-Shaw/sub2api#5366 2026-08-07 06:10:36 +00:00
github-actions[bot] b8284d42af @XlSerena has signed the CLA in Wei-Shaw/sub2api#5365 2026-08-07 06:01:34 +00:00
github-actions[bot] 94330270cf @yunhe-dev has signed the CLA in Wei-Shaw/sub2api#5357 2026-08-07 03:09:52 +00:00
github-actions[bot] 8c342c701d @NietzscheX has signed the CLA in Wei-Shaw/sub2api#5354 2026-08-07 02:50:38 +00:00
github-actions[bot] bb3d1e49cf @ryanchou1994 has signed the CLA in Wei-Shaw/sub2api#5348 2026-08-07 02:44:22 +00:00
github-actions[bot] 6a0efed062 @TechnologyStar has signed the CLA in Wei-Shaw/sub2api#5349 2026-08-07 01:30:39 +00:00
github-actions[bot] cadbd323d9 @zzj-create has signed the CLA in Wei-Shaw/sub2api#5300 2026-08-05 09:38:11 +00:00
github-actions[bot] 55b317ad3f @litang9 has signed the CLA in Wei-Shaw/sub2api#5273 2026-08-04 16:18:07 +00:00
github-actions[bot] 5b69c37fe7 @XiXi-desu has signed the CLA in Wei-Shaw/sub2api#5270 2026-08-04 13:24:57 +00:00
github-actions[bot] 162d9f5341 @shentry has signed the CLA in Wei-Shaw/sub2api#5266 2026-08-04 11:14:36 +00:00
github-actions[bot] 56758c9680 @lbyxiaolizi has signed the CLA in Wei-Shaw/sub2api#5253 2026-08-04 04:34:06 +00:00
github-actions[bot] 1c9c42e816 @DerekEXS has signed the CLA in Wei-Shaw/sub2api#5219 2026-08-03 07:10:59 +00:00
github-actions[bot] d01f310693 @xiataoyue has signed the CLA in Wei-Shaw/sub2api#5218 2026-08-03 04:59:47 +00:00
github-actions[bot] 270d068d7c @Windyskr has signed the CLA in Wei-Shaw/sub2api#5211 2026-08-03 04:05:59 +00:00
github-actions[bot] eaa8aff3d0 @luckydududu has signed the CLA in Wei-Shaw/sub2api#5192 2026-08-03 00:22:36 +00:00
github-actions[bot] bf82e02116 @goodllf has signed the CLA in Wei-Shaw/sub2api#5202 2026-08-02 16:56:29 +00:00
github-actions[bot] 7823870445 @mrlitong has signed the CLA in Wei-Shaw/sub2api#5200 2026-08-02 15:39:51 +00:00
github-actions[bot] 357215105e @sev222 has signed the CLA in Wei-Shaw/sub2api#5172 2026-08-01 13:43:37 +00:00
github-actions[bot] 8c455c2d9a @jianyun8023 has signed the CLA in Wei-Shaw/sub2api#5166 2026-08-01 11:59:35 +00:00
github-actions[bot] d9539a6e88 @margetrp-hub has signed the CLA in Wei-Shaw/sub2api#5163 2026-08-01 09:38:28 +00:00
github-actions[bot] d42bc56e81 @asas6661 has signed the CLA in Wei-Shaw/sub2api#5159 2026-08-01 07:50:26 +00:00
github-actions[bot] 5a9da8d5aa @neboyang has signed the CLA in Wei-Shaw/sub2api#5156 2026-08-01 06:31:48 +00:00
github-actions[bot] 7ae0695a39 @tudoujunha has signed the CLA in Wei-Shaw/sub2api#5146 2026-07-31 13:26:34 +00:00
github-actions[bot] fcb185abfb @pcmid has signed the CLA in Wei-Shaw/sub2api#5134 2026-07-31 08:07:22 +00:00
github-actions[bot] 92e864ae6f @dawnx has signed the CLA in Wei-Shaw/sub2api#5133 2026-07-31 07:12:45 +00:00
github-actions[bot] 35ca8e2223 @hyzaw has signed the CLA in Wei-Shaw/sub2api#5116 2026-07-31 01:51:14 +00:00
github-actions[bot] 29e0482fec @chenzilin100 has signed the CLA in Wei-Shaw/sub2api#5113 2026-07-30 19:11:27 +00:00
github-actions[bot] 0c37574af9 @Tongzai123 has signed the CLA in Wei-Shaw/sub2api#5101 2026-07-30 11:06:05 +00:00
github-actions[bot] f3c21014e0 @Mycheers has signed the CLA in Wei-Shaw/sub2api#5079 2026-07-30 06:17:57 +00:00
github-actions[bot] 2bbeb14b1d @ye740891000 has signed the CLA in Wei-Shaw/sub2api#5075 2026-07-30 04:12:42 +00:00
github-actions[bot] 6cc721dc5f @fc221 has signed the CLA in Wei-Shaw/sub2api#5070 2026-07-30 01:43:08 +00:00
github-actions[bot] 7739b20860 @X-T-E-R has signed the CLA in Wei-Shaw/sub2api#5068 2026-07-29 20:46:04 +00:00
github-actions[bot] 6cde400289 @AgentsDanceAI has signed the CLA in Wei-Shaw/sub2api#5039 2026-07-29 07:03:03 +00:00
github-actions[bot] 1cc34a5d9d @FUjr has signed the CLA in Wei-Shaw/sub2api#5035 2026-07-29 04:22:35 +00:00
github-actions[bot] 4d1c9f23c4 @keaipiao has signed the CLA in Wei-Shaw/sub2api#5031 2026-07-28 19:09:17 +00:00
github-actions[bot] 1608142d6e @gogoing1024 has signed the CLA in Wei-Shaw/sub2api#3519 2026-07-28 16:49:05 +00:00
github-actions[bot] 96a87ffdf8 @QLHazyCoder has signed the CLA in Wei-Shaw/sub2api#5028 2026-07-28 15:53:13 +00:00
github-actions[bot] 689000a6bf @apple-ouyang has signed the CLA in Wei-Shaw/sub2api#5014 2026-07-28 11:56:16 +00:00
github-actions[bot] 9f8a6501d8 @Mengfei-Li has signed the CLA in Wei-Shaw/sub2api#5007 2026-07-28 11:09:57 +00:00
github-actions[bot] 4b4b50ea44 @CoffeeHi has signed the CLA in Wei-Shaw/sub2api#5011 2026-07-28 11:06:31 +00:00
github-actions[bot] 201f0a1f17 @zhsh2980 has signed the CLA in Wei-Shaw/sub2api#5006 2026-07-28 10:54:56 +00:00
github-actions[bot] 61c2c74289 @wlhtea has signed the CLA in Wei-Shaw/sub2api#4995 2026-07-28 06:56:28 +00:00
github-actions[bot] cd5fbc78c7 @17Yuns has signed the CLA in Wei-Shaw/sub2api#4993 2026-07-28 05:41:39 +00:00
github-actions[bot] c7077ca111 @INKCR0W has signed the CLA in Wei-Shaw/sub2api#4981 2026-07-28 01:29:00 +00:00
github-actions[bot] 77199a62c2 @m7rick has signed the CLA in Wei-Shaw/sub2api#4958 2026-07-27 11:36:42 +00:00
github-actions[bot] 31f928d327 @Jopqior has signed the CLA in Wei-Shaw/sub2api#4945 2026-07-27 07:07:44 +00:00
github-actions[bot] 8890b73c97 @HuntercodeT has signed the CLA in Wei-Shaw/sub2api#4942 2026-07-27 06:20:23 +00:00
github-actions[bot] b36d578836 @OG-Wang has signed the CLA in Wei-Shaw/sub2api#4934 2026-07-27 01:21:20 +00:00
github-actions[bot] 30e9cc1763 @Ricardo-binZzz has signed the CLA in Wei-Shaw/sub2api#4932 2026-07-27 00:22:54 +00:00
github-actions[bot] 1880b95c29 @enjin1314 has signed the CLA in Wei-Shaw/sub2api#4931 2026-07-26 22:58:36 +00:00
github-actions[bot] 12afbe90dd @HeST-lab has signed the CLA in Wei-Shaw/sub2api#4929 2026-07-26 22:10:26 +00:00
github-actions[bot] d87e30894f @706412584 has signed the CLA in Wei-Shaw/sub2api#4927 2026-07-26 20:51:13 +00:00
github-actions[bot] 14d98b73c3 @alexj11324 has signed the CLA in Wei-Shaw/sub2api#4920 2026-07-26 15:35:53 +00:00
github-actions[bot] 88dbd22cc3 @jeshica has signed the CLA in Wei-Shaw/sub2api#4913 2026-07-26 13:25:59 +00:00
github-actions[bot] 93c5a07752 @ZacharyHu0 has signed the CLA in Wei-Shaw/sub2api#4909 2026-07-26 12:06:06 +00:00
github-actions[bot] e04a6f63c7 @chinnsenn has signed the CLA in Wei-Shaw/sub2api#4908 2026-07-26 11:34:38 +00:00
github-actions[bot] f9bd7775ba @qi-hey has signed the CLA in Wei-Shaw/sub2api#4891 2026-07-26 05:42:21 +00:00
github-actions[bot] 25258d38ce @lyy0709 has signed the CLA in Wei-Shaw/sub2api#4888 2026-07-26 04:35:10 +00:00
github-actions[bot] f47dc5584d @a895411690 has signed the CLA in Wei-Shaw/sub2api#4881 2026-07-26 01:58:29 +00:00
github-actions[bot] 7bfd818540 @SolitaryJune has signed the CLA in Wei-Shaw/sub2api#4856 2026-07-25 06:59:50 +00:00
github-actions[bot] 74cf6ebf80 @Kanesong has signed the CLA in Wei-Shaw/sub2api#4854 2026-07-25 04:44:02 +00:00
github-actions[bot] 99496c1254 @r266-tech has signed the CLA in Wei-Shaw/sub2api#4848 2026-07-25 02:46:43 +00:00
github-actions[bot] 80cbd1fadf @Cynicismcart has signed the CLA in Wei-Shaw/sub2api#4842 2026-07-24 22:01:39 +00:00
github-actions[bot] 9303a609f8 @ListenCodes has signed the CLA in Wei-Shaw/sub2api#4832 2026-07-24 12:17:58 +00:00
github-actions[bot] c76753ad68 @yiancode has signed the CLA in Wei-Shaw/sub2api#4814 2026-07-24 05:55:36 +00:00
github-actions[bot] 278f52d615 @zanderzhng has signed the CLA in Wei-Shaw/sub2api#4815 2026-07-24 05:17:06 +00:00
github-actions[bot] 0c5433fbe3 @SemonCat has signed the CLA in Wei-Shaw/sub2api#4801 2026-07-24 02:52:54 +00:00
github-actions[bot] 514a126319 @scp-planet has signed the CLA in Wei-Shaw/sub2api#4804 2026-07-23 19:04:37 +00:00
github-actions[bot] 33138d38c8 @KtzeAbyss has signed the CLA in Wei-Shaw/sub2api#4787 2026-07-23 12:43:51 +00:00
github-actions[bot] a29d062e2c @fei11 has signed the CLA in Wei-Shaw/sub2api#4783 2026-07-23 10:51:15 +00:00
github-actions[bot] 5f6a5f3484 @kadaliao has signed the CLA in Wei-Shaw/sub2api#4777 2026-07-23 08:46:15 +00:00
github-actions[bot] f89534a366 @lucas-ward has signed the CLA in Wei-Shaw/sub2api#4757 2026-07-22 23:45:58 +00:00
github-actions[bot] a81f2e9f1a @reed-yang has signed the CLA in Wei-Shaw/sub2api#4756 2026-07-22 23:34:14 +00:00
github-actions[bot] 75b2ca499a @wjx2951874 has signed the CLA in Wei-Shaw/sub2api#4734 2026-07-22 10:38:57 +00:00
github-actions[bot] bc9a05a243 @xiaoyi0923 has signed the CLA in Wei-Shaw/sub2api#4717 2026-07-22 04:28:22 +00:00
github-actions[bot] ddbefc44b2 @nagi330 has signed the CLA in Wei-Shaw/sub2api#4701 2026-07-21 13:45:12 +00:00
github-actions[bot] 6e6873508f @hou-rong has signed the CLA in Wei-Shaw/sub2api#4695 2026-07-21 12:46:17 +00:00
github-actions[bot] 8a4324e92c @tylzh97 has signed the CLA in Wei-Shaw/sub2api#4696 2026-07-21 12:09:06 +00:00
github-actions[bot] a56f21378a @herobytes has signed the CLA in Wei-Shaw/sub2api#4692 2026-07-21 09:41:11 +00:00
github-actions[bot] 48bd459c53 @moonfunjohn has signed the CLA in Wei-Shaw/sub2api#4689 2026-07-21 09:18:19 +00:00
github-actions[bot] 7e1ba0112f @aofee has signed the CLA in Wei-Shaw/sub2api#4687 2026-07-21 08:34:25 +00:00
github-actions[bot] 2c99d0236e @iHuHoo has signed the CLA in Wei-Shaw/sub2api#4682 2026-07-21 07:05:51 +00:00
github-actions[bot] b7eeeeaa96 @ricoyudog has signed the CLA in Wei-Shaw/sub2api#4677 2026-07-21 04:54:28 +00:00
github-actions[bot] 293ff07fbe @TTopoo has signed the CLA in Wei-Shaw/sub2api#4666 2026-07-20 17:43:07 +00:00
github-actions[bot] c4136fc05c @J606y has signed the CLA in Wei-Shaw/sub2api#4661 2026-07-20 14:22:43 +00:00
github-actions[bot] b732410add @yyyyyzc has signed the CLA in Wei-Shaw/sub2api#4654 2026-07-20 11:39:32 +00:00
github-actions[bot] 469319553d @dali886 has signed the CLA in Wei-Shaw/sub2api#4651 2026-07-20 11:04:14 +00:00
github-actions[bot] 7692224e06 @joeeeeey has signed the CLA in Wei-Shaw/sub2api#4634 2026-07-20 05:52:06 +00:00
github-actions[bot] 76b63231ca @put-go has signed the CLA in Wei-Shaw/sub2api#4626 2026-07-20 00:16:52 +00:00
github-actions[bot] 3799d38d0b @zhangxaochen has signed the CLA in Wei-Shaw/sub2api#4616 2026-07-19 15:15:14 +00:00
github-actions[bot] 6b245f2d35 @orchief has signed the CLA in Wei-Shaw/sub2api#4606 2026-07-19 14:24:27 +00:00
github-actions[bot] f4da0d5e2d @kinsolee has signed the CLA in Wei-Shaw/sub2api#4595 2026-07-19 09:41:56 +00:00
github-actions[bot] 2036b8dfa0 @QinIndexCode has signed the CLA in Wei-Shaw/sub2api#4594 2026-07-19 08:37:07 +00:00
github-actions[bot] 79ad635b62 @huangjunsen0406 has signed the CLA in Wei-Shaw/sub2api#4589 2026-07-19 05:47:24 +00:00
github-actions[bot] 9e263992e1 @SipengXie2024 has signed the CLA in Wei-Shaw/sub2api#2851 2026-07-19 05:39:34 +00:00
github-actions[bot] 588085facc @yanlongqi has signed the CLA in Wei-Shaw/sub2api#4577 2026-07-18 21:59:49 +00:00
github-actions[bot] 125051d678 @Astrenix has signed the CLA in Wei-Shaw/sub2api#4569 2026-07-18 18:10:15 +00:00
github-actions[bot] c7d78450c4 @abbzbb has signed the CLA in Wei-Shaw/sub2api#4565 2026-07-18 16:06:44 +00:00
github-actions[bot] 40d0472764 @lln556 has signed the CLA in Wei-Shaw/sub2api#4549 2026-07-18 08:27:30 +00:00
github-actions[bot] 774dbfb8de @broven has signed the CLA in Wei-Shaw/sub2api#4548 2026-07-18 08:24:53 +00:00
github-actions[bot] 1f1060b740 @D36u99er has signed the CLA in Wei-Shaw/sub2api#4533 2026-07-18 05:54:02 +00:00
github-actions[bot] 14356dc9d7 @coo1white has signed the CLA in Wei-Shaw/sub2api#4506 2026-07-17 14:09:04 +00:00
github-actions[bot] bc92e49a16 @Vz7797 has signed the CLA in Wei-Shaw/sub2api#4498 2026-07-17 11:45:26 +00:00
github-actions[bot] 0955576582 @docooler has signed the CLA in Wei-Shaw/sub2api#4468 2026-07-17 04:49:52 +00:00
github-actions[bot] 484681f004 @aomsir has signed the CLA in Wei-Shaw/sub2api#4463 2026-07-17 01:42:22 +00:00
github-actions[bot] 1f1fd79e01 @rurucxk has signed the CLA in Wei-Shaw/sub2api#4451 2026-07-16 16:25:48 +00:00
github-actions[bot] 1d05300c9b @linyq-laien has signed the CLA in Wei-Shaw/sub2api#4431 2026-07-16 10:09:43 +00:00
github-actions[bot] 448c4e86d5 @sir1st has signed the CLA in Wei-Shaw/sub2api#4362 2026-07-16 08:11:15 +00:00
github-actions[bot] 109761f051 @AdrianZhaoDev has signed the CLA in Wei-Shaw/sub2api#4425 2026-07-16 07:41:13 +00:00
github-actions[bot] 326a7fd4b1 @SatellaPoi has signed the CLA in Wei-Shaw/sub2api#4416 2026-07-16 04:37:50 +00:00
github-actions[bot] 9d44d5ab34 @drgnchan has signed the CLA in Wei-Shaw/sub2api#4376 2026-07-15 14:07:09 +00:00
github-actions[bot] 6e29d73659 @ufec has signed the CLA in Wei-Shaw/sub2api#4371 2026-07-15 13:36:34 +00:00
github-actions[bot] 9137d77df2 @Doone-skser has signed the CLA in Wei-Shaw/sub2api#4368 2026-07-15 12:36:11 +00:00
github-actions[bot] 166ac3d55f @xiaohei210509 has signed the CLA in Wei-Shaw/sub2api#4346 2026-07-15 07:22:19 +00:00
github-actions[bot] 9c5bade741 @DR-lin-eng has signed the CLA in Wei-Shaw/sub2api#4337 2026-07-15 05:57:09 +00:00
github-actions[bot] 170df05e53 @lenzhang has signed the CLA in Wei-Shaw/sub2api#4334 2026-07-15 05:24:28 +00:00
github-actions[bot] 81d389bf4d @turingcat has signed the CLA in Wei-Shaw/sub2api#4323 2026-07-15 03:27:10 +00:00
github-actions[bot] b381a7c642 @Avilianb has signed the CLA in Wei-Shaw/sub2api#4302 2026-07-14 20:08:17 +00:00
github-actions[bot] 6194475a6e @wp-a has signed the CLA in Wei-Shaw/sub2api#4296 2026-07-14 19:14:52 +00:00
github-actions[bot] d89bd7a80c @caigee-cmd has signed the CLA in Wei-Shaw/sub2api#4294 2026-07-14 16:54:24 +00:00
github-actions[bot] f5cc5f244c @Tiantianr has signed the CLA in Wei-Shaw/sub2api#4289 2026-07-14 14:40:20 +00:00
github-actions[bot] 33775b1274 @MenXianWe has signed the CLA in Wei-Shaw/sub2api#4263 2026-07-14 09:37:05 +00:00
github-actions[bot] e0c976fa7b @CarlJi has signed the CLA in Wei-Shaw/sub2api#4261 2026-07-14 09:13:12 +00:00
github-actions[bot] cf57113d89 @Lynricsy has signed the CLA in Wei-Shaw/sub2api#4259 2026-07-14 08:57:01 +00:00
github-actions[bot] 8770e0c708 @zh239ns has signed the CLA in Wei-Shaw/sub2api#4219 2026-07-13 23:39:47 +00:00
github-actions[bot] 1eacdd4aee @chensunlai has signed the CLA in Wei-Shaw/sub2api#4218 2026-07-13 21:26:47 +00:00
github-actions[bot] c476185a82 @Prince-cool has signed the CLA in Wei-Shaw/sub2api#4208 2026-07-13 15:46:30 +00:00
github-actions[bot] c398a50e17 @zz80900 has signed the CLA in Wei-Shaw/sub2api#4179 2026-07-13 10:22:43 +00:00
github-actions[bot] 1314620f0a @roson9527 has signed the CLA in Wei-Shaw/sub2api#4152 2026-07-13 06:39:55 +00:00
github-actions[bot] ec2efcbeda @suuuuuu-1 has signed the CLA in Wei-Shaw/sub2api#4150 2026-07-13 05:55:46 +00:00
github-actions[bot] ea1db1f39a @feeeei has signed the CLA in Wei-Shaw/sub2api#4148 2026-07-13 05:04:47 +00:00
github-actions[bot] 45646fb96a @yan9651688 has signed the CLA in Wei-Shaw/sub2api#4134 2026-07-13 03:36:18 +00:00
github-actions[bot] a477df6b9b @Drswith has signed the CLA in Wei-Shaw/sub2api#4130 2026-07-13 03:14:50 +00:00
github-actions[bot] 19a8137813 @adamglin0 has signed the CLA in Wei-Shaw/sub2api#4125 2026-07-13 02:50:06 +00:00
github-actions[bot] 4efc5d0cd1 @badaozhai has signed the CLA in Wei-Shaw/sub2api#4118 2026-07-13 02:42:10 +00:00
github-actions[bot] bbfdd86461 @Sen62455 has signed the CLA in Wei-Shaw/sub2api#4106 2026-07-12 15:44:46 +00:00
github-actions[bot] e7e4c09de0 @DullJZ has signed the CLA in Wei-Shaw/sub2api#4089 2026-07-12 15:17:36 +00:00
github-actions[bot] aca3249465 @C3nHx has signed the CLA in Wei-Shaw/sub2api#4101 2026-07-12 12:56:36 +00:00
github-actions[bot] fa40cd40eb @emailck has signed the CLA in Wei-Shaw/sub2api#4095 2026-07-12 10:01:23 +00:00
github-actions[bot] 9823105cc6 @AustinSuun has signed the CLA in Wei-Shaw/sub2api#4092 2026-07-12 08:09:53 +00:00
github-actions[bot] 114ee3734b @xtyooo has signed the CLA in Wei-Shaw/sub2api#4085 2026-07-12 05:34:23 +00:00
github-actions[bot] 6ca1698caa @zuelu has signed the CLA in Wei-Shaw/sub2api#4082 2026-07-12 04:15:23 +00:00
github-actions[bot] c1453c4708 @JD13703202 has signed the CLA in Wei-Shaw/sub2api#4071 2026-07-11 19:48:19 +00:00
github-actions[bot] f8968058d9 @wkjw has signed the CLA in Wei-Shaw/sub2api#4068 2026-07-11 16:47:29 +00:00
github-actions[bot] 3488fdb043 @GitClound has signed the CLA in Wei-Shaw/sub2api#4065 2026-07-11 15:45:05 +00:00
github-actions[bot] 692ee595d7 @xiaopixiu2019 has signed the CLA in Wei-Shaw/sub2api#4045 2026-07-11 09:58:11 +00:00
github-actions[bot] 51092462b0 @iMouseWu has signed the CLA in Wei-Shaw/sub2api#4048 2026-07-11 09:20:43 +00:00
github-actions[bot] a1340f1de6 @NikoCat233 has signed the CLA in Wei-Shaw/sub2api#4043 2026-07-11 06:31:44 +00:00
github-actions[bot] 647c4d81bd @AixLau has signed the CLA in Wei-Shaw/sub2api#4040 2026-07-11 05:49:05 +00:00
github-actions[bot] b1748a6c96 @DylanChiang-Dev has signed the CLA in Wei-Shaw/sub2api#4032 2026-07-11 04:20:55 +00:00
github-actions[bot] c247317ff7 @Chena2003 has signed the CLA in Wei-Shaw/sub2api#4028 2026-07-11 04:00:43 +00:00
github-actions[bot] 3a53046d16 @laozuzhen has signed the CLA in Wei-Shaw/sub2api#3318 2026-07-10 23:52:29 +00:00
github-actions[bot] 9198becfb9 @Richard2091 has signed the CLA in Wei-Shaw/sub2api#4011 2026-07-10 18:23:31 +00:00
github-actions[bot] 32c0055ae7 @JDHK01 has signed the CLA in Wei-Shaw/sub2api#4004 2026-07-10 15:44:58 +00:00
github-actions[bot] c7b7e7e3a9 @cyeinfpro has signed the CLA in Wei-Shaw/sub2api#3998 2026-07-10 14:42:37 +00:00
github-actions[bot] 0d1d1c323b @tsw188 has signed the CLA in Wei-Shaw/sub2api#3996 2026-07-10 14:16:40 +00:00
github-actions[bot] c85fe89a59 @xlplbo has signed the CLA in Wei-Shaw/sub2api#3989 2026-07-10 12:32:02 +00:00
github-actions[bot] 698e0eac2e @pkeran has signed the CLA in Wei-Shaw/sub2api#3986 2026-07-10 12:31:09 +00:00
github-actions[bot] 744eafe9b7 @ncwn has signed the CLA in Wei-Shaw/sub2api#3975 2026-07-10 12:04:40 +00:00
github-actions[bot] 1986cb4fbc @chenty2333 has signed the CLA in Wei-Shaw/sub2api#3974 2026-07-10 09:28:42 +00:00
github-actions[bot] 8f563efa46 @yardbirds0 has signed the CLA in Wei-Shaw/sub2api#3971 2026-07-10 09:22:52 +00:00
github-actions[bot] 0b19d9464b @jinfeijie has signed the CLA in Wei-Shaw/sub2api#3969 2026-07-10 09:02:27 +00:00
github-actions[bot] 4dea17e61a @abwuge has signed the CLA in Wei-Shaw/sub2api#3959 2026-07-10 08:02:25 +00:00
github-actions[bot] 06c617f1d8 @lyon-le has signed the CLA in Wei-Shaw/sub2api#3953 2026-07-10 07:29:46 +00:00
github-actions[bot] 2c17d40bc8 @Tassoi has signed the CLA in Wei-Shaw/sub2api#3941 2026-07-10 07:07:34 +00:00
github-actions[bot] 76137087d7 @mattlung has signed the CLA in Wei-Shaw/sub2api#3929 2026-07-10 04:28:48 +00:00
github-actions[bot] 1c011a9149 @githubbzxs has signed the CLA in Wei-Shaw/sub2api#3909 2026-07-10 02:44:26 +00:00
github-actions[bot] de0673c11c @ShuminFu has signed the CLA in Wei-Shaw/sub2api#3883 2026-07-09 16:42:47 +00:00
github-actions[bot] daf443f0c2 @Birditch has signed the CLA in Wei-Shaw/sub2api#3869 2026-07-09 10:10:31 +00:00
github-actions[bot] 47b1626991 @superman2003 has signed the CLA in Wei-Shaw/sub2api#3833 2026-07-09 01:10:34 +00:00
github-actions[bot] 100e08ef41 @hongheshan-svg has signed the CLA in Wei-Shaw/sub2api#3838 2026-07-08 23:17:42 +00:00
github-actions[bot] 862b4dc600 @SmartAI has signed the CLA in Wei-Shaw/sub2api#3835 2026-07-08 17:52:59 +00:00
github-actions[bot] b3d33ad6a2 @MeowTechOpenSource has signed the CLA in Wei-Shaw/sub2api#3829 2026-07-08 12:23:19 +00:00
github-actions[bot] fc32a8b80c @stgmt has signed the CLA in Wei-Shaw/sub2api#3808 2026-07-07 14:55:20 +00:00
github-actions[bot] 0ccefc2b96 @creamtea47 has signed the CLA in Wei-Shaw/sub2api#3786 2026-07-07 08:52:15 +00:00
github-actions[bot] 1d12b38385 @fengshao1227 has signed the CLA in Wei-Shaw/sub2api#3778 2026-07-07 06:05:52 +00:00
github-actions[bot] 5556c5212e @Turtle-Li has signed the CLA in Wei-Shaw/sub2api#3768 2026-07-06 19:38:33 +00:00
github-actions[bot] f518b8a45d @qqqianye has signed the CLA in Wei-Shaw/sub2api#3767 2026-07-06 17:24:28 +00:00
github-actions[bot] c020021e09 @catoncat has signed the CLA in Wei-Shaw/sub2api#3758 2026-07-06 12:40:35 +00:00
github-actions[bot] d9ee0b4cfb @liangcaijv has signed the CLA in Wei-Shaw/sub2api#3650 2026-07-06 11:24:27 +00:00
github-actions[bot] 9aeb0ab93c @Yinr has signed the CLA in Wei-Shaw/sub2api#3734 2026-07-06 00:49:33 +00:00
github-actions[bot] 8520254517 @starmiaoa has signed the CLA in Wei-Shaw/sub2api#3729 2026-07-05 11:35:48 +00:00
github-actions[bot] 3eaf2265b5 @CHOS1N11111 has signed the CLA in Wei-Shaw/sub2api#3721 2026-07-05 06:05:44 +00:00
github-actions[bot] b513368394 @MoRanHuiShou-pug has signed the CLA in Wei-Shaw/sub2api#3714 2026-07-04 20:00:37 +00:00
github-actions[bot] c0005a6842 @tc-imba has signed the CLA in Wei-Shaw/sub2api#3695 2026-07-03 19:17:14 +00:00
github-actions[bot] d79c4f6ae5 @zhaoteng45 has signed the CLA in Wei-Shaw/sub2api#3694 2026-07-03 17:56:57 +00:00
github-actions[bot] 63445b7319 @AndersonBY has signed the CLA in Wei-Shaw/sub2api#3690 2026-07-03 15:39:50 +00:00
github-actions[bot] 5af613a0b0 @tallman2014 has signed the CLA in Wei-Shaw/sub2api#3671 2026-07-03 06:22:44 +00:00
github-actions[bot] 3ba2b5a35c @weiness has signed the CLA in Wei-Shaw/sub2api#3670 2026-07-03 05:52:37 +00:00
github-actions[bot] 7ff513a480 @less55093-collab has signed the CLA in Wei-Shaw/sub2api#3654 2026-07-02 23:58:41 +00:00
github-actions[bot] 1d06e3d39e @lovisnd has signed the CLA in Wei-Shaw/sub2api#3653 2026-07-02 15:48:49 +00:00
github-actions[bot] c75e63e7db @infinityf4p has signed the CLA in Wei-Shaw/sub2api#3638 2026-07-02 05:31:14 +00:00
github-actions[bot] facbe25a19 @seng1e has signed the CLA in Wei-Shaw/sub2api#3630 2026-07-02 03:11:19 +00:00
github-actions[bot] 159be5ba02 @phoenixikkifullstack has signed the CLA in Wei-Shaw/sub2api#3609 2026-07-01 10:18:47 +00:00
github-actions[bot] 369e7464d5 @linshuboy has signed the CLA in Wei-Shaw/sub2api#3594 2026-07-01 02:44:49 +00:00
github-actions[bot] df41df5773 @MxyEI has signed the CLA in Wei-Shaw/sub2api#3583 2026-06-30 16:08:55 +00:00
github-actions[bot] 579fd17fa4 @xueshiji has signed the CLA in Wei-Shaw/sub2api#3569 2026-06-30 06:20:33 +00:00
github-actions[bot] 0e8acec129 @z258406 has signed the CLA in Wei-Shaw/sub2api#3541 2026-06-29 11:20:58 +00:00
github-actions[bot] 17ee2af956 @nslogx has signed the CLA in Wei-Shaw/sub2api#3546 2026-06-29 01:40:38 +00:00
github-actions[bot] 9874a34835 @rick147 has signed the CLA in Wei-Shaw/sub2api#3538 2026-06-28 07:13:00 +00:00
github-actions[bot] 6c4bb17f0e @mxyhi has signed the CLA in Wei-Shaw/sub2api#3534 2026-06-28 03:28:19 +00:00
github-actions[bot] b1c51243b5 @smartcmd has signed the CLA in Wei-Shaw/sub2api#3532 2026-06-27 22:34:06 +00:00
github-actions[bot] 026e6a75d6 @c99180013-sys has signed the CLA in Wei-Shaw/sub2api#3530 2026-06-27 18:00:57 +00:00
github-actions[bot] 0ef68ce623 @jenfonro has signed the CLA in Wei-Shaw/sub2api#3502 2026-06-26 16:57:24 +00:00
github-actions[bot] e40d2bf292 @liuaho6-commits has signed the CLA in Wei-Shaw/sub2api#3498 2026-06-26 11:11:03 +00:00
github-actions[bot] f846d5081a @JRBaggins has signed the CLA in Wei-Shaw/sub2api#3497 2026-06-26 09:55:56 +00:00
github-actions[bot] 6bea07e205 @devnomad-byte has signed the CLA in Wei-Shaw/sub2api#3494 2026-06-26 07:59:36 +00:00
github-actions[bot] 681768c8ca @zeyugao has signed the CLA in Wei-Shaw/sub2api#3476 2026-06-25 13:26:33 +00:00
github-actions[bot] 5562cd5d38 @cnYui has signed the CLA in Wei-Shaw/sub2api#3453 2026-06-25 01:04:12 +00:00
github-actions[bot] 6de0d4561a @hsn8086 has signed the CLA in Wei-Shaw/sub2api#3442 2026-06-23 17:05:56 +00:00
github-actions[bot] ae812e348e @imfangwenjie has signed the CLA in Wei-Shaw/sub2api#3437 2026-06-23 11:47:44 +00:00
github-actions[bot] ea05e5bcb4 @syx0310 has signed the CLA in Wei-Shaw/sub2api#3421 2026-06-22 16:35:32 +00:00
github-actions[bot] 1479229098 @eatWhitePorridge has signed the CLA in Wei-Shaw/sub2api#3420 2026-06-22 15:28:59 +00:00
github-actions[bot] 540361a2b1 @ifccod has signed the CLA in Wei-Shaw/sub2api#3418 2026-06-22 13:42:44 +00:00
github-actions[bot] 40dad3fee9 @ShourGG has signed the CLA in Wei-Shaw/sub2api#3391 2026-06-21 10:28:42 +00:00
github-actions[bot] b098ce2d7f @404QAQ has signed the CLA in Wei-Shaw/sub2api#3381 2026-06-20 14:31:58 +00:00
github-actions[bot] 4909ece47f @cugxuan has signed the CLA in Wei-Shaw/sub2api#3371 2026-06-19 11:33:32 +00:00
github-actions[bot] 10d81cfd4d @skyswordw has signed the CLA in Wei-Shaw/sub2api#3369 2026-06-19 08:41:09 +00:00
github-actions[bot] aceb726e8b @kangjwme has signed the CLA in Wei-Shaw/sub2api#3363 2026-06-18 14:53:45 +00:00
github-actions[bot] 15e6e3a3ab @SavitarC has signed the CLA in Wei-Shaw/sub2api#3347 2026-06-18 06:37:40 +00:00
github-actions[bot] 2e6cb0f4db @Milesians has signed the CLA in Wei-Shaw/sub2api#3344 2026-06-18 04:36:20 +00:00
github-actions[bot] 6b1d0b6a0c @Zepp-Hanzj has signed the CLA in Wei-Shaw/sub2api#3334 2026-06-18 03:15:20 +00:00
github-actions[bot] ffab7234ce @FjlI5 has signed the CLA in Wei-Shaw/sub2api#3335 2026-06-17 18:08:37 +00:00
github-actions[bot] b0e55ba8a6 @wlds has signed the CLA in Wei-Shaw/sub2api#3330 2026-06-17 07:59:53 +00:00
github-actions[bot] 16d6a4bcf8 @xwil1 has signed the CLA in Wei-Shaw/sub2api#3324 2026-06-17 05:20:06 +00:00
github-actions[bot] d6c06877b7 @tairan has signed the CLA in Wei-Shaw/sub2api#3326 2026-06-17 05:03:17 +00:00
github-actions[bot] 947c105a78 @chaochaoweb3 has signed the CLA in Wei-Shaw/sub2api#3317 2026-06-17 00:29:09 +00:00
github-actions[bot] fb77ba854a @heathermhuang has signed the CLA in Wei-Shaw/sub2api#3310 2026-06-16 11:04:05 +00:00
github-actions[bot] f3d06658d4 @a0yark has signed the CLA in Wei-Shaw/sub2api#3308 2026-06-16 10:08:28 +00:00
github-actions[bot] 75d860b0e8 @bestony has signed the CLA in Wei-Shaw/sub2api#3306 2026-06-16 09:08:26 +00:00
github-actions[bot] cbdc1f24ef @LittleTurtle2333 has signed the CLA in Wei-Shaw/sub2api#3289 2026-06-15 05:25:12 +00:00
github-actions[bot] e0fa9b9896 @hhive has signed the CLA in Wei-Shaw/sub2api#3287 2026-06-15 04:41:55 +00:00
github-actions[bot] de34192de7 @cyx0215 has signed the CLA in Wei-Shaw/sub2api#3281 2026-06-14 17:24:16 +00:00
github-actions[bot] f53e256b3d @315944211 has signed the CLA in Wei-Shaw/sub2api#3278 2026-06-14 16:02:43 +00:00
github-actions[bot] 5c8acd21d2 @Lotfree618 has signed the CLA in Wei-Shaw/sub2api#3276 2026-06-14 14:21:52 +00:00
github-actions[bot] af835100f5 @PowerShell322 has signed the CLA in Wei-Shaw/sub2api#3271 2026-06-13 20:45:30 +00:00
github-actions[bot] a9b150ce9f @codeQuest-fly has signed the CLA in Wei-Shaw/sub2api#3267 2026-06-13 13:20:20 +00:00
github-actions[bot] 4761df089a @wzlinbin has signed the CLA in Wei-Shaw/sub2api#3264 2026-06-13 05:34:32 +00:00
github-actions[bot] 36aac41699 @dftian478 has signed the CLA in Wei-Shaw/sub2api#3237 2026-06-11 23:52:18 +00:00
github-actions[bot] 02cd332fac @hehe-wz has signed the CLA in Wei-Shaw/sub2api#3234 2026-06-11 20:06:39 +00:00
github-actions[bot] 7b07fde950 @humingfeng has signed the CLA in Wei-Shaw/sub2api#3200 2026-06-10 08:00:27 +00:00
github-actions[bot] bf8fe3c0a0 @kagurazaka-ayano has signed the CLA in Wei-Shaw/sub2api#3192 2026-06-10 04:34:01 +00:00
github-actions[bot] 27cdb486a4 @xiaoyuandev has signed the CLA in Wei-Shaw/sub2api#3185 2026-06-09 16:33:57 +00:00
github-actions[bot] fe77baab5e @hao-ai-dev has signed the CLA in Wei-Shaw/sub2api#3183 2026-06-09 16:13:17 +00:00
github-actions[bot] 4b5b50ecf8 @MaiDong688 has signed the CLA in Wei-Shaw/sub2api#3180 2026-06-09 14:57:48 +00:00
github-actions[bot] 9dced898af @Arkptz has signed the CLA in Wei-Shaw/sub2api#3169 2026-06-09 11:23:10 +00:00
github-actions[bot] cb4f41d902 @jaxxjj has signed the CLA in Wei-Shaw/sub2api#3168 2026-06-09 10:30:49 +00:00
github-actions[bot] c9ab9fb215 @lanshi17 has signed the CLA in Wei-Shaw/sub2api#3163 2026-06-09 08:34:47 +00:00
github-actions[bot] 1f091ecb08 @WesleyZiwen has signed the CLA in Wei-Shaw/sub2api#3160 2026-06-09 08:14:18 +00:00
github-actions[bot] 362bd80cc7 @anzhiyu-c has signed the CLA in Wei-Shaw/sub2api#3156 2026-06-09 06:48:13 +00:00
github-actions[bot] 162448ced9 @linjianlin has signed the CLA in Wei-Shaw/sub2api#3151 2026-06-09 04:31:17 +00:00
github-actions[bot] 8f68bed1fe @NOWYQS has signed the CLA in Wei-Shaw/sub2api#3149 2026-06-09 03:16:31 +00:00
github-actions[bot] 43a3138f91 @cyf1124906008-ai has signed the CLA in Wei-Shaw/sub2api#3145 2026-06-08 18:49:45 +00:00
github-actions[bot] 505bcdf190 @CyrusAuyeung has signed the CLA in Wei-Shaw/sub2api#3142 2026-06-08 16:39:54 +00:00
github-actions[bot] 22720ed72f @zhengyuliu047-rgb has signed the CLA in Wei-Shaw/sub2api#3139 2026-06-08 14:26:20 +00:00
github-actions[bot] c8a5544f2d @jianjianai has signed the CLA in Wei-Shaw/sub2api#3132 2026-06-08 11:00:06 +00:00
github-actions[bot] 83312c44a3 @liu-qingyuan has signed the CLA in Wei-Shaw/sub2api#3119 2026-06-08 05:29:58 +00:00
github-actions[bot] 5387050be4 @NeckBozia has signed the CLA in Wei-Shaw/sub2api#3097 2026-06-07 07:26:31 +00:00
github-actions[bot] 40f742b761 @deltrivx has signed the CLA in Wei-Shaw/sub2api#3096 2026-06-07 06:47:49 +00:00
github-actions[bot] 1968cf046d @okbexx has signed the CLA in Wei-Shaw/sub2api#3094 2026-06-07 06:21:21 +00:00
github-actions[bot] f4681e5c5a @xzz0081 has signed the CLA in Wei-Shaw/sub2api#3083 2026-06-06 19:00:36 +00:00
github-actions[bot] 2072cad69c @twodogegg has signed the CLA in Wei-Shaw/sub2api#3077 2026-06-06 13:14:16 +00:00
github-actions[bot] a98475ec56 @wsxfs has signed the CLA in Wei-Shaw/sub2api#3069 2026-06-06 05:55:00 +00:00
github-actions[bot] b464ee2340 @Eyre921 has signed the CLA in Wei-Shaw/sub2api#3065 2026-06-05 17:22:12 +00:00
github-actions[bot] c897c4e768 @CoolCoolTomato has signed the CLA in Wei-Shaw/sub2api#3056 2026-06-05 16:40:56 +00:00
github-actions[bot] 728c5b8bda @fchange has signed the CLA in Wei-Shaw/sub2api#3045 2026-06-05 08:10:02 +00:00
github-actions[bot] 2cc76cf09c @whatIsNextToTheMoon has signed the CLA in Wei-Shaw/sub2api#3036 2026-06-04 11:22:52 +00:00
github-actions[bot] 09741119ed @Jraaay has signed the CLA in Wei-Shaw/sub2api#3020 2026-06-04 01:37:12 +00:00
github-actions[bot] ef2bbc8a70 @Zbl1007 has signed the CLA in Wei-Shaw/sub2api#3018 2026-06-03 17:14:37 +00:00
github-actions[bot] a87bf3ead1 @Fool0ntheHill has signed the CLA in Wei-Shaw/sub2api#3016 2026-06-03 13:27:55 +00:00
github-actions[bot] e01e93bc00 @liulinhuai has signed the CLA in Wei-Shaw/sub2api#3009 2026-06-03 09:57:03 +00:00
github-actions[bot] 65167b852b @Trirrin has signed the CLA in Wei-Shaw/sub2api#3007 2026-06-03 08:59:14 +00:00
github-actions[bot] b07c88b638 @thedavidweng has signed the CLA in Wei-Shaw/sub2api#3003 2026-06-03 07:52:04 +00:00
github-actions[bot] e22b88d61d @zxczrx123 has signed the CLA in Wei-Shaw/sub2api#2984 2026-06-02 18:22:12 +00:00
github-actions[bot] df2330dd85 @mshzy has signed the CLA in Wei-Shaw/sub2api#2981 2026-06-02 13:24:07 +00:00
github-actions[bot] 0c76384e48 @bud-primordium has signed the CLA in Wei-Shaw/sub2api#2976 2026-06-02 08:17:54 +00:00
github-actions[bot] 33f261401b @northya has signed the CLA in Wei-Shaw/sub2api#2972 2026-06-02 06:08:56 +00:00
github-actions[bot] 99bd3355a0 @ghostg00 has signed the CLA in Wei-Shaw/sub2api#2970 2026-06-02 04:50:09 +00:00
github-actions[bot] e05ee927c4 @CheriWen has signed the CLA in Wei-Shaw/sub2api#2960 2026-06-01 17:01:01 +00:00
github-actions[bot] 264fb454d3 @paraliine has signed the CLA in Wei-Shaw/sub2api#2955 2026-06-01 11:50:53 +00:00
github-actions[bot] 6688431913 @EricLi404 has signed the CLA in Wei-Shaw/sub2api#2951 2026-06-01 10:34:42 +00:00
github-actions[bot] 7163c5c0cc @black-06 has signed the CLA in Wei-Shaw/sub2api#2949 2026-06-01 08:55:34 +00:00
github-actions[bot] 49837707c9 @Luminet2023 has signed the CLA in Wei-Shaw/sub2api#2943 2026-06-01 05:26:09 +00:00
github-actions[bot] 2622e0e3ff @Kanshan03 has signed the CLA in Wei-Shaw/sub2api#2937 2026-06-01 03:26:07 +00:00
github-actions[bot] 3d9d225350 @xlx0852 has signed the CLA in Wei-Shaw/sub2api#2936 2026-06-01 02:44:48 +00:00
github-actions[bot] 292f5b4cf4 @fatelei has signed the CLA in Wei-Shaw/sub2api#2932 2026-06-01 00:44:53 +00:00
github-actions[bot] 793d19bc99 @s258852s has signed the CLA in Wei-Shaw/sub2api#2915 2026-05-31 22:12:43 +00:00
github-actions[bot] bcd8e0a29c @InitialMoon has signed the CLA in Wei-Shaw/sub2api#2729 2026-05-31 19:32:03 +00:00
github-actions[bot] 7a69e81fc0 @moonagic has signed the CLA in Wei-Shaw/sub2api#2927 2026-05-31 14:00:46 +00:00
github-actions[bot] 4fdd0e5d7d @hanyunsushi has signed the CLA in Wei-Shaw/sub2api#2916 2026-05-31 08:45:44 +00:00
github-actions[bot] fb59039807 @visa2 has signed the CLA in Wei-Shaw/sub2api#2926 2026-05-31 08:24:07 +00:00
github-actions[bot] 93058e2441 @bwliangc has signed the CLA in Wei-Shaw/sub2api#2924 2026-05-31 08:20:55 +00:00
github-actions[bot] f99458237d @gsh20040816 has signed the CLA in Wei-Shaw/sub2api#2922 2026-05-31 07:11:23 +00:00
github-actions[bot] 33a41c0106 @hyrhyrh has signed the CLA in Wei-Shaw/sub2api#2899 2026-05-30 02:40:23 +00:00
github-actions[bot] a24b994765 @ZeroClover has signed the CLA in Wei-Shaw/sub2api#2893 2026-05-29 11:52:09 +00:00
github-actions[bot] f3f677dd5f @xiaoyiluck666 has signed the CLA in Wei-Shaw/sub2api#2881 2026-05-29 10:35:35 +00:00
github-actions[bot] a2b1338f29 @mordekasiser has signed the CLA in Wei-Shaw/sub2api#2886 2026-05-29 07:46:31 +00:00
github-actions[bot] b238db17c0 @LichKing-2234 has signed the CLA in Wei-Shaw/sub2api#2883 2026-05-29 06:29:56 +00:00
github-actions[bot] ecc62d93e9 @jerryan999 has signed the CLA in Wei-Shaw/sub2api#2880 2026-05-29 05:51:33 +00:00
github-actions[bot] 075681c73e @imdbcooper has signed the CLA in Wei-Shaw/sub2api#2867 2026-05-28 19:18:58 +00:00
github-actions[bot] 570cc889fb @fofoj has signed the CLA in Wei-Shaw/sub2api#2860 2026-05-28 12:11:23 +00:00
github-actions[bot] 49375f6791 @PA733 has signed the CLA in Wei-Shaw/sub2api#2861 2026-05-28 12:08:49 +00:00
github-actions[bot] d0107f0c65 @wey-gu has signed the CLA in Wei-Shaw/sub2api#2858 2026-05-28 11:51:59 +00:00
github-actions[bot] 1a53d1d71e @6rok has signed the CLA in Wei-Shaw/sub2api#2846 2026-05-28 05:38:36 +00:00
github-actions[bot] afe1bd27d2 @GodD6366 has signed the CLA in Wei-Shaw/sub2api#2848 2026-05-28 05:37:57 +00:00
github-actions[bot] f9cfe64f7c @Tsdsj has signed the CLA in Wei-Shaw/sub2api#2847 2026-05-28 04:45:22 +00:00
github-actions[bot] 46e575ede7 @EighteenWu has signed the CLA in Wei-Shaw/sub2api#2844 2026-05-28 04:08:39 +00:00
github-actions[bot] 56ace4dd7a @JeanphiloGong has signed the CLA in Wei-Shaw/sub2api#2845 2026-05-28 03:55:07 +00:00
github-actions[bot] 2ee9267c83 @finday3 has signed the CLA in Wei-Shaw/sub2api#2837 2026-05-28 02:20:07 +00:00
github-actions[bot] a0b136af66 @JIA-ss has signed the CLA in Wei-Shaw/sub2api#2835 2026-05-27 16:43:58 +00:00
github-actions[bot] b12ff0b5f4 @stabey has signed the CLA in Wei-Shaw/sub2api#2830 2026-05-27 14:56:27 +00:00
github-actions[bot] c61269ae9d @wx1a has signed the CLA in Wei-Shaw/sub2api#2829 2026-05-27 14:39:05 +00:00
github-actions[bot] 09e2b18584 @ttt132 has signed the CLA in Wei-Shaw/sub2api#2827 2026-05-27 13:26:40 +00:00
github-actions[bot] 8b5791a28b @xcrhzbk has signed the CLA in Wei-Shaw/sub2api#2818 2026-05-27 08:06:49 +00:00
github-actions[bot] e660ed5207 @Pluviobyte has signed the CLA in Wei-Shaw/sub2api#2816 2026-05-27 07:12:35 +00:00
github-actions[bot] 0ae3d574b6 @hahahng has signed the CLA in Wei-Shaw/sub2api#2812 2026-05-27 05:27:25 +00:00
github-actions[bot] bce7c5e228 @neko629 has signed the CLA in Wei-Shaw/sub2api#2811 2026-05-27 05:15:26 +00:00
github-actions[bot] 13c9f069c2 @caoZhengZ has signed the CLA in Wei-Shaw/sub2api#2792 2026-05-26 10:20:46 +00:00
github-actions[bot] 2d4e46f9e5 @gitstq has signed the CLA in Wei-Shaw/sub2api#2788 2026-05-26 09:22:12 +00:00
github-actions[bot] fedbeef00d @zu1k has signed the CLA in Wei-Shaw/sub2api#2787 2026-05-26 09:00:21 +00:00
github-actions[bot] 38b71d0505 @Wei-Shaw has signed the CLA in Wei-Shaw/sub2api#2776 2026-05-26 06:11:41 +00:00
github-actions[bot] 3228fb7464 @wangle201210 has signed the CLA in Wei-Shaw/sub2api#2771 2026-05-26 04:47:52 +00:00
github-actions[bot] 765bb44e07 @ANDTea2023 has signed the CLA in Wei-Shaw/sub2api#2760 2026-05-25 12:25:22 +00:00
github-actions[bot] 38b664d93a @siyuan-123 has signed the CLA in Wei-Shaw/sub2api#2747 2026-05-25 02:51:06 +00:00
github-actions[bot] e07b7fd9d5 @Hylouis233 has signed the CLA in Wei-Shaw/sub2api#2736 2026-05-24 13:55:21 +00:00
github-actions[bot] 8174f739c8 @771373073 has signed the CLA in Wei-Shaw/sub2api#2735 2026-05-24 04:23:04 +00:00
github-actions[bot] cd2f88a7f9 @wminjay has signed the CLA in Wei-Shaw/sub2api#2732 2026-05-24 03:04:26 +00:00
github-actions[bot] 7feb8609bb @goodneamtakenbydogs has signed the CLA in Wei-Shaw/sub2api#2728 2026-05-23 17:39:45 +00:00
github-actions[bot] dcd25fdacf @zc-libre has signed the CLA in Wei-Shaw/sub2api#2725 2026-05-23 16:42:10 +00:00
github-actions[bot] dfcc864acb @Adrian612z has signed the CLA in Wei-Shaw/sub2api#2724 2026-05-23 14:52:19 +00:00
github-actions[bot] 380f593331 @CyberRookie-X has signed the CLA in Wei-Shaw/sub2api#2709 2026-05-23 06:50:47 +00:00
github-actions[bot] d72e7d4d2b @rwang23 has signed the CLA in Wei-Shaw/sub2api#2703 2026-05-23 02:46:20 +00:00
github-actions[bot] 3f131d8526 @September999999999 has signed the CLA in Wei-Shaw/sub2api#2697 2026-05-22 15:32:08 +00:00
github-actions[bot] 28680ca736 @Xch13 has signed the CLA in Wei-Shaw/sub2api#2682 2026-05-22 03:48:39 +00:00
github-actions[bot] 00710d0224 @xykong has signed the CLA in Wei-Shaw/sub2api#2669 2026-05-21 09:01:16 +00:00
github-actions[bot] dff16def63 @ye4241 has signed the CLA in Wei-Shaw/sub2api#2655 2026-05-21 04:03:41 +00:00
github-actions[bot] 0183f5b53b @dudukee has signed the CLA in Wei-Shaw/sub2api#2660 2026-05-21 03:33:34 +00:00
github-actions[bot] 4542029297 @luojiyin1987 has signed the CLA in Wei-Shaw/sub2api#2628 2026-05-20 09:35:45 +00:00
github-actions[bot] c523681e27 @hongdongjian has signed the CLA in Wei-Shaw/sub2api#2622 2026-05-20 08:49:47 +00:00
github-actions[bot] b03eb8a198 @yibaiba has signed the CLA in Wei-Shaw/sub2api#2616 2026-05-20 08:19:21 +00:00
github-actions[bot] 280bc493dd @warkcod has signed the CLA in Wei-Shaw/sub2api#2603 2026-05-20 06:02:36 +00:00
github-actions[bot] 9e51cc14ad @feitianbubu has signed the CLA in Wei-Shaw/sub2api#2148 2026-05-20 03:54:15 +00:00
github-actions[bot] 923f9ccb76 @LiuZhouZhouJieLun has signed the CLA in Wei-Shaw/sub2api#2574 2026-05-19 09:09:24 +00:00
github-actions[bot] 51e2770bbe @hoobnn has signed the CLA in Wei-Shaw/sub2api#2393 2026-05-19 04:44:00 +00:00
github-actions[bot] e324a45a35 @L494264Tt has signed the CLA in Wei-Shaw/sub2api#2543 2026-05-18 03:22:57 +00:00
github-actions[bot] b29c3c31cb @DanisJiang has signed the CLA in Wei-Shaw/sub2api#2541 2026-05-17 20:39:44 +00:00
github-actions[bot] 7297065f49 @Arron196 has signed the CLA in Wei-Shaw/sub2api#2537 2026-05-17 13:45:30 +00:00
github-actions[bot] 836f2bee33 @gebdalaoli-arch has signed the CLA in Wei-Shaw/sub2api#2522 2026-05-16 19:45:15 +00:00
github-actions[bot] 87f2ac4748 @yangzc2004-bit has signed the CLA in Wei-Shaw/sub2api#2502 2026-05-16 09:34:43 +00:00
github-actions[bot] 3bfdabc264 @honue has signed the CLA in Wei-Shaw/sub2api#2508 2026-05-16 03:22:16 +00:00
github-actions[bot] eb6f7775cd @yetone has signed the CLA in Wei-Shaw/sub2api#2504 2026-05-15 17:03:46 +00:00
github-actions[bot] 04ce354fcd @Agoniedi has signed the CLA in Wei-Shaw/sub2api#2501 2026-05-15 16:10:02 +00:00
github-actions[bot] c34cb6c653 @Simba98 has signed the CLA in Wei-Shaw/sub2api#2497 2026-05-15 13:52:53 +00:00
github-actions[bot] c05637d028 @LucasInsight has signed the CLA in Wei-Shaw/sub2api#2496 2026-05-15 10:58:12 +00:00
github-actions[bot] 2da85189ea @cyhhao has signed the CLA in Wei-Shaw/sub2api#2494 2026-05-15 08:57:14 +00:00
github-actions[bot] c134d7280c @is7Qin has signed the CLA in Wei-Shaw/sub2api#2473 2026-05-15 05:30:31 +00:00
github-actions[bot] 001300e88a @weak-fox has signed the CLA in Wei-Shaw/sub2api#2481 2026-05-15 02:57:20 +00:00
github-actions[bot] 36700dde86 @nanzemxx has signed the CLA in Wei-Shaw/sub2api#2463 2026-05-14 12:42:22 +00:00
github-actions[bot] bcb43675d1 @felix-huzongkai has signed the CLA in Wei-Shaw/sub2api#2460 2026-05-14 10:53:20 +00:00
github-actions[bot] d6dcc894fe @Evsdrg has signed the CLA in Wei-Shaw/sub2api#2455 2026-05-14 08:08:55 +00:00
github-actions[bot] 0f85a8d08e @astro-ge has signed the CLA in Wei-Shaw/sub2api#2444 2026-05-14 01:11:33 +00:00
github-actions[bot] 085ebaefa7 @sunnylqm has signed the CLA in Wei-Shaw/sub2api#2434 2026-05-13 12:01:39 +00:00
github-actions[bot] 056ee573c3 @tititico has signed the CLA in Wei-Shaw/sub2api#2421 2026-05-13 02:07:21 +00:00
github-actions[bot] d03418ef19 @leozejia has signed the CLA in Wei-Shaw/sub2api#2402 2026-05-12 08:19:20 +00:00
github-actions[bot] 6279aeb40d @imlewc has signed the CLA in Wei-Shaw/sub2api#2395 2026-05-12 06:36:49 +00:00
github-actions[bot] 4842b7f8a6 @1orz has signed the CLA in Wei-Shaw/sub2api#2387 2026-05-12 05:38:52 +00:00
github-actions[bot] 3752b3bcfb @spongehah has signed the CLA in Wei-Shaw/sub2api#2390 2026-05-12 04:15:56 +00:00
github-actions[bot] 87fbec2e5f @hedeqiang has signed the CLA in Wei-Shaw/sub2api#2335 2026-05-12 01:34:15 +00:00
github-actions[bot] b4ec6951a1 @Euraxluo has signed the CLA in Wei-Shaw/sub2api#2361 2026-05-11 14:37:38 +00:00
github-actions[bot] 60dbeb5f14 @luka7620 has signed the CLA in Wei-Shaw/sub2api#2371 2026-05-11 13:40:57 +00:00
github-actions[bot] ea0d57057d @GitBlueone has signed the CLA in Wei-Shaw/sub2api#2368 2026-05-11 10:06:01 +00:00
github-actions[bot] 675d93b489 @XiaoYu994 has signed the CLA in Wei-Shaw/sub2api#2353 2026-05-11 08:25:59 +00:00
github-actions[bot] 6df8b46386 @jack-atlas has signed the CLA in Wei-Shaw/sub2api#2356 2026-05-11 04:04:36 +00:00
github-actions[bot] 1e8db81c5b @iFwu has signed the CLA in Wei-Shaw/sub2api#2340 2026-05-10 14:16:56 +00:00
github-actions[bot] d793e0ffb2 @qqkzlm has signed the CLA in Wei-Shaw/sub2api#2333 2026-05-10 07:02:43 +00:00
github-actions[bot] d2f898bd04 @RYMH has signed the CLA in Wei-Shaw/sub2api#2323 2026-05-09 15:15:39 +00:00
github-actions[bot] 3f686aa603 @MiaoZang has signed the CLA in Wei-Shaw/sub2api#2303 2026-05-09 15:06:50 +00:00
github-actions[bot] 9b9dbc11c2 @dexcoder6 has signed the CLA in Wei-Shaw/sub2api#2314 2026-05-09 05:52:47 +00:00
github-actions[bot] 57ac2247e3 @paylm has signed the CLA in Wei-Shaw/sub2api#2219 2026-05-09 02:56:47 +00:00
github-actions[bot] ae509b82eb @jiwangyihao has signed the CLA in Wei-Shaw/sub2api#2301 2026-05-08 18:48:05 +00:00
github-actions[bot] aa35c0a249 @ryneivy has signed the CLA in Wei-Shaw/sub2api#2300 2026-05-08 16:45:36 +00:00
github-actions[bot] 38e7932ad3 @Wars has signed the CLA in Wei-Shaw/sub2api#2299 2026-05-08 16:24:44 +00:00
github-actions[bot] e68853fd86 @ZeroDeng01 has signed the CLA in Wei-Shaw/sub2api#2282 2026-05-08 06:18:24 +00:00
github-actions[bot] 41835cf56f @zjarlin has signed the CLA in Wei-Shaw/sub2api#2244 2026-05-08 04:04:42 +00:00
github-actions[bot] 5f0f9457e4 @handsomjack0 has signed the CLA in Wei-Shaw/sub2api#2273 2026-05-08 01:22:19 +00:00
github-actions[bot] b3fac6be91 @Brisbanehuang has signed the CLA in Wei-Shaw/sub2api#2266 2026-05-07 15:25:39 +00:00
github-actions[bot] 901eed939c @zhoupb01 has signed the CLA in Wei-Shaw/sub2api#2263 2026-05-07 14:28:15 +00:00
github-actions[bot] 2eee25f336 @dahetaoa has signed the CLA in Wei-Shaw/sub2api#2257 2026-05-07 11:31:32 +00:00
github-actions[bot] 5d005dbf24 @DASungta has signed the CLA in Wei-Shaw/sub2api#2255 2026-05-07 10:34:17 +00:00
github-actions[bot] 4d8ae5c196 @anzhen-tech has signed the CLA in Wei-Shaw/sub2api#2247 2026-05-07 07:17:33 +00:00
github-actions[bot] f793b59f6f @billzhong has signed the CLA in Wei-Shaw/sub2api#2234 2026-05-06 18:57:53 +00:00
github-actions[bot] 650f40c220 @Jlypx has signed the CLA in Wei-Shaw/sub2api#2233 2026-05-06 16:23:28 +00:00
github-actions[bot] bc264d0eea @lantary-w has signed the CLA in Wei-Shaw/sub2api#2218 2026-05-06 07:17:29 +00:00
github-actions[bot] 021bf583e8 @SFKgroup has signed the CLA in Wei-Shaw/sub2api#2210 2026-05-05 15:31:34 +00:00
github-actions[bot] 75de0de3ee @Clarence12138 has signed the CLA in Wei-Shaw/sub2api#2201 2026-05-05 10:03:20 +00:00
github-actions[bot] 08194f977e @Michael-Jetson has signed the CLA in Wei-Shaw/sub2api#2202 2026-05-05 09:51:18 +00:00
github-actions[bot] 8db3f8fe7f @learnerLj has signed the CLA in Wei-Shaw/sub2api#2197 2026-05-05 07:16:17 +00:00
github-actions[bot] 1d508aad8d @2ue has signed the CLA in Wei-Shaw/sub2api#2191 2026-05-05 02:35:24 +00:00
github-actions[bot] 6bd7798370 @cuandada has signed the CLA in Wei-Shaw/sub2api#2190 2026-05-04 18:20:56 +00:00
github-actions[bot] 52b7808bf0 @Su-cyber-art has signed the CLA in Wei-Shaw/sub2api#2183 2026-05-04 07:51:17 +00:00
github-actions[bot] 53b6a90cb9 @lyen1688 has signed the CLA in Wei-Shaw/sub2api#2169 2026-05-03 07:54:15 +00:00
github-actions[bot] 56a0df261e @Go1c has signed the CLA in Wei-Shaw/sub2api#2158 2026-05-02 17:16:41 +00:00
github-actions[bot] 03f57160d7 @zhangdeyu has signed the CLA in Wei-Shaw/sub2api#2165 2026-05-02 15:58:46 +00:00
github-actions[bot] fa147f0c2c @dmnbme has signed the CLA in Wei-Shaw/sub2api#2163 2026-05-02 11:58:50 +00:00
github-actions[bot] a9a568f5d8 @GhostFlying has signed the CLA in Wei-Shaw/sub2api#2137 2026-04-30 08:54:33 +00:00
github-actions[bot] 2fab47d58b @nianzs has signed the CLA in Wei-Shaw/sub2api#2131 2026-04-30 06:11:17 +00:00
github-actions[bot] 6b7994f091 @MrChen-Fly has signed the CLA in Wei-Shaw/sub2api#2101 2026-04-29 09:57:42 +00:00
github-actions[bot] 2ceb205ecc @wangshili123 has signed the CLA in Wei-Shaw/sub2api#2081 2026-04-29 02:48:49 +00:00
github-actions[bot] 3acaa5143f @Truthss has signed the CLA in Wei-Shaw/sub2api#2073 2026-04-28 19:27:34 +00:00
github-actions[bot] 63c3317028 @Ogannesson has signed the CLA in Wei-Shaw/sub2api#2068 2026-04-28 13:00:38 +00:00
github-actions[bot] a45ebe558d @kongsiyu has signed the CLA in Wei-Shaw/sub2api#2062 2026-04-28 10:31:36 +00:00
github-actions[bot] 97226a7340 @ivanvolt-labs has signed the CLA in Wei-Shaw/sub2api#2058 2026-04-28 08:37:29 +00:00
github-actions[bot] 199ce712ba @DaydreamCoding has signed the CLA in Wei-Shaw/sub2api#2051 2026-04-28 03:16:44 +00:00
github-actions[bot] 5eefc7df53 @zvensmoluya has signed the CLA in Wei-Shaw/sub2api#2050 2026-04-28 03:12:36 +00:00
github-actions[bot] 5c3c64dda9 @ma0608 has signed the CLA in Wei-Shaw/sub2api#2034 2026-04-28 01:29:24 +00:00
github-actions[bot] 7af0e34e34 @VitalyAnkh has signed the CLA in Wei-Shaw/sub2api#2044 2026-04-28 01:03:44 +00:00
github-actions[bot] ec5e109c9f @supperzl has signed the CLA in Wei-Shaw/sub2api#2037 2026-04-27 11:59:46 +00:00
github-actions[bot] 98522ac8da @hansnow has signed the CLA in Wei-Shaw/sub2api#2027 2026-04-27 09:12:21 +00:00
github-actions[bot] b46d7aee6a @PMExtra has signed the CLA in Wei-Shaw/sub2api#2007 2026-04-26 18:20:43 +00:00
github-actions[bot] 18da4111d1 @Zqysl has signed the CLA in Wei-Shaw/sub2api#1997 2026-04-26 12:55:20 +00:00
github-actions[bot] c479e9ada6 @Cloud370 has signed the CLA in Wei-Shaw/sub2api#1996 2026-04-26 12:24:24 +00:00
github-actions[bot] bbef5fd6dd @AsaZhou923 has signed the CLA in Wei-Shaw/sub2api#1992 2026-04-26 11:01:01 +00:00
github-actions[bot] 0e9b31b746 @Glorhop has signed the CLA in Wei-Shaw/sub2api#1012 2026-04-26 10:23:45 +00:00
github-actions[bot] a8b2227814 @haha1903 has signed the CLA in Wei-Shaw/sub2api#1990 2026-04-26 06:50:32 +00:00
github-actions[bot] d16653458f @Piasy has signed the CLA in Wei-Shaw/sub2api#1669 2026-04-26 01:38:25 +00:00
github-actions[bot] 47e6004dad @sholiverlee has signed the CLA in Wei-Shaw/sub2api#1977 2026-04-26 01:32:49 +00:00
github-actions[bot] 805d63831f @newbeeeeeeee-cpu has signed the CLA in Wei-Shaw/sub2api#1976 2026-04-25 22:42:54 +00:00
github-actions[bot] 5caf15f81b @Nobody-Zhang has signed the CLA in Wei-Shaw/sub2api#1973 2026-04-25 18:35:53 +00:00
github-actions[bot] a3cd95c2c1 @deqiying has signed the CLA in Wei-Shaw/sub2api#1970 2026-04-25 17:21:57 +00:00
github-actions[bot] 15b066aacd @mark-ly-wang has signed the CLA in Wei-Shaw/sub2api#1953 2026-04-25 14:30:20 +00:00
github-actions[bot] edf254d51b @ccoinh-oss has signed the CLA in Wei-Shaw/sub2api#1958 2026-04-25 12:24:31 +00:00
github-actions[bot] 039141a171 @clansty has signed the CLA in Wei-Shaw/sub2api#1947 2026-04-25 09:44:59 +00:00
github-actions[bot] 8b5e2489cd @hungryboy1025 has signed the CLA in Wei-Shaw/sub2api#1948 2026-04-25 09:28:39 +00:00
github-actions[bot] 0ecc2396d9 @rawlencecn has signed the CLA in Wei-Shaw/sub2api#1944 2026-04-25 07:44:06 +00:00
github-actions[bot] 4314e7a4ed @AyeSt0 has signed the CLA in Wei-Shaw/sub2api#1943 2026-04-25 07:18:17 +00:00
github-actions[bot] 382fce1fd5 @4fuu has signed the CLA in Wei-Shaw/sub2api#1940 2026-04-25 05:28:45 +00:00
github-actions[bot] 7f48184837 @vansour has signed the CLA in Wei-Shaw/sub2api#1935 2026-04-25 03:54:58 +00:00
github-actions[bot] c18ad66fcf @dofastted has signed the CLA in Wei-Shaw/sub2api#1896 2026-04-25 01:27:45 +00:00
github-actions[bot] 2a4e0303dd @Wuxie233 has signed the CLA in Wei-Shaw/sub2api#1920 2026-04-24 17:26:35 +00:00
github-actions[bot] 85ffc1a8a1 @lcy0828 has signed the CLA in Wei-Shaw/sub2api#1917 2026-04-24 17:21:02 +00:00
github-actions[bot] 2871d28fce @lfshao has signed the CLA in Wei-Shaw/sub2api#1907 2026-04-24 15:24:05 +00:00
github-actions[bot] 9a864814e3 @keh4l has signed the CLA in Wei-Shaw/sub2api#1914 2026-04-24 15:17:17 +00:00
github-actions[bot] 7e9226cd52 @brushax has signed the CLA in Wei-Shaw/sub2api#1912 2026-04-24 14:36:56 +00:00
github-actions[bot] 092b53f10e @slovx2 has signed the CLA in Wei-Shaw/sub2api#1910 2026-04-24 11:39:00 +00:00
github-actions[bot] b04091df05 @vvnocode has signed the CLA in Wei-Shaw/sub2api#1909 2026-04-24 11:12:26 +00:00
github-actions[bot] f8fc9896e5 @hesklso2 has signed the CLA in Wei-Shaw/sub2api#1892 2026-04-24 10:04:45 +00:00
github-actions[bot] 9402960344 @obiteherec has signed the CLA in Wei-Shaw/sub2api#1897 2026-04-24 08:52:41 +00:00
github-actions[bot] 670153d60a @whyuds has signed the CLA in Wei-Shaw/sub2api#1889 2026-04-24 07:12:15 +00:00
github-actions[bot] 68a3ab08ff @atoz03 has signed the CLA in Wei-Shaw/sub2api#1735 2026-04-24 05:37:26 +00:00
github-actions[bot] d62e0d6db9 @gaoren002 has signed the CLA in Wei-Shaw/sub2api#1853 2026-04-23 15:56:21 +00:00
github-actions[bot] e9184d035d @muqiao215 has signed the CLA in Wei-Shaw/sub2api#1826 2026-04-23 11:20:59 +00:00
github-actions[bot] aaffb70389 @KnowSky404 has signed the CLA in Wei-Shaw/sub2api#1772 2026-04-23 10:33:42 +00:00
github-actions[bot] 65e19b7d5a @evlic has signed the CLA in Wei-Shaw/sub2api#1844 2026-04-23 10:00:09 +00:00
github-actions[bot] 1cecb42b8f @wucm667 has signed the CLA in Wei-Shaw/sub2api#1836 2026-04-23 06:58:50 +00:00
github-actions[bot] f362c68ca0 @ZHOUKAILIAN has signed the CLA in Wei-Shaw/sub2api#1829 2026-04-23 04:27:36 +00:00
github-actions[bot] 8ef6d0a506 @wx-11 has signed the CLA in Wei-Shaw/sub2api#1828 2026-04-23 04:20:32 +00:00
github-actions[bot] 2664a7e447 @zy6p has signed the CLA in Wei-Shaw/sub2api#1825 2026-04-23 03:50:08 +00:00
github-actions[bot] e2837d0ead @jundaix has signed the CLA in Wei-Shaw/sub2api#1821 2026-04-23 03:16:43 +00:00
github-actions[bot] e6c6afdd42 @meteor041 has signed the CLA in Wei-Shaw/sub2api#1813 2026-04-22 16:40:51 +00:00
github-actions[bot] d685f7e35c @james-6-23 has signed the CLA in Wei-Shaw/sub2api#1806 2026-04-22 13:46:40 +00:00
github-actions[bot] 23fc962a26 @Yang-505 has signed the CLA in Wei-Shaw/sub2api#1801 2026-04-22 10:36:10 +00:00
github-actions[bot] 4d083c6133 @Wei-Shaw has signed the CLA in Wei-Shaw/sub2api#1799 2026-04-22 10:15:44 +00:00
github-actions[bot] cada115f9d @specialpointcentral has signed the CLA in Wei-Shaw/sub2api#1800 2026-04-22 09:08:34 +00:00
github-actions[bot] 5019793247 @specialpointcentral has signed the CLA in Wei-Shaw/sub2api#1779 2026-04-22 05:40:46 +00:00
github-actions[bot] a66817d078 @0x90000 has signed the CLA in Wei-Shaw/sub2api#1795 2026-04-22 04:46:15 +00:00
github-actions[bot] 36d236df9f @Zerek-Cheng has signed the CLA in Wei-Shaw/sub2api#1726 2026-04-22 02:40:59 +00:00
github-actions[bot] a8d9b5743a @LING71671 has signed the CLA in Wei-Shaw/sub2api#1787 2026-04-22 01:51:29 +00:00
github-actions[bot] 32aa5aabbc @IanShaw027 has signed the CLA in Wei-Shaw/sub2api#1785 2026-04-21 16:23:15 +00:00
github-actions[bot] 5670378f22 @alfadb has signed the CLA in Wei-Shaw/sub2api#1350 2026-04-21 10:39:51 +00:00
github-actions[bot] 4abe25b0b5 @sanwzzz has signed the CLA in Wei-Shaw/sub2api#1781 2026-04-21 09:44:33 +00:00
github-actions[bot] b021c9686b @touwaeriol has signed the CLA in Wei-Shaw/sub2api#1756 2026-04-21 04:35:08 +00:00
github-actions[bot] 8dbf0cc177 @mrsxs has signed the CLA in Wei-Shaw/sub2api#1776 2026-04-21 04:12:09 +00:00
github-actions[bot] f1d0f3f8fd Creating file for storing CLA Signatures 2026-04-21 03:34:59 +00:00
shaw 3adbbe52a3 chore: initialize CLA signatures branch 2026-04-21 11:33:39 +08:00
20 changed files with 6164 additions and 2389 deletions
-22
View File
@@ -1,22 +0,0 @@
# 确保所有 SQL 迁移文件使用 LF 换行符
backend/migrations/*.sql text eol=lf
# Go 源代码文件
*.go text eol=lf
# 前端 源代码文件
*.ts text eol=lf
*.tsx text eol=lf
*.js text eol=lf
*.jsx text eol=lf
*.vue text eol=lf
# Shell 脚本
*.sh text eol=lf
# YAML/YML 配置文件
*.yaml text eol=lf
*.yml text eol=lf
# Dockerfile
Dockerfile text eol=lf
-138
View File
@@ -1,138 +0,0 @@
docs/claude-relay-service/
.codex
# ===================
# Go 后端
# ===================
# 二进制文件
*.exe
*.exe~
*.dll
*.so
*.dylib
backend/bin/
backend/server
backend/sub2api
backend/main
# Go 测试二进制
*.test
# 测试覆盖率
*.out
coverage.html
# 依赖(使用 go mod)
vendor/
# Go 编译缓存
backend/.gocache/
# ===================
# Node.js / Vue 前端
# ===================
node_modules/
frontend/node_modules/
frontend/dist/
*.local
*.tsbuildinfo
vite.config.d.ts
vite.config.js.timestamp-*
# 日志
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# ===================
# 环境配置
# ===================
.env
.env.local
.env.*.local
*.env
!.env.example
docker-compose.override.yml
# ===================
# IDE / 编辑器
# ===================
.idea/
.vscode/
*.swp
*.swo
*~
.project
.settings/
.classpath
# ===================
# 操作系统
# ===================
.DS_Store
Thumbs.db
Desktop.ini
# ===================
# 临时文件
# ===================
tmp/
temp/
*.tmp
*.temp
*.log
*.bak
.cache/
.dev/
.serena/
# ===================
# 构建产物
# ===================
dist/
build/
release/
# 后端嵌入的前端构建产物
# Keep a placeholder file so `//go:embed all:dist` always has a match in CI/lint,
# while still ignoring generated frontend build outputs.
backend/internal/web/dist/
!backend/internal/web/dist/
backend/internal/web/dist/*
!backend/internal/web/dist/.keep
# 后端运行时缓存数据
backend/data/
# ===================
# 本地配置文件(包含敏感信息)
# ===================
backend/config.yaml
deploy/config.yaml
backend/.installed
# ===================
# 其他
# ===================
tests
CLAUDE.md
.claude
scripts
.code-review-state
#openspec/
code-reviews/
AGENTS.md
backend/cmd/server/server
deploy/docker-compose.override.yml
.gocache/
vite.config.js
docs/*
!docs/PAYMENT.md
!docs/PAYMENT_CN.md
!docs/ADMIN_PAYMENT_INTEGRATION_API.md
.serena/
.codex/
frontend/coverage/
aicodex
output/
-73
View File
@@ -1,73 +0,0 @@
# Sub2API Individual Contributor License Agreement (v1.0)
Thank you for your interest in contributing to Sub2API ("the Project"). This Contributor License Agreement ("Agreement") documents the rights granted by contributors to the Project.
By signing this Agreement, you accept and agree to the following terms and conditions for your present and future contributions submitted to the Project.
## 1. Definitions
- **"You" (or "Your")** means the copyright owner or legal entity authorized by the copyright owner that is making this Agreement.
- **"Contribution"** means any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to the Project for inclusion in, or documentation of, any of the products owned or managed by the Project. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Project or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of discussing and improving the Project, but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution."
- **"Project Owner"** means Wesley Liddick, or any individual or legal entity to whom Wesley Liddick has explicitly assigned or transferred ownership of the Project in writing, and their respective successors and assigns.
## 2. Grant of Copyright License
Subject to the terms and conditions of this Agreement, You hereby grant to the Project Owner a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works. This license includes, without limitation, the right to sublicense, assign, and transfer these rights to any third party, including without limitation any successor, assignee, or acquiring entity of the Project or the Project Owner, and to use Your Contributions under any license, including proprietary or commercial licenses.
## 3. Moral Rights
To the fullest extent permitted by applicable law, You irrevocably waive and agree not to assert any moral rights (including rights of attribution and integrity) that You may have in Your Contributions, and agree that the Project Owner and its licensees may use, modify, and distribute Your Contributions without attribution or other obligations arising from moral rights.
## 4. Grant of Patent License
Subject to the terms and conditions of this Agreement, You hereby grant to the Project Owner a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer Your Contributions, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Project to which such Contribution(s) was submitted.
## 5. Representations and Warranties
You represent and warrant that:
(a) You are legally entitled to grant the above licenses.
(b) If Your employer(s) has rights to intellectual property that You create that includes Your Contributions, You have received permission to make Contributions on behalf of that employer, or that Your employer has waived such rights for Your Contributions to the Project.
(c) Each of Your Contributions is Your original creation, or You have sufficient rights to submit it under the terms of this Agreement. You agree to provide, upon request, reasonable documentation or explanation of any third-party materials included in Your Contributions.
## 6. No Warranty
Your Contributions are provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are not expected to provide support for Your Contributions, except to the extent You desire to provide support.
## 7. No Obligation
You understand that the decision to include Your Contribution in any product or project is entirely at the discretion of the Project Owner, and this Agreement does not obligate the Project Owner to use Your Contribution.
## 8. Retention of Rights
You retain ownership of the copyright in Your Contributions. This Agreement does not transfer any copyright or other intellectual property rights from You to the Project Owner. This Agreement only grants the licenses described above.
## 9. Term and Termination
This Agreement shall remain in effect indefinitely. You may terminate this Agreement prospectively by providing written notice to the Project Owner, but such termination shall not affect the licenses granted for Contributions submitted prior to the effective date of termination. The licenses granted herein for Contributions submitted prior to termination are perpetual and irrevocable.
## 10. Electronic Signature
You agree that Your electronic signature (including but not limited to typing a specific phrase in a pull request, issue, or other electronic communication) is legally binding and has the same force and effect as a handwritten signature. You consent to the use of electronic means to enter into this Agreement and acknowledge that this Agreement is enforceable as if executed in a traditional written format.
## 11. General Provisions
**Entire Agreement.** This Agreement constitutes the entire agreement between You and the Project Owner with respect to Your Contributions and supersedes all prior or contemporaneous understandings regarding such subject matter.
**Severability.** If any provision of this Agreement is held to be unenforceable or invalid, that provision will be enforced to the maximum extent possible and the remaining provisions will remain in full force and effect.
**No Waiver.** The failure of the Project Owner to enforce any provision of this Agreement shall not constitute a waiver of that provision or any other provision.
**Amendment.** This Agreement may only be modified by a written instrument signed by both parties. Modifications to this Agreement apply only to Contributions submitted after the modified Agreement is published and accepted by You. Prior Contributions remain governed by the version of the Agreement in effect at the time of submission.
**Notification.** Notices under this Agreement shall be sent to the Project Owner via a GitHub issue on the Project repository. Notices are effective upon receipt.
---
**By signing this CLA, you acknowledge that you have read and understood this Agreement and agree to be bound by its terms.**
To sign, reply in the pull request with:
> I have read the CLA Document and I hereby sign the CLA
-165
View File
@@ -1,165 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
-644
View File
@@ -1,644 +0,0 @@
# Sub2API
<div align="center">
[![Go](https://img.shields.io/badge/Go-1.25.7-00ADD8.svg)](https://golang.org/)
[![Vue](https://img.shields.io/badge/Vue-3.4+-4FC08D.svg)](https://vuejs.org/)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15+-336791.svg)](https://www.postgresql.org/)
[![Redis](https://img.shields.io/badge/Redis-7+-DC382D.svg)](https://redis.io/)
[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED.svg)](https://www.docker.com/)
<a href="https://trendshift.io/repositories/21823" target="_blank"><img src="https://trendshift.io/api/badge/repositories/21823" alt="Wei-Shaw%2Fsub2api | Trendshift" width="250" height="55"/></a>
**AI API Gateway Platform for Subscription Quota Distribution**
English | [中文](README_CN.md) | [日本語](README_JA.md)
</div>
> **Sub2API officially uses only the domains `sub2api.org` and `pincc.ai`. Other websites using the Sub2API name may be third-party deployments or services and are not affiliated with this project. Please verify and exercise your own judgment.**
---
## Demo
Try Sub2API online: **[https://demo.sub2api.org/](https://demo.sub2api.org/)**
Demo credentials (shared demo environment; **not** created automatically for self-hosted installs):
| Email | Password |
|-------|----------|
| admin@sub2api.org | admin123 |
## Overview
Sub2API is an AI API gateway platform designed to distribute and manage API quotas from AI product subscriptions. Users can access upstream AI services through platform-generated API Keys, while the platform handles authentication, billing, load balancing, and request forwarding.
## Features
- **Multi-Account Management** - Support multiple upstream account types (OAuth, API Key)
- **API Key Distribution** - Generate and manage API Keys for users
- **Precise Billing** - Token-level usage tracking and cost calculation
- **Smart Scheduling** - Intelligent account selection with sticky sessions
- **Concurrency Control** - Per-user and per-account concurrency limits
- **Rate Limiting** - Configurable request and token rate limits
- **Built-in Payment System** - Supports EasyPay, Alipay, WeChat Pay, and Stripe for user self-service top-up, no separate payment service needed ([Configuration Guide](docs/PAYMENT.md))
- **Admin Dashboard** - Web interface for monitoring and management
- **External System Integration** - Embed external systems (e.g. ticketing) via iframe to extend the admin dashboard
## ❤️ Sponsors
> [Want to appear here?](mailto:support@pincc.ai)
<table>
<tr>
<td width="180" align="center" valign="middle"><a href="https://shop.pincc.ai/"><img src="assets/partners/logos/pincc-logo.png" alt="pincc" width="150"></a></td>
<td valign="middle"><b><a href="https://shop.pincc.ai/">PinCC</a></b> is the official relay service built on Sub2API, offering stable access to Claude Code, Codex, Gemini and other popular models — ready to use, no deployment or maintenance required.</td>
</tr>
<tr>
<td width="180"><a href="https://www.packyapi.com/register?aff=sub2api"><img src="assets/partners/logos/packycode.png" alt="PackyCode" width="150"></a></td>
<td>Thanks to PackyCode for sponsoring this project! PackyCode is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more. PackyCode provides special discounts for our software users: register using <a href="https://www.packyapi.com/register?aff=sub2api">this link</a> and enter the "sub2api" promo code during first recharge to get 10% off.</td>
</tr>
<tr>
<td width="180"><a href="https://ctok.ai"><img src="assets/partners/logos/ctok.png" alt="CTok" width="150"></a></td>
<td>Thanks to CTok.ai for sponsoring this project! CTok.ai is dedicated to building a one-stop AI programming tool service platform. We offer professional Claude Code packages and technical community services, with support for Google Gemini and OpenAI Codex. Through carefully designed plans and a professional tech community, we provide developers with reliable service guarantees and continuous technical support, making AI-assisted programming a true productivity tool. Click <a href="https://ctok.ai">here</a> to register!</td>
</tr>
<tr>
<td width="180"><a href="https://aigocode.com/invite/SUB2API"><img src="assets/partners/logos/aigocode.png" alt="AIGoCode" width="150"></a></td>
<td>Thanks to AIGoCode for sponsoring this project! AIGoCode is an all-in-one platform that integrates Claude Code, Codex, and the latest Gemini models, providing you with stable, efficient, and highly cost-effective AI coding services. The platform offers flexible subscription plans, zero risk of account suspension, direct access with no VPN required, and lightning-fast responses. AIGoCode has prepared a special benefit for sub2api users: if you register via <a href="https://aigocode.com/invite/SUB2API">this link</a>, you'll receive an extra 10% bonus credit on your first top-up!</td>
</tr>
<tr>
<td width="180"><a href="https://code.silkapi.com/register?aff=SUB2API"><img src="assets/partners/logos/silkapi.png" alt="silkapi" width="150"></a></td>
<td>Thanks to SilkAPI for sponsoring this project! <a href="https://code.silkapi.com/register?aff=SUB2API">SilkAPI</a> is a relay service built on Sub2API, specializing in providing high-speed and stable Codex API relay.</td>
</tr>
<tr>
<td width="180"><a href="https://ylscode.com/"><img src="assets/partners/logos/ylscode.png" alt="ylscode" width="150"></a></td>
<td>Thanks to YLS Code for sponsoring this project! <a href="https://ylscode.com/">YLS Code</a> is dedicated to building secure enterprise-grade Coding Agent productivity services, offering stable and fast Codex / Claude / Gemini subscription services along with pay-as-you-go API options for flexible choices. Register now for a limited-time 3-day Codex trial bonus!</td>
</tr>
<tr>
<td width="180"><a href="https://www.aicodemirror.com/register?invitecode=KMVZQM"><img src="assets/partners/logos/AICodeMirror.jpg" alt="AICodeMirror" width="150"></a></td>
<td>Thanks to AICodeMirror for sponsoring this project! AICodeMirror provides official high-stability relay services for Claude Code / Codex / Gemini CLI, with enterprise-grade concurrency, fast invoicing, and 24/7 dedicated technical support. Claude Code / Codex / Gemini official channels at 38% / 2% / 9% of original price, with extra discounts on top-ups! AICodeMirror offers special benefits for sub2api users: register via <a href="https://www.aicodemirror.com/register?invitecode=KMVZQM">this link</a> to enjoy 20% off your first top-up, and enterprise customers can get up to 25% off!</td>
</tr>
<tr>
<td width="180"><a href="https://shop.bmoplus.com/?utm_source=github"><img src="assets/partners/logos/bmoplus.jpg" alt="bmoplus" width="150"></a></td>
<td>Huge thanks to BmoPlus for sponsoring this project! BmoPlus is a highly reliable AI account provider built strictly for heavy AI users and developers. They offer rock-solid, ready-to-use accounts and official top-up services for ChatGPT Plus / ChatGPT Pro (Full Warranty) / Claude Pro / Super Grok / Gemini Pro. By registering and ordering through <a href="https://shop.bmoplus.com/?utm_source=github">BmoPlus - Premium AI Accounts & Top-ups</a>, users can unlock the mind-blowing rate of 10% of the official GPT subscription price (90% OFF)</td>
</tr>
<tr>
<td width="180"><a href="https://bestproxy.com/?keyword=a2e8iuol"><img src="assets/partners/logos/bestproxy.png" alt="bestproxy" width="150"></a></td>
<td>Thanks to Bestproxy for sponsoring this project! <a href="https://bestproxy.com/?keyword=a2e8iuol">Bestproxy</a> provides high-purity residential IPs with dedicated one-IP-per-account support. By combining real home networks with fingerprint isolation, it enables link environment isolation and reduces the probability of association-based risk control.</td>
</tr>
<tr>
<td width="180"><a href="https://pateway.ai/?ch=1tsfr51"><img src="assets/partners/logos/pateway.png" alt="pateway" width="150"></a></td>
<td>Thanks to PatewayAI for sponsoring this project! PatewayAI is a premium model API relay service provider built for heavy AI developers, focused on direct official connections. Offering the full Claude series and Codex series models, 100% sourced directly from official providers — no dilution, no substitution, open to verification. Billing is fully transparent with token-level invoices that can be audited line by line.
Enterprise-grade high concurrency is also supported, with a dedicated management platform for enterprise clients. Enterprise customers can sign formal contracts and receive invoices. Visit the official website for more details and contact information.
Register now via <a href="https://pateway.ai/?ch=1tsfr51">this link</a> to receive $3 in trial credits. User top-ups start as low as 60% off, and referring friends earns both parties rewards — referral bonuses up to $150.</td>
</tr>
<tr>
<td width="180"><a href="https://api.pptoken.org/register?promo=SUB2API"><img src="assets/partners/logos/pptoken.png" alt="pptoken" width="150"></a></td>
<td>Thanks to PPToken.org for sponsoring this project! <a href="https://api.pptoken.org/register?promo=SUB2API">PPToken.org</a> specializes in GPT model API relay services, supporting Codex, Claude Code, OpenAI-compatible clients, and Gemini CLI integration. Top-ups are 1:1 (¥1 = $1 credit); GPT models start at 0.16x rate multiplier, with overall cost at roughly 2.2% of official pricing and first-token latency around 1 second — ideal for developers seeking low-cost, high-speed access to GPT model capabilities. Technical support: 24/7 real human responses (no bots), @tech in the group chat and get a reply within 10 minutes. Sponsor benefit: the first 200 users who register via the <a href="https://api.pptoken.org/register?promo=SUB2API">exclusive registration link</a> and enter promo code `SUB2API` can claim free Codex / Claude Code trial credits — no minimum spend, no card required.
</td>
</tr>
</table>
## Ecosystem
Community projects that extend or integrate with Sub2API:
| Project | Description | Features |
|---------|-------------|----------|
| ~~[Sub2ApiPay](https://github.com/touwaeriol/sub2apipay)~~ | ~~Self-service payment system~~ | **Now Built-in** — Payment is now integrated into Sub2API, no separate deployment needed. See [Payment Configuration Guide](docs/PAYMENT.md) |
| [sub2api-mobile](https://github.com/ckken/sub2api-mobile) | Mobile admin console | Cross-platform app (iOS/Android/Web) for user management, account management, monitoring dashboard, and multi-backend switching; built with Expo + React Native |
## Tech Stack
| Component | Technology |
|-----------|------------|
| Backend | Go 1.25.7, Gin, Ent |
| Frontend | Vue 3.4+, Vite 5+, TailwindCSS |
| Database | PostgreSQL 15+ |
| Cache/Queue | Redis 7+ |
---
## Nginx Reverse Proxy Note
When using Nginx as a reverse proxy for Sub2API (or CRS) with Codex CLI, add the following to the `http` block in your Nginx configuration:
```nginx
underscores_in_headers on;
```
Nginx drops headers containing underscores by default (e.g. `session_id`), which breaks sticky session routing in multi-account setups.
---
## Deployment
### Method 1: Script Installation (Recommended)
One-click installation script that downloads pre-built binaries from GitHub Releases.
#### Prerequisites
- Linux server (amd64 or arm64)
- PostgreSQL 15+ (installed and running)
- Redis 7+ (installed and running)
- Root privileges
#### Installation Steps
```bash
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash
```
The script will:
1. Detect your system architecture
2. Download the latest release
3. Install binary to `/opt/sub2api`
4. Create systemd service
5. Configure system user and permissions
#### Post-Installation
```bash
# 1. Start the service
sudo systemctl start sub2api
# 2. Enable auto-start on boot
sudo systemctl enable sub2api
# 3. Open Setup Wizard in browser
# http://YOUR_SERVER_IP:8080
```
The Setup Wizard will guide you through:
- Database configuration
- Redis configuration
- Admin account creation
#### Upgrade
You can upgrade directly from the **Admin Dashboard** by clicking the **Check for Updates** button in the top-left corner.
The web interface will:
- Check for new versions automatically
- Download and apply updates with one click
- Support rollback if needed
#### Useful Commands
```bash
# Check status
sudo systemctl status sub2api
# View logs
sudo journalctl -u sub2api -f
# Restart service
sudo systemctl restart sub2api
# Uninstall
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash -s -- uninstall -y
```
---
### Method 2: Docker Compose (Recommended)
Deploy with Docker Compose, including PostgreSQL and Redis containers.
#### Prerequisites
- Docker 20.10+
- Docker Compose v2+
#### Quick Start (One-Click Deployment)
Use the automated deployment script for easy setup:
```bash
# Create deployment directory
mkdir -p sub2api-deploy && cd sub2api-deploy
# Download and run deployment preparation script
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash
# Start services
docker compose up -d
# View logs
docker compose logs -f sub2api
```
**What the script does:**
- Downloads `docker-compose.local.yml` (saved as `docker-compose.yml`) and `.env.example`
- Generates secure credentials (JWT_SECRET, TOTP_ENCRYPTION_KEY, POSTGRES_PASSWORD)
- Creates `.env` file with auto-generated secrets
- Creates data directories (uses local directories for easy backup/migration)
- Displays generated credentials for your reference
#### Manual Deployment
If you prefer manual setup:
```bash
# 1. Clone the repository
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api/deploy
# 2. Copy environment configuration
cp .env.example .env
# 3. Edit configuration (generate secure passwords)
nano .env
```
**Required configuration in `.env`:**
```bash
# PostgreSQL password (REQUIRED)
POSTGRES_PASSWORD=your_secure_password_here
# JWT Secret (RECOMMENDED - keeps users logged in after restart)
JWT_SECRET=your_jwt_secret_here
# TOTP Encryption Key (RECOMMENDED - preserves 2FA after restart)
TOTP_ENCRYPTION_KEY=your_totp_key_here
# Optional: Admin account
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=your_admin_password
# Optional: Custom port
SERVER_PORT=8080
```
**Generate secure secrets:**
```bash
# Generate JWT_SECRET
openssl rand -hex 32
# Generate TOTP_ENCRYPTION_KEY
openssl rand -hex 32
# Generate POSTGRES_PASSWORD
openssl rand -hex 32
```
```bash
# 4. Create data directories (for local version)
mkdir -p data postgres_data redis_data
# 5. Start all services
# Option A: Local directory version (recommended - easy migration)
docker compose -f docker-compose.local.yml up -d
# Option B: Named volumes version (simple setup)
docker compose up -d
# 6. Check status
docker compose -f docker-compose.local.yml ps
# 7. View logs
docker compose -f docker-compose.local.yml logs -f sub2api
```
#### Deployment Versions
| Version | Data Storage | Migration | Best For |
|---------|-------------|-----------|----------|
| **docker-compose.local.yml** | Local directories | ✅ Easy (tar entire directory) | Production, frequent backups |
| **docker-compose.yml** | Named volumes | ⚠️ Requires docker commands | Simple setup |
**Recommendation:** Use `docker-compose.local.yml` (deployed by script) for easier data management.
#### Access
Open `http://YOUR_SERVER_IP:8080` in your browser.
If admin password was auto-generated, find it in logs:
```bash
docker compose -f docker-compose.local.yml logs sub2api | grep "admin password"
```
#### Upgrade
```bash
# Pull latest image and recreate container
docker compose -f docker-compose.local.yml pull
docker compose -f docker-compose.local.yml up -d
```
#### Easy Migration (Local Directory Version)
When using `docker-compose.local.yml`, migrate to a new server easily:
```bash
# On source server
docker compose -f docker-compose.local.yml down
cd ..
tar czf sub2api-complete.tar.gz sub2api-deploy/
# Transfer to new server
scp sub2api-complete.tar.gz user@new-server:/path/
# On new server
tar xzf sub2api-complete.tar.gz
cd sub2api-deploy/
docker compose -f docker-compose.local.yml up -d
```
#### Useful Commands
```bash
# Stop all services
docker compose -f docker-compose.local.yml down
# Restart
docker compose -f docker-compose.local.yml restart
# View all logs
docker compose -f docker-compose.local.yml logs -f
# Remove all data (caution!)
docker compose -f docker-compose.local.yml down
rm -rf data/ postgres_data/ redis_data/
```
---
### Method 3: Build from Source
Build and run from source code for development or customization.
#### Prerequisites
- Go 1.21+
- Node.js 18+
- PostgreSQL 15+
- Redis 7+
#### Build Steps
```bash
# 1. Clone the repository
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api
# 2. Install pnpm (if not already installed)
npm install -g pnpm
# 3. Build frontend
cd frontend
pnpm install
pnpm run build
# Output will be in ../backend/internal/web/dist/
# 4. Build backend with embedded frontend
cd ../backend
go build -tags embed -o sub2api ./cmd/server
# 5. Create configuration file
cp ../deploy/config.example.yaml ./config.yaml
# 6. Edit configuration
nano config.yaml
```
> **Note:** The `-tags embed` flag embeds the frontend into the binary. Without this flag, the binary will not serve the frontend UI.
**Key configuration in `config.yaml`:**
```yaml
server:
host: "0.0.0.0"
port: 8080
mode: "release"
database:
host: "localhost"
port: 5432
user: "postgres"
password: "your_password"
dbname: "sub2api"
redis:
host: "localhost"
port: 6379
password: ""
jwt:
secret: "change-this-to-a-secure-random-string"
expire_hour: 24
default:
user_concurrency: 5
user_balance: 0
api_key_prefix: "sk-"
rate_multiplier: 1.0
```
### Sora Status (Temporarily Unavailable)
> ⚠️ Sora-related features are temporarily unavailable due to technical issues in upstream integration and media delivery.
> Please do not rely on Sora in production at this time.
> Existing `gateway.sora_*` configuration keys are reserved and may not take effect until these issues are resolved.
Additional security-related options are available in `config.yaml`:
- `cors.allowed_origins` for CORS allowlist
- `security.url_allowlist` for upstream/pricing/CRS host allowlists
- `security.url_allowlist.enabled` to disable URL validation (use with caution)
- `security.url_allowlist.allow_insecure_http` to allow HTTP URLs when validation is disabled
- `security.url_allowlist.allow_private_hosts` to allow private/local IP addresses
- `security.response_headers.enabled` to enable configurable response header filtering (disabled uses default allowlist)
- `security.csp` to control Content-Security-Policy headers
- `billing.circuit_breaker` to fail closed on billing errors
- `server.trusted_proxies` to enable X-Forwarded-For parsing
- `turnstile.required` to require Turnstile in release mode
**⚠️ Security Warning: HTTP URL Configuration**
When `security.url_allowlist.enabled=false`, the system performs minimal URL validation by default, **rejecting HTTP URLs** and only allowing HTTPS. To allow HTTP URLs (e.g., for development or internal testing), you must explicitly set:
```yaml
security:
url_allowlist:
enabled: false # Disable allowlist checks
allow_insecure_http: true # Allow HTTP URLs (⚠️ INSECURE)
```
**Or via environment variable:**
```bash
SECURITY_URL_ALLOWLIST_ENABLED=false
SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP=true
```
**Risks of allowing HTTP:**
- API keys and data transmitted in **plaintext** (vulnerable to interception)
- Susceptible to **man-in-the-middle (MITM) attacks**
- **NOT suitable for production** environments
**When to use HTTP:**
- ✅ Development/testing with local servers (http://localhost)
- ✅ Internal networks with trusted endpoints
- ✅ Testing account connectivity before obtaining HTTPS
- ❌ Production environments (use HTTPS only)
**Example error without this setting:**
```
Invalid base URL: invalid url scheme: http
```
If you disable URL validation or response header filtering, harden your network layer:
- Enforce an egress allowlist for upstream domains/IPs
- Block private/loopback/link-local ranges
- Enforce TLS-only outbound traffic
- Strip sensitive upstream response headers at the proxy
```bash
# 6. Run the application
./sub2api
```
#### Development Mode
```bash
# Backend (with hot reload)
cd backend
go run ./cmd/server
# Frontend (with hot reload)
cd frontend
pnpm run dev
```
#### Code Generation
When editing `backend/ent/schema`, regenerate Ent + Wire:
```bash
cd backend
go generate ./ent
go generate ./cmd/server
```
---
## Simple Mode
Simple Mode is designed for individual developers or internal teams who want quick access without full SaaS features.
- Enable: Set environment variable `RUN_MODE=simple`
- Difference: Hides SaaS-related features and skips billing process
- Security note: In production, you must also set `SIMPLE_MODE_CONFIRM=true` to allow startup
---
## Antigravity Support
Sub2API supports [Antigravity](https://antigravity.so/) accounts. After authorization, dedicated endpoints are available for Claude and Gemini models.
### Dedicated Endpoints
| Endpoint | Model |
|----------|-------|
| `/antigravity/v1/messages` | Claude models |
| `/antigravity/v1beta/` | Gemini models |
### Claude Code Configuration
```bash
export ANTHROPIC_BASE_URL="http://localhost:8080/antigravity"
export ANTHROPIC_AUTH_TOKEN="sk-xxx"
```
### Hybrid Scheduling Mode
Antigravity accounts support optional **hybrid scheduling**. When enabled, the general endpoints `/v1/messages` and `/v1beta/` will also route requests to Antigravity accounts.
> **⚠️ Warning**: Anthropic Claude and Antigravity Claude **cannot be mixed within the same conversation context**. Use groups to isolate them properly.
### Known Issues
In Claude Code, Plan Mode cannot exit automatically. (Normally when using the native Claude API, after planning is complete, Claude Code will pop up options for users to approve or reject the plan.)
**Workaround**: Press `Shift + Tab` to manually exit Plan Mode, then type your response to approve or reject the plan.
---
## Project Structure
```
sub2api/
├── backend/ # Go backend service
│ ├── cmd/server/ # Application entry
│ ├── internal/ # Internal modules
│ │ ├── config/ # Configuration
│ │ ├── model/ # Data models
│ │ ├── service/ # Business logic
│ │ ├── handler/ # HTTP handlers
│ │ └── gateway/ # API gateway core
│ └── resources/ # Static resources
│
├── frontend/ # Vue 3 frontend
│ └── src/
│ ├── api/ # API calls
│ ├── stores/ # State management
│ ├── views/ # Page components
│ └── components/ # Reusable components
│
└── deploy/ # Deployment files
├── docker-compose.yml # Docker Compose configuration
├── .env.example # Environment variables for Docker Compose
├── config.example.yaml # Full config file for binary deployment
└── install.sh # One-click installation script
```
## Disclaimer
> **Please read carefully before using this project:**
>
> :rotating_light: **Terms of Service Risk**: Using this project may violate Anthropic's Terms of Service. Please read Anthropic's user agreement carefully before use. All risks arising from the use of this project are borne solely by the user.
>
> :book: **Disclaimer**: This project is for technical learning and research purposes only. The author assumes no responsibility for account suspension, service interruption, or any other losses caused by the use of this project.
---
## Star History
<a href="https://star-history.com/#Wei-Shaw/sub2api&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date" />
</picture>
</a>
---
## License
This project is licensed under the [GNU Lesser General Public License v3.0](LICENSE) (or later).
Copyright (c) 2026 Wesley Liddick
---
<div align="center">
**If you find this project useful, please give it a star!**
</div>
-704
View File
@@ -1,704 +0,0 @@
# Sub2API
<div align="center">
[![Go](https://img.shields.io/badge/Go-1.25.7-00ADD8.svg)](https://golang.org/)
[![Vue](https://img.shields.io/badge/Vue-3.4+-4FC08D.svg)](https://vuejs.org/)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15+-336791.svg)](https://www.postgresql.org/)
[![Redis](https://img.shields.io/badge/Redis-7+-DC382D.svg)](https://redis.io/)
[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED.svg)](https://www.docker.com/)
<a href="https://trendshift.io/repositories/21823" target="_blank"><img src="https://trendshift.io/api/badge/repositories/21823" alt="Wei-Shaw%2Fsub2api | Trendshift" width="250" height="55"/></a>
**AI API 网关平台 - 订阅配额分发管理**
[English](README.md) | 中文 | [日本語](README_JA.md)
</div>
> **Sub2API 官方仅使用 `sub2api.org` 与 `pincc.ai` 两个域名。其他使用 Sub2API 名义的网站可能为第三方部署或服务,与本项目无关,请自行甄别。**
---
## 在线体验
体验地址:**[https://demo.sub2api.org/](https://demo.sub2api.org/)**
演示账号(共享演示环境;自建部署不会自动创建该账号):
| 邮箱 | 密码 |
|------|------|
| admin@sub2api.org | admin123 |
## 项目概述
Sub2API 是一个 AI API 网关平台,用于分发和管理 AI 产品订阅的 API 配额。用户通过平台生成的 API Key 调用上游 AI 服务,平台负责鉴权、计费、负载均衡和请求转发。
## 核心功能
- **多账号管理** - 支持多种上游账号类型(OAuth、API Key)
- **API Key 分发** - 为用户生成和管理 API Key
- **精确计费** - Token 级别的用量追踪和成本计算
- **智能调度** - 智能账号选择,支持粘性会话
- **并发控制** - 用户级和账号级并发限制
- **速率限制** - 可配置的请求和 Token 速率限制
- **内置支付系统** - 支持 EasyPay 易支付、支付宝官方、微信官方、Stripe,用户自助充值,无需独立部署支付服务([配置指南](docs/PAYMENT_CN.md))
- **管理后台** - Web 界面进行监控和管理
- **外部系统集成** - 支持通过 iframe 嵌入外部系统(如工单等),扩展管理后台功能
## ❤️ 赞助商
> [想出现在这里?](mailto:support@pincc.ai)
<table>
<tr>
<td width="180" align="center" valign="middle"><a href="https://shop.pincc.ai/"><img src="assets/partners/logos/pincc-logo.png" alt="pincc" width="150"></a></td>
<td valign="middle"><b><a href="https://shop.pincc.ai/">PinCC</a></b> 是基于 Sub2API 搭建的官方中转服务,提供 Claude Code、Codex、Gemini 等主流模型的稳定中转,开箱即用,免去自建部署与运维烦恼。</td>
</tr>
<tr>
<td width="180"><a href="https://www.packyapi.com/register?aff=sub2api"><img src="assets/partners/logos/packycode.png" alt="PackyCode" width="150"></a></td>
<td>感谢 PackyCode 赞助了本项目!PackyCode 是一家稳定、高效的API中转服务商,提供 Claude Code、Codex、Gemini 等多种中转服务。PackyCode 为本软件的用户提供了特别优惠,使用<a href="https://www.packyapi.com/register?aff=sub2api">此链接</a>注册并在充值时填写"sub2api"优惠码,首次充值可以享受9折优惠!</td>
</tr>
<tr>
<td width="180"><a href="https://ctok.ai"><img src="assets/partners/logos/ctok.png" alt="CTok" width="150"></a></td>
<td>感谢 CTok.ai 赞助了本项目!CTok.ai 致力于打造一站式 AI 编程工具服务平台。我们提供 Claude Code 专业套餐及技术社群服务,同时支持 Google Gemini 和 OpenAI Codex。通过精心设计的套餐方案和专业的技术社群,为开发者提供稳定的服务保障和持续的技术支持,让 AI 辅助编程真正成为开发者的生产力工具。点击<a href="https://ctok.ai">这里</a>注册!</td>
</tr>
<tr>
<td width="180"><a href="https://aigocode.com/invite/SUB2API"><img src="assets/partners/logos/aigocode.png" alt="AIGoCode" width="150"></a></td>
<td>感谢 AIGoCode 赞助了本项目!AIGoCode 是一站式集成 Claude Code、Codex 以及最新 Gemini 模型的综合平台,为您提供稳定、高效、高性价比的 AI 编程服务。平台提供灵活的订阅方案,零封号风险,免 VPN 直连,响应极速。AIGoCode 为 sub2api 用户准备了专属福利:通过<a href="https://aigocode.com/invite/SUB2API">此链接</a>注册,首次充值可额外获得 10% 赠送额度!</td>
</tr>
<tr>
<td width="180"><a href="https://code.silkapi.com/register?aff=SUB2API"><img src="assets/partners/logos/silkapi.png" alt="silkapi" width="150"></a></td>
<td>感谢 丝绸API 赞助了本项目! <a href="https://code.silkapi.com/register?aff=SUB2API">丝绸API</a> 是基于 Sub2API 搭建的中转服务,专注于提供 Codex 高速稳定API中转。</td>
</tr>
<tr>
<td width="180"><a href="https://ylscode.com/"><img src="assets/partners/logos/ylscode.png" alt="ylscode" width="150"></a></td>
<td>感谢 伊莉思Code 赞助了本项目! <a href="https://ylscode.com/">伊莉思Code</a> 致力于构建安全的企业级Coding Agent生产力服务,提供稳定快速的 Codex / Claude / Gemini 订阅服务与即用即付API多种方案灵活选择,限时注册赠送 3 天 Codex 试用福利!</td>
</tr>
<tr>
<td width="180"><a href="https://www.aicodemirror.com/register?invitecode=KMVZQM"><img src="assets/partners/logos/AICodeMirror.jpg" alt="AICodeMirror" width="150"></a></td>
<td>感谢 AICodeMirror 赞助了本项目!AICodeMirror 提供 Claude Code / Codex / Gemini CLI 官方高稳定性中转服务,企业级并发、快速开票、7×24 小时专属技术支持。Claude Code / Codex / Gemini 官方通道低至原价 38% / 2% / 9%,充值更享额外折扣!AICodeMirror 为 sub2api 用户提供专属福利:通过<a href="https://www.aicodemirror.com/register?invitecode=KMVZQM">此链接</a>注册,首次充值立享 8 折优惠,企业客户最高可享 75 折!</td>
</tr>
<tr>
<td width="180"><a href="https://shop.bmoplus.com/?utm_source=github"><img src="assets/partners/logos/bmoplus.jpg" alt="bmoplus" width="150"></a></td>
<td>感谢 BmoPlus 赞助了本项目!BmoPlus 是一家专为AI订阅重度用户打造的可靠 AI 账号代充服务商,提供稳定的 ChatGPT Plus / ChatGPT Pro(全程质保) / Claude Pro / Super Grok / Gemini Pro 的官方代充&成品账号。 通过<a href="https://shop.bmoplus.com/?utm_source=github">BmoPlus AI成品号专卖/代充</a>注册下单的用户,可享GPT 官网订阅一折 的震撼价格!</td>
</tr>
<tr>
<td width="180"><a href="https://bestproxy.com/?keyword=a2e8iuol"><img src="assets/partners/logos/bestproxy.png" alt="bestproxy" width="150"></a></td>
<td>感谢 Bestproxy 赞助了本项目!<a href="https://bestproxy.com/?keyword=a2e8iuol">Bestproxy</a> 是一家提供高纯度住宅IP,支持一号一IP独享,结合真实家庭网络与指纹隔离,可实现链路环境隔离,降低关联风控概率。</td>
</tr>
<tr>
<td width="180"><a href="https://pateway.ai/?ch=1tsfr51"><img src="assets/partners/logos/pateway.png" alt="pateway" width="150"></a></td>
<td>感谢 PatewayAI 赞助了本项目!PatewayAI 是一家面向重度 AI 开发者、专注官方直连的高品质模型 API 中转服务商。提供 Claude 全系列与 Codex 系列模型,100% 官方源直供,不掺假不注水,欢迎检验。计费透明,Token 级账单可逐笔核验。
同时支持企业级高并发,并为企业客户提供了专业的管理平台,企业客户可签订正式合同并开具发票,更多详情进入官网获取联系方式。
现在通过 <a href="https://pateway.ai/?ch=1tsfr51">此链接</a> 注册即送 $3 试用额度,用户充值低至 6 折,邀请好友双向赠送,邀请奖励可达 $150。</td>
</tr>
<tr>
<td width="180"><a href="https://api.pptoken.org/register?promo=SUB2API"><img src="assets/partners/logos/pptoken.png" alt="pptoken" width="150"></a></td>
<td>感谢 PPToken.org 赞助本项目! <a href="https://api.pptoken.org/register?promo=SUB2API">PPToken.org</a> 主打 GPT 系列模型 API 中转服务,支持 Codex、Claude Code、OpenAI 兼容客户端及 Gemini CLI 等工具接入。充值 1:1,1 元=1 美元额度;GPT 模型最低 0.16 倍倍率,综合成本约为官方价格的 0.22 折,最快首字 Token 约 1 秒,适合开发者低成本、高响应速度接入 GPT 模型能力。技术支持: 7×24 小时真人响应(不是机器人),群内@技术,10 分钟内有回复 。赞助商福利:前 200 名用户通过 <a href="https://api.pptoken.org/register?promo=SUB2API">[专属注册链接]</a> 注册,输入优惠码 `SUB2API`,可领取 Codex / Claude Code 免费试用额度,无门槛、不绑卡。
</td>
</tr>
</table>
## 生态项目
围绕 Sub2API 的社区扩展与集成项目:
| 项目 | 说明 | 功能 |
|------|------|------|
| ~~[Sub2ApiPay](https://github.com/touwaeriol/sub2apipay)~~ | ~~自助支付系统~~ | **已内置** — 支付功能已集成到 Sub2API 中,无需独立部署。详见 [支付配置指南](docs/PAYMENT_CN.md) |
| [sub2api-mobile](https://github.com/ckken/sub2api-mobile) | 移动端管理控制台 | 跨平台应用(iOS/Android/Web),支持用户管理、账号管理、监控看板、多后端切换;基于 Expo + React Native 构建 |
## 技术栈
| 组件 | 技术 |
|------|------|
| 后端 | Go 1.25.7, Gin, Ent |
| 前端 | Vue 3.4+, Vite 5+, TailwindCSS |
| 数据库 | PostgreSQL 15+ |
| 缓存/队列 | Redis 7+ |
---
## Nginx 反向代理注意事项
通过 Nginx 反向代理 Sub2API(或 CRS 服务)并搭配 Codex CLI 使用时,需要在 Nginx 配置的 `http` 块中添加:
```nginx
underscores_in_headers on;
```
Nginx 默认会丢弃名称中含下划线的请求头(如 `session_id`),这会导致多账号环境下的粘性会话功能失效。
---
## 部署方式
### 方式一:脚本安装(推荐)
一键安装脚本,自动从 GitHub Releases 下载预编译的二进制文件。
#### 前置条件
- Linux 服务器(amd64 或 arm64)
- PostgreSQL 15+(已安装并运行)
- Redis 7+(已安装并运行)
- Root 权限
#### 安装步骤
```bash
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash
```
脚本会自动:
1. 检测系统架构
2. 下载最新版本
3. 安装二进制文件到 `/opt/sub2api`
4. 创建 systemd 服务
5. 配置系统用户和权限
#### 安装后配置
```bash
# 1. 启动服务
sudo systemctl start sub2api
# 2. 设置开机自启
sudo systemctl enable sub2api
# 3. 在浏览器中打开设置向导
# http://你的服务器IP:8080
```
设置向导将引导你完成:
- 数据库配置
- Redis 配置
- 管理员账号创建
#### 升级
可以直接在 **管理后台** 左上角点击 **检测更新** 按钮进行在线升级。
网页升级功能支持:
- 自动检测新版本
- 一键下载并应用更新
- 支持回滚
#### 常用命令
```bash
# 查看状态
sudo systemctl status sub2api
# 查看日志
sudo journalctl -u sub2api -f
# 重启服务
sudo systemctl restart sub2api
# 卸载
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash -s -- uninstall -y
```
---
### 方式二:Docker Compose(推荐)
使用 Docker Compose 部署,包含 PostgreSQL 和 Redis 容器。
#### 前置条件
- Docker 20.10+
- Docker Compose v2+
#### 快速开始(一键部署)
使用自动化部署脚本快速搭建:
```bash
# 创建部署目录
mkdir -p sub2api-deploy && cd sub2api-deploy
# 下载并运行部署准备脚本
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash
# 启动服务
docker compose up -d
# 查看日志
docker compose logs -f sub2api
```
**脚本功能:**
- 下载 `docker-compose.local.yml`(本地保存为 `docker-compose.yml`)和 `.env.example`
- 自动生成安全凭证(JWT_SECRET、TOTP_ENCRYPTION_KEY、POSTGRES_PASSWORD)
- 创建 `.env` 文件并填充自动生成的密钥
- 创建数据目录(使用本地目录,便于备份和迁移)
- 显示生成的凭证供你记录
#### 手动部署
如果你希望手动配置:
```bash
# 1. 克隆仓库
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api/deploy
# 2. 复制环境配置文件
cp .env.example .env
# 3. 编辑配置(生成安全密码)
nano .env
```
**`.env` 必须配置项:**
```bash
# PostgreSQL 密码(必需)
POSTGRES_PASSWORD=your_secure_password_here
# JWT 密钥(推荐 - 重启后保持用户登录状态)
JWT_SECRET=your_jwt_secret_here
# TOTP 加密密钥(推荐 - 重启后保留双因素认证)
TOTP_ENCRYPTION_KEY=your_totp_key_here
# 可选:管理员账号
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=your_admin_password
# 可选:自定义端口
SERVER_PORT=8080
```
**生成安全密钥:**
```bash
# 生成 JWT_SECRET
openssl rand -hex 32
# 生成 TOTP_ENCRYPTION_KEY
openssl rand -hex 32
# 生成 POSTGRES_PASSWORD
openssl rand -hex 32
```
```bash
# 4. 创建数据目录(本地版)
mkdir -p data postgres_data redis_data
# 5. 启动所有服务
# 选项 A:本地目录版(推荐 - 易于迁移)
docker compose -f docker-compose.local.yml up -d
# 选项 B:命名卷版(简单设置)
docker compose up -d
# 6. 查看状态
docker compose -f docker-compose.local.yml ps
# 7. 查看日志
docker compose -f docker-compose.local.yml logs -f sub2api
```
#### 部署版本对比
| 版本 | 数据存储 | 迁移便利性 | 适用场景 |
|------|---------|-----------|---------|
| **docker-compose.local.yml** | 本地目录 | ✅ 简单(打包整个目录) | 生产环境、频繁备份 |
| **docker-compose.yml** | 命名卷 | ⚠️ 需要 docker 命令 | 简单设置 |
**推荐:** 使用 `docker-compose.local.yml`(脚本部署)以便更轻松地管理数据。
#### 启用“数据管理”功能(datamanagementd)
如需启用管理后台“数据管理”,需要额外部署宿主机数据管理进程 `datamanagementd`。
关键点:
- 主进程固定探测:`/tmp/sub2api-datamanagement.sock`
- 只有该 Socket 可连通时,数据管理功能才会开启
- Docker 场景需将宿主机 Socket 挂载到容器同路径
详细部署步骤见:`deploy/DATAMANAGEMENTD_CN.md`
#### 访问
在浏览器中打开 `http://你的服务器IP:8080`
如果管理员密码是自动生成的,在日志中查找:
```bash
docker compose -f docker-compose.local.yml logs sub2api | grep "admin password"
```
#### 升级
```bash
# 拉取最新镜像并重建容器
docker compose -f docker-compose.local.yml pull
docker compose -f docker-compose.local.yml up -d
```
#### 轻松迁移(本地目录版)
使用 `docker-compose.local.yml` 时,可以轻松迁移到新服务器:
```bash
# 源服务器
docker compose -f docker-compose.local.yml down
cd ..
tar czf sub2api-complete.tar.gz sub2api-deploy/
# 传输到新服务器
scp sub2api-complete.tar.gz user@new-server:/path/
# 新服务器
tar xzf sub2api-complete.tar.gz
cd sub2api-deploy/
docker compose -f docker-compose.local.yml up -d
```
#### 常用命令
```bash
# 停止所有服务
docker compose -f docker-compose.local.yml down
# 重启
docker compose -f docker-compose.local.yml restart
# 查看所有日志
docker compose -f docker-compose.local.yml logs -f
# 删除所有数据(谨慎!)
docker compose -f docker-compose.local.yml down
rm -rf data/ postgres_data/ redis_data/
```
---
### 方式三:源码编译
从源码编译安装,适合开发或定制需求。
#### 前置条件
- Go 1.21+
- Node.js 18+
- PostgreSQL 15+
- Redis 7+
#### 编译步骤
```bash
# 1. 克隆仓库
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api
# 2. 安装 pnpm(如果还没有安装)
npm install -g pnpm
# 3. 编译前端
cd frontend
pnpm install
pnpm run build
# 构建产物输出到 ../backend/internal/web/dist/
# 4. 编译后端(嵌入前端)
cd ../backend
go build -tags embed -o sub2api ./cmd/server
# 5. 创建配置文件
cp ../deploy/config.example.yaml ./config.yaml
# 6. 编辑配置
nano config.yaml
```
> **注意:** `-tags embed` 参数会将前端嵌入到二进制文件中。不使用此参数编译的程序将不包含前端界面。
**`config.yaml` 关键配置:**
```yaml
server:
host: "0.0.0.0"
port: 8080
mode: "release"
database:
host: "localhost"
port: 5432
user: "postgres"
password: "your_password"
dbname: "sub2api"
redis:
host: "localhost"
port: 6379
password: ""
jwt:
secret: "change-this-to-a-secure-random-string"
expire_hour: 24
default:
user_concurrency: 5
user_balance: 0
api_key_prefix: "sk-"
rate_multiplier: 1.0
```
### Sora 功能状态(暂不可用)
> ⚠️ 当前 Sora 相关功能因上游接入与媒体链路存在技术问题,暂时不可用。
> 现阶段请勿在生产环境依赖 Sora 能力。
> 文档中的 `gateway.sora_*` 配置仅作预留,待技术问题修复后再恢复可用。
### Sora 媒体签名 URL(功能恢复后可选)
当配置 `gateway.sora_media_signing_key` 且 `gateway.sora_media_signed_url_ttl_seconds > 0` 时,网关会将 Sora 输出的媒体地址改写为临时签名 URL(`/sora/media-signed/...`)。这样无需 API Key 即可在浏览器中直接访问,且具备过期控制与防篡改能力(签名包含 path + query)。
```yaml
gateway:
# /sora/media 是否强制要求 API Key(默认 false)
sora_media_require_api_key: false
# 媒体临时签名密钥(为空则禁用签名)
sora_media_signing_key: "your-signing-key"
# 临时签名 URL 有效期(秒)
sora_media_signed_url_ttl_seconds: 900
```
> 若未配置签名密钥,`/sora/media-signed` 将返回 503。
> 如需更严格的访问控制,可将 `sora_media_require_api_key` 设为 true,仅允许携带 API Key 的 `/sora/media` 访问。
访问策略说明:
- `/sora/media`:内部调用或客户端携带 API Key 才能下载
- `/sora/media-signed`:外部可访问,但有签名 + 过期控制
`config.yaml` 还支持以下安全相关配置:
- `cors.allowed_origins` 配置 CORS 白名单
- `security.url_allowlist` 配置上游/价格数据/CRS 主机白名单
- `security.url_allowlist.enabled` 可关闭 URL 校验(慎用)
- `security.url_allowlist.allow_insecure_http` 关闭校验时允许 HTTP URL
- `security.url_allowlist.allow_private_hosts` 允许私有/本地 IP 地址
- `security.response_headers.enabled` 可启用可配置响应头过滤(关闭时使用默认白名单)
- `security.csp` 配置 Content-Security-Policy
- `billing.circuit_breaker` 计费异常时 fail-closed
- `server.trusted_proxies` 启用可信代理解析 X-Forwarded-For
- `turnstile.required` 在 release 模式强制启用 Turnstile
**网关防御纵深建议(重点)**
- `gateway.upstream_response_read_max_bytes`:限制非流式上游响应读取大小(默认 `8MB`),用于防止异常响应导致内存放大。
- `gateway.proxy_probe_response_read_max_bytes`:限制代理探测响应读取大小(默认 `1MB`)。
- `gateway.gemini_debug_response_headers`:默认 `false`,仅在排障时短时开启,避免高频请求日志开销。
- `/auth/register`、`/auth/login`、`/auth/login/2fa`、`/auth/send-verify-code` 已提供服务端兜底限流(Redis 故障时 fail-close)。
- 推荐将 WAF/CDN 作为第一层防护,服务端限流与响应读取上限作为第二层兜底;两层同时保留,避免旁路流量与误配置风险。
**⚠️ 安全警告:HTTP URL 配置**
当 `security.url_allowlist.enabled=false` 时,系统默认执行最小 URL 校验,**拒绝 HTTP URL**,仅允许 HTTPS。要允许 HTTP URL(例如用于开发或内网测试),必须显式设置:
```yaml
security:
url_allowlist:
enabled: false # 禁用白名单检查
allow_insecure_http: true # 允许 HTTP URL(⚠️ 不安全)
```
**或通过环境变量:**
```bash
SECURITY_URL_ALLOWLIST_ENABLED=false
SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP=true
```
**允许 HTTP 的风险:**
- API 密钥和数据以**明文传输**(可被截获)
- 易受**中间人攻击 (MITM)**
- **不适合生产环境**
**适用场景:**
- ✅ 开发/测试环境的本地服务器(http://localhost)
- ✅ 内网可信端点
- ✅ 获取 HTTPS 前测试账号连通性
- ❌ 生产环境(仅使用 HTTPS)
**未设置此项时的错误示例:**
```
Invalid base URL: invalid url scheme: http
```
如关闭 URL 校验或响应头过滤,请加强网络层防护:
- 出站访问白名单限制上游域名/IP
- 阻断私网/回环/链路本地地址
- 强制仅允许 TLS 出站
- 在反向代理层移除敏感响应头
```bash
# 6. 运行应用
./sub2api
```
#### HTTP/2 (h2c) 与 HTTP/1.1 回退
后端明文端口默认支持 h2c,并保留 HTTP/1.1 回退用于 WebSocket 与旧客户端。浏览器通常不支持 h2c,性能收益主要在反向代理或内网链路。
**反向代理示例(Caddy):**
```caddyfile
transport http {
versions h2c h1
}
```
**验证:**
```bash
# h2c prior knowledge
curl --http2-prior-knowledge -I http://localhost:8080/health
# HTTP/1.1 回退
curl --http1.1 -I http://localhost:8080/health
# WebSocket 回退验证(需管理员 token)
websocat -H="Sec-WebSocket-Protocol: sub2api-admin, jwt.<ADMIN_TOKEN>" ws://localhost:8080/api/v1/admin/ops/ws/qps
```
#### 开发模式
```bash
# 后端(支持热重载)
cd backend
go run ./cmd/server
# 前端(支持热重载)
cd frontend
pnpm run dev
```
#### 代码生成
修改 `backend/ent/schema` 后,需要重新生成 Ent + Wire:
```bash
cd backend
go generate ./ent
go generate ./cmd/server
```
---
## 简易模式
简易模式适合个人开发者或内部团队快速使用,不依赖完整 SaaS 功能。
- 启用方式:设置环境变量 `RUN_MODE=simple`
- 功能差异:隐藏 SaaS 相关功能,跳过计费流程
- 安全注意事项:生产环境需同时设置 `SIMPLE_MODE_CONFIRM=true` 才允许启动
---
## Antigravity 使用说明
Sub2API 支持 [Antigravity](https://antigravity.so/) 账户,授权后可通过专用端点访问 Claude 和 Gemini 模型。
### 专用端点
| 端点 | 模型 |
|------|------|
| `/antigravity/v1/messages` | Claude 模型 |
| `/antigravity/v1beta/` | Gemini 模型 |
### Claude Code 配置示例
```bash
export ANTHROPIC_BASE_URL="http://localhost:8080/antigravity"
export ANTHROPIC_AUTH_TOKEN="sk-xxx"
```
### 混合调度模式
Antigravity 账户支持可选的**混合调度**功能。开启后,通用端点 `/v1/messages` 和 `/v1beta/` 也会调度该账户。
> **⚠️ 注意**:Anthropic Claude 和 Antigravity Claude **不能在同一上下文中混合使用**,请通过分组功能做好隔离。
### 已知问题
在 Claude Code 中,无法自动退出Plan Mode。(正常使用原生Claude Api时,Plan 完成后,Claude Code会弹出弹出选项让用户同意或拒绝Plan。)
解决办法:shift + Tab,手动退出Plan mode,然后输入内容 告诉 Claude Code 同意或拒绝 Plan
---
## 项目结构
```
sub2api/
├── backend/ # Go 后端服务
│ ├── cmd/server/ # 应用入口
│ ├── internal/ # 内部模块
│ │ ├── config/ # 配置管理
│ │ ├── model/ # 数据模型
│ │ ├── service/ # 业务逻辑
│ │ ├── handler/ # HTTP 处理器
│ │ └── gateway/ # API 网关核心
│ └── resources/ # 静态资源
│
├── frontend/ # Vue 3 前端
│ └── src/
│ ├── api/ # API 调用
│ ├── stores/ # 状态管理
│ ├── views/ # 页面组件
│ └── components/ # 通用组件
│
└── deploy/ # 部署文件
├── docker-compose.yml # Docker Compose 配置
├── .env.example # Docker Compose 环境变量
├── config.example.yaml # 二进制部署完整配置文件
└── install.sh # 一键安装脚本
```
## 免责声明
> **使用本项目前请仔细阅读:**
>
> :rotating_light: **服务条款风险**: 使用本项目可能违反 Anthropic 的服务条款。请在使用前仔细阅读 Anthropic 的用户协议,使用本项目的一切风险由用户自行承担。
>
> :book: **免责声明**: 本项目仅供技术学习和研究使用,作者不对因使用本项目导致的账户封禁、服务中断或其他损失承担任何责任。
---
## Star History
<a href="https://star-history.com/#Wei-Shaw/sub2api&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date" />
</picture>
</a>
---
## 许可证
本项目基于 [GNU 宽通用公共许可证 v3.0](LICENSE)(或更高版本)授权。
Copyright (c) 2026 Wesley Liddick
---
<div align="center">
**如果觉得有用,请给个 Star 支持一下!**
</div>
-643
View File
@@ -1,643 +0,0 @@
# Sub2API
<div align="center">
[![Go](https://img.shields.io/badge/Go-1.25.7-00ADD8.svg)](https://golang.org/)
[![Vue](https://img.shields.io/badge/Vue-3.4+-4FC08D.svg)](https://vuejs.org/)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15+-336791.svg)](https://www.postgresql.org/)
[![Redis](https://img.shields.io/badge/Redis-7+-DC382D.svg)](https://redis.io/)
[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED.svg)](https://www.docker.com/)
<a href="https://trendshift.io/repositories/21823" target="_blank"><img src="https://trendshift.io/api/badge/repositories/21823" alt="Wei-Shaw%2Fsub2api | Trendshift" width="250" height="55"/></a>
**サブスクリプションクォータ配分のための AI API ゲートウェイプラットフォーム**
[English](README.md) | [中文](README_CN.md) | 日本語
</div>
> **Sub2API が公式に使用しているドメインは `sub2api.org` と `pincc.ai` のみです。Sub2API の名称を使用している他のウェブサイトは、サードパーティによるデプロイやサービスであり、本プロジェクトとは一切関係がありません。ご利用の際はご自身で確認・判断をお願いします。**
---
## デモ
Sub2API をオンラインでお試しください: **[https://demo.sub2api.org/](https://demo.sub2api.org/)**
デモ用認証情報(共有デモ環境です。セルフホスト環境では**自動作成されません**):
| メールアドレス | パスワード |
|-------|----------|
| admin@sub2api.org | admin123 |
## 概要
Sub2API は、AI 製品のサブスクリプションから API クォータを配分・管理するために設計された AI API ゲートウェイプラットフォームです。ユーザーはプラットフォームが生成した API キーを通じて上流の AI サービスにアクセスでき、プラットフォームは認証、課金、負荷分散、リクエスト転送を処理します。
## 機能
- **マルチアカウント管理** - 複数の上流アカウントタイプ(OAuth、APIキー)をサポート
- **APIキー配布** - ユーザー向けの APIキーの生成と管理
- **精密な課金** - トークンレベルの使用量追跡とコスト計算
- **スマートスケジューリング** - スティッキーセッション付きのインテリジェントなアカウント選択
- **同時実行制御** - ユーザーごと・アカウントごとの同時実行数制限
- **レート制限** - 設定可能なリクエスト数およびトークンレート制限
- **内蔵決済システム** - EasyPay、Alipay、WeChat Pay、Stripe に対応。ユーザーのセルフサービスチャージが可能で、別途決済サービスのデプロイは不要([設定ガイド](docs/PAYMENT.md))
- **管理ダッシュボード** - 監視・管理のための Web インターフェース
- **外部システム連携** - 外部システム(チケット管理など)を iframe 経由で管理ダッシュボードに埋め込み可能
## ❤️ スポンサー
> [こちらに掲載しませんか?](mailto:support@pincc.ai)
<table>
<tr>
<td width="180" align="center" valign="middle"><a href="https://shop.pincc.ai/"><img src="assets/partners/logos/pincc-logo.png" alt="pincc" width="150"></a></td>
<td valign="middle"><b><a href="https://shop.pincc.ai/">PinCC</a></b> は Sub2API 上に構築された公式リレーサービスで、Claude Code、Codex、Gemini などの人気モデルへの安定したアクセスを提供します。デプロイやメンテナンスは不要で、すぐにご利用いただけます。</td>
</tr>
<tr>
<td width="180"><a href="https://www.packyapi.com/register?aff=sub2api"><img src="assets/partners/logos/packycode.png" alt="PackyCode" width="150"></a></td>
<td>PackyCode のご支援に感謝します!PackyCode は Claude Code、Codex、Gemini などのリレーサービスを提供する信頼性の高い API 中継プラットフォームです。本ソフト利用者向けに特別割引があります:<a href="https://www.packyapi.com/register?aff=sub2api">このリンク</a>で登録し、チャージ時に「sub2api」クーポンを入力すると 10% オフになります。</td>
</tr>
<tr>
<td width="180"><a href="https://ctok.ai"><img src="assets/partners/logos/ctok.png" alt="CTok" width="150"></a></td>
<td>CTok.ai のご支援に感謝します!CTok.ai はワンストップ AI プログラミングツールサービスプラットフォームの構築に取り組んでいます。Claude Code の専用プランと技術コミュニティサービスを提供し、Google Gemini や OpenAI Codex もサポートしています。丁寧に設計されたプランと専門的な技術コミュニティを通じて、開発者に安定したサービス保証と継続的な技術サポートを提供し、AI アシスト プログラミングを真の生産性向上ツールにします。<a href="https://ctok.ai">こちら</a>から登録!</td>
</tr>
<tr>
<td width="180"><a href="https://aigocode.com/invite/SUB2API"><img src="assets/partners/logos/aigocode.png" alt="AIGoCode" width="150"></a></td>
<td>AIGoCode のご支援に感謝します!AIGoCode は Claude Code、Codex、最新の Gemini モデルを統合したオールインワンプラットフォームで、安定的かつ効率的でコストパフォーマンスに優れた AI コーディングサービスを提供します。柔軟なサブスクリプションプラン、アカウント停止リスクゼロ、VPN 不要の直接アクセス、超高速レスポンスが特長です。AIGoCode は sub2api ユーザー向けに特別特典を用意しています:<a href="https://aigocode.com/invite/SUB2API">こちらのリンク</a>から登録すると、初回チャージ時に 10% のボーナスクレジットを追加プレゼント!</td>
</tr>
<tr>
<td width="180"><a href="https://code.silkapi.com/register?aff=SUB2API"><img src="assets/partners/logos/silkapi.png" alt="silkapi" width="150"></a></td>
<td>SilkAPI のご支援に感謝します!<a href="https://code.silkapi.com/register?aff=SUB2API">SilkAPI</a> は Sub2API をベースに構築された中継サービスで、高速かつ安定した Codex API 中継の提供に特化しています。</td>
</tr>
<tr>
<td width="180"><a href="https://ylscode.com/"><img src="assets/partners/logos/ylscode.png" alt="ylscode" width="150"></a></td>
<td>YLS Code のご支援に感謝します!<a href="https://ylscode.com/">YLS Code</a> は安全なエンタープライズグレードの Coding Agent 生産性サービスの構築に取り組んでおり、安定かつ高速な Codex / Claude / Gemini サブスクリプションサービスと従量課金 API の柔軟なプランを提供しています。期間限定で新規登録者に 3 日間の Codex 試用特典をプレゼント中!</td>
</tr>
<tr>
<td width="180"><a href="https://www.aicodemirror.com/register?invitecode=KMVZQM"><img src="assets/partners/logos/AICodeMirror.jpg" alt="AICodeMirror" width="150"></a></td>
<td>AICodeMirror のご支援に感謝します!AICodeMirror は Claude Code / Codex / Gemini CLI の公式高安定性リレーサービスを提供しており、エンタープライズグレードの同時実行、迅速な請求書発行、24時間年中無休の専属テクニカルサポートを備えています。Claude Code / Codex / Gemini の公式チャネルを定価の 38% / 2% / 9% で利用可能、チャージ時にはさらに追加割引!AICodeMirror は sub2api ユーザー向けに特別特典を提供中:<a href="https://www.aicodemirror.com/register?invitecode=KMVZQM">こちらのリンク</a>から登録すると、初回チャージが 20% オフ、法人のお客様は最大 25% オフ!</td>
</tr>
<tr>
<td width="180"><a href="https://shop.bmoplus.com/?utm_source=github"><img src="assets/partners/logos/bmoplus.jpg" alt="bmoplus" width="150"></a></td>
<td>本プロジェクトにご支援いただいた BmoPlus に感謝いたします!BmoPlusは、AIサブスクリプションのヘビーユーザー向けに特化した信頼性の高いAIアカウントサービスプロバイダーであり、安定した ChatGPT Plus / ChatGPT Pro (完全保証) / Claude Pro / Super Grok / Gemini Pro の公式代行チャージおよび即納アカウントを提供しています。こちらの<a href="https://shop.bmoplus.com/?utm_source=github">BmoPlus AIアカウント専門店/代行チャージ</a>経由でご登録・ご注文いただいたユーザー様は、GPTを 公式サイト価格の約1割(90% OFF) という驚異的な価格でご利用いただけます!</td>
</tr>
<tr>
<td width="180"><a href="https://bestproxy.com/?keyword=a2e8iuol"><img src="assets/partners/logos/bestproxy.png" alt="bestproxy" width="150"></a></td>
<td>Bestproxy のご支援に感謝します!<a href="https://bestproxy.com/?keyword=a2e8iuol">Bestproxy</a> は高純度の住宅IPを提供し、1アカウント1IP専有をサポートしています。実際の家庭ネットワークとフィンガープリント分離を組み合わせることで、リンク環境の分離を実現し、関連付けによるリスク管理の確率を低減します。</td>
</tr>
<tr>
<td width="180"><a href="https://pateway.ai/?ch=1tsfr51"><img src="assets/partners/logos/pateway.png" alt="pateway" width="150"></a></td>
<td>PatewayAI のご支援に感謝します!PatewayAI は、ヘビーAI開発者向けに公式直結を重視した高品質モデルAPIリレーサービスプロバイダーです。Claude 全シリーズおよび Codex シリーズモデルを提供し、100%公式ソースから直接供給 — 偽りなし、水増しなし、検証歓迎。課金は完全透明で、トークン単位の請求書を1件ずつ監査可能です。
エンタープライズ級の高同時接続にも対応し、法人顧客向けに専用管理プラットフォームを提供しています。法人顧客は正式な契約を締結し、請求書の発行が可能です。詳細は公式サイトでお問い合わせください。
<a href="https://pateway.ai/?ch=1tsfr51">こちらのリンク</a>から登録すると、$3 のトライアルクレジットがもらえます。チャージは最大40%オフ、友達紹介で双方にボーナス付与 — 紹介報酬は最大 $150。</td>
</tr>
<tr>
<td width="180"><a href="https://api.pptoken.org/register?promo=SUB2API"><img src="assets/partners/logos/pptoken.png" alt="pptoken" width="150"></a></td>
<td>PPToken.org のご支援に感謝します!<a href="https://api.pptoken.org/register?promo=SUB2API">PPToken.org</a> は GPT シリーズモデルの API 中継サービスを専門としており、Codex、Claude Code、OpenAI 互換クライアント、Gemini CLI などのツール接続をサポートしています。チャージは 1:1(1元=1ドル分のクレジット)、GPT モデルは最低 0.16 倍のレート倍率で、総合コストは公式価格の約 2.2% 、最速ファーストトークンは約1秒 — 開発者が低コスト・高速レスポンスで GPT モデル機能にアクセスするのに最適です。テクニカルサポート:24時間365日リアルな人間が対応(ボットではありません)、グループ内で @技術 すれば 10 分以内に返信。スポンサー特典:先着 200 名のユーザーが<a href="https://api.pptoken.org/register?promo=SUB2API">専用登録リンク</a>から登録し、プロモコード `SUB2API` を入力すると、Codex / Claude Code の無料トライアルクレジットを獲得できます — 最低利用額なし、カード登録不要。
</td>
</tr>
</table>
## エコシステム
Sub2API を拡張・統合するコミュニティプロジェクト:
| プロジェクト | 説明 | 機能 |
|---------|-------------|----------|
| ~~[Sub2ApiPay](https://github.com/touwaeriol/sub2apipay)~~ | ~~セルフサービス決済システム~~ | **内蔵済み** — 決済機能は Sub2API に統合されました。別途デプロイは不要です。[決済設定ガイド](docs/PAYMENT.md)をご参照ください |
| [sub2api-mobile](https://github.com/ckken/sub2api-mobile) | モバイル管理コンソール | ユーザー管理、アカウント管理、監視ダッシュボード、マルチバックエンド切り替えが可能なクロスプラットフォームアプリ(iOS/Android/Web)。Expo + React Native で構築 |
## 技術スタック
| コンポーネント | 技術 |
|-----------|------------|
| バックエンド | Go 1.25.7, Gin, Ent |
| フロントエンド | Vue 3.4+, Vite 5+, TailwindCSS |
| データベース | PostgreSQL 15+ |
| キャッシュ/キュー | Redis 7+ |
---
## Nginx リバースプロキシに関する注意
Sub2API(または CRS)を Nginx でリバースプロキシし、Codex CLI と組み合わせて使用する場合、Nginx の `http` ブロックに以下の設定を追加してください:
```nginx
underscores_in_headers on;
```
Nginx はデフォルトでアンダースコアを含むヘッダー(例: `session_id`)を破棄するため、マルチアカウント構成でのスティッキーセッションルーティングに支障をきたします。
---
## デプロイ
### 方法1: スクリプトによるインストール(推奨)
GitHub Releases からビルド済みバイナリをダウンロードするワンクリックインストールスクリプトです。
#### 前提条件
- Linux サーバー(amd64 または arm64)
- PostgreSQL 15+(インストール済みかつ稼働中)
- Redis 7+(インストール済みかつ稼働中)
- root 権限
#### インストール手順
```bash
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash
```
スクリプトは以下を実行します:
1. システムアーキテクチャの検出
2. 最新リリースのダウンロード
3. バイナリを `/opt/sub2api` にインストール
4. systemd サービスの作成
5. システムユーザーと権限の設定
#### インストール後の作業
```bash
# 1. サービスを起動
sudo systemctl start sub2api
# 2. 起動時の自動起動を有効化
sudo systemctl enable sub2api
# 3. ブラウザでセットアップウィザードを開く
# http://YOUR_SERVER_IP:8080
```
セットアップウィザードでは以下の設定を行います:
- データベース設定
- Redis 設定
- 管理者アカウントの作成
#### アップグレード
**管理ダッシュボード**の左上にある**アップデートを確認**ボタンをクリックすることで、ダッシュボードから直接アップグレードできます。
Web インターフェースでは以下が可能です:
- 新しいバージョンの自動確認
- ワンクリックでのアップデートのダウンロードと適用
- 必要に応じたロールバック
#### よく使うコマンド
```bash
# ステータスを確認
sudo systemctl status sub2api
# ログを表示
sudo journalctl -u sub2api -f
# サービスを再起動
sudo systemctl restart sub2api
# アンインストール
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/install.sh | sudo bash -s -- uninstall -y
```
---
### 方法2: Docker Compose(推奨)
PostgreSQL と Redis のコンテナを含む Docker Compose でデプロイします。
#### 前提条件
- Docker 20.10+
- Docker Compose v2+
#### クイックスタート(ワンクリックデプロイ)
自動デプロイスクリプトを使用して簡単にセットアップできます:
```bash
# デプロイ用ディレクトリを作成
mkdir -p sub2api-deploy && cd sub2api-deploy
# デプロイ準備スクリプトをダウンロードして実行
curl -sSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash
# サービスを起動
docker compose up -d
# ログを表示
docker compose logs -f sub2api
```
**スクリプトの動作内容:**
- `docker-compose.local.yml`(`docker-compose.yml` として保存)と `.env.example` をダウンロード
- セキュアな認証情報(JWT_SECRET、TOTP_ENCRYPTION_KEY、POSTGRES_PASSWORD)を自動生成
- 自動生成されたシークレットで `.env` ファイルを作成
- データディレクトリを作成(バックアップ・移行が容易なローカルディレクトリを使用)
- 生成された認証情報を参照用に表示
#### 手動デプロイ
手動でセットアップする場合:
```bash
# 1. リポジトリをクローン
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api/deploy
# 2. 環境設定ファイルをコピー
cp .env.example .env
# 3. 設定を編集(セキュアなパスワードを生成)
nano .env
```
**`.env` の必須設定:**
```bash
# PostgreSQL パスワード(必須)
POSTGRES_PASSWORD=your_secure_password_here
# JWT シークレット(推奨 - 再起動後もユーザーのログイン状態を保持)
JWT_SECRET=your_jwt_secret_here
# TOTP 暗号化キー(推奨 - 再起動後も二要素認証を維持)
TOTP_ENCRYPTION_KEY=your_totp_key_here
# オプション: 管理者アカウント
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=your_admin_password
# オプション: カスタムポート
SERVER_PORT=8080
```
**セキュアなシークレットの生成方法:**
```bash
# JWT_SECRET を生成
openssl rand -hex 32
# TOTP_ENCRYPTION_KEY を生成
openssl rand -hex 32
# POSTGRES_PASSWORD を生成
openssl rand -hex 32
```
```bash
# 4. データディレクトリを作成(ローカルバージョンの場合)
mkdir -p data postgres_data redis_data
# 5. すべてのサービスを起動
# オプション A: ローカルディレクトリバージョン(推奨 - 移行が容易)
docker compose -f docker-compose.local.yml up -d
# オプション B: 名前付きボリュームバージョン(シンプルなセットアップ)
docker compose up -d
# 6. ステータスを確認
docker compose -f docker-compose.local.yml ps
# 7. ログを表示
docker compose -f docker-compose.local.yml logs -f sub2api
```
#### デプロイバージョン
| バージョン | データストレージ | 移行 | 推奨用途 |
|---------|-------------|-----------|----------|
| **docker-compose.local.yml** | ローカルディレクトリ | ✅ 容易(ディレクトリ全体を tar) | 本番環境、頻繁なバックアップ |
| **docker-compose.yml** | 名前付きボリューム | ⚠️ docker コマンドが必要 | シンプルなセットアップ |
**推奨:** データ管理が容易な `docker-compose.local.yml`(スクリプトによるデプロイ)を使用してください。
#### アクセス
ブラウザで `http://YOUR_SERVER_IP:8080` を開いてください。
管理者パスワードが自動生成された場合は、ログで確認できます:
```bash
docker compose -f docker-compose.local.yml logs sub2api | grep "admin password"
```
#### アップグレード
```bash
# 最新イメージをプルしてコンテナを再作成
docker compose -f docker-compose.local.yml pull
docker compose -f docker-compose.local.yml up -d
```
#### 簡単な移行(ローカルディレクトリバージョン)
`docker-compose.local.yml` を使用している場合、新しいサーバーへの移行が簡単です:
```bash
# 移行元サーバーにて
docker compose -f docker-compose.local.yml down
cd ..
tar czf sub2api-complete.tar.gz sub2api-deploy/
# 新しいサーバーに転送
scp sub2api-complete.tar.gz user@new-server:/path/
# 移行先サーバーにて
tar xzf sub2api-complete.tar.gz
cd sub2api-deploy/
docker compose -f docker-compose.local.yml up -d
```
#### よく使うコマンド
```bash
# すべてのサービスを停止
docker compose -f docker-compose.local.yml down
# 再起動
docker compose -f docker-compose.local.yml restart
# すべてのログを表示
docker compose -f docker-compose.local.yml logs -f
# すべてのデータを削除(注意!)
docker compose -f docker-compose.local.yml down
rm -rf data/ postgres_data/ redis_data/
```
---
### 方法3: ソースからビルド
開発やカスタマイズのためにソースコードからビルドして実行します。
#### 前提条件
- Go 1.21+
- Node.js 18+
- PostgreSQL 15+
- Redis 7+
#### ビルド手順
```bash
# 1. リポジトリをクローン
git clone https://github.com/Wei-Shaw/sub2api.git
cd sub2api
# 2. pnpm をインストール(未インストールの場合)
npm install -g pnpm
# 3. フロントエンドをビルド
cd frontend
pnpm install
pnpm run build
# 出力先: ../backend/internal/web/dist/
# 4. フロントエンドを組み込んだバックエンドをビルド
cd ../backend
go build -tags embed -o sub2api ./cmd/server
# 5. 設定ファイルを作成
cp ../deploy/config.example.yaml ./config.yaml
# 6. 設定を編集
nano config.yaml
```
> **注意:** `-tags embed` フラグはフロントエンドをバイナリに組み込みます。このフラグがない場合、バイナリはフロントエンド UI を提供しません。
**`config.yaml` の主要設定:**
```yaml
server:
host: "0.0.0.0"
port: 8080
mode: "release"
database:
host: "localhost"
port: 5432
user: "postgres"
password: "your_password"
dbname: "sub2api"
redis:
host: "localhost"
port: 6379
password: ""
jwt:
secret: "change-this-to-a-secure-random-string"
expire_hour: 24
default:
user_concurrency: 5
user_balance: 0
api_key_prefix: "sk-"
rate_multiplier: 1.0
```
### Sora ステータス(一時的に利用不可)
> ⚠️ Sora 関連の機能は、上流統合およびメディア配信の技術的問題により一時的に利用できません。
> 現時点では本番環境で Sora に依存しないでください。
> 既存の `gateway.sora_*` 設定キーは予約されていますが、これらの問題が解決されるまで有効にならない場合があります。
`config.yaml` では追加のセキュリティ関連オプションも利用できます:
- `cors.allowed_origins` - CORS 許可リスト
- `security.url_allowlist` - 上流/価格/CRS ホストの許可リスト
- `security.url_allowlist.enabled` - URL バリデーションの無効化(注意して使用)
- `security.url_allowlist.allow_insecure_http` - バリデーション無効時に HTTP URL を許可
- `security.url_allowlist.allow_private_hosts` - プライベート/ローカル IP アドレスを許可
- `security.response_headers.enabled` - 設定可能なレスポンスヘッダーフィルタリングを有効化(無効時はデフォルトの許可リストを使用)
- `security.csp` - Content-Security-Policy ヘッダーの制御
- `billing.circuit_breaker` - 課金エラー時にフェイルクローズ
- `server.trusted_proxies` - X-Forwarded-For パースの有効化
- `turnstile.required` - リリースモードでの Turnstile 必須化
**⚠️ セキュリティ警告: HTTP URL 設定**
`security.url_allowlist.enabled=false` の場合、システムはデフォルトで最小限の URL バリデーションを行い、**HTTP URL を拒否**して HTTPS のみを許可します。HTTP URL を許可するには(開発環境や内部テスト用など)、以下を明示的に設定する必要があります:
```yaml
security:
url_allowlist:
enabled: false # 許可リストチェックを無効化
allow_insecure_http: true # HTTP URL を許可(⚠️ セキュリティリスクあり)
```
**または環境変数で設定:**
```bash
SECURITY_URL_ALLOWLIST_ENABLED=false
SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP=true
```
**HTTP を許可するリスク:**
- API キーとデータが**平文**で送信される(傍受の危険性)
- **中間者攻撃(MITM)**を受けやすい
- **本番環境には不適切**
**HTTP を使用すべき場面:**
- ✅ ローカルサーバーでの開発・テスト(http://localhost)
- ✅ 信頼できるエンドポイントを持つ内部ネットワーク
- ✅ HTTPS 取得前のアカウント接続テスト
- ❌ 本番環境(HTTPS のみを使用)
**この設定なしで表示されるエラー例:**
```
Invalid base URL: invalid url scheme: http
```
URL バリデーションまたはレスポンスヘッダーフィルタリングを無効にする場合は、ネットワーク層を強化してください:
- 上流ドメイン/IP のエグレス許可リストを適用
- プライベート/ループバック/リンクローカル範囲をブロック
- TLS のみのアウトバウンドトラフィックを強制
- プロキシで機密性の高い上流レスポンスヘッダーを除去
```bash
# 6. アプリケーションを実行
./sub2api
```
#### 開発モード
```bash
# バックエンド(ホットリロード付き)
cd backend
go run ./cmd/server
# フロントエンド(ホットリロード付き)
cd frontend
pnpm run dev
```
#### コード生成
`backend/ent/schema` を編集した場合、Ent + Wire を再生成してください:
```bash
cd backend
go generate ./ent
go generate ./cmd/server
```
---
## シンプルモード
シンプルモードは、フル SaaS 機能を必要とせず、素早くアクセスしたい個人開発者や社内チーム向けに設計されています。
- 有効化: 環境変数 `RUN_MODE=simple` を設定
- 違い: SaaS 関連機能を非表示にし、課金プロセスをスキップ
- セキュリティに関する注意: 本番環境では `SIMPLE_MODE_CONFIRM=true` も設定する必要があります
---
## Antigravity サポート
Sub2API は [Antigravity](https://antigravity.so/) アカウントをサポートしています。認証後、Claude および Gemini モデル用の専用エンドポイントが利用可能になります。
### 専用エンドポイント
| エンドポイント | モデル |
|----------|-------|
| `/antigravity/v1/messages` | Claude モデル |
| `/antigravity/v1beta/` | Gemini モデル |
### Claude Code の設定
```bash
export ANTHROPIC_BASE_URL="http://localhost:8080/antigravity"
export ANTHROPIC_AUTH_TOKEN="sk-xxx"
```
### ハイブリッドスケジューリングモード
Antigravity アカウントはオプションの**ハイブリッドスケジューリング**をサポートしています。有効にすると、汎用エンドポイント `/v1/messages` および `/v1beta/` も Antigravity アカウントにリクエストをルーティングします。
> **⚠️ 警告**: Anthropic Claude と Antigravity Claude は**同じ会話コンテキスト内で混在させることはできません**。グループを使用して適切に分離してください。
### 既知の問題
Claude Code では、Plan Mode を自動的に終了できません。(通常、ネイティブの Claude API を使用する場合、計画が完了すると Claude Code はユーザーに計画を承認または拒否するオプションをポップアップ表示します。)
**回避策**: `Shift + Tab` を押して手動で Plan Mode を終了し、計画を承認または拒否するためのレスポンスを入力してください。
---
## プロジェクト構成
```
sub2api/
├── backend/ # Go バックエンドサービス
│ ├── cmd/server/ # アプリケーションエントリ
│ ├── internal/ # 内部モジュール
│ │ ├── config/ # 設定
│ │ ├── model/ # データモデル
│ │ ├── service/ # ビジネスロジック
│ │ ├── handler/ # HTTP ハンドラー
│ │ └── gateway/ # API ゲートウェイコア
│ └── resources/ # 静的リソース
│
├── frontend/ # Vue 3 フロントエンド
│ └── src/
│ ├── api/ # API 呼び出し
│ ├── stores/ # 状態管理
│ ├── views/ # ページコンポーネント
│ └── components/ # 再利用可能なコンポーネント
│
└── deploy/ # デプロイファイル
├── docker-compose.yml # Docker Compose 設定
├── .env.example # Docker Compose 用環境変数
├── config.example.yaml # バイナリデプロイ用フル設定ファイル
└── install.sh # ワンクリックインストールスクリプト
```
## 免責事項
> **本プロジェクトをご利用の前に、以下をよくお読みください:**
>
> :rotating_light: **利用規約違反のリスク**: 本プロジェクトの使用は Anthropic の利用規約に違反する可能性があります。使用前に Anthropic のユーザー契約をよくお読みください。本プロジェクトの使用に起因するすべてのリスクは、ユーザー自身が負うものとします。
>
> :book: **免責事項**: 本プロジェクトは技術的な学習および研究目的のみで提供されています。作者は、本プロジェクトの使用によるアカウント停止、サービス中断、その他の損失について一切の責任を負いません。
---
## スター履歴
<a href="https://star-history.com/#Wei-Shaw/sub2api&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Wei-Shaw/sub2api&type=Date" />
</picture>
</a>
---
## ライセンス
本プロジェクトは [GNU Lesser General Public License v3.0](LICENSE)(またはそれ以降のバージョン)の下でライセンスされています。
Copyright (c) 2026 Wesley Liddick
---
<div align="center">
**このプロジェクトが役に立ったら、ぜひスターをお願いします!**
</div>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

+6164
View File
File diff suppressed because it is too large Load Diff