From dbeaa215cb6008324f181bd3f8b21a78bf7f3f57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=83=E5=87=9B?= Date: Mon, 6 Feb 2023 21:47:17 +0800 Subject: [PATCH] style: update style & changelog --- CHANGELOG.md | 6 ++++ README.md | 68 +++++++++++++++++++------------------- README.zh-CN.md | 68 +++++++++++++++++++------------------- src/helper/advanced.ts | 52 ++++++++++++++--------------- src/helper/helper.ts | 8 ++--- src/types.ts | 4 +-- web/docs/advanced.md | 62 +++++++++++++++++----------------- web/docs/advanced.zh-CN.md | 62 +++++++++++++++++----------------- 8 files changed, 168 insertions(+), 162 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1525707..0f157fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ 🛠 refactor --> +## v3.4.0 + +`2023.02.06` + +- 🚀 feat: support `toggle-labels`. [#132](https://github.com/actions-cool/issues-helper/pull/132) [@Wxh16144](https://github.com/Wxh16144) + ## v3.3.3 `2022.11.13` diff --git a/README.md b/README.md index 22ddecb..2556bcd 100644 --- a/README.md +++ b/README.md @@ -255,8 +255,8 @@ When the following list does not have the features you want, you can submit it i - [`lock-issues`](#lock-issues) - [`mark-assignees`](#mark-assignees) - [`mark-duplicate`](#mark-duplicate) - - [`welcome`](#welcome) - [`toggle-labels`](#toggle-labels) + - [`welcome`](#welcome) ## 🚀 Usage @@ -1110,6 +1110,39 @@ jobs: ⏫ [Back to list](#List) +#### `toggle-labels` + +When an issue is reopened, the set labels are removed if they already exist, otherwise they are added. + +```yml +name: Toggle Labels + +on: + issues: + types: [reopened] + +jobs: + toggle-labels: + runs-on: ubuntu-latest + steps: + - name: Toggle labels + uses: actions-cool/issues-helper@v3 + with: + actions: 'toggle-labels' + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.issue.number }} + labels: 'unread,outdated' +``` + +| Param | Desc | Type | Required | +| -- | -- | -- | -- | +| actions | Action type | string | ✔ | +| token | [Token explain](#token) | string | ✖ | +| issue-number | The number of issue. When not input, it will be obtained from the trigger event | number | ✖ | +| labels | The toggle labels. Delete if the label already exists, add if it does not exist | string | ✖ | + +⏫ [Back to list](#List) + #### `welcome` When an issue is created, the user who created the issue for the first time is welcome. @@ -1151,39 +1184,6 @@ jobs: ⏫ [Back to list](#List) -#### `toggle-labels` - -When an issue is reopened, the set labels are removed if they already exist, otherwise they are added. - -```yml -name: Toggle Labels - -on: - issues: - types: [reopened] - -jobs: - toggle-labels: - runs-on: ubuntu-latest - steps: - - name: Toggle labels - uses: actions-cool/issues-helper@v3 - with: - actions: 'toggle-labels' - token: ${{ secrets.GITHUB_TOKEN }} - issue-number: ${{ github.event.issue.number }} - labels: 'unread,outdated' -``` - -| Param | Desc | Type | Required | -| -- | -- | -- | -- | -| actions | Action type | string | ✔ | -| token | [Token explain](#token) | string | ✖ | -| issue-number | The number of issue. When not input, it will be obtained from the trigger event | number | ✖ | -| labels | The toggle labels. Delete if the label already exists, add if it does not exist | string | ✖ | - -⏫ [Back to list](#List) - ## 🎁 Reference ### token diff --git a/README.zh-CN.md b/README.zh-CN.md index a03836e..a914d3e 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -259,8 +259,8 @@ - [`lock-issues`](#lock-issues) - [`mark-assignees`](#mark-assignees) - [`mark-duplicate`](#mark-duplicate) - - [`welcome`](#welcome) - [`toggle-labels`](#toggle-labels) + - [`welcome`](#welcome) ## 🚀 使 用 @@ -1109,6 +1109,39 @@ jobs: ⏫ [返回列表](#列-表) +#### `toggle-labels` + +当一个 issue 被重新打开,判断设置的 labels 如果已经存在则进行删除,否则进行添加。 + +```yml +name: Toggle Labels + +on: + issues: + types: [reopened] + +jobs: + toggle-labels: + runs-on: ubuntu-latest + steps: + - name: Toggle labels + uses: actions-cool/issues-helper@v3 + with: + actions: 'toggle-labels' + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.issue.number }} + labels: 'unread,outdated' +``` + +| 参数 | 描述 | 类型 | 必填 | +| -- | -- | -- | -- | +| actions | 操作类型 | string | ✔ | +| token | [token 说明](#token) | string | ✖ | +| issue-number | 指定的 issue,当不传时会从触发事件中获取 | number | ✖ | +| labels | 切换 labels。如果 label 已存在则删除,不存在则添加 | string | ✖ | + +⏫ [返回列表](#列-表) + #### `welcome` 当一个 issue 新建时,对首次新建 issue 的用户进行欢迎。若用户非首次新建,则无操作。 @@ -1149,39 +1182,6 @@ jobs: ⏫ [返回列表](#列-表) -#### `toggle-labels` - -当一个 issue 被重新打开,判断设置的 labels 如果已经存在则进行删除,否则进行添加。 - -```yml -name: Toggle Labels - -on: - issues: - types: [reopened] - -jobs: - toggle-labels: - runs-on: ubuntu-latest - steps: - - name: Toggle labels - uses: actions-cool/issues-helper@v3 - with: - actions: 'toggle-labels' - token: ${{ secrets.GITHUB_TOKEN }} - issue-number: ${{ github.event.issue.number }} - labels: 'unread,outdated' -``` - -| 参数 | 描述 | 类型 | 必填 | -| -- | -- | -- | -- | -| actions | 操作类型 | string | ✔ | -| token | [token 说明](#token) | string | ✖ | -| issue-number | 指定的 issue,当不传时会从触发事件中获取 | number | ✖ | -| labels | 切换 labels。如果 label 已存在则删除,不存在则添加 | string | ✖ | - -⏫ [返回列表](#列-表) - ## 🎁 参 考 ### token diff --git a/src/helper/advanced.ts b/src/helper/advanced.ts index dd4f66f..591c5b9 100644 --- a/src/helper/advanced.ts +++ b/src/helper/advanced.ts @@ -362,6 +362,32 @@ export async function doMarkDuplicate( } } +export async function doToggleLabels(labels: string[] = []) { + const issue = await ICE.getIssue(); + const baseLabels: string[] = issue.labels.map(({ name }: any) => name); + + const addLabels = []; + const removeLabels = []; + + for (const label of labels) { + if (baseLabels.includes(label)) { + removeLabels.push(label); + } else { + addLabels.push(label); + } + } + + if (removeLabels.length) { + await doRemoveLabels(removeLabels); + } + + if (addLabels.length) { + await doAddLabels(addLabels); + } + + core.info(`[doToggleLabels] Done!`); +} + export async function doWelcome( auth: string, issueNumber: number, @@ -393,29 +419,3 @@ export async function doWelcome( core.info(`[doWelcome] ${auth} is not first time!`); } } - -export async function doToggleLabels(labels: string[] = []) { - const issue = await ICE.getIssue(); - const baseLabels: string[] = issue.labels.map(({ name }: any) => name); - - const addLabels = []; - const removeLabels = []; - - for (const label of labels) { - if (baseLabels.includes(label)) { - removeLabels.push(label); - } else { - addLabels.push(label); - } - } - - if (removeLabels.length) { - await doRemoveLabels(removeLabels); - } - - if (addLabels.length) { - await doAddLabels(addLabels); - } - - core.info(`[doToggleLabels] Done!`); -} diff --git a/src/helper/helper.ts b/src/helper/helper.ts index 1cd0740..7082719 100644 --- a/src/helper/helper.ts +++ b/src/helper/helper.ts @@ -252,6 +252,10 @@ export class IssueHelperEngine implements IIssueHelperEngine { await doMarkDuplicate(ctx.payload.comment as TCommentInfo, closeReason, labels, emoji); break; } + case 'toggle-labels': { + await doToggleLabels(labels); + break; + } case 'welcome': { if (ctx.eventName === 'issues' && ctx.payload.action === 'opened') { await doWelcome(ctx.actor, issueNumber, body, labels, assignees, emoji); @@ -260,10 +264,6 @@ export class IssueHelperEngine implements IIssueHelperEngine { } break; } - case 'toggle-labels': { - await doToggleLabels(labels); - break; - } // -[ Advanced End ]-> default: { core.warning(`The ${action} is not allowed.`); diff --git a/src/types.ts b/src/types.ts index d2ae897..ab5d0e5 100644 --- a/src/types.ts +++ b/src/types.ts @@ -56,6 +56,6 @@ export type TAction = | 'lock-issues' | 'mark-assignees' | 'mark-duplicate' - | 'welcome' - | 'toggle-labels'; + | 'toggle-labels' + | 'welcome'; //// [ Advanced End ] diff --git a/web/docs/advanced.md b/web/docs/advanced.md index d09c9a2..e230659 100644 --- a/web/docs/advanced.md +++ b/web/docs/advanced.md @@ -351,6 +351,37 @@ Note: Duplicate created with the concise command does not display the content of ![](https://gw.alipayobjects.com/mdn/rms_f97235/afts/img/A*PN2tS7PjDQ4AAAAAAAAAAAAAARQnAQ) +## `toggle-labels` + +When an issue is reopened, the set labels are removed if they already exist, otherwise they are added. + +```yml +name: Toggle Labels + +on: + issues: + types: [reopened] + +jobs: + toggle-labels: + runs-on: ubuntu-latest + steps: + - name: Toggle labels + uses: actions-cool/issues-helper@v3 + with: + actions: 'toggle-labels' + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.issue.number }} + labels: 'unread,outdated' +``` + +| Param | Desc | Type | Required | +| -- | -- | -- | -- | +| actions | Action type | string | ✔ | +| token | [Token explain](/guide/ref#-token) | string | ✖ | +| issue-number | The number of issue. When not input, it will be obtained from the trigger event | number | ✖ | +| labels | The toggle labels. Delete if the label already exists, add if it does not exist | string | ✖ | + ## `welcome` When an issue is created, the user who created the issue for the first time is welcome. @@ -389,34 +420,3 @@ jobs: | issue-emoji | Add [emoji](/guide/ref#-emoji-type) to this issue| string | ✖ | - If these 4 options are not filled, no operation - -## `toggle-labels` - -When an issue is reopened, the set labels are removed if they already exist, otherwise they are added. - -```yml -name: Toggle Labels - -on: - issues: - types: [reopened] - -jobs: - toggle-labels: - runs-on: ubuntu-latest - steps: - - name: Toggle labels - uses: actions-cool/issues-helper@v3 - with: - actions: 'toggle-labels' - token: ${{ secrets.GITHUB_TOKEN }} - issue-number: ${{ github.event.issue.number }} - labels: 'unread,outdated' -``` - -| Param | Desc | Type | Required | -| -- | -- | -- | -- | -| actions | Action type | string | ✔ | -| token | [Token explain](/guide/ref#-token) | string | ✖ | -| issue-number | The number of issue. When not input, it will be obtained from the trigger event | number | ✖ | -| labels | The toggle labels. Delete if the label already exists, add if it does not exist | string | ✖ | diff --git a/web/docs/advanced.zh-CN.md b/web/docs/advanced.zh-CN.md index f60aaf3..83b150c 100644 --- a/web/docs/advanced.zh-CN.md +++ b/web/docs/advanced.zh-CN.md @@ -348,6 +348,37 @@ jobs: ![](https://gw.alipayobjects.com/mdn/rms_f97235/afts/img/A*PN2tS7PjDQ4AAAAAAAAAAAAAARQnAQ) +## `toggle-labels` + +当一个 issue 被重新打开,判断设置的 labels 如果已经存在则进行删除,否则进行添加。 + +```yml +name: Toggle Labels + +on: + issues: + types: [reopened] + +jobs: + toggle-labels: + runs-on: ubuntu-latest + steps: + - name: Toggle labels + uses: actions-cool/issues-helper@v3 + with: + actions: 'toggle-labels' + token: ${{ secrets.GITHUB_TOKEN }} + issue-number: ${{ github.event.issue.number }} + labels: 'unread,outdated' +``` + +| 参数 | 描述 | 类型 | 必填 | +| -- | -- | -- | -- | +| actions | 操作类型 | string | ✔ | +| token | [token 说明](/zh-CN/guide/ref#-token-说明) | string | ✖ | +| issue-number | 指定的 issue,当不传时会从触发事件中获取 | number | ✖ | +| labels | 切换 labels。如果 label 已存在则删除,不存在则添加 | string | ✖ | + ## `welcome` 当一个 issue 新建时,对首次新建 issue 的用户进行欢迎。若用户非首次新建,则无操作。 @@ -384,34 +415,3 @@ jobs: | issue-emoji | 为该 issue 增加 [emoji](/zh-CN/guide/ref#-emoji-类型) | string | ✖ | - 若这 4 个可选项都不填,则无操作 - -## `toggle-labels` - -当一个 issue 被重新打开,判断设置的 labels 如果已经存在则进行删除,否则进行添加。 - -```yml -name: Toggle Labels - -on: - issues: - types: [reopened] - -jobs: - toggle-labels: - runs-on: ubuntu-latest - steps: - - name: Toggle labels - uses: actions-cool/issues-helper@v3 - with: - actions: 'toggle-labels' - token: ${{ secrets.GITHUB_TOKEN }} - issue-number: ${{ github.event.issue.number }} - labels: 'unread,outdated' -``` - -| 参数 | 描述 | 类型 | 必填 | -| -- | -- | -- | -- | -| actions | 操作类型 | string | ✔ | -| token | [token 说明](/zh-CN/guide/ref#-token-说明) | string | ✖ | -| issue-number | 指定的 issue,当不传时会从触发事件中获取 | number | ✖ | -| labels | 切换 labels。如果 label 已存在则删除,不存在则添加 | string | ✖ |