GitHub Bot for QQ
10K+
✨ GitHub Bot for QQ ✨
在 QQ 内 订阅, 查看, 处理 GitHub Issue and Pull Request 。
主要功能有 (持续更新中):
| 功能 | 描述 |
|---|---|
/状态 或 /status | 获取当前机器人及所在服务器运行状态,支持分布式多节点 |
/install [check|revoke] | 安装 GitHub APP 集成(将用于 Issue/PR, WebHook 等管理) |
/auth [check|revoke] | 授权 APP 以进行用户快捷操作 |
/bind [owner/repo] | 群绑定指定仓库以进行仓库快捷操作 |
/subscribe owner/repo event[/action] | 订阅指定仓库的指定事件(支持多事件订阅) |
/search [code|repo|user] query | 搜索 GitHub 代码、仓库、用户 |
/contribution | 获取最近一年的贡献图 |
owner/repo[#number] 或 GitHub 链接 | 快捷查看仓库 Issue/PR, PR diff 等 |
/link, /repo | 获取 Issue/PR、仓库链接 |
/readme | 查看仓库 README |
/license | 获取仓库许可证 |
/release [tag] | 获取仓库最新 Release,或指定 tag 的 Release |
/deployment | 获取仓库 Deployment 列表 |
/star, /unstar | 快捷 star |
/diff | 查看 PR diff |
/comment | 评论 Issue/PR |
/label [label ...], /unlabel [label] | 添加删除标签 |
/close [reason], /reopen | 关闭或重新开启 PR |
/approve [message] | 批准 PR |
/merge [commit], /squash [commit], /rebase | 合并 PR |
| sentry | 日志监控,上报错误 |
| health check | 访问路由地址 /health 即可进行服务状态自检 |
支持的事件根据 GitHub APP 配置的 Webhook 事件列表而定,可以自行选择和更改,推荐选择的事件有:
| 事件类型 | 事件描述 |
|---|---|
| Issues | 任何开启、关闭、修改等 Issue 相关操作 |
| Issue Comment | 创建、修改、删除 Issue/PR 的评论 |
| Pull Request | 任何开启、关闭、修改等 PR 相关操作 |
| Pull Request Review | PR Review 相关操作 |
| Star | star、unstar 仓库 |
| Push | push commit 到仓库 |
| Release | 创建、修改、发布等 Release 相关操作 |
Warning
请注意,[go-cqhttp](https://github.com/Mrs4s/go-cqhttp) 的部署方式已不再提供说明,请自行配置连接。 如果使用 docker 部署,可以参考使用 `docker compose --profile go-cqhttp up -d` 命令启动。
部署要求
Docker & Docker Compose
curl -sSL https://get.docker.com/ | sh
1+ CPU Core
1+ GB RAM
能够访问 GitHub API 的网络环境
对于内存大小的限制,可以通过修改 docker-compose.yml 中的 deploy.resources.limits.memory 来调整,由于采用了 playwright(chromium) 渲染图片,不限制内存可能会导致渲染大图时直接卡死服务器。
注册 GitHub App 配置 GitHub App:
http://<your-domain>/github/authhttp://<your-domain>/github/webhooks/<app_id>,可在 app 创建完成后添加Contents (Read Only), Deployments (Read Only), Issues (Read and Write), Pull requests (Read and Write), Metadata (Read Only) 和 Starring (Read and Write)Expire user authorization tokens 或在 app optional feature 中 opt-outRequest user authorization (OAuth) during installationapp_id, client_id,生成并下载 private_key, client_secret 备用下载 docker-compose.yml 至任意空目录
在 docker-compose.yml 同目录下创建 .env 并写入如下配置项:
# 可选,参考 nonebot superuser 格式
SUPERUSERS=["机器人管理号"]
# 必填,可以访问到机器人的公网地址,用于上传图片
FILEHOST_URL_BASE=https://<your-domain>
# onebot
# 可选
ONEBOT_ACCESS_TOKEN=your_access_token
# 可选
ONEBOT_SECRET=your_secret
# 可选,QQ 机器人配置项
QQ_BOTS='
[
{
"id": "xxx",
"token": "xxx",
"secret": "xxx",
"intent": {
"at_messages": false,
"guild_messages": true,
"direct_message": true
}
}
]
'
# 必填,postgres 数据库配置项
# 如果使用 docker compose / helm 部署则无需修改
POSTGRES_USER=bot
POSTGRES_PASSWORD=postgres_password
POSTGRES_DB=bot
# 必填,redis 数据库配置项
# 如果使用 docker compose / helm 部署则无需修改
REDIS_PASSWORD=redis_password
# 可选,Sentry DSN 网址
SENTRY_DSN=https://xxxxxxxx.sentry.io/123123
# Github App 配置
# 可选,图片主题,light/dark
GITHUB_THEME=light
# 必填,github app 配置
# 可选,oauth app 配置,用于没有权限时的 fallback
# private_key 是从 github app 配置中下载的私钥
# 私钥开头结尾应与示例一致,注意每行需要引号与逗号,结尾不应有逗号
# webhook_secret 与 github app 配置中的 webhook secret 保持一致,如果没有设置则删除
GITHUB_APPS='
[
{
"app_id": "",
"private_key": [
"-----BEGIN RSA PRIVATE KEY-----",
"~~ YOUR PRIVATE KEY HERE ~~",
"-----END RSA PRIVATE KEY-----"
],
"client_id": "",
"client_secret": "",
"webhook_secret": ""
},
{
"client_id": "",
"client_secret": ""
}
]
'
docker-compose.yml中的配置视情况修改,如无必要请勿修改!
启动
在目录下执行 docker compose up -d (旧版方式 docker-compose up -d) 即可。
待完善,可自行尝试使用 k8s/bot/ 目录下的 helm chart
下载或克隆 k8s/bot/ 目录,新建文件 values.yaml,参考目录下的 values.yaml 填写覆盖配置项,然后执行 helm install -n <botnamespace> --create-namespace -f values.yaml <botname> ./k8s/bot 即可。其中 <botnamespace> 为命名空间,<botname> 为部署应用名称,请自行修改。
使用 Codespaces (Dev Container) 一键配置开发环境 (Python、Redis、Postgres):
修改 .env.dev 文件中的部分配置项,然后执行 python bot.py 即可。
如需连接到 Redis 或 Postgres 数据库调试,请确保 VSCode 已正确映射端口 (必要时可以重新映射 6379、5432 端口),使用本地工具远程连接即可。
Content type
Image
Digest
sha256:783c8701e…
Size
897.8 MB
Last updated
1 day ago
docker pull cscs181/qq-github-bot:sha-f7c68ec