-
Notifications
You must be signed in to change notification settings - Fork 1.2k
155 lines (147 loc) · 6.12 KB
/
Copy pathissue-helper.yml
File metadata and controls
155 lines (147 loc) · 6.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: Issue Helper
on:
issues:
types: [opened, labeled]
# 权限配置
permissions:
issues: write
jobs:
issue-handler:
runs-on: ubuntu-latest
steps:
# 自动欢迎
- name: Welcome Comment
if: github.event_name == 'issues' && github.event.action == 'opened'
uses: actions/github-script@v7
with:
script: |
const login = context.payload.issue.user.login;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: [
`👋 您好 @${login},感谢提交 Issue!`,
`🚀 我们已经收到您的反馈,会尽快确认你的问题`,
``,
`在等待回复期间,您可以:`,
` - 📖 查看 [项目文档](https://github.com/SPlayer-Dev/SPlayer/blob/dev/README.md)`,
` - 🔍 搜索 [现有 Issues](https://github.com/SPlayer-Dev/SPlayer/issues) 查看是否有类似问题`,
].join('\n'),
});
# 自动关闭(不会修复 / 无效 / 重复)
- name: Auto Close
if: github.event.action == 'labeled' && contains(fromJSON('["不会修复", "无效", "重复"]'), github.event.label.name)
uses: actions/github-script@v7
with:
script: |
const labelName = context.payload.label.name;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: [
`抱歉,由于被标记为 **${labelName}**,该 Issue 将自动关闭`,
`如果您认为该 Issue 仍然有效,请创建新的 Issue,我们会尽快确认并修复`,
].join('\n'),
});
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
state: 'closed',
state_reason: 'not_planned',
});
# 有问题回复
- name: Auto Reply
if: github.event.action == 'labeled' && github.event.label.name == '有问题'
uses: actions/github-script@v7
with:
script: |
const login = context.payload.issue.user.login;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: [
`🤝 您好 @${login},感谢您的反馈!`,
`由于缺少复现步骤,我们无法重现问题,因此无法修复`,
`请确保您已经详细描述了问题的复现步骤,维护团队会尽快查看`,
].join('\n'),
});
# 已确认 BUG(移除「有问题 / 过期」标签并回复)
- name: Auto Confirm BUG
if: github.event.action == 'labeled' && github.event.label.name == 'BUG'
uses: actions/github-script@v7
with:
script: |
const login = context.payload.issue.user.login;
for (const name of ['有问题', '过期']) {
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
name,
});
} catch (error) {
if (error.status !== 404) throw error;
}
}
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `🤝 您好 @${login},感谢您的反馈!我们已经确认该问题,并将在下一个版本中修复`,
});
# 无法复现
- name: Auto Unreproducible
if: github.event.action == 'labeled' && github.event.label.name == '无法复现'
uses: actions/github-script@v7
with:
script: |
const login = context.payload.issue.user.login;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: [
`🤝 您好 @${login},感谢您的反馈!`,
`由于无法复现问题,我们无法修复`,
`请确保您已经详细描述了问题的复现步骤,维护团队会尽快查看`,
].join('\n'),
});
# 已修复(移除「BUG」标签、回复并关闭)
- name: Auto Fixed
if: github.event.action == 'labeled' && github.event.label.name == '已修复'
uses: actions/github-script@v7
with:
script: |
const login = context.payload.issue.user.login;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: [
`🎉 您好 @${login},感谢您的反馈!`,
`该问题已在当前开发版或下一个正式版中修复完成。`,
`若您觉得仍存在问题,请创建新的 Issue,我们会尽快确认并修复`,
].join('\n'),
});
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
name: 'BUG',
});
} catch (error) {
if (error.status !== 404) throw error;
}
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
state: 'closed',
state_reason: 'completed',
});