# 🤖 Issues 助手 简体中文 | [English](./README.en-US.md) [![](https://img.shields.io/github/workflow/status/actions-cool/issues-helper/ci?style=flat-square)](https://github.com/actions-cool/issues-helper/actions) [![](https://img.shields.io/badge/marketplace-issues--helper-red?style=flat-square)](https://github.com/marketplace/actions/issues-helper) [![dumi](https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square)](https://github.com/umijs/dumi) [![](https://img.shields.io/github/v/release/actions-cool/issues-helper?style=flat-square&color=orange)](https://github.com/actions-cool/issues-helper/releases) [![](https://img.shields.io/badge/discussions-on%20github-blue?style=flat-square&color=%2308979c)](https://github.com/actions-cool/issues-helper/discussions) [![](https://img.shields.io/github/stars/actions-cool/issues-helper?style=flat-square)](https://github.com/actions-cool/issues-helper/stargazers) [![](https://img.shields.io/github/license/actions-cool/issues-helper?style=flat-square)](https://github.com/actions-cool/issues-helper/blob/main/LICENSE) 一个轻松帮你自动管理 issues 的 GitHub Action [在线文档](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? 1. 完全免费 2. 全自动操作 3. 托管于 GitHub 服务器,只要 GitHub 不宕机,它就不受影响 > Private 项目每月有 2000 次的限制,[具体查看](https://github.com/settings/billing)。Public 项目无限制。 ## 列 表 当以下列表没有你想要的功能时,可以在 [What do you want?](https://github.com/actions-cool/issues-helper/discussions/18) 中提出。 - ⭐ 基 础 - [`add-assignees`](#add-assignees) - [`add-labels`](#add-labels) - [`close-issue`](#close-issue) - [`create-comment`](#create-comment) - [`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) - [`set-labels`](#set-labels) - [`unlock-issue`](#unlock-issue) - [`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) ## 🚀 使 用 ### ⭐ 基 础 为了更好的展示功能,下面以实际场景举例,请灵活参考。 #### `add-assignees` 当一个 issue 新增或修改时,将这个 issue 指定某人或多人。 ```yml name: Add Assigness on: issues: types: [opened, edited] jobs: add-assigness: runs-on: ubuntu-latest steps: - name: Add assigness uses: actions-cool/issues-helper@v1.8 with: actions: 'add-assignees' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} assignees: 'xxx' or 'xx1,xx2' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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` 支持多个,需用逗号隔开 ⏫ [返回列表](#列-表) #### `add-labels` 当一个新增的 issue 内容不包含指定格式时,为这个 issue 添加 labels。 ```yml name: Add Labels on: issues: types: [opened] jobs: add-labels: runs-on: ubuntu-latest if: contains(github.event.issue.body, 'xxx') == false steps: - name: Add labels uses: actions-cool/issues-helper@v1.8 with: actions: 'add-labels' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} labels: 'bug' or 'bug1,bug2' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | | labels | 新增的 labels。当不填或者为空字符时,不新增 | string | ✖ | - `labels` 支持多个,需用逗号隔开 ⏫ [返回列表](#列-表) #### `close-issue` 关闭指定 issue。 ```yml - name: Close issue uses: actions-cool/issues-helper@v1.8 with: actions: 'close-issue' token: ${{ secrets.GITHUB_TOKEN }} issue-number: xxx body: 'This is auto closed.' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | ⏫ [返回列表](#列-表) #### `create-comment` 当新增一个指定 label 时,对该 issue 进行评论。 ```yml name: Create Comment on: issues: types: [labeled] jobs: create-comment: runs-on: ubuntu-latest if: github.event.label.name == 'xxx' steps: - name: Create comment uses: actions-cool/issues-helper@v1.8 with: actions: 'create-comment' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} body: | Hello ${{ github.event.issue.user.login }}. Add some comments. 你好 ${{ github.event.issue.user.login }}。巴拉巴拉。 contents: '+1' or '+1,heart' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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` 支持多个,需用逗号隔开 ⏫ [返回列表](#列-表) #### `create-issue` 感觉新增 issue 使用场景不多。这里举例,每月 1 号 UTC 00:00 新增一个 issue。 ```yml name: Create Issue on: schedule: - cron: "0 0 1 * *" jobs: create-issue: runs-on: ubuntu-latest steps: - name: Create issue uses: actions-cool/issues-helper@v1.8 with: actions: 'create-issue' token: ${{ secrets.GITHUB_TOKEN }} title: 'xxxx' body: 'xxxx' labels: 'xx' assignees: 'xxx' contents: '+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-使用) ⏫ [返回列表](#列-表) #### `delete-comment` 根据 [`comment-id`](#comment-id) 删除指定评论。 ```yml - name: Delete comment uses: actions-cool/issues-helper@v1.8 with: actions: 'delete-comment' token: ${{ secrets.GITHUB_TOKEN }} comment-id: xxx ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | comment-id | 指定的 comment | number | ✔ | ⏫ [返回列表](#列-表) #### `lock-issue` 当新增 `invalid` label 时,对该 issue 进行锁定。 ```yml name: Lock Issue on: issues: types: [labeled] jobs: lock-issue: runs-on: ubuntu-latest if: github.event.label.name == 'invalid' steps: - name: Lock issue uses: actions-cool/issues-helper@v1.8 with: actions: 'lock-issue' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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'` 均可生效 ⏫ [返回列表](#列-表) #### `open-issue` 打开指定 issue。 ```yml - name: Open issue uses: actions-cool/issues-helper@v1.8 with: actions: 'open-issue' token: ${{ secrets.GITHUB_TOKEN }} issue-number: xxx ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | ⏫ [返回列表](#列-表) #### `remove-assignees` 移除 issue 指定人员。 ```yml - name: Remove assignees uses: actions-cool/issues-helper@v1.8 with: actions: 'remove-assignees' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} assignees: 'xx' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | | assignees | 移除的指定人。当为空字符时,不进行移除 | string | ✔ | ⏫ [返回列表](#列-表) #### `remove-labels` 移除指定 labels。 ```yml - name: Remove labels uses: actions-cool/issues-helper@v1.8 with: actions: 'remove-labels' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} labels: 'xx' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | | labels | 移除的 labels。当为空字符时,不进行移除 | string | ✔ | - `labels` 支持多个,如 `x1,x2,x3`,只会移除 issue 已添加的 labels ⏫ [返回列表](#列-表) #### `set-labels` 替换 issue 的 labels。 ```yml - name: Set labels uses: actions-cool/issues-helper@v1.8 with: actions: 'set-labels' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} labels: 'xx' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | | labels | labels 设置。当空字符时,会移除所有 | string | ✔ | ⏫ [返回列表](#列-表) #### `unlock-issue` 解锁指定 issue。 ```yml - name: Unlock issue uses: actions-cool/issues-helper@v1.8 with: actions: 'unlock-issue' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | ⏫ [返回列表](#列-表) #### `update-comment` 根据 [`comment-id`](#comment-id) 更新指定评论。 下面的例子展示的是,为每个新增的 comment 增加 👀 。 ```yml name: Add eyes to each comment on: issue_comment: types: [created] jobs: update-comment: runs-on: ubuntu-latest steps: - name: Update comment uses: actions-cool/issues-helper@v1.8 with: actions: 'update-comment' token: ${{ secrets.GITHUB_TOKEN }} comment-id: ${{ github.event.comment.id }} contents: 'eyes' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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` 生效 ⏫ [返回列表](#列-表) #### `update-issue` 根据 `issue-number` 更新指定 issue。 ```yml - name: Update issue uses: actions-cool/issues-helper@v1.8 with: actions: 'update-issue' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} state: 'open' title: 'xxx' body: 'xxxx' update-mode: 'replace' labels: 'xx' assignees: 'xxx' contents: '+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` - 当可选项不填时,会保持原有 ⏫ [返回列表](#列-表) #### `welcome` 当一个 issue 新建时,对首次新建 issue 的用户进行欢迎。若用户非首次新建,则无操作。 ```yml name: Issue Welcome on: issues: types: [opened] jobs: issue-welcome: runs-on: ubuntu-latest steps: - name: welcome uses: actions-cool/issues-helper@v1.8 with: actions: 'welcome' token: ${{ secrets.GITHUB_TOKEN }} body: hi @${{ github.event.issue.user.login }}, welcome! labels: 'welcome1, welcome2' assignees: 'xx1' issue-contents: '+1, -1, eyes' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | body | 评论欢迎的内容,不填则不评论 | string | ✖ | | labels | 为该 issue 增加 labels | string | ✖ | | assignees | 为该 issue 增加 assignees | string | ✖ | | issue-contents | 为该 issue 增加 [reaction](#reactions-types) | string | ✖ | - 若这 4 个可选项都不填,则无操作 ⏫ [返回列表](#列-表) ### 🌟 进 阶 进阶用法不建议 actions 多个一次同时使用。 #### `check-inactive` 每月 1 号 UTC 0 时,对所有 30 天以上未活跃的 issues 增加 `inactive` 标签。 ```yml name: Check inactive on: schedule: - cron: "0 0 1 * *" jobs: check-inactive: runs-on: ubuntu-latest steps: - name: check-inactive uses: actions-cool/issues-helper@v1.8 with: actions: 'check-inactive' token: ${{ secrets.GITHUB_TOKEN }} inactive-day: 30 ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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`:默认为 `open`。可选值 `all` `closed`,非这 2 项时,均为 `open` - `issue-assignee`:不支持多人。不填或输入 * 时,查询所有。输入 `none` 会查询未添加指定人的 issues - `inactive-day`:当输入时,会筛选 issue 更新时间早于当前时间减去非活跃天数。不填时,会查询所有 - `inactive-label`:默认为 `inactive`,可自定义其他。当项目未包含该 label 时,会自动新建 ⏫ [返回列表](#列-表) #### `check-issue` 根据传入的参数和 `issue-number` 来检查该 issue 是否满足条件,返回一个布尔值。 下面的例子效果是:当 issue 新开时,校验当前 issue 指定人是否包含 `x1` 或者 `x2`,满足一个指定人即可校验通过,同时校验标题是否满足条件,[校验规则](#校验规则)。 ```yml name: Check Issue on: issues: types: [edited] jobs: check-issue: runs-on: ubuntu-latest steps: - name: check-issue uses: actions-cool/issues-helper@v1.8 with: actions: 'check-issue' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} assignee-includes: 'x1,x2' title-includes: 'x1,x2/y1,y2' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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` ⏫ [返回列表](#列-表) #### `close-issues` 每 7 天 UTC 0 时,关闭已填加 `need info` label 且 7 天以上未活跃的 issues。 ```yml name: Check need info on: schedule: - cron: "0 0 */7 * *" jobs: check-need-info: runs-on: ubuntu-latest steps: - name: close-issues uses: actions-cool/issues-helper@v1.8 with: actions: 'close-issues' token: ${{ secrets.GITHUB_TOKEN }} labels: 'need info' inactive-day: 7 ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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 - `inactive-day`:当输入时,会筛选 issue 更新时间早于当前时间减去非活跃天数。不填时,会查询所有 ⏫ [返回列表](#列-表) #### `find-comments` 查找当前仓库 1 号 issue 中,创建者是 k ,内容包含 `this` 的评论列表。 ```yml - name: Find comments uses: actions-cool/issues-helper@v1.8 with: actions: 'find-comments' token: ${{ secrets.GITHUB_TOKEN }} issue-number: 1 comment-auth: 'k' body-includes: 'this' ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | actions | 操作类型 | string | ✔ | | token | [token 说明](#token) | string | ✔ | | issue-number | 指定的 issue | number | ✔ | | comment-auth | 评论创建者,不填时会查询所有 | string | ✖ | | body-includes | 评论内容包含过滤,不填时无校验 | string | ✖ | | direction | 返回 `comments` 排序 | string | ✖ | - 返回 `comments`,格式如下: ```js [ {id: 1, auth: 'x', body: 'xxx', created: '', updated: ''}, {id: 2, auth: 'x', body: 'xxx', created: '', updated: ''}, ] ``` - `direction` 默认为升序,只有设置 `desc` 时,会返回降序 - 返回数组中 `created` `updated`,由所处环境决定,会是 UTC +0 ⏫ [返回列表](#列-表) #### `lock-issues` 每 3 个月 1 号 UTC 0 时,锁定已填加 `inactive` label 且 128 天以上未活跃的所有 issues。 ```yml name: Lock inactive issues on: schedule: - cron: "0 0 1 */3 *" jobs: lock-issues: runs-on: ubuntu-latest steps: - name: lock-issues uses: actions-cool/issues-helper@v1.8 with: actions: 'lock-issues' token: ${{ secrets.GITHUB_TOKEN }} labels: 'inactive' inactive-day: 128 ``` | 参数 | 描述 | 类型 | 必填 | | -- | -- | -- | -- | | 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`:默认为 `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 统计 ⏫ [返回列表](#列-表) ## 🌰 例 子 灵活参考。 ### `find-comments + create-comment + update-comment` 假设场景:当添加了 `watch` label 的 issue 修改时,查找是否有 k 创建的包含 `error` 的评论,如果只有一个,则更新该 comment,如果没有,则新增一个 comment。 ```yml name: Test on: isssue: types: [edited] jobs: do-test: runs-on: ubuntu-latest if: github.event.label.name == 'watch' steps: - name: find comments uses: actions-cool/issues-helper@v1.8 id: fcid with: actions: 'find-comments' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} comment-auth: k body-includes: 'error' - name: create comment if: ${{ steps.fcid.outputs.comments.length == 0 }} uses: actions-cool/issues-helper@v1.8 with: actions: 'create-comment' token: ${{ secrets.GITHUB_TOKEN }} issue-number: ${{ github.event.issue.number }} body: 'Some error!' - name: update comment if: ${{ steps.fcid.outputs.comments.length == 1 }} uses: actions-cool/issues-helper@v1.8 with: actions: 'update-comment' token: ${{ secrets.GITHUB_TOKEN }} comment-id: ${{ steps.fcid.outputs.comments[0].id }} body: 'Some error again!' update-mode: 'append' ``` ⏫ [返回列表](#列-表) ## 🎁 参 考 ### token 需拥有 push 权限的人员 token。 - [个人 token 申请](https://github.com/settings/tokens) - 需勾选 `Full control of private repositories` - 项目添加 secrets - 选择 settings,选择 secrets,选择 `New repository secret` - `Name` 与 actions 中保持一致 - `Value` 填写刚才个人申请的 token 当 actions 不填写 token 时,或项目未添加对应 secrets 时,会默认为 github-actions bot。[更多查看](https://docs.github.com/en/free-pro-team@latest/actions/reference/authentication-in-a-workflow)。 ⏫ [返回列表](#列-表) ### `outputs` 使用 ```yml - name: Create issue uses: actions-cool/issues-helper@v1.8 id: createissue with: actions: 'create-issue' token: ${{ secrets.GITHUB_TOKEN }} - name: Check outputs run: echo "Outputs issue_number is ${{ steps.createissue.outputs.issue-number }}" ``` [更多查看](https://docs.github.com/en/free-pro-team@latest/actions/creating-actions/metadata-syntax-for-github-actions#outputs)。 ### GitHub Docs - [GitHub Actions 语法](https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#on) - [工作流触发机制](https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows) ⏫ [返回列表](#列-表) ### 校验规则 ```js "title-includes": 'x1,x2' x1 x2 "x1y3y2" true "y2 x1" true "x2" true "x3" false ``` ```js "title-includes": 'x1,x2/y1,y2' x1 + y1 x2 + y1 x1 + y2 x2 + y2 "x1y3y2" true "y2 x1" true "1x2y" false "x1" false ``` ⏫ [返回列表](#列-表) ### Reactions 类型 | content | emoji | | -- | -- | | `+1` | 👍 | | `-1` | 👎 | | `laugh` | 😄 | | `confused` | 😕 | | `heart` | ❤️ | | `hooray` | 🎉 | | `rocket` | 🚀 | | `eyes` | 👀 | ⏫ [返回列表](#列-表) ### `comment-id` 点击某个评论右上角 `···` 图标,选择 `Copy link`,url 末尾数字即是 `comment_id`。 ⏫ [返回列表](#列-表) ## ✨ 版本 - 版本规则 - 采用两级语义化版本,如v1、v1.1、v2、v2.1 - v1 表示初始版本 - 对 v1 版本的修复和新增会发布到 v1.1 版本 - 当发布的 v1.x 运行一定时间稳定后,发布进阶 v2 版本 - 版本选择 - 建议采用最新 releases 版本。可在 [releases](https://github.com/actions-cool/issues-helper/releases) 看到 - 同时也可参照下面的更新日志来选择版本 - 也支持直接使用分支版本。如: ```yml - name: Issues Helper uses: actions-cool/issues-helper@main ``` ## Actions 模板 - 可直接使用这个 [GitHub Actions workflow template](https://github.com/actions-cool/.github) 仓库的模板 - 个人练习和测试 [Actions](https://github.com/xrkffgg/test-ci) 的仓库 ## 💖 谁在使用? 你可以来以下项目进行参考。欢迎在 [**这里**](https://github.com/actions-cool/issues-helper/issues/6) 留言。 同时,如果你在使用过程中有什么疑问,也可以在 issue 或者 discussion 中进行提问和查询。

ant-design

ant-design-vue

dumi

material-ui

react-music-player

umi

vue-request
## LICENSE [MIT](https://github.com/actions-cool/issues-helper/blob/main/LICENSE)