mirror of
https://gitea.com/Lydanne/issues-helper.git
synced 2025-08-19 18:25:58 +08:00
Compare commits
25 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b7db679f4b | ||
![]() |
0cbadbacfa | ||
![]() |
1ce7be88a0 | ||
![]() |
53dda7f0e4 | ||
![]() |
026e812e04 | ||
![]() |
986730477b | ||
![]() |
9984ee0402 | ||
![]() |
dae9d88636 | ||
![]() |
7879d79201 | ||
![]() |
ed1da6607e | ||
![]() |
c70fbba1bd | ||
![]() |
ffe8047e9a | ||
![]() |
d8f67aa451 | ||
![]() |
c604486551 | ||
![]() |
80c1fcca98 | ||
![]() |
dc73f4f963 | ||
![]() |
da4725492d | ||
![]() |
7668c4b549 | ||
![]() |
b769c20e3f | ||
![]() |
44240d2ab3 | ||
![]() |
da1f8da3d4 | ||
![]() |
1cf278b531 | ||
![]() |
09b55c2859 | ||
![]() |
c81901f651 | ||
![]() |
a2273a4c3b |
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -8,11 +8,11 @@ First of all, thank you for your contribution! 😄
|
||||
- [ ] 新特性提交 / New feature
|
||||
- [ ] bug 修复 / Fix bug
|
||||
- [ ] 样式优化 / Style optimization
|
||||
- [ ] 包体积优化 / Package size optimization
|
||||
- [ ] 性能优化 / Performance optimization
|
||||
- [ ] 代码风格优化 / Code style optimization
|
||||
- [ ] 性能优化 / Performance optimization
|
||||
- [ ] 构建优化 / Build optimization
|
||||
- [ ] 网站、文档、Demo 改进 / Website, documentation, demo improvements
|
||||
- [ ] 重构代码或样式 / Refactor code or style
|
||||
- [ ] 测试相关 / Test related
|
||||
- [ ] 其他 / Other
|
||||
|
||||
@@ -42,7 +42,6 @@ Describe changes from the user side, and list all potential break changes or oth
|
||||
| 🇺🇸 English | |
|
||||
| 🇨🇳 Chinese | |
|
||||
|
||||
|
||||
### ☑️ 请求合并前的自查清单 / Self Check before Merge
|
||||
|
||||
⚠️ 请自检并全部**勾选全部选项**。/ Please check all items below before review. ⚠️
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -18,7 +18,7 @@ yarn-error.log*
|
||||
|
||||
# dependencies
|
||||
node_modules
|
||||
yarn.lock
|
||||
# yarn.lock
|
||||
package-lock.json
|
||||
|
||||
# local env files
|
||||
|
@@ -1,4 +1,4 @@
|
||||
export default {
|
||||
base: '/',
|
||||
publicPath: '/',
|
||||
publicPath: '/'
|
||||
};
|
||||
|
25
.umirc.ts
25
.umirc.ts
@@ -11,6 +11,7 @@ export default defineConfig({
|
||||
logo:
|
||||
'https://avatars1.githubusercontent.com/u/73879334?s=200&v=4',
|
||||
exportStatic: {},
|
||||
ssr: {},
|
||||
outputPath: 'docs-dist',
|
||||
hash: true,
|
||||
base: `/${name}/`,
|
||||
@@ -28,6 +29,7 @@ export default defineConfig({
|
||||
{ title: '基 础', path: '/base' },
|
||||
{ title: '进 阶', path: '/advanced' },
|
||||
{ title: '更新日志', path: '/changelog' },
|
||||
{ title: '国内镜像', path: 'https://issues-helper.gitee.io' },
|
||||
{ title: 'GitHub', path: 'https://github.com/actions-cool/issues-helper' },
|
||||
],
|
||||
'en-US': [
|
||||
@@ -45,9 +47,13 @@ export default defineConfig({
|
||||
children: ['/guide/index', '/guide/start'],
|
||||
},
|
||||
{
|
||||
title: '🎁 参 考',
|
||||
title: '🎁 参 考',
|
||||
path: '/guide/ref',
|
||||
},
|
||||
{
|
||||
title: '🎗 记 录',
|
||||
path: '/guide/note',
|
||||
},
|
||||
{
|
||||
title: '💬 FAQ',
|
||||
path: '/guide/faq',
|
||||
@@ -59,24 +65,17 @@ export default defineConfig({
|
||||
children: ['/guide/index', '/guide/start'],
|
||||
},
|
||||
{
|
||||
title: '🎁 Reference',
|
||||
title: '🎁 Reference',
|
||||
path: '/guide/ref',
|
||||
},
|
||||
{
|
||||
title: '🎗 Note',
|
||||
path: '/guide/note',
|
||||
},
|
||||
{
|
||||
title: '💬 FAQ',
|
||||
path: '/guide/faq',
|
||||
},
|
||||
],
|
||||
},
|
||||
styles: [
|
||||
`
|
||||
.markdown table {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
.__dumi-default-code-block + table {
|
||||
margin-top: 16px;
|
||||
}
|
||||
`,
|
||||
]
|
||||
});
|
||||
|
59
CHANGELOG.md
Normal file
59
CHANGELOG.md
Normal file
@@ -0,0 +1,59 @@
|
||||
## v1.8
|
||||
|
||||
`2021.01.07`
|
||||
|
||||
- [#31](https://github.com/actions-cool/issues-helper/pull/31)
|
||||
- refactor: split content
|
||||
- feat: add `remove-labels` for duplicate
|
||||
- docs: optimize website
|
||||
|
||||
## v1.7
|
||||
|
||||
`2021.01.02`
|
||||
|
||||
- [#27](https://github.com/actions-cool/issues-helper/pull/27)
|
||||
- feat: add `month-statistics`
|
||||
- fix: query issues less because pages max 100
|
||||
- fix: js nested `require`
|
||||
|
||||
## v1.6
|
||||
|
||||
`2020.12.30`
|
||||
|
||||
- perf: optimize duplicate. [#24](https://github.com/actions-cool/issues-helper/pull/24)
|
||||
|
||||
## v1.5
|
||||
|
||||
`2020.12.30`
|
||||
|
||||
- feat: add `mark-duplicate`. [#23](https://github.com/actions-cool/issues-helper/pull/23)
|
||||
|
||||
## v1.4
|
||||
|
||||
`2020.12.29`
|
||||
|
||||
- fix: perfect `inactive-day` check. [#22](https://github.com/actions-cool/issues-helper/pull/22)
|
||||
|
||||
## v1.3
|
||||
|
||||
`2020.12.28`
|
||||
|
||||
- feat: add welcome. [#19](https://github.com/actions-cool/issues-helper/pull/19)
|
||||
|
||||
## v1.2
|
||||
|
||||
`2020.12.25`
|
||||
|
||||
- feat: add check-issue & remove labels. [#12](https://github.com/actions-cool/issues-helper/pull/12)
|
||||
|
||||
## v1.1
|
||||
|
||||
`2020.12.24`
|
||||
|
||||
- fix: yml not support array. [#11](https://github.com/actions-cool/issues-helper/pull/11)
|
||||
|
||||
## v1
|
||||
|
||||
`2020.12.23`
|
||||
|
||||
🎉 First release.
|
543
README.en-US.md
543
README.en-US.md
@@ -12,7 +12,7 @@
|
||||
|
||||
A GitHub Action that easily helps you automatically manage issues
|
||||
|
||||
[Online documentation](https://actions-cool.github.io/issues-helper) | [Changelog](https://github.com/actions-cool/issues-helper/blob/main/docs/log.md)
|
||||
[Online documentation](https://actions-cool.github.io/issues-helper) | [Changelog](https://github.com/actions-cool/issues-helper/blob/main/CHANGELOG.md)
|
||||
|
||||
## 😎 Why use GitHub Action?
|
||||
|
||||
@@ -34,6 +34,7 @@ When the following list does not have the features you want, you can submit it i
|
||||
- [`create-issue`](#create-issue)
|
||||
- [`delete-comment`](#delete-comment)
|
||||
- [`lock-issue`](#lock-issue)
|
||||
- [`mark-duplicate`](#mark-duplicate)
|
||||
- [`open-issue`](#open-issue)
|
||||
- [`remove-assignees`](#remove-assignees)
|
||||
- [`remove-labels`](#remove-labels)
|
||||
@@ -42,12 +43,13 @@ When the following list does not have the features you want, you can submit it i
|
||||
- [`update-comment`](#update-comment)
|
||||
- [`update-issue`](#update-issue)
|
||||
- [`welcome`](#welcome)
|
||||
- ⭐ Advanced
|
||||
- 🌟 Advanced
|
||||
- [`check-inactive`](#check-inactive)
|
||||
- [`check-issue`](#check-issue)
|
||||
- [`close-issues`](#close-issues)
|
||||
- [`find-comments`](#find-comments)
|
||||
- [`lock-issues`](#lock-issues)
|
||||
- [`month-statistics`](#month-statistics)
|
||||
- 🌰 Example
|
||||
- [`find-comments + create-comment + update-comment`](#find-comments--create-comment--update-comment)
|
||||
|
||||
@@ -73,7 +75,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add assigness
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -81,18 +83,18 @@ jobs:
|
||||
assignees: 'xxx' or 'xx1,xx2'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| assignees | Designated person. No operation when no input or empty character | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| assignees | Designated person. No operation when no input or empty character | string | ✖ |
|
||||
|
||||
- `actions` support multiple and separated by comma. Like: `add-assignees,add-labels`
|
||||
- The `name` can be modified according to the actual situation
|
||||
- [Reference to on](#github-docs)
|
||||
- `${{ github.event.issue.number }}` is the current issue. [More references](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events)
|
||||
- `assignees` support multiple and separated by comma. Pay attention to multiple settings, you need to use the version above v1.1
|
||||
- `assignees` support multiple and separated by comma
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -113,7 +115,7 @@ jobs:
|
||||
if: contains(github.event.issue.body, 'xxx') == false
|
||||
steps:
|
||||
- name: Add labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -121,14 +123,14 @@ jobs:
|
||||
labels: 'bug' or 'xx1,xx2'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| labels | New labels. When it is not filled in or is empty character, do not add | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| labels | New labels. When it is not filled in or is empty character, do not add | string | ✖ |
|
||||
|
||||
- `labels` support multiple and separated by comma. Pay attention to multiple settings, you need to use the version above v1.1
|
||||
- `labels` support multiple and separated by comma
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -138,7 +140,7 @@ Close the specified issue.
|
||||
|
||||
```yml
|
||||
- name: Close issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -146,11 +148,11 @@ Close the specified issue.
|
||||
body: 'This is auto closed.'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -171,7 +173,7 @@ jobs:
|
||||
if: github.event.label.name == 'xxx'
|
||||
steps:
|
||||
- name: Create comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -183,19 +185,19 @@ jobs:
|
||||
contents: '+1' or '+1,heart'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| body | Add comment content | string | ✖ | v1 |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| body | Add comment content | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- `body` default is `Currently at ${owner}/${repo}. And this is default comment.`
|
||||
- Where `${owner}/${repo}` means the current repo
|
||||
- Return `comment-id`, which can be used for subsequent operations. [Usage reference](#outputs-use)
|
||||
- `${{ github.event.issue.user.login }}` indicates the creator of the issue
|
||||
- `contents` support multiple and separated by comma. Pay attention to multiple settings, you need to use the version above v1.1
|
||||
- `contents` support multiple and separated by comma
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -215,7 +217,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -226,15 +228,15 @@ jobs:
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| title | The title of the new issue | string | ✖ | v1 |
|
||||
| body | The body of the new issue | string | ✖ | v1 |
|
||||
| labels | The labels for the new issue | string | ✖ | v1.1 |
|
||||
| assignees | The assignees for the new issue | string | ✖ | v1.1 |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| title | The title of the new issue | string | ✖ |
|
||||
| body | The body of the new issue | string | ✖ |
|
||||
| labels | The labels for the new issue | string | ✖ |
|
||||
| assignees | The assignees for the new issue | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- `title` default is `Default Title`
|
||||
- Return `issue-number`. [Usage reference](#outputs-use)
|
||||
@@ -247,18 +249,18 @@ According to [`comment-id`](#comment-id) delete the specified comment.
|
||||
|
||||
```yml
|
||||
- name: Delete comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'delete-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
comment-id: xxx
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| comment-id | The comment ID | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| comment-id | The comment ID | number | ✔ |
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -279,18 +281,56 @@ jobs:
|
||||
if: github.event.label.name == 'invalid'
|
||||
steps:
|
||||
- name: Lock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
#### `mark-duplicate`
|
||||
|
||||
Quickly mark duplicate questions, only for issue new comments.
|
||||
|
||||
```yml
|
||||
name: Issue Mark Duplicate
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
mark-duplicate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: mark-duplicate
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'mark-duplicate'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| duplicate-command | Simple commands can be set, such as: `/d` | string | ✖ |
|
||||
| duplicate-labels | Add additional labels to this issue | string | ✖ |
|
||||
| remove-labels | Set removable labels | string | ✖ |
|
||||
| labels | Replace the labels of the issue | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) for this comment | string | ✖ |
|
||||
| close-issue | Whether to close the issue at the same time | string | ✖ |
|
||||
|
||||
- `duplicate-command`: When setting concise commands, while still supporting the original `Duplicate of`
|
||||
- `close-issue`: Both `true` or `'true'` can take effect
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -300,18 +340,18 @@ Open the specified issue.
|
||||
|
||||
```yml
|
||||
- name: Open issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'open-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: xxx
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -321,7 +361,7 @@ Remove the person designated by issue.
|
||||
|
||||
```yml
|
||||
- name: Remove assignees
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -329,12 +369,12 @@ Remove the person designated by issue.
|
||||
assignees: 'xx'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| assignees | Designated person removed. When it is an empty character, do not remove | string | ✔ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| assignees | Designated person removed. When it is an empty character, do not remove | string | ✔ |
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -344,7 +384,7 @@ Remove the specified labels.
|
||||
|
||||
```yml
|
||||
- name: Remove labels
|
||||
uses: actions-cool/issues-helper@v1.2
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -352,12 +392,12 @@ Remove the specified labels.
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1.2 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1.2 |
|
||||
| issue-number | The number of issue | number | ✔ | v1.2 |
|
||||
| labels | The removed labels. When it is a blank character, do not remove | string | ✔ | v1.2 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| labels | The removed labels. When it is a blank character, do not remove | string | ✔ |
|
||||
|
||||
- `labels` supports multiple, such as `x1,x2,x3`, only the labels added by the issue will be removed
|
||||
|
||||
@@ -369,7 +409,7 @@ Replace the labels of issue.
|
||||
|
||||
```yml
|
||||
- name: Set labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'set-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -377,12 +417,12 @@ Replace the labels of issue.
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| labels | labels set. When empty characters, will remove all | string | ✔ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| labels | labels set. When empty characters, will remove all | string | ✔ |
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -392,18 +432,18 @@ Unlock the specified issue.
|
||||
|
||||
```yml
|
||||
- name: Unlock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'unlock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -425,7 +465,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -433,14 +473,14 @@ jobs:
|
||||
contents: 'eyes'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| comment-id | The comment ID | number | ✔ | v1 |
|
||||
| body | Update the content of comment | string | ✖ | v1 |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ | v1 |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| comment-id | The comment ID | number | ✔ |
|
||||
| body | Update the content of comment | string | ✖ |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- When `body` is not entered, it will remain as it is
|
||||
- When `update-mode` is `append`, additional operations will be performed. Anything other than `append` will be replaced. Only effective for `body`
|
||||
@@ -453,7 +493,7 @@ Update the specified issue according to the `issue-number`.
|
||||
|
||||
```yml
|
||||
- name: Update issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -467,18 +507,18 @@ Update the specified issue according to the `issue-number`.
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| state | Modify the status of issue, optional value `open` `closed` | string | ✖ | v1 |
|
||||
| title | Modify the title of the issue | string | ✖ | v1 |
|
||||
| body | Modify the content of issue | string | ✖ | v1 |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ | v1 |
|
||||
| labels | Replace the labels of issue | string | ✖ | v1.1 |
|
||||
| assignees | Replace the assignees of issue | string | ✖ | v1.1 |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| state | Modify the status of issue, optional value `open` `closed` | string | ✖ |
|
||||
| title | Modify the title of the issue | string | ✖ |
|
||||
| body | Modify the content of issue | string | ✖ |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ |
|
||||
| labels | Replace the labels of issue | string | ✖ |
|
||||
| assignees | Replace the assignees of issue | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- `state` defaults to `open`
|
||||
- When the option is not filled, it will keep the original
|
||||
@@ -503,7 +543,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: welcome
|
||||
uses: actions-cool/issues-helper@v1.3
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'welcome'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -513,14 +553,14 @@ jobs:
|
||||
issue-contents: '+1, -1, eyes'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1.3 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1.3 |
|
||||
| body | Comment on the welcome content, no comment if you leave it blank | string | ✖ | v1.3 |
|
||||
| labels | Add labels to this issue | string | ✖ | v1.3 |
|
||||
| assignees | Add assignees to this issue | string | ✖ | v1.3 |
|
||||
| issue-contents | Add [reaction](#reactions-types) to this issue| string | ✖ | v1.3 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| body | Comment on the welcome content, no comment if you leave it blank | string | ✖ |
|
||||
| labels | Add labels to this issue | string | ✖ |
|
||||
| assignees | Add assignees to this issue | string | ✖ |
|
||||
| issue-contents | Add [reaction](#reactions-types) to this issue| string | ✖ |
|
||||
|
||||
- If these 4 options are not filled, no operation
|
||||
|
||||
@@ -546,28 +586,28 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-inactive
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-inactive'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
inactive-day: 30
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ | v1 |
|
||||
| contents | Add [reaction](#reactions-types) for this comment | string | ✖ | v1 |
|
||||
| labels | Labels filtering | string | ✖ | v1.1 |
|
||||
| issue-state | State filtering | string | ✖ | v1 |
|
||||
| issue-assignee | Assignee filtering | string | ✖ | v1 |
|
||||
| issue-creator | Creator filtering | string | ✖ | v1 |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ | v1 |
|
||||
| body-includes | Body filtering | string | ✖ | v1 |
|
||||
| title-includes | Title filtering | string | ✖ | v1 |
|
||||
| inactive-day | Inactive days filtering | number | ✖ | v1.4 |
|
||||
| inactive-label | The label name adding | string | ✖ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) for this comment | string | ✖ |
|
||||
| labels | Labels filtering | string | ✖ |
|
||||
| issue-state | State filtering | string | ✖ |
|
||||
| issue-assignee | Assignee filtering | string | ✖ |
|
||||
| issue-creator | Creator filtering | string | ✖ |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ |
|
||||
| body-includes | Body filtering | string | ✖ |
|
||||
| title-includes | Title filtering | string | ✖ |
|
||||
| inactive-day | Inactive days filtering | number | ✖ |
|
||||
| inactive-label | The label name adding | string | ✖ |
|
||||
|
||||
- `labels`: When there are multiple, the query will have multiple at the same time. If not entered, all
|
||||
- `issue-state`: The default is `all`. Optional value `open` `closed`, when these 2 items are not, both are `all`
|
||||
@@ -599,7 +639,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -608,17 +648,17 @@ jobs:
|
||||
title-includes: 'x1,x2/y1,y2'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1.2 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1.2 |
|
||||
| issue-number | The number of issue | number | ✔ | v1.2 |
|
||||
| assignee-includes | Assignees contains check | string | ✖ | v1.2 |
|
||||
| title-includes | Title contains check | string | ✖ | v1.2 |
|
||||
| body-includes | Body contains check | string | ✖ | v1.2 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| assignee-includes | Assignees contains check | string | ✖ |
|
||||
| title-includes | Title contains check | string | ✖ |
|
||||
| body-includes | Body contains check | string | ✖ |
|
||||
|
||||
- `title-includes` `body-includes` supports the format `x1,x2` or `x1,x2/y1,y2`. Only supports two levels
|
||||
- Return `check-result`
|
||||
- Return `check-result`, due to yml reasons, the judgment condition is `if: steps.xxid.outputs.check-result =='true'`
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
@@ -638,7 +678,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: close-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -646,19 +686,19 @@ jobs:
|
||||
inactive-day: 7
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ | v1 |
|
||||
| contents | Add [reaction](#reactions-types) for this comment | string | ✖ | v1 |
|
||||
| labels | Labels filtering | string | ✖ | v1.1 |
|
||||
| issue-assignee | Assignee filtering | string | ✖ | v1 |
|
||||
| issue-creator | Creator filtering | string | ✖ | v1 |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ | v1 |
|
||||
| body-includes | Body filtering | string | ✖ | v1 |
|
||||
| title-includes | Title filtering | string | ✖ | v1 |
|
||||
| inactive-day | Inactive days filtering | number | ✖ | v1.4 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) for this comment | string | ✖ |
|
||||
| labels | Labels filtering | string | ✖ |
|
||||
| issue-assignee | Assignee filtering | string | ✖ |
|
||||
| issue-creator | Creator filtering | string | ✖ |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ |
|
||||
| body-includes | Body filtering | string | ✖ |
|
||||
| title-includes | Title filtering | string | ✖ |
|
||||
| inactive-day | Inactive days filtering | number | ✖ |
|
||||
|
||||
- `labels`: When there are multiple, the query will have multiple at the same time. If not entered, all
|
||||
- `issue-assignee`: Multiplayer is not supported. If you do not enter or enter *, all will be searched. Entering `none` will query issues for which the specified person is not added
|
||||
@@ -672,7 +712,7 @@ Find the current warehouse issue No. 1, the creator is k and the content contain
|
||||
|
||||
```yml
|
||||
- name: Find comments
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'find-comments'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -681,14 +721,14 @@ Find the current warehouse issue No. 1, the creator is k and the content contain
|
||||
body-includes: 'this'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| comment-auth | Comment creator, all will be queried if not filled | string | ✖ | v1 |
|
||||
| body-includes | Comment content includes filtering, no verification if not filled | string | ✖ | v1 |
|
||||
| direction | Return `comments` sort | string | ✖ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| comment-auth | Comment creator, all will be queried if not filled | string | ✖ |
|
||||
| body-includes | Comment content includes filtering, no verification if not filled | string | ✖ |
|
||||
| direction | Return `comments` sort | string | ✖ |
|
||||
|
||||
- Return `comments` in the following format:
|
||||
|
||||
@@ -720,7 +760,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: lock-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -728,20 +768,20 @@ jobs:
|
||||
inactive-day: 128
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](#token) | string | ✔ | v1 |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ | v1 |
|
||||
| contents | Add [reaction](#reactions-types) for this comment | string | ✖ | v1 |
|
||||
| labels | Labels filtering | string | ✖ | v1.1 |
|
||||
| issue-state | State filtering | string | ✖ | v1 |
|
||||
| issue-assignee | Assignee filtering | string | ✖ | v1 |
|
||||
| issue-creator | Creator filtering | string | ✖ | v1 |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ | v1 |
|
||||
| body-includes | Body filtering | string | ✖ | v1 |
|
||||
| title-includes | Title filtering | string | ✖ | v1 |
|
||||
| inactive-day | Inactive days filtering | number | ✖ | v1.4 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ |
|
||||
| contents | Add [reaction](#reactions-types) for this comment | string | ✖ |
|
||||
| labels | Labels filtering | string | ✖ |
|
||||
| issue-state | State filtering | string | ✖ |
|
||||
| issue-assignee | Assignee filtering | string | ✖ |
|
||||
| issue-creator | Creator filtering | string | ✖ |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ |
|
||||
| body-includes | Body filtering | string | ✖ |
|
||||
| title-includes | Title filtering | string | ✖ |
|
||||
| inactive-day | Inactive days filtering | number | ✖ |
|
||||
|
||||
- `labels`: When there are multiple, the query will have multiple at the same time. If not entered, all
|
||||
- `issue-state`: The default is `all`. Optional value `open` `closed`, when these 2 items are not, both are `all`
|
||||
@@ -750,6 +790,44 @@ jobs:
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
#### `month-statistics`
|
||||
|
||||
At 1 o'clock on the 1st of each month, an issue is generated for the statistics of the previous month.
|
||||
|
||||
```
|
||||
name: Issue Month Statistics
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 1 1 * *"
|
||||
|
||||
jobs:
|
||||
month-statistics:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: month-statistics
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'month-statistics'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
count-lables: 'true'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](#token) | string | ✔ |
|
||||
| labels | The labels for the new issue | string | ✖ |
|
||||
| assignees | The assignees for the new issue | string | ✖ |
|
||||
| count-lables | Whether the new issue count labels | string | ✖ |
|
||||
| count-comments | Whether the new issue count comments | string | ✖ |
|
||||
|
||||
- The new issue title defaults to `[Current repo] Month Statistics: Year-Month`
|
||||
- `count-lables`: You can set `'true'` to add labels statistics
|
||||
- `count-comments`: You can set `'true'` to add comments statistics
|
||||
|
||||
⏫ [Back to list](#List)
|
||||
|
||||
## 🌰 Example
|
||||
|
||||
Flexible reference.
|
||||
@@ -771,7 +849,7 @@ jobs:
|
||||
if: github.event.label.name == 'watch'
|
||||
steps:
|
||||
- name: find comments
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
id: fcid
|
||||
with:
|
||||
actions: 'find-comments'
|
||||
@@ -782,7 +860,7 @@ jobs:
|
||||
|
||||
- name: create comment
|
||||
if: ${{ steps.fcid.outputs.comments.length == 0 }}
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -791,7 +869,7 @@ jobs:
|
||||
|
||||
- name: update comment
|
||||
if: ${{ steps.fcid.outputs.comments.length == 1 }}
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -823,7 +901,7 @@ When the token is not filled in actions or the corresponding secrets are not add
|
||||
|
||||
```yml
|
||||
- name: Create issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
id: createissue
|
||||
with:
|
||||
actions: 'create-issue'
|
||||
@@ -898,7 +976,6 @@ Click the `···` icon in the upper right corner of a comment, select `Copy lin
|
||||
- v1 represents the initial version
|
||||
- The fixes and additions to the v1 version will be released to the v1.1 version
|
||||
- When the released v1.x runs stable for a certain period of time, release the advanced v2 version
|
||||
- The parameters in the API must use the largest version and above
|
||||
|
||||
- Version selection
|
||||
- It is recommended to use the latest releases version. It can be seen in [releases](https://github.com/actions-cool/issues-helper/releases)
|
||||
@@ -923,50 +1000,52 @@ You can come to the following repositories for reference. Please leave a message
|
||||
At the same time, if you have any questions during use, you can also ask and inquire in the issue or discussion.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/ant-design/ant-design">
|
||||
<img src="https://avatars1.githubusercontent.com/u/12101536?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/vueComponent/ant-design-vue">
|
||||
<img src="https://avatars2.githubusercontent.com/u/32120805?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/umijs/dumi">
|
||||
<img src="https://avatars2.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/umijs/umi">
|
||||
<img src="https://avatars2.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/AttoJS/vue-request">
|
||||
<img src="https://raw.githubusercontent.com/AttoJS/art/master/vue-request-logo.png" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="160">
|
||||
<strong>ant-design</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>ant-design-vue</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>dumi</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>umi</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>vue-request</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/ant-design/ant-design">
|
||||
<img src="https://avatars1.githubusercontent.com/u/12101536?s=200&v=4" width="46" />
|
||||
<br />
|
||||
ant-design
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/vueComponent/ant-design-vue">
|
||||
<img src="https://avatars1.githubusercontent.com/u/32120805?s=200&v=4" width="46" />
|
||||
<br />
|
||||
ant-design-vue
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/umijs/dumi">
|
||||
<img src="https://avatars1.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
<br />
|
||||
dumi
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/mui-org/material-ui">
|
||||
<img src="https://avatars2.githubusercontent.com/u/33663932?s=200&v=4" width="46" />
|
||||
<br />
|
||||
material-ui
|
||||
</a></td>
|
||||
</tr><tr>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/lijinke666/react-music-player">
|
||||
<img src="https://github.com/lijinke666/react-music-player/blob/master/assetsImg/logo.png?raw=true" width="46" />
|
||||
<br />
|
||||
react-music-player
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/umijs/umi">
|
||||
<img src="https://avatars1.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
<br />
|
||||
umi
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/AttoJS/vue-request">
|
||||
<img src="https://raw.githubusercontent.com/AttoJS/art/master/vue-request-logo.png" width="46" />
|
||||
<br />
|
||||
vue-request
|
||||
</a></td>
|
||||
<td align="center" width="180"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## LICENSE
|
||||
|
547
README.md
547
README.md
@@ -12,7 +12,7 @@
|
||||
|
||||
一个轻松帮你自动管理 issues 的 GitHub Action
|
||||
|
||||
[在线文档](https://actions-cool.github.io/issues-helper/) | [更新日志](https://github.com/actions-cool/issues-helper/blob/main/docs/log.md)
|
||||
[在线文档](https://actions-cool.github.io/issues-helper/) | [更新日志](https://github.com/actions-cool/issues-helper/blob/main/CHANGELOG.md) | [国内镜像](https://issues-helper.gitee.io/)
|
||||
|
||||
## 😎 为什么用 GitHub Action?
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
- [`create-issue`](#create-issue)
|
||||
- [`delete-comment`](#delete-comment)
|
||||
- [`lock-issue`](#lock-issue)
|
||||
- [`mark-duplicate`](#mark-duplicate)
|
||||
- [`open-issue`](#open-issue)
|
||||
- [`remove-assignees`](#remove-assignees)
|
||||
- [`remove-labels`](#remove-labels)
|
||||
@@ -42,12 +43,13 @@
|
||||
- [`update-comment`](#update-comment)
|
||||
- [`update-issue`](#update-issue)
|
||||
- [`welcome`](#welcome)
|
||||
- ⭐ 进 阶
|
||||
- 🌟 进 阶
|
||||
- [`check-inactive`](#check-inactive)
|
||||
- [`check-issue`](#check-issue)
|
||||
- [`close-issues`](#close-issues)
|
||||
- [`find-comments`](#find-comments)
|
||||
- [`lock-issues`](#lock-issues)
|
||||
- [`month-statistics`](#month-statistics)
|
||||
- 🌰 例 子
|
||||
- [`find-comments + create-comment + update-comment`](#find-comments--create-comment--update-comment)
|
||||
|
||||
@@ -73,7 +75,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add assigness
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -81,18 +83,18 @@ jobs:
|
||||
assignees: 'xxx' or 'xx1,xx2'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| assignees | 指定人。当不填或者为空字符时,不操作 | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| assignees | 指定人。当不填或者为空字符时,不操作 | string | ✖ |
|
||||
|
||||
- `actions` 支持多个,需用逗号隔开。如:`add-assignees,add-labels`
|
||||
- 其中的 `name` 可根据自行根据实际情况修改
|
||||
- [on 参考](#github-docs)
|
||||
- `${{ github.event.issue.number }}` 表示当前 issue,[更多参考](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events)
|
||||
- `assignees` 支持多个,需用逗号隔开。注意设置多个,需使用v1.1以上版本
|
||||
- `assignees` 支持多个,需用逗号隔开
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -113,7 +115,7 @@ jobs:
|
||||
if: contains(github.event.issue.body, 'xxx') == false
|
||||
steps:
|
||||
- name: Add labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -121,14 +123,14 @@ jobs:
|
||||
labels: 'bug' or 'bug1,bug2'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| labels | 新增的 labels。当不填或者为空字符时,不新增 | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| labels | 新增的 labels。当不填或者为空字符时,不新增 | string | ✖ |
|
||||
|
||||
- `labels` 支持多个,需用逗号隔开。注意设置多个,需使用v1.1以上版本
|
||||
- `labels` 支持多个,需用逗号隔开
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -138,7 +140,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Close issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -146,11 +148,11 @@ jobs:
|
||||
body: 'This is auto closed.'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -171,7 +173,7 @@ jobs:
|
||||
if: github.event.label.name == 'xxx'
|
||||
steps:
|
||||
- name: Create comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -183,19 +185,19 @@ jobs:
|
||||
contents: '+1' or '+1,heart'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| body | 新增评论的内容 | string | ✖ | v1 |
|
||||
| contents | 为新增评论的增加 [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| body | 新增评论的内容 | string | ✖ |
|
||||
| contents | 为新增评论的增加 [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- `body` 默认为:`Currently at ${owner}/${repo}. And this is default comment.`
|
||||
- 其中 `${owner}/${repo}` 表示当前仓库
|
||||
- 返回 `comment-id`,可用于之后操作。[用法参考](#outputs-使用)
|
||||
- `${{ github.event.issue.user.login }}` 表示该 issue 的创建者
|
||||
- `contents` 支持多个,需用逗号隔开。注意设置多个,需使用v1.1以上版本
|
||||
- `contents` 支持多个,需用逗号隔开
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -215,7 +217,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -226,15 +228,15 @@ jobs:
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| title | 新增 issue 的标题 | string | ✖ | v1 |
|
||||
| body | 新增 issue 的内容 | string | ✖ | v1 |
|
||||
| labels | 为新增 issue 添加 labels | string | ✖ | v1.1 |
|
||||
| assignees | 为新增 issue 添加 assignees | string | ✖ | v1.1 |
|
||||
| contents | 为新增 issue 增加 [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| title | 新增 issue 的标题 | string | ✖ |
|
||||
| body | 新增 issue 的内容 | string | ✖ |
|
||||
| labels | 为新增 issue 添加 labels | string | ✖ |
|
||||
| assignees | 为新增 issue 添加 assignees | string | ✖ |
|
||||
| contents | 为新增 issue 增加 [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- `title` 默认为:`Default Title`
|
||||
- 返回 `issue-number`,[用法参考](#outputs-使用)
|
||||
@@ -247,18 +249,18 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Delete comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'delete-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
comment-id: xxx
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| comment-id | 指定的 comment | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| comment-id | 指定的 comment | number | ✔ |
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -279,18 +281,56 @@ jobs:
|
||||
if: github.event.label.name == 'invalid'
|
||||
steps:
|
||||
- name: Lock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
#### `mark-duplicate`
|
||||
|
||||
快捷标记重复问题,仅作用于 issue 新增评论。
|
||||
|
||||
```yml
|
||||
name: Issue Mark Duplicate
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
mark-duplicate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: mark-duplicate
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'mark-duplicate'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| duplicate-command | 可设置简洁命令,如:`/d` | string | ✖ |
|
||||
| duplicate-labels | 为该 issue 额外增加 labels | string | ✖ |
|
||||
| remove-labels | 设置可移除的 labels | string | ✖ |
|
||||
| labels | 替换该 issue 的 labels | string | ✖ |
|
||||
| contents | 为该评论的增加 [reaction](#reactions-types) | string | ✖ |
|
||||
| close-issue | 是否同时关闭该 issue | string | ✖ |
|
||||
|
||||
- `duplicate-command`:当设置简洁命令时,同时仍支持原有 `Duplicate of`
|
||||
- `close-issue`:`true` 或 `'true'` 均可生效
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -300,18 +340,18 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Open issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'open-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: xxx
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -321,7 +361,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Remove assignees
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -329,12 +369,12 @@ jobs:
|
||||
assignees: 'xx'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| assignees | 移除的指定人。当为空字符时,不进行移除 | string | ✔ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| assignees | 移除的指定人。当为空字符时,不进行移除 | string | ✔ |
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -344,7 +384,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Remove labels
|
||||
uses: actions-cool/issues-helper@v1.2
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -352,12 +392,12 @@ jobs:
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1.2 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1.2 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1.2 |
|
||||
| labels | 移除的 labels。当为空字符时,不进行移除 | string | ✔ | v1.2 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| labels | 移除的 labels。当为空字符时,不进行移除 | string | ✔ |
|
||||
|
||||
- `labels` 支持多个,如 `x1,x2,x3`,只会移除 issue 已添加的 labels
|
||||
|
||||
@@ -369,7 +409,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Set labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'set-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -377,12 +417,12 @@ jobs:
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| labels | labels 设置。当空字符时,会移除所有 | string | ✔ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| labels | labels 设置。当空字符时,会移除所有 | string | ✔ |
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -392,18 +432,18 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Unlock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'unlock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -425,7 +465,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -433,14 +473,14 @@ jobs:
|
||||
contents: 'eyes'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| comment-id | 指定的 comment | number | ✔ | v1 |
|
||||
| body | 更新 comment 的内容 | string | ✖ | v1 |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ | v1 |
|
||||
| contents | 增加 [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| comment-id | 指定的 comment | number | ✔ |
|
||||
| body | 更新 comment 的内容 | string | ✖ |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ |
|
||||
| contents | 增加 [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- `body` 不填时,会保持原有
|
||||
- `update-mode` 为 `append` 时,会进行附加操作。非 `append` 都会进行替换。仅对 `body` 生效
|
||||
@@ -453,7 +493,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Update issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -467,18 +507,18 @@ jobs:
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| state | 修改 issue 的状态,可选值 `open` `closed` | string | ✖ | v1 |
|
||||
| title | 修改 issue 的标题 | string | ✖ | v1 |
|
||||
| body | 修改 issue 的内容 | string | ✖ | v1 |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ | v1 |
|
||||
| labels | 替换 issue 的 labels | string | ✖ | v1.1 |
|
||||
| assignees | 替换 issue 的 assignees | string | ✖ | v1.1 |
|
||||
| contents | 增加 [reaction](#reactions-types) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| state | 修改 issue 的状态,可选值 `open` `closed` | string | ✖ |
|
||||
| title | 修改 issue 的标题 | string | ✖ |
|
||||
| body | 修改 issue 的内容 | string | ✖ |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ |
|
||||
| labels | 替换 issue 的 labels | string | ✖ |
|
||||
| assignees | 替换 issue 的 assignees | string | ✖ |
|
||||
| contents | 增加 [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- `state` 默认为 `open`
|
||||
- 当可选项不填时,会保持原有
|
||||
@@ -501,7 +541,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: welcome
|
||||
uses: actions-cool/issues-helper@v1.3
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'welcome'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -511,14 +551,14 @@ jobs:
|
||||
issue-contents: '+1, -1, eyes'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1.3 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1.3 |
|
||||
| body | 评论欢迎的内容,不填则不评论 | string | ✖ | v1.3 |
|
||||
| labels | 为该 issue 增加 labels | string | ✖ | v1.3 |
|
||||
| assignees | 为该 issue 增加 assignees | string | ✖ | v1.3 |
|
||||
| issue-contents | 为该 issue 增加 [reaction](#reactions-types) | string | ✖ | v1.3 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| body | 评论欢迎的内容,不填则不评论 | string | ✖ |
|
||||
| labels | 为该 issue 增加 labels | string | ✖ |
|
||||
| assignees | 为该 issue 增加 assignees | string | ✖ |
|
||||
| issue-contents | 为该 issue 增加 [reaction](#reactions-types) | string | ✖ |
|
||||
|
||||
- 若这 4 个可选项都不填,则无操作
|
||||
|
||||
@@ -544,31 +584,31 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-inactive
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-inactive'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
inactive-day: 30
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ | v1 |
|
||||
| contents | 为该评论增加 [reaction](#reactions-types) | string | ✖ | v1 |
|
||||
| labels | 标签筛选 | string | ✖ | v1.1 |
|
||||
| issue-state | 状态筛选 | string | ✖ | v1 |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ | v1 |
|
||||
| issue-creator | 创建人筛选 | string | ✖ | v1 |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ | v1 |
|
||||
| body-includes | 包含内容筛选 | string | ✖ | v1 |
|
||||
| title-includes | 包含标题筛选 | string | ✖ | v1 |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ | v1.4 |
|
||||
| inactive-label | 新增标签名称 | string | ✖ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ |
|
||||
| contents | 为该评论增加 [reaction](#reactions-types) | string | ✖ |
|
||||
| labels | 标签筛选 | string | ✖ |
|
||||
| issue-state | 状态筛选 | string | ✖ |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ |
|
||||
| issue-creator | 创建人筛选 | string | ✖ |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ |
|
||||
| body-includes | 包含内容筛选 | string | ✖ |
|
||||
| title-includes | 包含标题筛选 | string | ✖ |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
||||
| inactive-label | 新增标签名称 | string | ✖ |
|
||||
|
||||
- `labels`:为多个时,会查询同时拥有多个。不填时,会查询所有
|
||||
- `issue-state`:默认为 `all`。可选值 `open` `closed`,非这 2 项时,均为 `all`
|
||||
- `issue-state`:默认为 `open`。可选值 `all` `closed`,非这 2 项时,均为 `open`
|
||||
- `issue-assignee`:不支持多人。不填或输入 * 时,查询所有。输入 `none` 会查询未添加指定人的 issues
|
||||
- `inactive-day`:当输入时,会筛选 issue 更新时间早于当前时间减去非活跃天数。不填时,会查询所有
|
||||
- `inactive-label`:默认为 `inactive`,可自定义其他。当项目未包含该 label 时,会自动新建
|
||||
@@ -593,7 +633,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -602,17 +642,17 @@ jobs:
|
||||
title-includes: 'x1,x2/y1,y2'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1.2 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1.2 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1.2 |
|
||||
| assignee-includes | 是否包含指定人 | string | ✖ | v1.2 |
|
||||
| title-includes | 标题包含校验 | string | ✖ | v1.2 |
|
||||
| body-includes | 内容包含校验 | string | ✖ | v1.2 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| assignee-includes | 是否包含指定人 | string | ✖ |
|
||||
| title-includes | 标题包含校验 | string | ✖ |
|
||||
| body-includes | 内容包含校验 | string | ✖ |
|
||||
|
||||
- `title-includes` `body-includes` 支持格式 `x1,x2` 或者 `x1,x2/y1,y2`。只支持两个层级
|
||||
- 返回 `check-result`
|
||||
- 返回 `check-result`,由于 yml 原因,判断条件为 `if: steps.xxid.outputs.check-result == 'true'`
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
@@ -632,7 +672,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: close-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -640,19 +680,19 @@ jobs:
|
||||
inactive-day: 7
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ | v1 |
|
||||
| contents | 为该评论增加 [reaction](#reactions-types) | string | ✖ | v1 |
|
||||
| labels | 标签筛选 | string | ✖ | v1.1 |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ | v1 |
|
||||
| issue-creator | 创建人筛选 | string | ✖ | v1 |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ | v1 |
|
||||
| body-includes | 包含内容筛选 | string | ✖ | v1 |
|
||||
| title-includes | 包含标题筛选 | string | ✖ | v1 |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ | v1.4 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ |
|
||||
| contents | 为该评论增加 [reaction](#reactions-types) | string | ✖ |
|
||||
| labels | 标签筛选 | string | ✖ |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ |
|
||||
| issue-creator | 创建人筛选 | string | ✖ |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ |
|
||||
| body-includes | 包含内容筛选 | string | ✖ |
|
||||
| title-includes | 包含标题筛选 | string | ✖ |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
||||
|
||||
- `labels`:为多个时,会查询同时拥有多个。不填时,会查询所有
|
||||
- `issue-assignee`:不支持多人。不填或输入 * 时,查询所有。输入 `none` 会查询未添加指定人的 issues
|
||||
@@ -666,7 +706,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Find comments
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'find-comments'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -675,14 +715,14 @@ jobs:
|
||||
body-includes: 'this'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| comment-auth | 评论创建者,不填时会查询所有 | string | ✖ | v1 |
|
||||
| body-includes | 评论内容包含过滤,不填时无校验 | string | ✖ | v1 |
|
||||
| direction | 返回 `comments` 排序 | string | ✖ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| comment-auth | 评论创建者,不填时会查询所有 | string | ✖ |
|
||||
| body-includes | 评论内容包含过滤,不填时无校验 | string | ✖ |
|
||||
| direction | 返回 `comments` 排序 | string | ✖ |
|
||||
|
||||
- 返回 `comments`,格式如下:
|
||||
|
||||
@@ -714,7 +754,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: lock-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -722,28 +762,66 @@ jobs:
|
||||
inactive-day: 128
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](#token) | string | ✔ | v1 |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ | v1 |
|
||||
| contents | 为该评论增加 [reaction](#reactions-types) | string | ✖ | v1 |
|
||||
| labels | 标签筛选 | string | ✖ | v1.1 |
|
||||
| issue-state | 状态筛选 | string | ✖ | v1 |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ | v1 |
|
||||
| issue-creator | 创建人筛选 | string | ✖ | v1 |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ | v1 |
|
||||
| body-includes | 包含内容筛选 | string | ✖ | v1 |
|
||||
| title-includes | 包含标题筛选 | string | ✖ | v1 |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ | v1.4 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ |
|
||||
| contents | 为该评论增加 [reaction](#reactions-types) | string | ✖ |
|
||||
| labels | 标签筛选 | string | ✖ |
|
||||
| issue-state | 状态筛选 | string | ✖ |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ |
|
||||
| issue-creator | 创建人筛选 | string | ✖ |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ |
|
||||
| body-includes | 包含内容筛选 | string | ✖ |
|
||||
| title-includes | 包含标题筛选 | string | ✖ |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
||||
|
||||
- `labels`:为多个时,会查询同时拥有多个。不填时,会查询所有
|
||||
- `issue-state`:默认为 `all`。可选值 `open` `closed`,非这 2 项时,均为 `all`
|
||||
- `issue-state`:默认为 `open`。可选值 `all` `closed`,非这 2 项时,均为 `open`
|
||||
- `issue-assignee`:不支持多人。不填或输入 * 时,查询所有。输入 `none` 会查询未添加指定人的 issues
|
||||
- `inactive-day`:当输入时,会筛选 issue 更新时间早于当前时间减去非活跃天数。不填时,会查询所有
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
#### `month-statistics`
|
||||
|
||||
每月 1 号 1 时,生成一个 issue 上月统计。
|
||||
|
||||
```
|
||||
name: Issue Month Statistics
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 1 1 * *"
|
||||
|
||||
jobs:
|
||||
month-statistics:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: month-statistics
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'month-statistics'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
count-lables: 'true'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](#token) | string | ✔ |
|
||||
| labels | 为新增 issue 添加 labels | string | ✖ |
|
||||
| assignees | 为新增 issue 添加 assignees | string | ✖ |
|
||||
| count-lables | 新增 issue 是否统计 labels | string | ✖ |
|
||||
| count-comments | 新增 issue 是否统计 comments | string | ✖ |
|
||||
|
||||
- 新增 `issue` 的标题默认为 `[当前仓库] Month Statistics: 年-月`
|
||||
- `count-lables`:可设置 `'true'`,增加 labels 统计
|
||||
- `count-comments`:可设置 `'true'`,增加 comments 统计
|
||||
|
||||
⏫ [返回列表](#列-表)
|
||||
|
||||
## 🌰 例 子
|
||||
|
||||
灵活参考。
|
||||
@@ -765,7 +843,7 @@ jobs:
|
||||
if: github.event.label.name == 'watch'
|
||||
steps:
|
||||
- name: find comments
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
id: fcid
|
||||
with:
|
||||
actions: 'find-comments'
|
||||
@@ -776,7 +854,7 @@ jobs:
|
||||
|
||||
- name: create comment
|
||||
if: ${{ steps.fcid.outputs.comments.length == 0 }}
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -785,7 +863,7 @@ jobs:
|
||||
|
||||
- name: update comment
|
||||
if: ${{ steps.fcid.outputs.comments.length == 1 }}
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -817,7 +895,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Create issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
id: createissue
|
||||
with:
|
||||
actions: 'create-issue'
|
||||
@@ -893,7 +971,6 @@ x2 + y2
|
||||
- v1 表示初始版本
|
||||
- 对 v1 版本的修复和新增会发布到 v1.1 版本
|
||||
- 当发布的 v1.x 运行一定时间稳定后,发布进阶 v2 版本
|
||||
- API 中参数需使用其中最大及以上版本
|
||||
|
||||
- 版本选择
|
||||
- 建议采用最新 releases 版本。可在 [releases](https://github.com/actions-cool/issues-helper/releases) 看到
|
||||
@@ -918,50 +995,52 @@ x2 + y2
|
||||
同时,如果你在使用过程中有什么疑问,也可以在 issue 或者 discussion 中进行提问和查询。
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/ant-design/ant-design">
|
||||
<img src="https://avatars1.githubusercontent.com/u/12101536?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/vueComponent/ant-design-vue">
|
||||
<img src="https://avatars2.githubusercontent.com/u/32120805?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/umijs/dumi">
|
||||
<img src="https://avatars2.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/umijs/umi">
|
||||
<img src="https://avatars2.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/AttoJS/vue-request">
|
||||
<img src="https://raw.githubusercontent.com/AttoJS/art/master/vue-request-logo.png" width="46" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="160">
|
||||
<strong>ant-design</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>ant-design-vue</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>dumi</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>umi</strong>
|
||||
</td>
|
||||
<td align="center" width="160">
|
||||
<strong>vue-request</strong>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/ant-design/ant-design">
|
||||
<img src="https://avatars1.githubusercontent.com/u/12101536?s=200&v=4" width="46" />
|
||||
<br />
|
||||
ant-design
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/vueComponent/ant-design-vue">
|
||||
<img src="https://avatars1.githubusercontent.com/u/32120805?s=200&v=4" width="46" />
|
||||
<br />
|
||||
ant-design-vue
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/umijs/dumi">
|
||||
<img src="https://avatars1.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
<br />
|
||||
dumi
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/mui-org/material-ui">
|
||||
<img src="https://avatars2.githubusercontent.com/u/33663932?s=200&v=4" width="46" />
|
||||
<br />
|
||||
material-ui
|
||||
</a></td>
|
||||
</tr><tr>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/lijinke666/react-music-player">
|
||||
<img src="https://github.com/lijinke666/react-music-player/blob/master/assetsImg/logo.png?raw=true" width="46" />
|
||||
<br />
|
||||
react-music-player
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/umijs/umi">
|
||||
<img src="https://avatars1.githubusercontent.com/u/33895495?s=200&v=4" width="46" />
|
||||
<br />
|
||||
umi
|
||||
</a></td>
|
||||
<td align="center" width="180">
|
||||
<a href="https://github.com/AttoJS/vue-request">
|
||||
<img src="https://raw.githubusercontent.com/AttoJS/art/master/vue-request-logo.png" width="46" />
|
||||
<br />
|
||||
vue-request
|
||||
</a></td>
|
||||
<td align="center" width="180"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## LICENSE
|
||||
|
42
USERS.js
Normal file
42
USERS.js
Normal file
@@ -0,0 +1,42 @@
|
||||
// **************************************************************************
|
||||
|
||||
// Add to end
|
||||
|
||||
const users = [
|
||||
{
|
||||
url: 'https://github.com/ant-design/ant-design',
|
||||
logo: 'https://avatars1.githubusercontent.com/u/12101536?s=200&v=4'
|
||||
},
|
||||
{
|
||||
url: 'https://github.com/vueComponent/ant-design-vue',
|
||||
logo: 'https://avatars1.githubusercontent.com/u/32120805?s=200&v=4'
|
||||
},
|
||||
{
|
||||
url: 'https://github.com/umijs/dumi',
|
||||
logo: 'https://avatars1.githubusercontent.com/u/33895495?s=200&v=4'
|
||||
},
|
||||
{
|
||||
url: 'https://github.com/umijs/umi',
|
||||
logo: 'https://avatars1.githubusercontent.com/u/33895495?s=200&v=4'
|
||||
},
|
||||
{
|
||||
url: 'https://github.com/AttoJS/vue-request',
|
||||
logo: 'https://raw.githubusercontent.com/AttoJS/art/master/vue-request-logo.png'
|
||||
},
|
||||
{
|
||||
url: 'https://github.com/mui-org/material-ui',
|
||||
logo: 'https://avatars2.githubusercontent.com/u/33663932?s=200&v=4'
|
||||
},
|
||||
{
|
||||
url: 'https://github.com/lijinke666/react-music-player',
|
||||
logo: 'https://github.com/lijinke666/react-music-player/blob/master/assetsImg/logo.png?raw=true'
|
||||
},
|
||||
];
|
||||
|
||||
// **************************************************************************
|
||||
|
||||
module.exports = {
|
||||
users
|
||||
};
|
||||
|
||||
// **************************************************************************
|
12
action.yml
12
action.yml
@@ -52,6 +52,18 @@ inputs:
|
||||
description: 'Query use'
|
||||
inactive-label:
|
||||
description: 'Issue label set use'
|
||||
duplicate-command:
|
||||
description: 'For mark-duplicate'
|
||||
duplicate-labels:
|
||||
description: 'For mark-duplicate add labels'
|
||||
remove-labels:
|
||||
description: 'For remove labels'
|
||||
close-issue:
|
||||
description: 'For mark-duplicate'
|
||||
count-lables:
|
||||
description: 'For month-statistics'
|
||||
count-comments:
|
||||
description: 'For month-statistics'
|
||||
outputs:
|
||||
issue-number:
|
||||
description: 'Create Issue Number'
|
||||
|
464
dist/index.js
vendored
464
dist/index.js
vendored
@@ -6029,51 +6029,60 @@ __webpack_require__(2437).config();
|
||||
const core = __webpack_require__(2186);
|
||||
const { Octokit } = __webpack_require__(5375);
|
||||
|
||||
const {
|
||||
doAddLabels,
|
||||
doCreateComment,
|
||||
doCloseIssue,
|
||||
doLockIssue,
|
||||
doCreateIssue,
|
||||
} = __webpack_require__(9932);
|
||||
|
||||
const {
|
||||
doQueryIssues,
|
||||
getIssuesInMonth,
|
||||
getCreatedMonth,
|
||||
} = __webpack_require__(197);
|
||||
|
||||
const {
|
||||
dealInput,
|
||||
matchKeyword,
|
||||
getPreMonth
|
||||
} = __webpack_require__(6254);
|
||||
|
||||
// **************************************************************************
|
||||
var dayjs = __webpack_require__(7401);
|
||||
var utc = __webpack_require__(4359);
|
||||
dayjs.extend(utc);
|
||||
var isSameOrBefore = __webpack_require__(9517);
|
||||
dayjs.extend(isSameOrBefore);
|
||||
|
||||
const {
|
||||
doAddLabels,
|
||||
doCloseIssue,
|
||||
doCreateComment,
|
||||
doLockIssue
|
||||
} = __webpack_require__(9932);
|
||||
|
||||
const { dealInput, matchKeyword } = __webpack_require__(6254);
|
||||
|
||||
// **************************************************************************
|
||||
const token = core.getInput('token');
|
||||
const octokit = new Octokit({ auth: `token ${token}` });
|
||||
|
||||
let direction = core.getInput("direction");
|
||||
direction = direction === 'desc' ? 'desc' : 'asc';
|
||||
|
||||
const commentAuth = core.getInput("comment-auth");
|
||||
const bodyIncludes = core.getInput('body-includes');
|
||||
const titleIncludes = core.getInput('title-includes');
|
||||
const assigneeIncludes = core.getInput('assignee-includes');
|
||||
|
||||
const issueCreator = core.getInput("issue-creator");
|
||||
const issueAssignee = core.getInput('issue-assignee');
|
||||
const issueMentioned = core.getInput('issue-mentioned');
|
||||
|
||||
let issueState = core.getInput("issue-state") || 'all';
|
||||
|
||||
if (issueState != 'open' && issueState != 'closed') {
|
||||
issueState = 'all';
|
||||
let issueState = core.getInput("issue-state") || 'open';
|
||||
if (issueState != 'all' && issueState != 'closed') {
|
||||
issueState = 'open';
|
||||
}
|
||||
|
||||
const inactiveDay = core.getInput("inactive-day");
|
||||
const inactiveLabel = core.getInput("inactive-label") || 'inactive';
|
||||
|
||||
// **************************************************************************
|
||||
async function doCheckInactive (owner, repo, labels) {
|
||||
const issues = await doQueryIssues(owner, repo, labels, issueState);
|
||||
|
||||
if (issues.length) {
|
||||
for (let i = 0; i < issues.length; i++) {
|
||||
if (!JSON.stringify(issues[i].labels).includes(inactiveLabel)) {
|
||||
let arr = [];
|
||||
issues[i].labels.forEach(it => {
|
||||
arr.push(it.name);
|
||||
});
|
||||
if (!arr.includes(inactiveLabel)) {
|
||||
await doAddLabels(owner, repo, issues[i].number, inactiveLabel);
|
||||
if (core.getInput("body")) {
|
||||
await doCreateComment(owner, repo, issues[i].number, core.getInput("body"));
|
||||
@@ -6192,66 +6201,135 @@ async function doLockIssues (owner, repo, labels) {
|
||||
}
|
||||
};
|
||||
|
||||
async function doQueryIssues (owner, repo, labels, state, creator) {
|
||||
let params = {
|
||||
async function doMonthStatistics (owner, repo, labels, assignees) {
|
||||
const countLables = core.getInput("count-lables");
|
||||
const countComments = core.getInput("count-comments");
|
||||
|
||||
const thisMonth = dayjs.utc().month() + 1;
|
||||
const year = thisMonth == 1 ? dayjs.utc().year() - 1 : dayjs.utc().year();
|
||||
|
||||
const month = getPreMonth(thisMonth);
|
||||
const showMonth = month < 10 ? `0${month}` : month;
|
||||
|
||||
let issues = await getIssuesInMonth(
|
||||
owner,
|
||||
repo,
|
||||
state,
|
||||
};
|
||||
|
||||
issueCreator ? params.creator = issueCreator : null;
|
||||
issueAssignee ? params.assignee = issueAssignee : null;
|
||||
issueMentioned ? params.mentioned = issueMentioned : null;
|
||||
|
||||
if (labels) {
|
||||
params.labels = labels;
|
||||
thisMonth
|
||||
);
|
||||
if (issues.length == 0) {
|
||||
core.info(`Actions: [query-issues-${month}] empty!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (creator) {
|
||||
params.creator = creator;
|
||||
}
|
||||
|
||||
const res = await octokit.issues.listForRepo(params);
|
||||
let issues = [];
|
||||
let issueNumbers = [];
|
||||
if (res.data.length) {
|
||||
res.data.forEach(iss => {
|
||||
const a = bodyIncludes ? iss.body.includes(bodyIncludes) : true;
|
||||
const b = titleIncludes ? iss.title.includes(titleIncludes) : true;
|
||||
/**
|
||||
* Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request.
|
||||
* For this reason, "Issues" endpoints may return both issues and pull requests in the response.
|
||||
* You can identify pull requests by the pull_request key.
|
||||
*/
|
||||
if (a && b && iss.pull_request === undefined) {
|
||||
if (inactiveDay) {
|
||||
let lastTime = dayjs.utc().subtract(Number(inactiveDay), 'day');
|
||||
let updateTime = dayjs.utc(iss.updated_at);
|
||||
if (updateTime.isSameOrBefore(lastTime)) {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
}
|
||||
issues = issues.filter(i => {
|
||||
return getCreatedMonth(i.created_at) == month
|
||||
});
|
||||
let total = issues.length;
|
||||
let totalIssues = [...issues];
|
||||
let openTotal = 0;
|
||||
let openIssuesNumber = [];
|
||||
let closeTotal = 0;
|
||||
let closeIssuesNumber = [];
|
||||
let labelsTotals = [];
|
||||
const title = `[${owner}/${repo}] Month Statistics: ${year}-${showMonth}`;
|
||||
for (let i = 0; i < issues.length; i++) {
|
||||
if (issues[i].state == 'closed') {
|
||||
closeTotal += 1;
|
||||
closeIssuesNumber.push(issues[i].number);
|
||||
} else if (issues[i].state == 'open') {
|
||||
openTotal += 1;
|
||||
openIssuesNumber.push(issues[i].number);
|
||||
}
|
||||
if (countLables && issues[i].labels) {
|
||||
issues[i].labels.forEach(l => {
|
||||
if (l.name in labelsTotals) {
|
||||
labelsTotals[l.name] += 1;
|
||||
} else {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
labelsTotals[l.name] = 1;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
let now = dayjs().utc().format('YYYY-MM-DD HH:mm:ss');
|
||||
let body = `
|
||||
- Created time: ${now}
|
||||
|
||||
- Time base: UTC +0
|
||||
`;
|
||||
let totalShow = `
|
||||
### Count
|
||||
|
||||
| Total | Open | Closed |
|
||||
| -- | -- | -- |
|
||||
| ${total} | ${openTotal} | ${closeTotal} |
|
||||
|
||||
`;
|
||||
|
||||
body += totalShow;
|
||||
|
||||
if (countLables == 'true') {
|
||||
let labelsArr = [];
|
||||
for (var lab in labelsTotals) {
|
||||
labelsArr.push({
|
||||
labelName: lab,
|
||||
number: labelsTotals[lab]
|
||||
})
|
||||
}
|
||||
labelsArr.sort((a, b) => b.number - a.number);
|
||||
let labelsTitle = `
|
||||
### Labels statistics
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Number</th>
|
||||
</tr>`
|
||||
let labelsBody = '';
|
||||
labelsArr.forEach(it => {
|
||||
labelsBody += `<tr><td>${it.labelName}</td><td>${it.number}</td></tr>`
|
||||
})
|
||||
core.info(`Actions: [query-issues]: [${JSON.stringify(issueNumbers)}]!`);
|
||||
body = body + labelsTitle + labelsBody + `</table>
|
||||
|
||||
`;
|
||||
}
|
||||
|
||||
return issues;
|
||||
if (countComments == 'true') {
|
||||
totalIssues.sort((a, b) => b.comments - a.comments);
|
||||
const maxComments = totalIssues.slice(0, 3);
|
||||
let commentTitle = `
|
||||
### Most comments
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Issue</th>
|
||||
<th>Title</th>
|
||||
<th>Number</th>
|
||||
<th>State</th>
|
||||
</tr>
|
||||
`
|
||||
let commentBody = '';
|
||||
maxComments.forEach((it,ind) => {
|
||||
commentBody += `<tr>
|
||||
<td>${ind + 1}</td>
|
||||
<td>${it.number}</td>
|
||||
<td>${it.title}</td>
|
||||
<td>${it.comments}</td>
|
||||
<td>${it.state}</td></tr>`
|
||||
})
|
||||
body = body + commentTitle + commentBody + '</table>';
|
||||
}
|
||||
|
||||
await doCreateIssue(owner, repo, title, body, labels, assignees);
|
||||
};
|
||||
|
||||
// **************************************************************************
|
||||
module.exports = {
|
||||
doCheckInactive,
|
||||
doCheckIssue,
|
||||
doCloseIssues,
|
||||
doFindComments,
|
||||
doLockIssues,
|
||||
|
||||
// tool
|
||||
doQueryIssues,
|
||||
doMonthStatistics,
|
||||
};
|
||||
|
||||
|
||||
@@ -6265,8 +6343,7 @@ const core = __webpack_require__(2186);
|
||||
const github = __webpack_require__(5438);
|
||||
const { Octokit } = __webpack_require__(5375);
|
||||
|
||||
const { doQueryIssues } = __webpack_require__(9319);
|
||||
|
||||
// **************************************************************************
|
||||
const ALLREACTIONS = [
|
||||
"+1",
|
||||
"-1",
|
||||
@@ -6278,14 +6355,23 @@ const ALLREACTIONS = [
|
||||
"eyes",
|
||||
];
|
||||
|
||||
const { dealInput } = __webpack_require__(6254);
|
||||
const {
|
||||
doQueryIssues
|
||||
} = __webpack_require__(197);
|
||||
|
||||
const {
|
||||
dealInput,
|
||||
testDuplicate,
|
||||
} = __webpack_require__(6254);
|
||||
|
||||
// **************************************************************************
|
||||
const token = core.getInput('token');
|
||||
const octokit = new Octokit({ auth: `token ${token}` });
|
||||
const context = github.context;
|
||||
|
||||
const contents = core.getInput("contents");
|
||||
const issueContents = core.getInput("issue-contents");
|
||||
|
||||
// **************************************************************************
|
||||
async function doAddAssignees (owner, repo, issueNumber, assignees) {
|
||||
await octokit.issues.addAssignees({
|
||||
owner,
|
||||
@@ -6400,6 +6486,51 @@ async function doLockIssue (owner, repo, issueNumber) {
|
||||
core.info(`Actions: [lock-issue][${issueNumber}] success!`);
|
||||
};
|
||||
|
||||
async function doMarkDuplicate (owner, repo, labels) {
|
||||
if (context.eventName != 'issue_comment') {
|
||||
core.info(`This actions only support on 'issue_comment'!`);
|
||||
return false;
|
||||
}
|
||||
if (context.payload.action != 'created') {
|
||||
core.info(`This actions only support on 'issue_comment' created!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
const duplicateCommand = core.getInput("duplicate-command");
|
||||
const duplicateLabels = core.getInput("duplicate-labels");
|
||||
const removeLables = core.getInput("remove-labels");
|
||||
const closeIssue = core.getInput("close-issue");
|
||||
|
||||
const commentId = context.payload.comment.id;
|
||||
const commentBody = context.payload.comment.body;
|
||||
const issueNumber = context.payload.issue.number;
|
||||
|
||||
const ifCommandInput = !!duplicateCommand;
|
||||
|
||||
if ((ifCommandInput && commentBody.startsWith(duplicateCommand) && commentBody.split(' ')[0] == duplicateCommand) || testDuplicate(commentBody)) {
|
||||
if (ifCommandInput) {
|
||||
const nextBody = commentBody.replace(duplicateCommand, 'Duplicate of');
|
||||
await doUpdateComment(owner, repo, commentId, nextBody, 'replace', true);
|
||||
} else if (contents) {
|
||||
await doCreateCommentContent(owner, repo, commentId, dealInput(contents));
|
||||
}
|
||||
if (duplicateLabels) {
|
||||
await doAddLabels(owner, repo, issueNumber, duplicateLabels);
|
||||
}
|
||||
if (removeLables) {
|
||||
await doRemoveLabels(owner, repo, issueNumber, removeLables);
|
||||
}
|
||||
if (labels) {
|
||||
await doSetLabels(owner, repo, issueNumber, labels);
|
||||
}
|
||||
if (closeIssue == 'true') {
|
||||
await doCloseIssue(owner, repo, issueNumber);
|
||||
}
|
||||
} else {
|
||||
core.info(`This comment body should start whith 'duplicate-command'`);
|
||||
}
|
||||
};
|
||||
|
||||
async function doOpenIssue (owner, repo, issueNumber) {
|
||||
await octokit.issues.update({
|
||||
owner,
|
||||
@@ -6466,7 +6597,8 @@ async function doUpdateComment (
|
||||
repo,
|
||||
commentId,
|
||||
body,
|
||||
updateMode
|
||||
updateMode,
|
||||
ifUpdateBody,
|
||||
) {
|
||||
const comment = await octokit.issues.getComment({
|
||||
owner,
|
||||
@@ -6481,7 +6613,7 @@ async function doUpdateComment (
|
||||
comment_id: commentId
|
||||
};
|
||||
|
||||
if (core.getInput("body")) {
|
||||
if (core.getInput("body") || ifUpdateBody) {
|
||||
if (updateMode === 'append') {
|
||||
params.body = `${comment_body}\n${body}`;
|
||||
} else {
|
||||
@@ -6565,14 +6697,14 @@ async function doUpdateIssue (
|
||||
async function doWelcome (owner, repo, assignees, labels, body) {
|
||||
const context = github.context;
|
||||
const isIssue = !!context.payload.issue;
|
||||
const issueContents = core.getInput("issue-contents");
|
||||
if (!isIssue) {
|
||||
core.setFailed("The event that triggered this action must be a issue. Error!");
|
||||
} else {
|
||||
const auth = context.payload.sender.login;
|
||||
core.info(`Actions: [welcome: auth=][${auth}]`);
|
||||
const issueNumber = context.issue.number;
|
||||
const creator = 'zoo-js-bot';
|
||||
const issues = await doQueryIssues(owner, repo, false, 'all', creator);
|
||||
const issues = await doQueryIssues(owner, repo, false, 'all', auth);
|
||||
if (issues.length == 0 || (issues.length == 1 && issues[0].number == issueNumber)) {
|
||||
if (core.getInput("body")) {
|
||||
await doCreateComment(owner, repo, issueNumber, body);
|
||||
@@ -6597,7 +6729,7 @@ async function doWelcome (owner, repo, assignees, labels, body) {
|
||||
}
|
||||
};
|
||||
|
||||
// tool
|
||||
// **************************************************************************
|
||||
function testContent(con) {
|
||||
if (ALLREACTIONS.includes(con)) {
|
||||
return true;
|
||||
@@ -6607,7 +6739,7 @@ function testContent(con) {
|
||||
}
|
||||
};
|
||||
|
||||
// exports
|
||||
// **************************************************************************
|
||||
module.exports = {
|
||||
doAddAssignees,
|
||||
doAddLabels,
|
||||
@@ -6617,6 +6749,7 @@ module.exports = {
|
||||
doCreateIssue,
|
||||
doCreateIssueContent,
|
||||
doDeleteComment,
|
||||
doMarkDuplicate,
|
||||
doLockIssue,
|
||||
doOpenIssue,
|
||||
doRemoveAssignees,
|
||||
@@ -6637,15 +6770,15 @@ module.exports = {
|
||||
const core = __webpack_require__(2186);
|
||||
const github = __webpack_require__(5438);
|
||||
|
||||
// **************************************************************************
|
||||
const {
|
||||
doAddAssignees,
|
||||
doAddLabels,
|
||||
doCloseIssue,
|
||||
doCreateComment,
|
||||
doCreateCommentContent,
|
||||
doCreateIssue,
|
||||
doCreateIssueContent,
|
||||
doDeleteComment,
|
||||
doMarkDuplicate,
|
||||
doLockIssue,
|
||||
doOpenIssue,
|
||||
doRemoveAssignees,
|
||||
@@ -6663,8 +6796,10 @@ const {
|
||||
doCloseIssues,
|
||||
doFindComments,
|
||||
doLockIssues,
|
||||
doMonthStatistics,
|
||||
} = __webpack_require__(9319);
|
||||
|
||||
// **************************************************************************
|
||||
const ALLACTIONS = [
|
||||
// base
|
||||
'add-assignees',
|
||||
@@ -6674,6 +6809,7 @@ const ALLACTIONS = [
|
||||
'create-issue',
|
||||
'delete-comment',
|
||||
'lock-issue',
|
||||
'mark-duplicate',
|
||||
'open-issue',
|
||||
'remove-assignees',
|
||||
'remove-labels',
|
||||
@@ -6689,8 +6825,10 @@ const ALLACTIONS = [
|
||||
'close-issues',
|
||||
'find-comments',
|
||||
'lock-issues',
|
||||
'month-statistics',
|
||||
];
|
||||
|
||||
// **************************************************************************
|
||||
async function main() {
|
||||
try {
|
||||
const owner = github.context.repo.owner;
|
||||
@@ -6715,7 +6853,9 @@ async function main() {
|
||||
updateMode = 'replace';
|
||||
}
|
||||
|
||||
// actions
|
||||
const actions = core.getInput("actions", { required: true });
|
||||
|
||||
const actionsArr = actions.split(',');
|
||||
actionsArr.forEach(item => {
|
||||
testActions(item.trim());
|
||||
@@ -6753,6 +6893,9 @@ async function main() {
|
||||
case 'lock-issue':
|
||||
await doLockIssue(owner, repo, issueNumber);
|
||||
break;
|
||||
case 'mark-duplicate':
|
||||
await doMarkDuplicate(owner, repo, labels);
|
||||
break;
|
||||
case 'open-issue':
|
||||
await doOpenIssue(owner, repo, issueNumber);
|
||||
break;
|
||||
@@ -6836,6 +6979,14 @@ async function main() {
|
||||
labels
|
||||
);
|
||||
break;
|
||||
case 'month-statistics':
|
||||
await doMonthStatistics(
|
||||
owner,
|
||||
repo,
|
||||
labels,
|
||||
assignees
|
||||
);
|
||||
break;
|
||||
// default
|
||||
default:
|
||||
break;
|
||||
@@ -6847,15 +6998,151 @@ async function main() {
|
||||
}
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
main();
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 197:
|
||||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||||
|
||||
__webpack_require__(2437).config();
|
||||
const core = __webpack_require__(2186);
|
||||
const { Octokit } = __webpack_require__(5375);
|
||||
|
||||
const {
|
||||
getPreMonth
|
||||
} = __webpack_require__(6254);
|
||||
|
||||
// **************************************************************************
|
||||
var dayjs = __webpack_require__(7401);
|
||||
var utc = __webpack_require__(4359);
|
||||
dayjs.extend(utc);
|
||||
var isSameOrBefore = __webpack_require__(9517);
|
||||
dayjs.extend(isSameOrBefore);
|
||||
|
||||
// **************************************************************************
|
||||
const token = core.getInput('token');
|
||||
const octokit = new Octokit({ auth: `token ${token}` });
|
||||
|
||||
const perPage = 100;
|
||||
|
||||
const issueCreator = core.getInput("issue-creator");
|
||||
const issueAssignee = core.getInput('issue-assignee');
|
||||
const issueMentioned = core.getInput('issue-mentioned');
|
||||
|
||||
const bodyIncludes = core.getInput('body-includes');
|
||||
const titleIncludes = core.getInput('title-includes');
|
||||
|
||||
const inactiveDay = core.getInput("inactive-day");
|
||||
|
||||
// **************************************************************************
|
||||
async function doQueryIssues (owner, repo, labels, state, creator) {
|
||||
let params = {
|
||||
owner,
|
||||
repo,
|
||||
state,
|
||||
};
|
||||
|
||||
issueCreator ? params.creator = issueCreator : null;
|
||||
issueAssignee ? params.assignee = issueAssignee : null;
|
||||
issueMentioned ? params.mentioned = issueMentioned : null;
|
||||
|
||||
if (labels) {
|
||||
params.labels = labels;
|
||||
}
|
||||
|
||||
if (creator) {
|
||||
params.creator = creator;
|
||||
}
|
||||
|
||||
const res = await getIssues(params);
|
||||
let issues = [];
|
||||
let issueNumbers = [];
|
||||
if (res.length) {
|
||||
res.forEach(iss => {
|
||||
const a = bodyIncludes ? iss.body.includes(bodyIncludes) : true;
|
||||
const b = titleIncludes ? iss.title.includes(titleIncludes) : true;
|
||||
/**
|
||||
* Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request.
|
||||
* For this reason, "Issues" endpoints may return both issues and pull requests in the response.
|
||||
* You can identify pull requests by the pull_request key.
|
||||
*/
|
||||
if (a && b && iss.pull_request === undefined) {
|
||||
if (inactiveDay) {
|
||||
let lastTime = dayjs.utc().subtract(Number(inactiveDay), 'day');
|
||||
let updateTime = dayjs.utc(iss.updated_at);
|
||||
if (updateTime.isSameOrBefore(lastTime)) {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
}
|
||||
} else {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
}
|
||||
}
|
||||
})
|
||||
core.info(`Actions: [query-issues]: [${JSON.stringify(issueNumbers)}]!`);
|
||||
}
|
||||
|
||||
return issues;
|
||||
};
|
||||
|
||||
async function getIssues (params, page = 1) {
|
||||
let { data: issues } = await octokit.issues.listForRepo({
|
||||
...params,
|
||||
per_page: perPage,
|
||||
page
|
||||
});
|
||||
if (issues.length >= perPage) {
|
||||
issues = issues.concat(await getIssues(params, page + 1));
|
||||
}
|
||||
return issues;
|
||||
};
|
||||
|
||||
async function getIssuesInMonth (owner, repo, thisMonth, page = 1) {
|
||||
const month = getPreMonth(thisMonth);
|
||||
let { data: issues } = await octokit.issues.listForRepo({
|
||||
owner,
|
||||
repo,
|
||||
state: 'all',
|
||||
per_page: perPage,
|
||||
page
|
||||
});
|
||||
issues = issues.filter(i => {
|
||||
return i.pull_request === undefined
|
||||
});
|
||||
if (issues.length && getCreatedMonth(issues[issues.length - 1].created_at) >= month) {
|
||||
issues = issues.concat(await getIssuesInMonth(owner, repo, thisMonth, page + 1));
|
||||
}
|
||||
return issues;
|
||||
};
|
||||
|
||||
// **************************************************************************
|
||||
function getCreatedMonth (d) {
|
||||
return dayjs(d).utc().month() + 1;
|
||||
};
|
||||
|
||||
// **************************************************************************
|
||||
module.exports = {
|
||||
doQueryIssues,
|
||||
getIssues,
|
||||
getIssuesInMonth,
|
||||
getCreatedMonth,
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6254:
|
||||
/***/ ((module) => {
|
||||
|
||||
function dealInput (para) {
|
||||
/**
|
||||
* in 'x1,x2,x3'
|
||||
* out ['x1','x2','x3']
|
||||
*/
|
||||
let arr = [];
|
||||
if (para) {
|
||||
const paraArr = para.split(',');
|
||||
@@ -6868,13 +7155,32 @@ function dealInput (para) {
|
||||
return arr;
|
||||
};
|
||||
|
||||
function matchKeyword(content, keywords) {
|
||||
function matchKeyword (content, keywords) {
|
||||
return keywords.find(item => content.toLowerCase().includes(item));
|
||||
};
|
||||
|
||||
function testDuplicate(body) {
|
||||
if (!body || !body.startsWith('Duplicate of')) {
|
||||
return false
|
||||
}
|
||||
|
||||
let arr = body.split(' ');
|
||||
if (arr[0] == 'Duplicate' && arr[1] == 'of') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function getPreMonth (m) {
|
||||
return m == 1 ? 12 : m -1;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
dealInput,
|
||||
getPreMonth,
|
||||
matchKeyword,
|
||||
testDuplicate,
|
||||
};
|
||||
|
||||
|
||||
|
@@ -22,28 +22,28 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-inactive
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-inactive'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
inactive-day: 30
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ | v1 |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) for this comment | string | ✖ | v1 |
|
||||
| labels | Labels filtering | string | ✖ | v1.1 |
|
||||
| issue-state | State filtering | string | ✖ | v1 |
|
||||
| issue-assignee | Assignee filtering | string | ✖ | v1 |
|
||||
| issue-creator | Creator filtering | string | ✖ | v1 |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ | v1 |
|
||||
| body-includes | Body filtering | string | ✖ | v1 |
|
||||
| title-includes | Title filtering | string | ✖ | v1 |
|
||||
| inactive-day | Inactive days filtering | number | ✖ | v1.4 |
|
||||
| inactive-label | The label name adding | string | ✖ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) for this comment | string | ✖ |
|
||||
| labels | Labels filtering | string | ✖ |
|
||||
| issue-state | State filtering | string | ✖ |
|
||||
| issue-assignee | Assignee filtering | string | ✖ |
|
||||
| issue-creator | Creator filtering | string | ✖ |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ |
|
||||
| body-includes | Body filtering | string | ✖ |
|
||||
| title-includes | Title filtering | string | ✖ |
|
||||
| inactive-day | Inactive days filtering | number | ✖ |
|
||||
| inactive-label | The label name adding | string | ✖ |
|
||||
|
||||
- `labels`: When there are multiple, the query will have multiple at the same time. If not entered, all
|
||||
- `issue-state`: The default is `all`. Optional value `open` `closed`, when these 2 items are not, both are `all`
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -82,17 +82,17 @@ jobs:
|
||||
title-includes: 'x1,x2/y1,y2'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1.2 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1.2 |
|
||||
| issue-number | The number of issue | number | ✔ | v1.2 |
|
||||
| assignee-includes | Assignees contains check | string | ✖ | v1.2 |
|
||||
| title-includes | Title contains check | string | ✖ | v1.2 |
|
||||
| body-includes | Body contains check | string | ✖ | v1.2 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| assignee-includes | Assignees contains check | string | ✖ |
|
||||
| title-includes | Title contains check | string | ✖ |
|
||||
| body-includes | Body contains check | string | ✖ |
|
||||
|
||||
- `title-includes` `body-includes` supports the format `x1,x2` or `x1,x2/y1,y2`. Only supports two levels
|
||||
- Return `check-result`
|
||||
- Return `check-result`, due to yml reasons, the judgment condition is `if: steps.xxid.outputs.check-result =='true'`
|
||||
|
||||
## `close-issues`
|
||||
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: close-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -118,19 +118,19 @@ jobs:
|
||||
inactive-day: 7
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ | v1 |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) for this comment | string | ✖ | v1 |
|
||||
| labels | Labels filtering | string | ✖ | v1.1 |
|
||||
| issue-assignee | Assignee filtering | string | ✖ | v1 |
|
||||
| issue-creator | Creator filtering | string | ✖ | v1 |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ | v1 |
|
||||
| body-includes | Body filtering | string | ✖ | v1 |
|
||||
| title-includes | Title filtering | string | ✖ | v1 |
|
||||
| inactive-day | Inactive days filtering | number | ✖ | v1.4 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) for this comment | string | ✖ |
|
||||
| labels | Labels filtering | string | ✖ |
|
||||
| issue-assignee | Assignee filtering | string | ✖ |
|
||||
| issue-creator | Creator filtering | string | ✖ |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ |
|
||||
| body-includes | Body filtering | string | ✖ |
|
||||
| title-includes | Title filtering | string | ✖ |
|
||||
| inactive-day | Inactive days filtering | number | ✖ |
|
||||
|
||||
- `labels`: When there are multiple, the query will have multiple at the same time. If not entered, all
|
||||
- `issue-assignee`: Multiplayer is not supported. If you do not enter or enter *, all will be searched. Entering `none` will query issues for which the specified person is not added
|
||||
@@ -142,7 +142,7 @@ Find the current warehouse issue No. 1, the creator is k and the content contain
|
||||
|
||||
```yml
|
||||
- name: Find comments
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'find-comments'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -151,14 +151,14 @@ Find the current warehouse issue No. 1, the creator is k and the content contain
|
||||
body-includes: 'this'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| comment-auth | Comment creator, all will be queried if not filled | string | ✖ | v1 |
|
||||
| body-includes | Comment content includes filtering, no verification if not filled | string | ✖ | v1 |
|
||||
| direction | Return `comments` sort | string | ✖ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| comment-auth | Comment creator, all will be queried if not filled | string | ✖ |
|
||||
| body-includes | Comment content includes filtering, no verification if not filled | string | ✖ |
|
||||
| direction | Return `comments` sort | string | ✖ |
|
||||
|
||||
- Return `comments` in the following format:
|
||||
|
||||
@@ -188,7 +188,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: lock-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -196,22 +196,62 @@ jobs:
|
||||
inactive-day: 128
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ | v1 |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) for this comment | string | ✖ | v1 |
|
||||
| labels | Labels filtering | string | ✖ | v1.1 |
|
||||
| issue-state | State filtering | string | ✖ | v1 |
|
||||
| issue-assignee | Assignee filtering | string | ✖ | v1 |
|
||||
| issue-creator | Creator filtering | string | ✖ | v1 |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ | v1 |
|
||||
| body-includes | Body filtering | string | ✖ | v1 |
|
||||
| title-includes | Title filtering | string | ✖ | v1 |
|
||||
| inactive-day | Inactive days filtering | number | ✖ | v1.4 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| body | When operating an issue, you can comment. Do not comment when not typing | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) for this comment | string | ✖ |
|
||||
| labels | Labels filtering | string | ✖ |
|
||||
| issue-state | State filtering | string | ✖ |
|
||||
| issue-assignee | Assignee filtering | string | ✖ |
|
||||
| issue-creator | Creator filtering | string | ✖ |
|
||||
| issue-mentioned | Mentioned filtering | string | ✖ |
|
||||
| body-includes | Body filtering | string | ✖ |
|
||||
| title-includes | Title filtering | string | ✖ |
|
||||
| inactive-day | Inactive days filtering | number | ✖ |
|
||||
|
||||
- `labels`: When there are multiple, the query will have multiple at the same time. If not entered, all
|
||||
- `issue-state`: The default is `all`. Optional value `open` `closed`, when these 2 items are not, both are `all`
|
||||
- `issue-assignee`: Multiplayer is not supported. If you do not enter or enter *, all will be searched. Entering `none` will query issues for which the specified person is not added
|
||||
- `inactive-day`: When entering, it will filter the issue update time earlier than the current time minus the number of inactive days. If not entered, all
|
||||
|
||||
## `month-statistics`
|
||||
|
||||
At 1 o'clock on the 1st of each month, an issue is generated for the statistics of the previous month.
|
||||
|
||||
```
|
||||
name: Issue Month Statistics
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 1 1 * *"
|
||||
|
||||
jobs:
|
||||
month-statistics:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: month-statistics
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'month-statistics'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
count-lables: 'true'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| labels | The labels for the new issue | string | ✖ |
|
||||
| assignees | The assignees for the new issue | string | ✖ |
|
||||
| count-lables | Whether the new issue count labels | string | ✖ |
|
||||
| count-comments | Whether the new issue count comments | string | ✖ |
|
||||
|
||||
- The new issue title defaults to `[Current repo] Month Statistics: Year-Month`
|
||||
- `count-lables`: You can set `'true'` to add labels statistics
|
||||
- `count-comments`: You can set `'true'` to add comments statistics
|
||||
|
||||
As follows:
|
||||
|
||||

|
||||
|
168
docs/advanced.md
168
docs/advanced.md
@@ -22,28 +22,28 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-inactive
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-inactive'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
inactive-day: 30
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ | v1 |
|
||||
| contents | 为该评论增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1 |
|
||||
| labels | 标签筛选 | string | ✖ | v1.1 |
|
||||
| issue-state | 状态筛选 | string | ✖ | v1 |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ | v1 |
|
||||
| issue-creator | 创建人筛选 | string | ✖ | v1 |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ | v1 |
|
||||
| body-includes | 包含内容筛选 | string | ✖ | v1 |
|
||||
| title-includes | 包含标题筛选 | string | ✖ | v1 |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ | v1.4 |
|
||||
| inactive-label | 新增标签名称 | string | ✖ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ |
|
||||
| contents | 为该评论增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
| labels | 标签筛选 | string | ✖ |
|
||||
| issue-state | 状态筛选 | string | ✖ |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ |
|
||||
| issue-creator | 创建人筛选 | string | ✖ |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ |
|
||||
| body-includes | 包含内容筛选 | string | ✖ |
|
||||
| title-includes | 包含标题筛选 | string | ✖ |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
||||
| inactive-label | 新增标签名称 | string | ✖ |
|
||||
|
||||
- `labels`:为多个时,会查询同时拥有多个。不填时,会查询所有
|
||||
- `issue-state`:默认为 `all`。可选值 `open` `closed`,非这 2 项时,均为 `all`
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check-issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'check-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -78,17 +78,17 @@ jobs:
|
||||
title-includes: 'x1,x2/y1,y2'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1.2 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1.2 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1.2 |
|
||||
| assignee-includes | 是否包含指定人 | string | ✖ | v1.2 |
|
||||
| title-includes | 标题包含校验 | string | ✖ | v1.2 |
|
||||
| body-includes | 内容包含校验 | string | ✖ | v1.2 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| assignee-includes | 是否包含指定人 | string | ✖ |
|
||||
| title-includes | 标题包含校验 | string | ✖ |
|
||||
| body-includes | 内容包含校验 | string | ✖ |
|
||||
|
||||
- `title-includes` `body-includes` 支持格式 `x1,x2` 或者 `x1,x2/y1,y2`。只支持两个层级
|
||||
- 返回 `check-result`
|
||||
- 返回 `check-result`,由于 yml 原因,判断条件为 `if: steps.xxid.outputs.check-result == 'true'`
|
||||
|
||||
## `close-issues`
|
||||
|
||||
@@ -106,7 +106,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: close-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -114,19 +114,19 @@ jobs:
|
||||
inactive-day: 7
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ | v1 |
|
||||
| contents | 为该评论增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1 |
|
||||
| labels | 标签筛选 | string | ✖ | v1.1 |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ | v1 |
|
||||
| issue-creator | 创建人筛选 | string | ✖ | v1 |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ | v1 |
|
||||
| body-includes | 包含内容筛选 | string | ✖ | v1 |
|
||||
| title-includes | 包含标题筛选 | string | ✖ | v1 |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ | v1.4 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ |
|
||||
| contents | 为该评论增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
| labels | 标签筛选 | string | ✖ |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ |
|
||||
| issue-creator | 创建人筛选 | string | ✖ |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ |
|
||||
| body-includes | 包含内容筛选 | string | ✖ |
|
||||
| title-includes | 包含标题筛选 | string | ✖ |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
||||
|
||||
- `labels`:为多个时,会查询同时拥有多个。不填时,会查询所有
|
||||
- `issue-assignee`:不支持多人。不填或输入 * 时,查询所有。输入 `none` 会查询未添加指定人的 issues
|
||||
@@ -138,7 +138,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Find comments
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'find-comments'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -147,14 +147,14 @@ jobs:
|
||||
body-includes: 'this'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| comment-auth | 评论创建者,不填时会查询所有 | string | ✖ | v1 |
|
||||
| body-includes | 评论内容包含过滤,不填时无校验 | string | ✖ | v1 |
|
||||
| direction | 返回 `comments` 排序 | string | ✖ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| comment-auth | 评论创建者,不填时会查询所有 | string | ✖ |
|
||||
| body-includes | 评论内容包含过滤,不填时无校验 | string | ✖ |
|
||||
| direction | 返回 `comments` 排序 | string | ✖ |
|
||||
|
||||
- 返回 `comments`,格式如下:
|
||||
|
||||
@@ -184,7 +184,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: lock-issues
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issues'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -192,22 +192,62 @@ jobs:
|
||||
inactive-day: 128
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ | v1 |
|
||||
| contents | 为该评论增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1 |
|
||||
| labels | 标签筛选 | string | ✖ | v1.1 |
|
||||
| issue-state | 状态筛选 | string | ✖ | v1 |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ | v1 |
|
||||
| issue-creator | 创建人筛选 | string | ✖ | v1 |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ | v1 |
|
||||
| body-includes | 包含内容筛选 | string | ✖ | v1 |
|
||||
| title-includes | 包含标题筛选 | string | ✖ | v1 |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ | v1.4 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| body | 操作 issue 时,可进行评论。不填时,不评论 | string | ✖ |
|
||||
| contents | 为该评论增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
| labels | 标签筛选 | string | ✖ |
|
||||
| issue-state | 状态筛选 | string | ✖ |
|
||||
| issue-assignee | 指定人筛选 | string | ✖ |
|
||||
| issue-creator | 创建人筛选 | string | ✖ |
|
||||
| issue-mentioned | 提及人筛选 | string | ✖ |
|
||||
| body-includes | 包含内容筛选 | string | ✖ |
|
||||
| title-includes | 包含标题筛选 | string | ✖ |
|
||||
| inactive-day | 非活跃天数筛选 | number | ✖ |
|
||||
|
||||
- `labels`:为多个时,会查询同时拥有多个。不填时,会查询所有
|
||||
- `issue-state`:默认为 `all`。可选值 `open` `closed`,非这 2 项时,均为 `all`
|
||||
- `issue-assignee`:不支持多人。不填或输入 * 时,查询所有。输入 `none` 会查询未添加指定人的 issues
|
||||
- `inactive-day`:当输入时,会筛选 issue 更新时间早于当前时间减去非活跃天数。不填时,会查询所有
|
||||
|
||||
## `month-statistics`
|
||||
|
||||
每月 1 号 1 时,生成一个 issue 上月统计。
|
||||
|
||||
```
|
||||
name: Issue Month Statistics
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 1 1 * *"
|
||||
|
||||
jobs:
|
||||
month-statistics:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: month-statistics
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'month-statistics'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
count-lables: 'true'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| labels | 为新增 issue 添加 labels | string | ✖ |
|
||||
| assignees | 为新增 issue 添加 assignees | string | ✖ |
|
||||
| count-lables | 新增 issue 是否统计 labels | string | ✖ |
|
||||
| count-comments | 新增 issue 是否统计 comments | string | ✖ |
|
||||
|
||||
- 新增 `issue` 的标题默认为 `[当前仓库] Month Statistics: 年-月`
|
||||
- `count-lables`:可设置 `'true'`,增加 labels 统计
|
||||
- `count-comments`:可设置 `'true'`,增加 comments 统计
|
||||
|
||||
如下所示:
|
||||
|
||||

|
||||
|
@@ -22,7 +22,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add assigness
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -30,18 +30,18 @@ jobs:
|
||||
assignees: 'xxx' or 'xx1,xx2'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| assignees | Designated person. No operation when no input or empty character | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| assignees | Designated person. No operation when no input or empty character | string | ✖ |
|
||||
|
||||
- `actions` support multiple and separated by comma. Like: `add-assignees,add-labels`
|
||||
- The `name` can be modified according to the actual situation
|
||||
- [Reference to on](/en-US/guide/ref#-github-docs)
|
||||
- `${{ github.event.issue.number }}` is the current issue. [More references](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events)
|
||||
- `assignees` support multiple and separated by comma. Pay attention to multiple settings, you need to use the version above v1.1
|
||||
- `assignees` support multiple and separated by comma
|
||||
|
||||
## `add-labels`
|
||||
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
if: contains(github.event.issue.body, 'xxx') == false
|
||||
steps:
|
||||
- name: Add labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -68,14 +68,14 @@ jobs:
|
||||
labels: 'bug' or 'xx1,xx2'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| labels | New labels. When it is not filled in or is empty character, do not add | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| labels | New labels. When it is not filled in or is empty character, do not add | string | ✖ |
|
||||
|
||||
- `labels` support multiple and separated by comma. Pay attention to multiple settings, you need to use the version above v1.1
|
||||
- `labels` support multiple and separated by comma
|
||||
|
||||
## `close-issue`
|
||||
|
||||
@@ -83,7 +83,7 @@ Close the specified issue.
|
||||
|
||||
```yml
|
||||
- name: Close issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -91,11 +91,11 @@ Close the specified issue.
|
||||
body: 'This is auto closed.'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
## `create-comment`
|
||||
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
if: github.event.label.name == 'xxx'
|
||||
steps:
|
||||
- name: Create comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -126,19 +126,19 @@ jobs:
|
||||
contents: '+1' or '+1,heart'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| body | Add comment content | string | ✖ | v1 |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| body | Add comment content | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ |
|
||||
|
||||
- `body` default is `Currently at ${owner}/${repo}. And this is default comment.`
|
||||
- Where `${owner}/${repo}` means the current repo
|
||||
- Return `comment-id`, which can be used for subsequent operations. [Usage reference](/en-US/guide/ref#-outputs-use)
|
||||
- `${{ github.event.issue.user.login }}` indicates the creator of the issue
|
||||
- `contents` support multiple and separated by comma. Pay attention to multiple settings, you need to use the version above v1.1
|
||||
- `contents` support multiple and separated by comma
|
||||
|
||||
## `create-issue`
|
||||
|
||||
@@ -156,7 +156,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -167,15 +167,15 @@ jobs:
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| title | The title of the new issue | string | ✖ | v1 |
|
||||
| body | The body of the new issue | string | ✖ | v1 |
|
||||
| labels | The labels for the new issue | string | ✖ | v1.1 |
|
||||
| assignees | The assignees for the new issue | string | ✖ | v1.1 |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| title | The title of the new issue | string | ✖ |
|
||||
| body | The body of the new issue | string | ✖ |
|
||||
| labels | The labels for the new issue | string | ✖ |
|
||||
| assignees | The assignees for the new issue | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ |
|
||||
|
||||
- `title` default is `Default Title`
|
||||
- Return `issue-number`. [Usage reference](/en-US/guide/ref#-outputs-use)
|
||||
@@ -186,18 +186,18 @@ According to [`comment-id`](/en-US/guide/ref#-comment-id) delete the specified c
|
||||
|
||||
```yml
|
||||
- name: Delete comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'delete-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
comment-id: xxx
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| comment-id | The comment ID | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| comment-id | The comment ID | number | ✔ |
|
||||
|
||||
## `lock-issue`
|
||||
|
||||
@@ -216,18 +216,60 @@ jobs:
|
||||
if: github.event.label.name == 'invalid'
|
||||
steps:
|
||||
- name: Lock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
## `mark-duplicate`
|
||||
|
||||
Quickly mark duplicate questions, only for issue new comments.
|
||||
|
||||
```yml
|
||||
name: Issue Mark Duplicate
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
mark-duplicate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: mark-duplicate
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'mark-duplicate'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| duplicate-command | Simple commands can be set, such as: `/d` | string | ✖ |
|
||||
| duplicate-labels | Add additional labels to this issue | string | ✖ |
|
||||
| remove-labels | Set removable labels | string | ✖ |
|
||||
| labels | Replace the labels of the issue | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) for this comment | string | ✖ |
|
||||
| close-issue | Whether to close the issue at the same time | string | ✖ |
|
||||
|
||||
- `duplicate-command`: When setting concise commands, while still supporting the original `Duplicate of`
|
||||
- `close-issue`: Both `true` or `'true'` can take effect
|
||||
|
||||
<Alert>
|
||||
Note: Duplicate created with the concise command does not display the content of the red box in the figure below. But in fact this has no effect.
|
||||
</Alert>
|
||||
|
||||

|
||||
|
||||
## `open-issue`
|
||||
|
||||
@@ -235,18 +277,18 @@ Open the specified issue.
|
||||
|
||||
```yml
|
||||
- name: Open issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'open-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: xxx
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
## `remove-assignees`
|
||||
|
||||
@@ -254,7 +296,7 @@ Remove the person designated by issue.
|
||||
|
||||
```yml
|
||||
- name: Remove assignees
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -262,12 +304,12 @@ Remove the person designated by issue.
|
||||
assignees: 'xx'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| assignees | Designated person removed. When it is an empty character, do not remove | string | ✔ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| assignees | Designated person removed. When it is an empty character, do not remove | string | ✔ |
|
||||
|
||||
## `remove-labels`
|
||||
|
||||
@@ -275,7 +317,7 @@ Remove the specified labels.
|
||||
|
||||
```yml
|
||||
- name: Remove labels
|
||||
uses: actions-cool/issues-helper@v1.2
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -283,12 +325,12 @@ Remove the specified labels.
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1.2 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1.2 |
|
||||
| issue-number | The number of issue | number | ✔ | v1.2 |
|
||||
| labels | The removed labels. When it is a blank character, do not remove | string | ✔ | v1.2 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| labels | The removed labels. When it is a blank character, do not remove | string | ✔ |
|
||||
|
||||
- `labels` supports multiple, such as `x1,x2,x3`, only the labels added by the issue will be removed
|
||||
|
||||
@@ -298,7 +340,7 @@ Replace the labels of issue.
|
||||
|
||||
```yml
|
||||
- name: Set labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'set-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -306,12 +348,12 @@ Replace the labels of issue.
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| labels | labels set. When empty characters, will remove all | string | ✔ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| labels | labels set. When empty characters, will remove all | string | ✔ |
|
||||
|
||||
## `unlock-issue`
|
||||
|
||||
@@ -319,18 +361,18 @@ Unlock the specified issue.
|
||||
|
||||
```yml
|
||||
- name: Unlock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'unlock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
|
||||
## `update-comment`
|
||||
|
||||
@@ -350,7 +392,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -358,14 +400,14 @@ jobs:
|
||||
contents: 'eyes'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| comment-id | The comment ID | number | ✔ | v1 |
|
||||
| body | Update the content of comment | string | ✖ | v1 |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ | v1 |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| comment-id | The comment ID | number | ✔ |
|
||||
| body | Update the content of comment | string | ✖ |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ |
|
||||
|
||||
- When `body` is not entered, it will remain as it is
|
||||
- When `update-mode` is `append`, additional operations will be performed. Anything other than `append` will be replaced. Only effective for `body`
|
||||
@@ -376,7 +418,7 @@ Update the specified issue according to the `issue-number`.
|
||||
|
||||
```yml
|
||||
- name: Update issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -390,18 +432,18 @@ Update the specified issue according to the `issue-number`.
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1 |
|
||||
| issue-number | The number of issue | number | ✔ | v1 |
|
||||
| state | Modify the status of issue, optional value `open` `closed` | string | ✖ | v1 |
|
||||
| title | Modify the title of the issue | string | ✖ | v1 |
|
||||
| body | Modify the content of issue | string | ✖ | v1 |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ | v1 |
|
||||
| labels | Replace the labels of issue | string | ✖ | v1.1 |
|
||||
| assignees | Replace the assignees of issue | string | ✖ | v1.1 |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ | v1.1 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| issue-number | The number of issue | number | ✔ |
|
||||
| state | Modify the status of issue, optional value `open` `closed` | string | ✖ |
|
||||
| title | Modify the title of the issue | string | ✖ |
|
||||
| body | Modify the content of issue | string | ✖ |
|
||||
| update-mode | Update mode. Default `replace`, another `append` | string | ✖ |
|
||||
| labels | Replace the labels of issue | string | ✖ |
|
||||
| assignees | Replace the assignees of issue | string | ✖ |
|
||||
| contents | Add [reaction](/en-US/guide/ref#-reactions-type) | string | ✖ |
|
||||
|
||||
- `state` defaults to `open`
|
||||
- When the option is not filled, it will keep the original
|
||||
@@ -424,7 +466,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: welcome
|
||||
uses: actions-cool/issues-helper@v1.3
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'welcome'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -434,13 +476,13 @@ jobs:
|
||||
issue-contents: '+1, -1, eyes'
|
||||
```
|
||||
|
||||
| Param | Desc | Type | Required | Version |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ | v1.3 |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ | v1.3 |
|
||||
| body | Comment on the welcome content, no comment if you leave it blank | string | ✖ | v1.3 |
|
||||
| labels | Add labels to this issue | string | ✖ | v1.3 |
|
||||
| assignees | Add assignees to this issue | string | ✖ | v1.3 |
|
||||
| issue-contents | Add [reaction](/en-US/guide/ref#-reactions-type) to this issue| string | ✖ | v1.3 |
|
||||
| Param | Desc | Type | Required |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | Action type | string | ✔ |
|
||||
| token | [Token explain](/en-US/guide/ref#-token) | string | ✔ |
|
||||
| body | Comment on the welcome content, no comment if you leave it blank | string | ✖ |
|
||||
| labels | Add labels to this issue | string | ✖ |
|
||||
| assignees | Add assignees to this issue | string | ✖ |
|
||||
| issue-contents | Add [reaction](/en-US/guide/ref#-reactions-type) to this issue| string | ✖ |
|
||||
|
||||
- If these 4 options are not filled, no operation
|
276
docs/base.md
276
docs/base.md
@@ -22,7 +22,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add assigness
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -30,18 +30,18 @@ jobs:
|
||||
assignees: 'xxx' or 'xx1,xx2'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| assignees | 指定人。当不填或者为空字符时,不操作 | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| assignees | 指定人。当不填或者为空字符时,不操作 | string | ✖ |
|
||||
|
||||
- `actions` 支持多个,需用逗号隔开。如:`add-assignees,add-labels`
|
||||
- 其中的 `name` 可根据自行根据实际情况修改
|
||||
- [on 参考](/guide/ref#-github-相关文档)
|
||||
- `${{ github.event.issue.number }}` 表示当前 issue,[更多参考](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events)
|
||||
- `assignees` 支持多个,需用逗号隔开。注意设置多个,需使用v1.1以上版本
|
||||
- `assignees` 支持多个,需用逗号隔开
|
||||
|
||||
## `add-labels`
|
||||
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
if: contains(github.event.issue.body, 'xxx') == false
|
||||
steps:
|
||||
- name: Add labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'add-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -68,14 +68,14 @@ jobs:
|
||||
labels: 'bug' or 'bug1,bug2'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| labels | 新增的 labels。当不填或者为空字符时,不新增 | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| labels | 新增的 labels。当不填或者为空字符时,不新增 | string | ✖ |
|
||||
|
||||
- `labels` 支持多个,需用逗号隔开。注意设置多个,需使用v1.1以上版本
|
||||
- `labels` 支持多个,需用逗号隔开
|
||||
|
||||
## `close-issue`
|
||||
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Close issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'close-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -91,11 +91,11 @@ jobs:
|
||||
body: 'This is auto closed.'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
## `create-comment`
|
||||
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
if: github.event.label.name == 'xxx'
|
||||
steps:
|
||||
- name: Create comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -126,19 +126,19 @@ jobs:
|
||||
contents: '+1' or '+1,heart'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| body | 新增评论的内容 | string | ✖ | v1 |
|
||||
| contents | 为新增评论的增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| body | 新增评论的内容 | string | ✖ |
|
||||
| contents | 为新增评论的增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
|
||||
- `body` 默认为:`Currently at ${owner}/${repo}. And this is default comment.`
|
||||
- 其中 `${owner}/${repo}` 表示当前仓库
|
||||
- 返回 `comment-id`,可用于之后操作。[用法参考](/guide/ref#-outputs-使用)
|
||||
- `${{ github.event.issue.user.login }}` 表示该 issue 的创建者
|
||||
- `contents` 支持多个,需用逗号隔开。注意设置多个,需使用v1.1以上版本
|
||||
- `contents` 支持多个,需用逗号隔开
|
||||
|
||||
## `create-issue`
|
||||
|
||||
@@ -156,7 +156,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -167,15 +167,15 @@ jobs:
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| title | 新增 issue 的标题 | string | ✖ | v1 |
|
||||
| body | 新增 issue 的内容 | string | ✖ | v1 |
|
||||
| labels | 为新增 issue 添加 labels | string | ✖ | v1.1 |
|
||||
| assignees | 为新增 issue 添加 assignees | string | ✖ | v1.1 |
|
||||
| contents | 为新增 issue 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| title | 新增 issue 的标题 | string | ✖ |
|
||||
| body | 新增 issue 的内容 | string | ✖ |
|
||||
| labels | 为新增 issue 添加 labels | string | ✖ |
|
||||
| assignees | 为新增 issue 添加 assignees | string | ✖ |
|
||||
| contents | 为新增 issue 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
|
||||
- `title` 默认为:`Default Title`
|
||||
- 返回 `issue-number`,[用法参考](/guide/ref#-outputs-使用)
|
||||
@@ -186,18 +186,18 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Delete comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'delete-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
comment-id: xxx
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| comment-id | 指定的 comment | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| comment-id | 指定的 comment | number | ✔ |
|
||||
|
||||
## `lock-issue`
|
||||
|
||||
@@ -216,18 +216,60 @@ jobs:
|
||||
if: github.event.label.name == 'invalid'
|
||||
steps:
|
||||
- name: Lock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'lock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
## `mark-duplicate`
|
||||
|
||||
快捷标记重复问题,仅作用于 issue 新增评论。
|
||||
|
||||
```yml
|
||||
name: Issue Mark Duplicate
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
mark-duplicate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: mark-duplicate
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'mark-duplicate'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| duplicate-command | 可设置简洁命令,如:`/d` | string | ✖ |
|
||||
| duplicate-labels | 为该 issue 额外增加 labels | string | ✖ |
|
||||
| remove-labels | 设置可移除的 labels | string | ✖ |
|
||||
| labels | 替换该 issue 的 labels | string | ✖ |
|
||||
| contents | 为该评论的增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
| close-issue | 是否同时关闭该 issue | string | ✖ |
|
||||
|
||||
- `duplicate-command`:当设置简洁命令时,同时仍支持原有 `Duplicate of`
|
||||
- `close-issue`:`true` 或 `'true'` 均可生效
|
||||
|
||||
<Alert>
|
||||
注意:使用简洁命令创建的 Duplicate 不显示下图红框内容。但其实这个没有任何影响的。
|
||||
</Alert>
|
||||
|
||||

|
||||
|
||||
## `open-issue`
|
||||
|
||||
@@ -235,18 +277,18 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Open issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'open-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: xxx
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
## `remove-assignees`
|
||||
|
||||
@@ -254,7 +296,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Remove assignees
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-assignees'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -262,12 +304,12 @@ jobs:
|
||||
assignees: 'xx'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| assignees | 移除的指定人。当为空字符时,不进行移除 | string | ✔ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| assignees | 移除的指定人。当为空字符时,不进行移除 | string | ✔ |
|
||||
|
||||
## `remove-labels`
|
||||
|
||||
@@ -275,7 +317,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Remove labels
|
||||
uses: actions-cool/issues-helper@v1.2
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -283,12 +325,12 @@ jobs:
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1.2 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1.2 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1.2 |
|
||||
| labels | 移除的 labels。当为空字符时,不进行移除 | string | ✔ | v1.2 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| labels | 移除的 labels。当为空字符时,不进行移除 | string | ✔ |
|
||||
|
||||
- `labels` 支持多个,如 `x1,x2,x3`,只会移除 issue 已添加的 labels
|
||||
|
||||
@@ -298,7 +340,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Set labels
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'set-labels'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -306,12 +348,12 @@ jobs:
|
||||
labels: 'xx'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| labels | labels 设置。当空字符时,会移除所有 | string | ✔ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| labels | labels 设置。当空字符时,会移除所有 | string | ✔ |
|
||||
|
||||
## `unlock-issue`
|
||||
|
||||
@@ -319,18 +361,18 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Unlock issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'unlock-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
|
||||
## `update-comment`
|
||||
|
||||
@@ -350,7 +392,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update comment
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -358,14 +400,14 @@ jobs:
|
||||
contents: 'eyes'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| comment-id | 指定的 comment | number | ✔ | v1 |
|
||||
| body | 更新 comment 的内容 | string | ✖ | v1 |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ | v1 |
|
||||
| contents | 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| comment-id | 指定的 comment | number | ✔ |
|
||||
| body | 更新 comment 的内容 | string | ✖ |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ |
|
||||
| contents | 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
|
||||
- `body` 不填时,会保持原有
|
||||
- `update-mode` 为 `append` 时,会进行附加操作。非 `append` 都会进行替换。仅对 `body` 生效
|
||||
@@ -376,7 +418,7 @@ jobs:
|
||||
|
||||
```yml
|
||||
- name: Update issue
|
||||
uses: actions-cool/issues-helper@v1
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'update-issue'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -390,18 +432,18 @@ jobs:
|
||||
contents: '+1'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1 |
|
||||
| issue-number | 指定的 issue | number | ✔ | v1 |
|
||||
| state | 修改 issue 的状态,可选值 `open` `closed` | string | ✖ | v1 |
|
||||
| title | 修改 issue 的标题 | string | ✖ | v1 |
|
||||
| body | 修改 issue 的内容 | string | ✖ | v1 |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ | v1 |
|
||||
| labels | 替换 issue 的 labels | string | ✖ | v1.1 |
|
||||
| assignees | 替换 issue 的 assignees | string | ✖ | v1.1 |
|
||||
| contents | 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1.1 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| issue-number | 指定的 issue | number | ✔ |
|
||||
| state | 修改 issue 的状态,可选值 `open` `closed` | string | ✖ |
|
||||
| title | 修改 issue 的标题 | string | ✖ |
|
||||
| body | 修改 issue 的内容 | string | ✖ |
|
||||
| update-mode | 更新模式。默认 `replace` 替换,`append` 附加 | string | ✖ |
|
||||
| labels | 替换 issue 的 labels | string | ✖ |
|
||||
| assignees | 替换 issue 的 assignees | string | ✖ |
|
||||
| contents | 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
|
||||
- `state` 默认为 `open`
|
||||
- 当可选项不填时,会保持原有
|
||||
@@ -423,7 +465,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: welcome
|
||||
uses: actions-cool/issues-helper@v1.3
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'welcome'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -433,13 +475,13 @@ jobs:
|
||||
issue-contents: '+1, -1, eyes'
|
||||
```
|
||||
|
||||
| 参数 | 描述 | 类型 | 必填 | 版本 |
|
||||
| -- | -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ | v1.3 |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ | v1.3 |
|
||||
| body | 评论欢迎的内容,不填则不评论 | string | ✖ | v1.3 |
|
||||
| labels | 为该 issue 增加 labels | string | ✖ | v1.3 |
|
||||
| assignees | 为该 issue 增加 assignees | string | ✖ | v1.3 |
|
||||
| issue-contents | 为该 issue 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ | v1.3 |
|
||||
| 参数 | 描述 | 类型 | 必填 |
|
||||
| -- | -- | -- | -- |
|
||||
| actions | 操作类型 | string | ✔ |
|
||||
| token | [token 说明](/guide/ref#-token-说明) | string | ✔ |
|
||||
| body | 评论欢迎的内容,不填则不评论 | string | ✖ |
|
||||
| labels | 为该 issue 增加 labels | string | ✖ |
|
||||
| assignees | 为该 issue 增加 assignees | string | ✖ |
|
||||
| issue-contents | 为该 issue 增加 [reaction](/guide/ref#-reactions-类型) | string | ✖ |
|
||||
|
||||
- 若这 4 个可选项都不填,则无操作
|
@@ -9,7 +9,6 @@ toc: menu
|
||||
- v1 represents the initial version
|
||||
- The fixes and additions to the v1 version will be released to the v1.1 version
|
||||
- When the released v1.x runs stable for a certain period of time, release the advanced v2 version
|
||||
- The parameters in the API must use the largest version and above
|
||||
|
||||
- Version selection
|
||||
- It is recommended to use the latest releases version. It can be seen in [releases](https://github.com/actions-cool/issues-helper/releases)
|
||||
@@ -21,4 +20,4 @@ toc: menu
|
||||
uses: actions-cool/issues-helper@main
|
||||
```
|
||||
|
||||
<embed src="./log.md"></embed>
|
||||
<embed src="../CHANGELOG.md"></embed>
|
||||
|
@@ -9,7 +9,6 @@ toc: menu
|
||||
- v1 表示初始版本
|
||||
- 对 v1 版本的修复和新增会发布到 v1.1 版本
|
||||
- 当发布的 v1.x 运行一定时间稳定后,发布进阶 v2 版本
|
||||
- API 中参数需使用其中最大及以上版本
|
||||
|
||||
- 版本选择
|
||||
- 建议采用最新 releases 版本。可在 [releases](https://github.com/actions-cool/issues-helper/releases) 看到
|
||||
@@ -21,4 +20,4 @@ toc: menu
|
||||
uses: actions-cool/issues-helper@main
|
||||
```
|
||||
|
||||
<embed src="./log.md"></embed>
|
||||
<embed src="../CHANGELOG.md"></embed>
|
||||
|
24
docs/guide/note.en-US.md
Normal file
24
docs/guide/note.en-US.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
toc: menu
|
||||
---
|
||||
|
||||
<Alert type="success">
|
||||
Here are some things I summarized in my use, I hope it can help you.
|
||||
</Alert>
|
||||
|
||||
## Include judgment in `yml`
|
||||
|
||||
```yml
|
||||
if: contains(github.event.issue.body, 'ie') == false
|
||||
```
|
||||
- Triggered when the issue body does not contain `ie`
|
||||
- The js `includes()` syntax is not supported in the yml
|
||||
- Case is not checked, `IE` and also similar to `kiekk` can also be satisfied
|
||||
|
||||
[More](https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#functions).
|
||||
|
||||
## `GitHub Actions bot` trigger
|
||||
|
||||
When an action is set, such as adding a label `x1` to an issue, Actions will automatically add a label `x2` to the issue.
|
||||
|
||||
But if this is done by `GitHub Actions bot` (that is, the token in the actions is not passed, or the default `token: ${{ secrets.GITHUB_TOKEN }}` is used), the actions of label `x2` will not be triggered.
|
25
docs/guide/note.md
Normal file
25
docs/guide/note.md
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
toc: menu
|
||||
---
|
||||
|
||||
<Alert type="success">
|
||||
这里记录自己在使用中总结的一些东西,希望可以帮助到你。
|
||||
</Alert>
|
||||
|
||||
## `yml` 中包含判断
|
||||
|
||||
```yml
|
||||
if: contains(github.event.issue.body, 'ie') == false
|
||||
```
|
||||
|
||||
- 当 issue body 不包含 `ie` 触发
|
||||
- 测试 yml 中不支持 js `includes()` 语法
|
||||
- 大小写不校验,`IE` 还有同时类似 `kiekk` 也可满足
|
||||
|
||||
更多[查看](https://docs.github.com/en/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#functions)。
|
||||
|
||||
## `GitHub Actions bot` 触发
|
||||
|
||||
当设置了一个 Actions,如为给一个 issue 新增 label `x1` 时,Actions 自动为该 issue 增加 `x2` label。
|
||||
|
||||
但如果这个是由 `GitHub Actions bot` 完成的(即 actions 中 token 不传,或使用默认 `token: ${{ secrets.GITHUB_TOKEN }}`),则不会触发 label `x2` 的 Actions。
|
@@ -38,7 +38,7 @@ jobs:
|
||||
steps:
|
||||
- name: help wanted
|
||||
if: github.event.label.name == 'help wanted'
|
||||
uses: actions-cool/issues-helper@v1.2
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
|
||||
## 💖 Who is using?
|
||||
|
||||
<code src="./users.tsx" inline />
|
||||
<embed src="../README.md#L997-L1044"></embed>
|
||||
|
||||
## ⚡ Feedback
|
||||
|
||||
|
@@ -38,7 +38,7 @@ jobs:
|
||||
steps:
|
||||
- name: help wanted
|
||||
if: github.event.label.name == 'help wanted'
|
||||
uses: actions-cool/issues-helper@v1.2
|
||||
uses: actions-cool/issues-helper@v1.8
|
||||
with:
|
||||
actions: 'create-comment'
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
|
||||
## 💖 谁在使用?
|
||||
|
||||
<code src="./users.tsx" inline />
|
||||
<embed src="../README.md#L997-L1044"></embed>
|
||||
|
||||
## ⚡ 反馈
|
||||
|
||||
|
29
docs/log.md
29
docs/log.md
@@ -1,29 +0,0 @@
|
||||
## v1.4
|
||||
|
||||
`2020.12.29`
|
||||
|
||||
- fix: perfect `inactive-day` check. [#22](https://github.com/actions-cool/issues-helper/pull/22)
|
||||
|
||||
## v1.3
|
||||
|
||||
`2020.12.28`
|
||||
|
||||
- feat: add welcome. [#19](https://github.com/actions-cool/issues-helper/pull/19)
|
||||
|
||||
## v1.2
|
||||
|
||||
`2020.12.25`
|
||||
|
||||
- feat: add check-issue & remove labels. [#12](https://github.com/actions-cool/issues-helper/pull/12)
|
||||
|
||||
## v1.1
|
||||
|
||||
`2020.12.24`
|
||||
|
||||
- fix: yml not support array. [#11](https://github.com/actions-cool/issues-helper/pull/11)
|
||||
|
||||
## v1
|
||||
|
||||
`2020.12.23`
|
||||
|
||||
🎉 First release.
|
@@ -1,71 +0,0 @@
|
||||
/* eslint-disable react/jsx-no-target-blank */
|
||||
|
||||
import React from 'react';
|
||||
|
||||
const USERS = [
|
||||
{
|
||||
name: 'ant-design',
|
||||
link: 'https://github.com/ant-design/ant-design',
|
||||
logo: 'https://avatars1.githubusercontent.com/u/12101536?s=200&v=4',
|
||||
},
|
||||
{
|
||||
name: 'ant-design-vue',
|
||||
link: 'https://github.com/vueComponent/ant-design-vue',
|
||||
logo: 'https://avatars2.githubusercontent.com/u/32120805?s=200&v=4',
|
||||
},
|
||||
{
|
||||
name: 'dumi',
|
||||
link: 'https://github.com/umijs/dumi',
|
||||
logo: 'https://avatars2.githubusercontent.com/u/33895495?s=200&v=4',
|
||||
},
|
||||
{
|
||||
name: 'umi',
|
||||
link: 'https://github.com/umijs/umi',
|
||||
logo: 'https://avatars2.githubusercontent.com/u/33895495?s=200&v=4',
|
||||
},
|
||||
{
|
||||
name: 'vue-request',
|
||||
link: 'https://github.com/AttoJS/vue-request',
|
||||
logo: 'https://raw.githubusercontent.com/AttoJS/art/master/vue-request-logo.png',
|
||||
}
|
||||
];
|
||||
|
||||
export default () => {
|
||||
return (
|
||||
<ul style={{ display: 'flex', flexWrap: 'wrap', margin: 0, padding: 0, listStyle: 'none' }}>
|
||||
{USERS.map((user, i) => (
|
||||
<li
|
||||
key={user.link}
|
||||
style={{
|
||||
width: 220,
|
||||
marginRight: i === USERS.length - 1 ? 0 : 16,
|
||||
marginBottom: 8,
|
||||
border: '1px solid #eee',
|
||||
textAlign: 'center',
|
||||
fontSize: 20,
|
||||
fontWeight: 600,
|
||||
borderRadius: 2,
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center'
|
||||
}}
|
||||
>
|
||||
<a
|
||||
style={{ display: 'block', color: '#666', padding: '18px', textDecoration: 'none' }}
|
||||
target="_blank"
|
||||
href={user.link}
|
||||
>
|
||||
<img
|
||||
width={(user.name && 40) || undefined}
|
||||
height={(!user.name && 40) || undefined}
|
||||
style={{ verticalAlign: '-0.32em' }}
|
||||
src={user.logo}
|
||||
alt={user.name}
|
||||
/>
|
||||
<div style={{ marginTop: 10 }}>{user.name}</div>
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
);
|
||||
};
|
10
package.json
10
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "issue-helper",
|
||||
"version": "1.4.0",
|
||||
"version": "1.7.0",
|
||||
"private": true,
|
||||
"description": "Some operations on issue.",
|
||||
"main": "src/main.js",
|
||||
@@ -10,7 +10,10 @@
|
||||
"docs-dev:build": "UMI_ENV=dev dumi build",
|
||||
"docs:deploy": "gh-pages -d docs-dist",
|
||||
"deploy": "npm run docs:build && npm run docs:deploy",
|
||||
"package": "ncc build src/main.js -o dist"
|
||||
"package": "ncc build src/main.js -o dist",
|
||||
"up-users": "node ./script/update-users.js",
|
||||
"main": "node ./src/main.js",
|
||||
"up-version": "node ./script/update-version.js"
|
||||
},
|
||||
"author": "xrkffgg",
|
||||
"license": "MIT",
|
||||
@@ -33,8 +36,9 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vercel/ncc": "^0.25.1",
|
||||
"common-tags": "^1.8.0",
|
||||
"dotenv": "^8.2.0",
|
||||
"dumi": "^1.1.0-rc.8",
|
||||
"dumi": "^1.1.0",
|
||||
"gh-pages": "^3.1.0",
|
||||
"react": "^17.0.1"
|
||||
}
|
||||
|
BIN
public/duplicate.png
Normal file
BIN
public/duplicate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
BIN
public/month.png
Normal file
BIN
public/month.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
81
script/update-users.js
Normal file
81
script/update-users.js
Normal file
@@ -0,0 +1,81 @@
|
||||
const { readFileSync, writeFileSync } = require('fs');
|
||||
const { stripIndent } = require('common-tags');
|
||||
|
||||
// **************************************************************************
|
||||
|
||||
let { users } = require('../USERS.js');
|
||||
|
||||
users.sort((a, b) => getName(a).localeCompare(getName(b)));
|
||||
|
||||
// **************************************************************************
|
||||
|
||||
let table = '';
|
||||
let row = users.length / 4;
|
||||
let lastNo = users.length % 4;
|
||||
if (lastNo != 0) row += 1;
|
||||
for (let j = 1; j <= row; j++) {
|
||||
let data = '';
|
||||
data = stripIndent`
|
||||
<tr>
|
||||
<td align="center" width="180">${getImg(users[(j-1)*4])}</td>
|
||||
<td align="center" width="180">${getImg(users[(j-1)*4+1])}</td>
|
||||
<td align="center" width="180">${getImg(users[(j-1)*4+2])}</td>
|
||||
<td align="center" width="180">${getImg(users[(j-1)*4+3])}</td>
|
||||
</tr>`;
|
||||
table += data
|
||||
};
|
||||
|
||||
table = `<table>
|
||||
${table}
|
||||
</table>
|
||||
`;
|
||||
|
||||
// **************************************************************************
|
||||
|
||||
const point = '<table>';
|
||||
const last = `
|
||||
## LICENSE
|
||||
|
||||
[MIT](https://github.com/actions-cool/issues-helper/blob/main/LICENSE)
|
||||
`;
|
||||
|
||||
// **************************************************************************
|
||||
|
||||
const cn = readFileSync('./README.md', 'utf8');
|
||||
const cnIn = cn.indexOf(point);
|
||||
const cnBefore = cn.substring(0, cnIn);
|
||||
const newcn = cnBefore + table + last;
|
||||
writeFileSync('./README.md', newcn);
|
||||
console.log(`🎉 Done cn`);
|
||||
|
||||
// **************************************************************************
|
||||
|
||||
const en = readFileSync('./README.en-US.md', 'utf8');
|
||||
const enIn = en.indexOf(point);
|
||||
const enBefore = en.substring(0, enIn);
|
||||
const newen = enBefore + table + last;
|
||||
writeFileSync('./README.en-US.md', newen);
|
||||
console.log(`🎉 Done en`);
|
||||
|
||||
// **************************************************************************
|
||||
|
||||
function getImg (o) {
|
||||
if (o) {
|
||||
return `
|
||||
<a href="${o.url}">
|
||||
<img src="${o.logo}" width="46" />
|
||||
<br />
|
||||
${getName(o)}
|
||||
</a>`
|
||||
}
|
||||
return ``
|
||||
};
|
||||
|
||||
function getName (o) {
|
||||
if (o) {
|
||||
return o.url.split('/').slice(-1)[0]
|
||||
}
|
||||
return ``
|
||||
};
|
||||
|
||||
// **************************************************************************
|
44
script/update-version.js
Normal file
44
script/update-version.js
Normal file
@@ -0,0 +1,44 @@
|
||||
const { readFileSync, writeFileSync } = require('fs');
|
||||
|
||||
const last = /v1\.7/g;
|
||||
const now = 'v1.8';
|
||||
|
||||
let readme = readFileSync('./README.md', 'utf-8');
|
||||
readme = readme.replace(last, now);
|
||||
writeFileSync('./README.md', readme);
|
||||
console.log('readme done!');
|
||||
|
||||
let readmeen = readFileSync('./README.en-US.md', 'utf-8');
|
||||
readmeen = readmeen.replace(last, now);
|
||||
writeFileSync('./README.en-US.md', readmeen);
|
||||
console.log('readmeen done!');
|
||||
|
||||
let index = readFileSync('./docs/index.md', 'utf-8');
|
||||
index = index.replace(last, now);
|
||||
writeFileSync('./docs/index.md', index);
|
||||
console.log('index done!');
|
||||
|
||||
let indexen = readFileSync('./docs/index.en-US.md', 'utf-8');
|
||||
indexen = indexen.replace(last, now);
|
||||
writeFileSync('./docs/index.en-US.md', indexen);
|
||||
console.log('indexen done!');
|
||||
|
||||
let base = readFileSync('./docs/base.md', 'utf-8');
|
||||
base = base.replace(last, now);
|
||||
writeFileSync('./docs/base.md', base);
|
||||
console.log('base done!');
|
||||
|
||||
let baseen = readFileSync('./docs/base.en-US.md', 'utf-8');
|
||||
baseen = baseen.replace(last, now);
|
||||
writeFileSync('./docs/base.en-US.md', baseen);
|
||||
console.log('baseen done!');
|
||||
|
||||
let adv = readFileSync('./docs/advanced.md', 'utf-8');
|
||||
adv = adv.replace(last, now);
|
||||
writeFileSync('./docs/advanced.md', adv);
|
||||
console.log('adv done!');
|
||||
|
||||
let adven = readFileSync('./docs/advanced.en-US.md', 'utf-8');
|
||||
adven = adven.replace(last, now);
|
||||
writeFileSync('./docs/advanced.en-US.md', adven);
|
||||
console.log('adven done!');
|
210
src/advanced.js
210
src/advanced.js
@@ -2,51 +2,60 @@ require('dotenv').config();
|
||||
const core = require("@actions/core");
|
||||
const { Octokit } = require('@octokit/rest');
|
||||
|
||||
const {
|
||||
doAddLabels,
|
||||
doCreateComment,
|
||||
doCloseIssue,
|
||||
doLockIssue,
|
||||
doCreateIssue,
|
||||
} = require('./base.js');
|
||||
|
||||
const {
|
||||
doQueryIssues,
|
||||
getIssuesInMonth,
|
||||
getCreatedMonth,
|
||||
} = require('./public.js');
|
||||
|
||||
const {
|
||||
dealInput,
|
||||
matchKeyword,
|
||||
getPreMonth
|
||||
} = require('./util.js');
|
||||
|
||||
// **************************************************************************
|
||||
var dayjs = require('dayjs');
|
||||
var utc = require('dayjs/plugin/utc');
|
||||
dayjs.extend(utc);
|
||||
var isSameOrBefore = require('dayjs/plugin/isSameOrBefore');
|
||||
dayjs.extend(isSameOrBefore);
|
||||
|
||||
const {
|
||||
doAddLabels,
|
||||
doCloseIssue,
|
||||
doCreateComment,
|
||||
doLockIssue
|
||||
} = require('./base.js');
|
||||
|
||||
const { dealInput, matchKeyword } = require('./util.js');
|
||||
|
||||
// **************************************************************************
|
||||
const token = core.getInput('token');
|
||||
const octokit = new Octokit({ auth: `token ${token}` });
|
||||
|
||||
let direction = core.getInput("direction");
|
||||
direction = direction === 'desc' ? 'desc' : 'asc';
|
||||
|
||||
const commentAuth = core.getInput("comment-auth");
|
||||
const bodyIncludes = core.getInput('body-includes');
|
||||
const titleIncludes = core.getInput('title-includes');
|
||||
const assigneeIncludes = core.getInput('assignee-includes');
|
||||
|
||||
const issueCreator = core.getInput("issue-creator");
|
||||
const issueAssignee = core.getInput('issue-assignee');
|
||||
const issueMentioned = core.getInput('issue-mentioned');
|
||||
|
||||
let issueState = core.getInput("issue-state") || 'all';
|
||||
|
||||
if (issueState != 'open' && issueState != 'closed') {
|
||||
issueState = 'all';
|
||||
let issueState = core.getInput("issue-state") || 'open';
|
||||
if (issueState != 'all' && issueState != 'closed') {
|
||||
issueState = 'open';
|
||||
}
|
||||
|
||||
const inactiveDay = core.getInput("inactive-day");
|
||||
const inactiveLabel = core.getInput("inactive-label") || 'inactive';
|
||||
|
||||
// **************************************************************************
|
||||
async function doCheckInactive (owner, repo, labels) {
|
||||
const issues = await doQueryIssues(owner, repo, labels, issueState);
|
||||
|
||||
if (issues.length) {
|
||||
for (let i = 0; i < issues.length; i++) {
|
||||
if (!JSON.stringify(issues[i].labels).includes(inactiveLabel)) {
|
||||
let arr = [];
|
||||
issues[i].labels.forEach(it => {
|
||||
arr.push(it.name);
|
||||
});
|
||||
if (!arr.includes(inactiveLabel)) {
|
||||
await doAddLabels(owner, repo, issues[i].number, inactiveLabel);
|
||||
if (core.getInput("body")) {
|
||||
await doCreateComment(owner, repo, issues[i].number, core.getInput("body"));
|
||||
@@ -165,64 +174,133 @@ async function doLockIssues (owner, repo, labels) {
|
||||
}
|
||||
};
|
||||
|
||||
async function doQueryIssues (owner, repo, labels, state, creator) {
|
||||
let params = {
|
||||
async function doMonthStatistics (owner, repo, labels, assignees) {
|
||||
const countLables = core.getInput("count-lables");
|
||||
const countComments = core.getInput("count-comments");
|
||||
|
||||
const thisMonth = dayjs.utc().month() + 1;
|
||||
const year = thisMonth == 1 ? dayjs.utc().year() - 1 : dayjs.utc().year();
|
||||
|
||||
const month = getPreMonth(thisMonth);
|
||||
const showMonth = month < 10 ? `0${month}` : month;
|
||||
|
||||
let issues = await getIssuesInMonth(
|
||||
owner,
|
||||
repo,
|
||||
state,
|
||||
};
|
||||
|
||||
issueCreator ? params.creator = issueCreator : null;
|
||||
issueAssignee ? params.assignee = issueAssignee : null;
|
||||
issueMentioned ? params.mentioned = issueMentioned : null;
|
||||
|
||||
if (labels) {
|
||||
params.labels = labels;
|
||||
thisMonth
|
||||
);
|
||||
if (issues.length == 0) {
|
||||
core.info(`Actions: [query-issues-${month}] empty!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (creator) {
|
||||
params.creator = creator;
|
||||
}
|
||||
|
||||
const res = await octokit.issues.listForRepo(params);
|
||||
let issues = [];
|
||||
let issueNumbers = [];
|
||||
if (res.data.length) {
|
||||
res.data.forEach(iss => {
|
||||
const a = bodyIncludes ? iss.body.includes(bodyIncludes) : true;
|
||||
const b = titleIncludes ? iss.title.includes(titleIncludes) : true;
|
||||
/**
|
||||
* Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request.
|
||||
* For this reason, "Issues" endpoints may return both issues and pull requests in the response.
|
||||
* You can identify pull requests by the pull_request key.
|
||||
*/
|
||||
if (a && b && iss.pull_request === undefined) {
|
||||
if (inactiveDay) {
|
||||
let lastTime = dayjs.utc().subtract(Number(inactiveDay), 'day');
|
||||
let updateTime = dayjs.utc(iss.updated_at);
|
||||
if (updateTime.isSameOrBefore(lastTime)) {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
}
|
||||
issues = issues.filter(i => {
|
||||
return getCreatedMonth(i.created_at) == month
|
||||
});
|
||||
let total = issues.length;
|
||||
let totalIssues = [...issues];
|
||||
let openTotal = 0;
|
||||
let openIssuesNumber = [];
|
||||
let closeTotal = 0;
|
||||
let closeIssuesNumber = [];
|
||||
let labelsTotals = [];
|
||||
const title = `[${owner}/${repo}] Month Statistics: ${year}-${showMonth}`;
|
||||
for (let i = 0; i < issues.length; i++) {
|
||||
if (issues[i].state == 'closed') {
|
||||
closeTotal += 1;
|
||||
closeIssuesNumber.push(issues[i].number);
|
||||
} else if (issues[i].state == 'open') {
|
||||
openTotal += 1;
|
||||
openIssuesNumber.push(issues[i].number);
|
||||
}
|
||||
if (countLables && issues[i].labels) {
|
||||
issues[i].labels.forEach(l => {
|
||||
if (l.name in labelsTotals) {
|
||||
labelsTotals[l.name] += 1;
|
||||
} else {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
labelsTotals[l.name] = 1;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
let now = dayjs().utc().format('YYYY-MM-DD HH:mm:ss');
|
||||
let body = `
|
||||
- Created time: ${now}
|
||||
|
||||
- Time base: UTC +0
|
||||
`;
|
||||
let totalShow = `
|
||||
### Count
|
||||
|
||||
| Total | Open | Closed |
|
||||
| -- | -- | -- |
|
||||
| ${total} | ${openTotal} | ${closeTotal} |
|
||||
|
||||
`;
|
||||
|
||||
body += totalShow;
|
||||
|
||||
if (countLables == 'true') {
|
||||
let labelsArr = [];
|
||||
for (var lab in labelsTotals) {
|
||||
labelsArr.push({
|
||||
labelName: lab,
|
||||
number: labelsTotals[lab]
|
||||
})
|
||||
}
|
||||
labelsArr.sort((a, b) => b.number - a.number);
|
||||
let labelsTitle = `
|
||||
### Labels statistics
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Number</th>
|
||||
</tr>`
|
||||
let labelsBody = '';
|
||||
labelsArr.forEach(it => {
|
||||
labelsBody += `<tr><td>${it.labelName}</td><td>${it.number}</td></tr>`
|
||||
})
|
||||
core.info(`Actions: [query-issues]: [${JSON.stringify(issueNumbers)}]!`);
|
||||
body = body + labelsTitle + labelsBody + `</table>
|
||||
|
||||
`;
|
||||
}
|
||||
|
||||
return issues;
|
||||
if (countComments == 'true') {
|
||||
totalIssues.sort((a, b) => b.comments - a.comments);
|
||||
const maxComments = totalIssues.slice(0, 3);
|
||||
let commentTitle = `
|
||||
### Most comments
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Issue</th>
|
||||
<th>Title</th>
|
||||
<th>Number</th>
|
||||
<th>State</th>
|
||||
</tr>
|
||||
`
|
||||
let commentBody = '';
|
||||
maxComments.forEach((it,ind) => {
|
||||
commentBody += `<tr>
|
||||
<td>${ind + 1}</td>
|
||||
<td>${it.number}</td>
|
||||
<td>${it.title}</td>
|
||||
<td>${it.comments}</td>
|
||||
<td>${it.state}</td></tr>`
|
||||
})
|
||||
body = body + commentTitle + commentBody + '</table>';
|
||||
}
|
||||
|
||||
await doCreateIssue(owner, repo, title, body, labels, assignees);
|
||||
};
|
||||
|
||||
// **************************************************************************
|
||||
module.exports = {
|
||||
doCheckInactive,
|
||||
doCheckIssue,
|
||||
doCloseIssues,
|
||||
doFindComments,
|
||||
doLockIssues,
|
||||
|
||||
// tool
|
||||
doQueryIssues,
|
||||
doMonthStatistics,
|
||||
};
|
||||
|
4
src/app.jsx
Normal file
4
src/app.jsx
Normal file
@@ -0,0 +1,4 @@
|
||||
// Just for dumi style
|
||||
import './less/main.less';
|
||||
import './less/markdown.less';
|
||||
import './less/dumi.less';
|
75
src/base.js
75
src/base.js
@@ -3,8 +3,7 @@ const core = require("@actions/core");
|
||||
const github = require("@actions/github");
|
||||
const { Octokit } = require('@octokit/rest');
|
||||
|
||||
const { doQueryIssues } = require('./advanced.js');
|
||||
|
||||
// **************************************************************************
|
||||
const ALLREACTIONS = [
|
||||
"+1",
|
||||
"-1",
|
||||
@@ -16,14 +15,23 @@ const ALLREACTIONS = [
|
||||
"eyes",
|
||||
];
|
||||
|
||||
const { dealInput } = require('./util.js');
|
||||
const {
|
||||
doQueryIssues
|
||||
} = require('./public.js');
|
||||
|
||||
const {
|
||||
dealInput,
|
||||
testDuplicate,
|
||||
} = require('./util.js');
|
||||
|
||||
// **************************************************************************
|
||||
const token = core.getInput('token');
|
||||
const octokit = new Octokit({ auth: `token ${token}` });
|
||||
const context = github.context;
|
||||
|
||||
const contents = core.getInput("contents");
|
||||
const issueContents = core.getInput("issue-contents");
|
||||
|
||||
// **************************************************************************
|
||||
async function doAddAssignees (owner, repo, issueNumber, assignees) {
|
||||
await octokit.issues.addAssignees({
|
||||
owner,
|
||||
@@ -138,6 +146,51 @@ async function doLockIssue (owner, repo, issueNumber) {
|
||||
core.info(`Actions: [lock-issue][${issueNumber}] success!`);
|
||||
};
|
||||
|
||||
async function doMarkDuplicate (owner, repo, labels) {
|
||||
if (context.eventName != 'issue_comment') {
|
||||
core.info(`This actions only support on 'issue_comment'!`);
|
||||
return false;
|
||||
}
|
||||
if (context.payload.action != 'created') {
|
||||
core.info(`This actions only support on 'issue_comment' created!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
const duplicateCommand = core.getInput("duplicate-command");
|
||||
const duplicateLabels = core.getInput("duplicate-labels");
|
||||
const removeLables = core.getInput("remove-labels");
|
||||
const closeIssue = core.getInput("close-issue");
|
||||
|
||||
const commentId = context.payload.comment.id;
|
||||
const commentBody = context.payload.comment.body;
|
||||
const issueNumber = context.payload.issue.number;
|
||||
|
||||
const ifCommandInput = !!duplicateCommand;
|
||||
|
||||
if ((ifCommandInput && commentBody.startsWith(duplicateCommand) && commentBody.split(' ')[0] == duplicateCommand) || testDuplicate(commentBody)) {
|
||||
if (ifCommandInput) {
|
||||
const nextBody = commentBody.replace(duplicateCommand, 'Duplicate of');
|
||||
await doUpdateComment(owner, repo, commentId, nextBody, 'replace', true);
|
||||
} else if (contents) {
|
||||
await doCreateCommentContent(owner, repo, commentId, dealInput(contents));
|
||||
}
|
||||
if (duplicateLabels) {
|
||||
await doAddLabels(owner, repo, issueNumber, duplicateLabels);
|
||||
}
|
||||
if (removeLables) {
|
||||
await doRemoveLabels(owner, repo, issueNumber, removeLables);
|
||||
}
|
||||
if (labels) {
|
||||
await doSetLabels(owner, repo, issueNumber, labels);
|
||||
}
|
||||
if (closeIssue == 'true') {
|
||||
await doCloseIssue(owner, repo, issueNumber);
|
||||
}
|
||||
} else {
|
||||
core.info(`This comment body should start whith 'duplicate-command'`);
|
||||
}
|
||||
};
|
||||
|
||||
async function doOpenIssue (owner, repo, issueNumber) {
|
||||
await octokit.issues.update({
|
||||
owner,
|
||||
@@ -204,7 +257,8 @@ async function doUpdateComment (
|
||||
repo,
|
||||
commentId,
|
||||
body,
|
||||
updateMode
|
||||
updateMode,
|
||||
ifUpdateBody,
|
||||
) {
|
||||
const comment = await octokit.issues.getComment({
|
||||
owner,
|
||||
@@ -219,7 +273,7 @@ async function doUpdateComment (
|
||||
comment_id: commentId
|
||||
};
|
||||
|
||||
if (core.getInput("body")) {
|
||||
if (core.getInput("body") || ifUpdateBody) {
|
||||
if (updateMode === 'append') {
|
||||
params.body = `${comment_body}\n${body}`;
|
||||
} else {
|
||||
@@ -303,14 +357,14 @@ async function doUpdateIssue (
|
||||
async function doWelcome (owner, repo, assignees, labels, body) {
|
||||
const context = github.context;
|
||||
const isIssue = !!context.payload.issue;
|
||||
const issueContents = core.getInput("issue-contents");
|
||||
if (!isIssue) {
|
||||
core.setFailed("The event that triggered this action must be a issue. Error!");
|
||||
} else {
|
||||
const auth = context.payload.sender.login;
|
||||
core.info(`Actions: [welcome: auth=][${auth}]`);
|
||||
const issueNumber = context.issue.number;
|
||||
const creator = 'zoo-js-bot';
|
||||
const issues = await doQueryIssues(owner, repo, false, 'all', creator);
|
||||
const issues = await doQueryIssues(owner, repo, false, 'all', auth);
|
||||
if (issues.length == 0 || (issues.length == 1 && issues[0].number == issueNumber)) {
|
||||
if (core.getInput("body")) {
|
||||
await doCreateComment(owner, repo, issueNumber, body);
|
||||
@@ -335,7 +389,7 @@ async function doWelcome (owner, repo, assignees, labels, body) {
|
||||
}
|
||||
};
|
||||
|
||||
// tool
|
||||
// **************************************************************************
|
||||
function testContent(con) {
|
||||
if (ALLREACTIONS.includes(con)) {
|
||||
return true;
|
||||
@@ -345,7 +399,7 @@ function testContent(con) {
|
||||
}
|
||||
};
|
||||
|
||||
// exports
|
||||
// **************************************************************************
|
||||
module.exports = {
|
||||
doAddAssignees,
|
||||
doAddLabels,
|
||||
@@ -355,6 +409,7 @@ module.exports = {
|
||||
doCreateIssue,
|
||||
doCreateIssueContent,
|
||||
doDeleteComment,
|
||||
doMarkDuplicate,
|
||||
doLockIssue,
|
||||
doOpenIssue,
|
||||
doRemoveAssignees,
|
||||
|
56
src/less/dumi.less
Normal file
56
src/less/dumi.less
Normal file
File diff suppressed because one or more lines are too long
3
src/less/main.less
Normal file
3
src/less/main.less
Normal file
@@ -0,0 +1,3 @@
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
15
src/less/markdown.less
Normal file
15
src/less/markdown.less
Normal file
@@ -0,0 +1,15 @@
|
||||
.markdown table {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
.markdown table td:first-child {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: 1px 5px !important;
|
||||
border-radius: 4px;
|
||||
background: rgba(0, 0, 0, 0.06) !important;
|
||||
box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);
|
||||
border: 1px solid rgba(0,0,0,0.1);
|
||||
}
|
23
src/main.js
23
src/main.js
@@ -1,15 +1,15 @@
|
||||
const core = require("@actions/core");
|
||||
const github = require("@actions/github");
|
||||
|
||||
// **************************************************************************
|
||||
const {
|
||||
doAddAssignees,
|
||||
doAddLabels,
|
||||
doCloseIssue,
|
||||
doCreateComment,
|
||||
doCreateCommentContent,
|
||||
doCreateIssue,
|
||||
doCreateIssueContent,
|
||||
doDeleteComment,
|
||||
doMarkDuplicate,
|
||||
doLockIssue,
|
||||
doOpenIssue,
|
||||
doRemoveAssignees,
|
||||
@@ -27,8 +27,10 @@ const {
|
||||
doCloseIssues,
|
||||
doFindComments,
|
||||
doLockIssues,
|
||||
doMonthStatistics,
|
||||
} = require('./advanced.js');
|
||||
|
||||
// **************************************************************************
|
||||
const ALLACTIONS = [
|
||||
// base
|
||||
'add-assignees',
|
||||
@@ -38,6 +40,7 @@ const ALLACTIONS = [
|
||||
'create-issue',
|
||||
'delete-comment',
|
||||
'lock-issue',
|
||||
'mark-duplicate',
|
||||
'open-issue',
|
||||
'remove-assignees',
|
||||
'remove-labels',
|
||||
@@ -53,8 +56,10 @@ const ALLACTIONS = [
|
||||
'close-issues',
|
||||
'find-comments',
|
||||
'lock-issues',
|
||||
'month-statistics',
|
||||
];
|
||||
|
||||
// **************************************************************************
|
||||
async function main() {
|
||||
try {
|
||||
const owner = github.context.repo.owner;
|
||||
@@ -79,7 +84,9 @@ async function main() {
|
||||
updateMode = 'replace';
|
||||
}
|
||||
|
||||
// actions
|
||||
const actions = core.getInput("actions", { required: true });
|
||||
|
||||
const actionsArr = actions.split(',');
|
||||
actionsArr.forEach(item => {
|
||||
testActions(item.trim());
|
||||
@@ -117,6 +124,9 @@ async function main() {
|
||||
case 'lock-issue':
|
||||
await doLockIssue(owner, repo, issueNumber);
|
||||
break;
|
||||
case 'mark-duplicate':
|
||||
await doMarkDuplicate(owner, repo, labels);
|
||||
break;
|
||||
case 'open-issue':
|
||||
await doOpenIssue(owner, repo, issueNumber);
|
||||
break;
|
||||
@@ -200,6 +210,14 @@ async function main() {
|
||||
labels
|
||||
);
|
||||
break;
|
||||
case 'month-statistics':
|
||||
await doMonthStatistics(
|
||||
owner,
|
||||
repo,
|
||||
labels,
|
||||
assignees
|
||||
);
|
||||
break;
|
||||
// default
|
||||
default:
|
||||
break;
|
||||
@@ -211,4 +229,5 @@ async function main() {
|
||||
}
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
main();
|
||||
|
124
src/public.js
Normal file
124
src/public.js
Normal file
@@ -0,0 +1,124 @@
|
||||
require('dotenv').config();
|
||||
const core = require("@actions/core");
|
||||
const { Octokit } = require('@octokit/rest');
|
||||
|
||||
const {
|
||||
getPreMonth
|
||||
} = require('./util.js');
|
||||
|
||||
// **************************************************************************
|
||||
var dayjs = require('dayjs');
|
||||
var utc = require('dayjs/plugin/utc');
|
||||
dayjs.extend(utc);
|
||||
var isSameOrBefore = require('dayjs/plugin/isSameOrBefore');
|
||||
dayjs.extend(isSameOrBefore);
|
||||
|
||||
// **************************************************************************
|
||||
const token = core.getInput('token');
|
||||
const octokit = new Octokit({ auth: `token ${token}` });
|
||||
|
||||
const perPage = 100;
|
||||
|
||||
const issueCreator = core.getInput("issue-creator");
|
||||
const issueAssignee = core.getInput('issue-assignee');
|
||||
const issueMentioned = core.getInput('issue-mentioned');
|
||||
|
||||
const bodyIncludes = core.getInput('body-includes');
|
||||
const titleIncludes = core.getInput('title-includes');
|
||||
|
||||
const inactiveDay = core.getInput("inactive-day");
|
||||
|
||||
// **************************************************************************
|
||||
async function doQueryIssues (owner, repo, labels, state, creator) {
|
||||
let params = {
|
||||
owner,
|
||||
repo,
|
||||
state,
|
||||
};
|
||||
|
||||
issueCreator ? params.creator = issueCreator : null;
|
||||
issueAssignee ? params.assignee = issueAssignee : null;
|
||||
issueMentioned ? params.mentioned = issueMentioned : null;
|
||||
|
||||
if (labels) {
|
||||
params.labels = labels;
|
||||
}
|
||||
|
||||
if (creator) {
|
||||
params.creator = creator;
|
||||
}
|
||||
|
||||
const res = await getIssues(params);
|
||||
let issues = [];
|
||||
let issueNumbers = [];
|
||||
if (res.length) {
|
||||
res.forEach(iss => {
|
||||
const a = bodyIncludes ? iss.body.includes(bodyIncludes) : true;
|
||||
const b = titleIncludes ? iss.title.includes(titleIncludes) : true;
|
||||
/**
|
||||
* Note: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request.
|
||||
* For this reason, "Issues" endpoints may return both issues and pull requests in the response.
|
||||
* You can identify pull requests by the pull_request key.
|
||||
*/
|
||||
if (a && b && iss.pull_request === undefined) {
|
||||
if (inactiveDay) {
|
||||
let lastTime = dayjs.utc().subtract(Number(inactiveDay), 'day');
|
||||
let updateTime = dayjs.utc(iss.updated_at);
|
||||
if (updateTime.isSameOrBefore(lastTime)) {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
}
|
||||
} else {
|
||||
issues.push(iss);
|
||||
issueNumbers.push(iss.number);
|
||||
}
|
||||
}
|
||||
})
|
||||
core.info(`Actions: [query-issues]: [${JSON.stringify(issueNumbers)}]!`);
|
||||
}
|
||||
|
||||
return issues;
|
||||
};
|
||||
|
||||
async function getIssues (params, page = 1) {
|
||||
let { data: issues } = await octokit.issues.listForRepo({
|
||||
...params,
|
||||
per_page: perPage,
|
||||
page
|
||||
});
|
||||
if (issues.length >= perPage) {
|
||||
issues = issues.concat(await getIssues(params, page + 1));
|
||||
}
|
||||
return issues;
|
||||
};
|
||||
|
||||
async function getIssuesInMonth (owner, repo, thisMonth, page = 1) {
|
||||
const month = getPreMonth(thisMonth);
|
||||
let { data: issues } = await octokit.issues.listForRepo({
|
||||
owner,
|
||||
repo,
|
||||
state: 'all',
|
||||
per_page: perPage,
|
||||
page
|
||||
});
|
||||
issues = issues.filter(i => {
|
||||
return i.pull_request === undefined
|
||||
});
|
||||
if (issues.length && getCreatedMonth(issues[issues.length - 1].created_at) >= month) {
|
||||
issues = issues.concat(await getIssuesInMonth(owner, repo, thisMonth, page + 1));
|
||||
}
|
||||
return issues;
|
||||
};
|
||||
|
||||
// **************************************************************************
|
||||
function getCreatedMonth (d) {
|
||||
return dayjs(d).utc().month() + 1;
|
||||
};
|
||||
|
||||
// **************************************************************************
|
||||
module.exports = {
|
||||
doQueryIssues,
|
||||
getIssues,
|
||||
getIssuesInMonth,
|
||||
getCreatedMonth,
|
||||
};
|
25
src/util.js
25
src/util.js
@@ -1,4 +1,8 @@
|
||||
function dealInput (para) {
|
||||
/**
|
||||
* in 'x1,x2,x3'
|
||||
* out ['x1','x2','x3']
|
||||
*/
|
||||
let arr = [];
|
||||
if (para) {
|
||||
const paraArr = para.split(',');
|
||||
@@ -11,11 +15,30 @@ function dealInput (para) {
|
||||
return arr;
|
||||
};
|
||||
|
||||
function matchKeyword(content, keywords) {
|
||||
function matchKeyword (content, keywords) {
|
||||
return keywords.find(item => content.toLowerCase().includes(item));
|
||||
};
|
||||
|
||||
function testDuplicate(body) {
|
||||
if (!body || !body.startsWith('Duplicate of')) {
|
||||
return false
|
||||
}
|
||||
|
||||
let arr = body.split(' ');
|
||||
if (arr[0] == 'Duplicate' && arr[1] == 'of') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
function getPreMonth (m) {
|
||||
return m == 1 ? 12 : m -1;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
dealInput,
|
||||
getPreMonth,
|
||||
matchKeyword,
|
||||
testDuplicate,
|
||||
};
|
||||
|
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"baseUrl": "./",
|
||||
"jsx": "preserve",
|
||||
"declaration": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"paths": {
|
||||
"@/*": ["src/*"],
|
||||
"@@/*": ["src/.umi/*"],
|
||||
"rc-dialog": ["src/index.ts"]
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user