[中文](README.md) / [English](README-EN.md) ------ 测试版已经支持全部接口代理, 所有也就是代码提示也走代理, 还在测试中。 ![输入图片说明](readme/screenshots.gif) *** # share-copilot - 作为代理服务器,中转copilot插件的API的请求 - 支持vscode插件和jetbrains插件 - 支持多用户共享一个token - 优化请求逻辑,降低suspended概率(别万人骑基本不会) ![软件系统网络架构.png](https://img1.imgtp.com/2023/09/10/qTL8A2u9.png) *** # 一、自行编译: ``` 测试环境:Linux4.18.0-305.3.1.el8.x86_64 GNU/Linux 需要 go环境 出问题自行chatgpt ``` ```sh git clone https://gitee.com/chuangxxt/share-copilot.git wget https://dl.google.com/go/go1.21.1.linux-amd64.tar.gz tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz vim ~/.bashrc #添加下列环境 export PATH=$PATH:/usr/local/go/bin export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin #使生效环境变量 source ~/.bashrc #验证go配置 go version #cd到main.go源码目录 cd /share-copilot/source go build ``` *** # 二、使用现成: ### 1.安装 ```sh wget https://gitee.com/chuangxxt/share-copilot/releases/download/1.0.2/share-copilot-linux-amd64.zip ``` ```sh unzip share-copilot-linux-amd64.zip ``` ```sh cd share-copilot ``` ```sh chmod +x share-copilot ``` ```sh bash install.sh ``` ### 2.配置 ```sh vim config.json #修改配置信息 ``` ##### 2.1 config.json文件说明 ```js domain//监听域名或ip 可用nginx反代 host //ip port //端口 80或443 certPath//公钥路径-443必须 keyPath//私钥路径-443必须 github_api_url//默认不改 token//自己的副驾驶token,可放多个,请求时随机使用 //登录插件后在%userprofile%\AppData\Local\github-copilot\host.json ghu_开头 verification//自定义验证 ``` ##### 2.2 示例 ```json { "server": { "domain": "example.com", "host": "0.0.0.0", "port": 443, "certPath":"./example.pem", "keyPath":"./example.pem" }, "copilot_config":{ "github_api_url": "https://api.github.com/copilot_internal/v2/token", "token":[ "yours_token_1", "yours_token_2", "yours_token_3" ]}, "verification":"" } ``` 格式不能错,不确定的去这里验证 ->https://www.json.cn/ ### 3.启动 ```sh scop r #运行 [Ctrl+c退出] scop rb #后台运行 scop st #停止 scop v #查看是否运行 ``` ### 4.完整例子: ##### 4.1 服务端配置修改config.json ```json { "server": { "domain": "api.example.com", "host": "0.0.0.0", "port": 443, "certPath":"./example.pem", "keyPath":"./example.pem" }, "copilot_config":{ "github_api_url": "https://api.github.com/copilot_internal/v2/token", "token":[ "ghu_xMNAYLcJAPqAfiGoobrWffkJoNcGMVJtETKA", "ghu_GZgKFwraHorAxXXUvsUclOhxiYERPsSJeNuF", "ghu_SPUTCLvkMKoeMstPJmhSlYsYvCojhkFjGubl" ]}, "verification":"i_am_free" } ``` ##### 4.2 运行成功截图: ![微信截图_20230910202900.png](https://img1.imgtp.com/2023/09/10/TbXIaziq.png) [Jetbrains]:用于Jetbrains插件 [Vscode]: 用于Vscode插件 [User Request]: 插件请求代理服务器成功次数--统计次数在00:00:00归零 [GithubApi request]: 代理服务器请求githubApi次数 `正常情况下GithubApi request小于User Request,因为请求的Token 几十分钟才过期` ------ ##### 4.3本地配置修改: **以windows为例** - **jetbrains插件修改:%userprofile%\AppData\Local\github-copilot\host.json** ```json { "github.com":{ "user":"suibian",//随意填写 "oauth_token":"i_am_free",//与上面verification对应 "dev_override":{ "copilot_token_url":"https://api.example.com/copilot_internal/v2/token" //你的地址 } } } ``` - **vscode插件修改:%userprofile%\\.vscode\extensions\github.copilot-xxxx\dist\extension.js** ```js //添加下列代码,注意vscode插件更新需要重新添加,jetbrains则不用 process.env.GITHUB_TOKEN="i_am_free"; //与上面verification对应 process.env.GITHUB_API_URL="https://api.example.com"; //你的地址 process.env.CODESPACES="true"; process.env.GITHUB_SERVER_URL="https://github.com"; ``` ------ ##### **4.4测试成功:** ![demo2.png](https://img1.imgtp.com/2023/09/09/FHDNLixL.png)