Skip to content

Commit 9980912

Browse files
committed
Update README to include a link to the Chinese version
1 parent 733a508 commit 9980912

File tree

2 files changed

+162
-1
lines changed

2 files changed

+162
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Gitlab Bot
1+
# Gitlab Bot | [中文](README_ZH.md)
22

33
![Docker Image Version (latest by date)](https://img.shields.io/docker/v/coolbeevip/gitlab-bot/latest)
44
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

README_ZH.md

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
# Gitlab Bot | [中文](README.cn.md)
2+
3+
![Docker镜像版本(最新)](https://img.shields.io/docker/v/coolbeevip/gitlab-bot/latest)
4+
[![许可证](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
5+
6+
这是一个适用于 GitLab(13.2+) 的机器人,利用 [webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html) 来自动化某些任务:
7+
8+
#### 在合并请求中验证提交者的电子邮件域名。
9+
10+
> ![](docs/image-review-invalid-email.png)
11+
12+
#### 在合并请求中验证提交者的电子邮件用户名与用户名是否匹配。
13+
14+
> ![](docs/image-review-username-match-email.png)
15+
16+
#### 只有当源分支与现有问题相关联时,才能合并合并请求。
17+
18+
> ![](docs/image-review-issue-required.png)
19+
20+
#### 确认在合并请求中是否指定了里程碑。
21+
22+
> ![](docs/image-review-milestone-required.png)
23+
24+
#### 验证合并请求中的提交标题是否符合 [约定提交规范](https://www.conventionalcommits.org/)
25+
26+
> ![](docs/image-review-invalid-message.png)
27+
28+
#### 检查成功
29+
30+
> ![](docs/image-review-succeed.png)
31+
32+
#### 使用 /bot-release-note 命令为指定的里程碑生成发布说明。
33+
34+
> ![](docs/image-release-note.png)
35+
36+
#### 通过 OpenAI 生成 GitLab 合并请求的摘要。
37+
38+
> ![](docs/image-ai-summary.png)
39+
40+
## GitLab 事件支持
41+
42+
* 推送事件(尚未支持)
43+
* 问题事件
44+
* 评论事件
45+
* 提交
46+
* 合并请求
47+
* 问题
48+
* 代码片段(尚未支持)
49+
* 合并请求事件
50+
* 维基页面事件(尚未支持)
51+
* 标签事件(尚未支持)
52+
* 管道事件(尚未支持)
53+
* 构建事件(尚未支持)
54+
55+
## 如何使用
56+
57+
启动 Gitlab Bot 实例非常简单:
58+
59+
> 在 Docker 版本 19 中,使用 “--security-opt seccomp:unconfined” 选项运行容器时,可以禁用 seccomp 过滤器,允许进程执行任何系统调用。
60+
61+
```shell
62+
docker run --rm \
63+
-e BOT_GITLAB_USERNAME="你的 Gitlab 用户名" \
64+
-e BOT_GITLAB_URL="你的 Gitlab URL" \
65+
-e BOT_GITLAB_TOKEN="你的 Gitlab 访问令牌" \
66+
-p 9998:9998 \
67+
coolbeevip/gitlab-bot
68+
```
69+
70+
## 环境变量
71+
72+
**`BOT_GITLAB_USERNAME` / `BOT_GITLAB_URL` / `BOT_GITLAB_TOKEN`**
73+
74+
这些变量用于配置 GitLab 机器人与 GitLab API 的认证。请提供以下信息:
75+
76+
- `BOT_GITLAB_USERNAME`:GitLab 上机器人的账号用户名。(**确保创建一个新用户并使用该用户的访问令牌,而不是组访问令牌或项目访问令牌。**
77+
- `BOT_GITLAB_URL`:机器人将与之交互的 GitLab 实例的 URL。
78+
- `BOT_GITLAB_TOKEN`:用于通过 GitLab API 验证机器人的令牌。
79+
80+
**`BOT_LANGUAGE`**
81+
82+
默认支持中文(zh)和英语(en)两种语言。
83+
84+
**`BOT_HOST` / `BOT_PORT`**
85+
86+
这些变量指定机器人运行的主机和端口。默认情况下,机器人将在 IP 地址 0.0.0.0 和端口号 9998 上运行。
87+
88+
**`BOT_GIT_EMAIL_DOMAIN`**
89+
90+
该配置指定在进行 Git 提交时使用的电子邮件域名。例如:
91+
92+
```shell
93+
BOT_GIT_EMAIL_DOMAIN=gmail.com
94+
```
95+
96+
**`BOT_GIT_COMMIT_SUBJECT_MAX_LENGTH`**
97+
98+
允许的 Git 提交主题的最大字符长度为 100,这是默认值。
99+
100+
**`BOT_GIT_COMMIT_SUBJECT_REGEX` / `BOT_GIT_COMMIT_SUBJECT_EXAMPLES_MARKDOWN` / `BOT_GIT_COMMIT_SUBJECT_REGEX_ENABLED`**
101+
102+
用于验证 Git 提交消息的正则表达式模式 [约定提交规范](https://www.conventionalcommits.org/) 和示例提交主题。以下是使用示例:
103+
104+
```shell
105+
BOT_GIT_COMMIT_SUBJECT_REGEX_ENABLED="true"
106+
BOT_GIT_COMMIT_SUBJECT_REGEX="^(fix|feat|docs|style|refactor|test|chore|build|ci): .*$"
107+
BOT_GIT_COMMIT_SUBJECT_EXAMPLES_MARKDOWN="* feat: 添加认证模块\n* fix: 解决登录无法正常工作的问题\n* docs: 更新 README 以包含安装说明\n* style: 根据编码规范格式化代码\n* refactor: 提取可重复使用的文件上传函数\n* test: 为支付处理模块添加单元测试\n* build: 升级到 Node.js 版本 14.0\n* ci: 更新 Travis CI 配置以涵盖更好的测试\n* chore: 更新 .gitignore 文件"
108+
```
109+
110+
这些变量用于强制 Git 仓库的一致提交消息格式。将 `BOT_GIT_COMMIT_SUBJECT_REGEX_ENABLED` 设置为 "true" 可启用使用 `BOT_GIT_COMMIT_SUBJECT_REGEX` 中指定的正则表达式模式进行提交主题验证。
111+
112+
`BOT_GIT_COMMIT_SUBJECT_REGEX` 包含一个正则表达式模式,匹配符合约定提交规范的提交主题。此模式确保提交主题以特定类型(例如 "fix"、"feat"、"docs")开头,后面跟着冒号和空格,然后是任何额外的描述。**合并提交不包含在此验证中。**
113+
114+
`BOT_GIT_COMMIT_SUBJECT_EXAMPLES_MARKDOWN` 提供了一系列遵循指定格式的示例提交主题。这些示例可以在编写提交消息时作为指导。
115+
116+
**`BOT_GITLAB_MERGE_REQUEST_MILESTONE_REQUIRED`**
117+
118+
在 GitLab 中,创建合并请求时必须设置一个里程碑。默认情况下,此要求处于禁用状态。
119+
120+
**`BOT_GITLAB_MERGE_REQUEST_ISSUE_REQUIRED`**
121+
122+
只有当源分支与现有问题相关联时,才能合并合并请求。默认情况下,此要求处于禁用状态。
123+
124+
**`OPENAI_API_BASE` / `OPENAI_API_KEY` / `OPENAI_API_MODEL`**
125+
126+
这些参数用于连接 OPENAI 模型。
127+
128+
**`GOOGLE_API_KEY` / `GOOGLE_API_MODEL`**
129+
130+
这些参数用于连接 Google 模型。
131+
132+
**`AZURE_OPENAI_API_KEY` / `AZURE_OPENAI_API_VERSION` / `AZURE_OPENAI_MODEL` / `AZURE_OPENAI_ENDPOINT`**
133+
134+
这些参数用于连接 Azure OpenAI 模型。
135+
136+
**`AI_PROVIDER`**
137+
138+
该参数指定要使用的 AI 模型后端。默认值为 `openai`,但您可以切换为 `google`(用于 Google 模型)或 `azure-openai`(用于 Azure OpenAI 模型)。
139+
140+
**`BOT_GITLAB_MERGE_REQUEST_SUMMARY_ENABLED` / `BOT_GITLAB_MERGE_REQUEST_SUMMARY_LANGUAGE`**
141+
142+
`BOT_GITLAB_MERGE_REQUEST_SUMMARY_ENABLED` 参数控制系统是否生成 GitLab 合并请求的摘要。默认设置为 `true`
143+
`BOT_GITLAB_MERGE_REQUEST_SUMMARY_LANGUAGE` 参数指定生成的合并请求摘要的语言。默认设置为 `English`。但您可以根据需要更改为任何首选的语言代码。
144+
145+
**`BOT_GITLAB_MERGE_REQUEST_EMAIL_USERNAME_NOT_MATCH_ENABLED`**
146+
147+
只有当电子邮件用户名(“@”前的部分)与提交作者的名称匹配时,才能合并合并请求。默认情况下,此要求处于禁用状态。
148+
149+
**`BOT_GIT_COMMIT_MESSAGE_CHECK_ENABLED`**
150+
151+
只有当提交消息遵循特定格式时,才能合并合并请求。当设置为 `true` 时,机器人将根据 `BOT_GIT_COMMIT_SUBJECT_REGEX` 环境变量定义的指定正则表达式验证提交消息。
152+
153+
**`BOT_GITLAB_MERGE_REQUEST_APPROVAL_ENABLED`**
154+
155+
该参数控制机器人是否自动批准通过所有检查的合并请求。默认设置为 `true`,允许机器人自动批准合并请求。将其设置为 `false` 则禁用自动批准,需要对所有合并请求进行手动批准。
156+
157+
**`BOT_GITLAB_MERGE_REQUEST_AIREVIEW_LABEL_ENABLED`**
158+
159+
该参数控制向合并请求添加新状态标签 "AI Review" 的功能,从而更好地跟踪 AI 辅助的代码审查。当启用时,当生成 AI 摘要时,会自动添加该标签。更新合并请求时标签会被移除,但 AI 功能被禁用。
160+
161+
默认情况下,此功能是启用的。如要禁用,请将 `BOT_GITLAB_MERGE_REQUEST_AIREVIEW_LABEL_ENABLED` 环境变量设置为 "false"。该功能特别适用于依赖 AI 辅助代码审查的项目,以确保所有代码更改在合并之前进行彻底审查。

0 commit comments

Comments
 (0)