已合并
optimize the robot docs and update cla link #16
fuyong创建于 2025年11月10日
optimize the robot docs and update cla link #16
已合并
fuyong创建于 2025年11月10日
19 个文件变更+151-458
@@ -37,4 +37,5 @@ CI未及时触发通常有两种情况:
37 37 
38- 第一种可能是网络原因或系统任务调度原因,导致从代码仓库发出的webhook通知事件没有及时到达目标服务,所以没有触发CI构建;这种情况可以通过在PR评论去评论 **compile** 重新触发。38- 第一种可能是网络原因或系统任务调度原因,导致从代码仓库发出的webhook通知事件没有及时到达目标服务,所以没有触发CI构建;这种情况可以通过在PR评论去评论 **compile** 重新触发。
39 39
40-- 第二种可能是代码仓库创建以后短时间内提交PR,此时jenkins服务器侧尚未创建CI构建工程,所以触发不到CI构建,评论 **compile** 也不生效,这种情况请稍等一下系统自动构建工程。40+- 第二种可能是代码仓库创建以后短时间内提交PR,此时尚未创建CI构建工程,所以触发不到CI构建,评论 **compile** 也不生效,这种情况请稍等一下系统自动构建工程。
41+
@@ -1,455 +0,0 @@
1-****
2- 
3-## Ascend社区评论命令一览
4- 
5-Ascend社区中所有项目均由Bot维护,这意味着开发人员可以在每个Pull Request或者Issue下面通过评论触发Bot命令。
6- 
7-<table class="command">
8- <thead>
9- <tr>
10- <th>命令</th>
11- <th width="15%">示例</th>
12- <th width="10%">使用范围</th>
13- <th>描述</th>
14- <th>面向对象</th>
15- <th>使用仓库</th>
16- </tr>
17- </thead>
18- <tbody>
19- <tr>
20- <td>
21- /check-cla
22- </td>
23- <td style="white-space:nowrap;">
24- /check-cla
25- </td>
26- <td>
27- <strong>Pull Request</strong>
28- </td>
29- <td>
30- 强制重新检查Pull Request的CLA状态。
31- 如果Pull Request的提交者已经签署了CLA协议,则<strong>ascend-cla/yes</strong>标签将会被添加到Pull Request中;如果没有,则标签<strong>ascend-cla/no</strong>将被添加到Pull Request中。
32- </td>
33- <td>
34- 所有开发者
35- </td>
36- <td>
37- 所有仓库
38- </td>
39- </tr>
40- <tr>
41- <td>
42- /cla cancel
43- </td>
44- <td style="white-space:nowrap;">
45- /cla cancel
46- </td>
47- <td>
48- <strong>Pull Request</strong>
49- </td>
50- <td>
51- 强制删除<strong>ascend-cla/yes</strong>标签。
52- </td>
53- <td>
54- 仓库管理员
55- </td>
56- <td>
57- 所有仓库
58- </td>
59- </tr>
60- <tr>
61- <td>
62- compile
63- </td>
64- <td style="white-space:nowrap;">
65- compile
66- </td>
67- <td>
68- <strong>Pull Request</strong>
69- </td>
70- <td>
71- 触发编译CodeArts流水线。
72- 编译通过后,该Pull Request会被打上<strong>ci-pipeline-passed</strong>的标签。若编译失败,该Pull Request会被打上<strong>ci-pipeline-failed</strong>的标签。
73- </td>
74- <td>
75- 所有开发者
76- </td>
77- <td>
78- MindIE相关仓库
79- </td>
80- </tr>
81- <tr>
82- <td>
83- compile
84- </td>
85- <td style="white-space:nowrap;">
86- compile
87- </td>
88- <td>
89- <strong>Pull Request</strong>
90- </td>
91- <td>
92- 触发编译CodeArts流水线。
93- 编译通过后,该Pull Request会被打上<strong>ci-pipeline-passed</strong>的标签。若编译失败,该Pull Request会被打上<strong>ci-pipeline-failed</strong>的标签。
94- </td>
95- <td>
96- 所有开发者
97- </td>
98- <td>
99- PTA相关仓库
100- </td>
101- </tr>
102- <tr>
103- <td>
104- get-log
105- </td>
106- <td style="white-space:nowrap;">
107- get-log
108- </td>
109- <td>
110- <strong>Pull Request</strong>
111- </td>
112- <td>
113- 获取通过compile触发的CodeArts流水线构建任务状态。
114- 所有构建任务通过后,该Pull Request会被打上<strong>ci-pipeline-passed</strong>的标签。若构建失败,该Pull Request会被打上<strong>ci-pipeline-failed</strong>的标签,可查看相关构建日志。
115- </td>
116- <td>
117- 所有开发者
118- </td>
119- <td>
120- PTA相关仓库
121- </td>
122- </tr>
123- <tr>
124- <td>
125- retry
126- </td>
127- <td style="white-space:nowrap;">
128- retry
129- </td>
130- <td>
131- <strong>Pull Request</strong>
132- </td>
133- <td>
134- 重试CodeArts流水线。
135- 若编译失败,该Pull Request会被打上<strong>ci-pipeline-failed</strong>的标签,在不修改代码的情况下,从流水线失败的地方重新触发。
136- </td>
137- <td>
138- 所有开发者
139- </td>
140- <td>
141- PTA相关仓库
142- </td>
143- </tr>
144- <tr>
145- <td>
146- stop
147- </td>
148- <td style="white-space:nowrap;">
149- stop
150- </td>
151- <td>
152- <strong>Pull Request</strong>
153- </td>
154- <td>
155- 停止已经触发的CodeArts流水线,该Pull Request会被打上<strong>ci-pipeline-failed</strong>的标签。
156- </td>
157- <td>
158- 所有开发者
159- </td>
160- <td>
161- PTA相关仓库
162- </td>
163- </tr>
164- <tr>
165- <td>
166- /lgtm
167- </td>
168- <td style="white-space:nowrap;">
169- /lgtm
170- </td>
171- <td>
172- <strong>Pull Request</strong>
173- </td>
174- <td>
175- 添加用于代表代码已经评审过的标签 <strong>lgtm</strong>。
176- </td>
177- <td>
178- 仓库所属sig组的reviewers
179- </td>
180- <td>
181- 所有仓库
182- </td>
183- </tr>
184- <tr>
185- <td>
186- /lgtm cancel
187- </td>
188- <td style="white-space:nowrap;">
189- /lgtm cancel
190- </td>
191- <td>
192- <strong>Pull Request</strong>
193- </td>
194- <td>
195- 移除用于代表代码已经评审过的标签<strong>lgtm</strong>。
196- </td>
197- <td>
198- 仓库所属sig组的reviewers
199- </td>
200- <td>
201- 所有仓库
202- </td>
203- </tr>
204- <tr>
205- <td>
206- /approve
207- </td>
208- <td style="white-space:nowrap;">
209- /approve
210- </td>
211- <td>
212- <strong>Pull Request</strong>
213- </td>
214- <td>
215- 添加用于代表committers同意合并的标签 <strong>lgtm</strong>。
216- </td>
217- <td>
218- 仓库所属sig组的committers
219- </td>
220- <td>
221- 所有仓库
222- </td>
223- </tr>
224- <tr>
225- <td>
226- /approve cancel
227- </td>
228- <td style="white-space:nowrap;">
229- /approve cancel
230- </td>
231- <td>
232- <strong>Pull Request</strong>
233- </td>
234- <td>
235- 移除用于代表committers同意合并的标签<strong>approved</strong>。
236- </td>
237- <td>
238- 仓库所属sig组的committers
239- </td>
240- <td>
241- 所有仓库
242- </td>
243- </tr>
244- <tr>
245- <td>
246- /check-pr
247- </td>
248- <td style="white-space:nowrap;">
249- /check-pr
250- </td>
251- <td>
252- <strong>Pull Request</strong>
253- </td>
254- <td>
255- 检查Pull Request中的标签是否满足条件,如果满足条件,则合并Pull Request。
256- </td>
257- <td>
258- 任何人都可以在Pull Request上触发此命令
259- </td>
260- <td>
261- 所有仓库
262- </td>
263- </tr>
264- <tr>
265- <td>
266- /merge
267- </td>
268- <td style="white-space:nowrap;">
269- /merge
270- </td>
271- <td>
272- <strong>Pull Request</strong>
273- </td>
274- <td>
275- 添加用于代表branch_keeper同意合并的标签 <strong>keeper_approved</strong>。
276- </td>
277- <td>
278- 仓库对应分支的branch_keeper
279- </td>
280- <td>
281- 所有仓库
282- </td>
283- </tr>
284- <tr>
285- <td>
286- /kind **
287- </td>
288- <td style="white-space:nowrap;">
289- /kind bug,
290- </br>**可接受大小写字母、数字、中划线、下划线,
291- </br>对于下面的**规则通用
292- </td>
293- <td>
294- <strong>Pull Request</strong>
295- </br><strong>Issue</strong>
296- </td>
297- <td>
298- 添加标签 <strong>kind/bug</strong>。
299- </td>
300- <td>
301- 仓库管理员可以直接添加;其他人可以使用评论添加标签,如kind/AI,前提是仓库中必须存在此标签,否则添加不上
302- </td>
303- <td>
304- 所有仓库
305- </td>
306- </tr>
307- <tr>
308- <td>
309- /remove-kind **
310- </td>
311- <td style="white-space:nowrap;">
312- /remove-kind bug
313- </td>
314- <td>
315- <strong>Pull Request</strong>
316- </br><strong>Issue</strong>
317- </td>
318- <td>
319- 移除标签 <strong>kind/bug</strong>。
320- </td>
321- <td>
322- 所有人
323- </td>
324- <td>
325- 所有仓库
326- </td>
327- </tr>
328- <tr>
329- <td>
330- /priority **
331- </td>
332- <td style="white-space:nowrap;">
333- /priority high
334- </td>
335- <td>
336- <strong>Pull Request</strong>
337- </br><strong>Issue</strong>
338- </td>
339- <td>
340- 添加标签 <strong>priority/high</strong>。
341- </td>
342- <td>
343- 仓库管理员可以直接添加;其他人可以使用评论添加标签,如kind/AI,前提是仓库中必须存在此标签,否则添加不上
344- </td>
345- <td>
346- 所有仓库
347- </td>
348- </tr>
349- <tr>
350- <td>
351- /remove-priority **
352- </td>
353- <td style="white-space:nowrap;">
354- /remove-priority high
355- </td>
356- <td>
357- <strong>Pull Request</strong>
358- </br><strong>Issue</strong>
359- </td>
360- <td>
361- 移除标签 <strong>priority/high</strong>。
362- </td>
363- <td>
364- 所有人
365- </td>
366- <td>
367- 所有仓库
368- </td>
369- </tr>
370- <tr>
371- <td>
372- /sig **
373- </td>
374- <td style="white-space:nowrap;">
375- /sig AI
376- </td>
377- <td>
378- <strong>Pull Request</strong>
379- </br><strong>Issue</strong>
380- </td>
381- <td>
382- 添加标签 <strong>sig/AI</strong>。
383- </td>
384- <td>
385- 仓库管理员可以直接添加;其他人可以使用评论添加标签,如kind/AI,前提是仓库中必须存在此标签,否则添加不上
386- </td>
387- <td>
388- 所有仓库
389- </td>
390- </tr>
391- <tr>
392- <td>
393- /remove-sig **
394- </td>
395- <td style="white-space:nowrap;">
396- /remove-sig AI
397- </td>
398- <td>
399- <strong>Pull Request</strong>
400- </br><strong>Issue</strong>
401- </td>
402- <td>
403- 移除标签 <strong>sig/AI</strong>。
404- </td>
405- <td>
406- 所有人
407- </td>
408- <td>
409- 所有仓库
410- </td>
411- </tr>
412- <tr>
413- <td>
414- /assign [[@]...]
415- </td>
416- <td style="white-space:nowrap;">
417- /assign
418- </br>/assign @ascend-robot
419- </td>
420- <td>
421- </br><strong>Issue</strong>
422- </td>
423- <td>
424- 为Issue指派一位负责人。
425- </td>
426- <td>
427- 所有人
428- </td>
429- <td>
430- 所有仓库
431- </td>
432- </tr>
433- <tr>
434- <td>
435- /unassign [[@]...]
436- </td>
437- <td style="white-space:nowrap;">
438- /unassign
439- </br>/unassign @ascend-robot
440- </td>
441- <td>
442- </br><strong>Issue</strong>
443- </td>
444- <td>
445- 取消Issue指派的负责人。
446- </td>
447- <td>
448- 所有人
449- </td>
450- <td>
451- 所有仓库
452- </td>
453- </tr>
454- </tbody>
455-</table>
@@ -0,0 +1,147 @@
1+****
2+## 🚀 Ascend社区Bot用户交互流程
3+ 
4+Ascend社区中所有项目均由Bot维护,这意味着开发人员可以在每个Pull Request或者Issue下面可以通过评论触发Bot命令, 主要交互流程图如下:
5+ 
6+![alt text](images/robot.png)
7+ 
8+## 🎯 如需了解详细的命令,可参考下方详细表格
9+ 
10+| 命令 | 示例 | 使用范围 | 描述 | 面向对象 | 使用仓库 |
11+|--|--|--|--|--|--|
12+| /check-cla | /check-cla | Pull Request | 强制重新检查Pull Request的CLA状态。如果Pull Request的提交者已经签署了CLA协议,则ascend-cla/yes标签将会被添加到Pull Request中;如果没有,则标签ascend-cla/no将被添加到Pull Request中。 | 所有开发者 | 所有仓库 |
13+| /cla cancel | cancel /cla cancel | Pull Request | 强制删除ascend-cla/yes标签。 | 仓库管理员 | 所有仓库 |
14+| compile | compile | Pull Request | 触发编译CodeArts流水线。编译通过后,该Pull Request会被打上ci-pipeline-passed的标签。若编译失败,该Pull Request会被打上ci-pipeline-failed的标签。 | 所有开发者 | 所有仓库 |
15+| system-test | system-test | Pull Request | 触发前冒烟。前冒烟通过后,该Pull Request会被打上st-success的标签。若前冒烟失败,该Pull Request会被打上st-fail的标签。 | 所有开发者 | MindIE-SD仓库 |
16+| get-log | get-log | Pull Request | 获取通过compile触发的CodeArts流水线构建任务状态。所有构建任务通过后,该Pull Request会被打上ci-pipeline-passed的标签。若构建失败,该Pull Request会被打上ci-pipeline-failed的标签,可查看相关构建日志。 | 所有开发者 | PTA相关仓库 |
17+| retry | retry | Pull Request | 重试CodeArts流水线。 若编译失败,该Pull Request会被打上ci-pipeline-failed的标签,在不修改代码的情况下,从流水线失败的地方重新触发。 | 所有开发者 | PTA相关仓库 |
18+| stop | stop | Pull Request | 停止已经触发的CodeArts流水线,该Pull Request会被打上ci-pipeline-failed的标签。 | 所有开发者 | PTA相关仓库 |
19+| /lgtm | /lgtm | Pull Request | 添加用于代表代码已经评审过的标签 lgtm。 | 仓库所属sig组的reviewers | 所有仓库 |
20+| /lgtm cancel | /lgtm cancel | Pull Request | 移除用于代表代码已经评审过的标签 lgtm。 | 仓库所属sig组的reviewers | 所有仓库 |
21+| /approve | /approve | Pull Request | 添加用于代表committers同意合并的标签 approved。 | 仓库所属sig组的committers | 所有仓库 |
22+| /approve cancel | /approve cancel | Pull Request | 移除用于代表committers同意合并的标签 approved。 | 仓库所属sig组的committers | 所有仓库 |
23+| /check-pr | /check-pr | Pull Request | 检查Pull Request中的标签是否满足条件,如果满足条件,则合并Pull Request。 | 任何人都可以在Pull Request上触发此命令 | 所有仓库 |
24+| /merge | /merge | Pull Request | 添加用于代表branch_keeper同意合并的标签 keeper_approved。 | 仓库对应分支的branch_keeper | 所有仓库 |
25+| /kind ** | /kind bug, **可接受大小写字母、数字、中划线、下划线,对于下面的规则通用** | Pull Request <br> Issue | 添加标签 kind/bug。 | 仓库管理员可以直接添加;其他人可以使用评论添加标签,如kind/AI,前提是仓库中必须存在此标签,否则添加不上 | 所有仓库 |
26+| /remove-kind ** | /remove-kind bug | Pull Request <br> Issue | 移除标签 kind/bug。 | 所有人 | 所有仓库 |
27+| /priority ** | /priority high | Pull Request <br> Issue | 添加标签 priority/high。 | 仓库管理员可以直接添加;其他人可以使用评论添加标签,如kind/AI,前提是仓库中必须存在此标签,否则添加不上 | 所有仓库 |
28+| /remove-priority ** | /remove-priority high | Pull Request <br> Issue | 移除标签 priority/high。 | 所有人 | 所有仓库 |
29+| /sig ** | /sig AI | Pull Request <br> Issue | 添加标签 sig/AI。 | 仓库管理员可以直接添加;其他人可以使用评论添加标签,如kind/AI,前提是仓库中必须存在此标签,否则添加不上 | 所有仓库 |
30+| /remove-sig ** | /remove-sig AI | Pull Request <br> Issue | 移除标签 sig/AI。 | 所有人 | 所有仓库 |
31+| /assign [[@]...] | /assign <br> /assign @ascend-robot | Issue | 为Issue指派一位负责人。 | 所有人 | 所有仓库 |
32+| /unassign [[@]...] | /assign <br> /assign @ascend-robot | Issue | 取消Issue指派的负责人。 | 所有人 | 所有仓库 |
33+ 
34+ 
35+## 🔍 FAQ
36+ 
37+#### 1. **请问签署cla协议遇到问题,需要怎么处理?**
38+ 
39+请参考[cla使用指南](../cla/cla使用指南.md)
40+ 
41+#### 2. **请问PR评论/lgtm和/approve后,没有自动打上lgtm和approved标签,需要怎么处理?**
42+1. 首先请查看确认评论/lgtm和approve的人是否是对应模块的reviewer和committer,完整的reviewer和committer名单可以在PR的第一条评论点击对应的链接查看,如下图所示:
43+
44+ ![alt text](images/image-12.png)
45+ 
46+ **注意:** 需要仔细对比评论人的gitcode-id 和 sig-info.yaml里填写的gitcode-id,并且id区分大小写;若id不一致,会导致无法打上对应的标签,请提PR修改sig-info.yaml里对应的id,PR合入10min后权限生效,权限生效后,重新给PR评论/lgtm和/approve即可
47+ 
48+2. 然后检查评论各模块/lgtm和/approve数量是否足够,一般情况下PR涉及的每个模块都需要1个reviewer评论/lgtm和1个committer评论/approve才能打上lgtm标签和approved标签;
49+ 
50+3. 对比检查评论/lgtm和/approve的时间和PR最新的一个commit的时间,如果评论时间早于commit的时间,则评论无效,如下图所示:
51+ 
52+ ![alt text](images/image-13.png)
53+ 
54+ ![alt text](images/image-14.png)
55+ 
56+ **问题原因:** 造成这个现象出现,一般是开发者提交代码使用的机器设置的时间与实际时间不一致导致的
57+ 
58+ **推荐解决办法:** 重新设置机器的时间与实际时间保持一致,然后本地代码仓回退至上一个commit,重新提交代码并push
59+ 
60+4. 如果以上情况都检查过确认没有问题,但还是没有打上对应的lgtm和approved标签,可能是网络波动导致的,请耐心等待1min然后重新评论/lgtm或者/approve触发打标签即可(除了PR作者和机器人,任意一人评论都可以)。
61+ 
62+#### 3. **请问PR具备足够标签后并没有自动合入,需要怎么处理?**
63+ 
64+PR具备足够标签后并没有自动合入,机器人会评论相应的提示信息,主要分为以下几种情况:
65+1. 评论提示信息是"Do not meet the condition of Fast-forward Merge, please do the rebase."
66+ 
67+ ![alt text](images/image-1.png)
68+
69+ **问题原因:** 仓库PR设置的合并模式是只有满足 fast - forward 条件(指 pull request 中的 commits 都是基于目标分支最新的 commit 提交点进行提交的)下才能执行合并操作,否则会提示开发人员进行 rebase 操作。
70+
71+ **推荐解决办法有如下两个(二选一):**
72+ - PR的作者基于目标分支最新的commit rebase代码;
73+ - 或者联系仓库管理员修改仓库设置里的PR合并模式,如下图所示:
74+ 
75+ ![alt text](images/image-2.png)
76+ 
77+ **规避措施:** 仓库管理员在创建仓库时,参考上图所示设置好PR合并模式。
78+ 
79+2. 评论提示信息是"You do not have permissions to push into target branch"
80+ 
81+ ![alt text](images/image-3.png)
82+
83+ **问题原因:** 机器人账号没有合入该分支PR的权限。
84+
85+ **推荐解决办法如下:**
86+ 联系仓库的管理员修改仓库设置,授予机器人账号合入对应分支PR的权限,如下图所示:
87+ 
88+ ![alt text](images/image-4.png)
89+ 
90+ **规避措施:** 仓库管理员在创建仓库时,参考上图所示授予机器人账号合入对应分支PR的权限。
91+ 
92+3. 评论提示信息是"Failed to squash. You can try the following methods to solve the problem..."
93+ 
94+ ![alt text](images/image-5.png)
95+ 
96+ **问题原因:** PR的代码和目标分支的最新代码存在冲突。
97+
98+ **推荐解决办法如下**:
99+ 请开发者参考评论提示解决冲突后重新push代码。
100+
101+ **规避措施:** 开发者在提交代码前先pull主仓的最新代码,在本地代码仓确认没有代码冲突后再提交代码。
102+ 
103+4. 评论提示信息是"Something went wrong during merge: git update-ref: exit status 128..."
104+
105+ ![alt text](images/image-6.png)
106+
107+ **问题原因:** 同一时间、同一个仓库、同一个分支另外一笔PR正在合入,产生的并发问题。
108+
109+ **推荐解决办法如下:**
110+ 请开发者耐心等待1min左右,再次评论/check-pr触发PR合入,可以解决此问题。
111+ 
112+5. 评论提示信息是"The MR can not be merged, because of this MR is work in process."
113+
114+ **问题原因:** PR标题以[WIP]开头,PR无法被合入。
115+
116+ **推荐解决办法如下:**
117+ 删除PR标题上的[WIP],如下图所示:
118+
119+ ![alt text](images/image-7.png)
120+ 
121+ **规避措施:** PR标题不要以[WIP]开头。
122+ 
123+6. 评论提示信息是"The MR can not be merged, because of CodeReview discussion not resolved."
124+
125+ **问题原因:** PR存在未解决的评审意见,PR无法被合入。
126+
127+ **推荐解决办法如下:**
128+ 请开发者先解决评审意见,如下图所示:
129+ 
130+ ![alt text](images/image-8.png)
131+ 
132+ **规避措施:** PR合入前请开发者确认PR的所有评审意见已经被解决。
133+ 
134+7. 评论提示信息是"The following labels are not ready..."
135+ 
136+ ![alt text](images/image-9.png)
137+ 
138+ ![alt text](images/image-10.png)
139+
140+ **问题原因:** 非机器人账号添加的标签是无效的
141+
142+ **推荐解决办法如下:**
143+ 先移除不是机器人打上的标签,然后重新评论对应的指令触发机器人打上对应的标签
144+ 
145+ ![alt text](images/image-11.png)
146+ 
147+ **规避措施:** 请开发者不要自己添加lgtm、approved、ascend-cla/yes、ci-pipeline-passed等标签
@@ -2,5 +2,5 @@
2 2 
3| 服务名称 | 服务访问地址 | 使用文档 |3| 服务名称 | 服务访问地址 | 使用文档 |
4| - | -| - |4| - | -| - |
5-|CLA|https://clasign.osinfra.cn/sign/gitee_ascend-1611222220829317930|NA|5+|CLA|https://clasign.osinfra.cn/sign/690ca9ddf91c03dee6082ab1|[cla使用指南.md](./cla/cla使用指南.md)|
6-|机器人服务|NA|[robot-command.md](./robot/robot-command.md)|6+|机器人服务|NA|[robot使用指南.md](./robot/robot使用指南.md)|