share-copilot/README.md
2023-09-13 16:25:36 +08:00

183 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[中文](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
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 version
#cd到main.go源码目录
cd /share-copilot/source
go build
```
***
# 二、使用现成:
### 1.安装
```sh
git clone https://gitlab.com/luyoyu/share-copilot.git
```
```sh
cd share-copilot
```
```sh
bash install.sh
```
### 2.配置
##### 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.启动
```
scop r --运行 [Esc退出]
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)