From 96dac969c73ba2da176c53f1573e827ee0ef230b Mon Sep 17 00:00:00 2001 From: Tatsuro Shibamura Date: Sun, 9 Aug 2026 22:14:57 +0900 Subject: [PATCH 1/2] Improve issue and pull request labeling --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .../ISSUE_TEMPLATE/dns_provider_request.yml | 3 +- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- .github/labeler.yml | 63 +++++++++++++++++++ .github/release.yml | 6 ++ .github/workflows/pr-labeler.yml | 21 +++++++ CONTRIBUTING.md | 20 ++++++ 7 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/pr-labeler.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 2d153ed4..3bcaa327 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,7 +2,7 @@ name: Bug report description: Create a report to help us improve title: "[Bug]: " labels: - - bug + - "status: needs-triage" type: Bug assignees: - shibayan diff --git a/.github/ISSUE_TEMPLATE/dns_provider_request.yml b/.github/ISSUE_TEMPLATE/dns_provider_request.yml index 13ece5b6..710bb38a 100644 --- a/.github/ISSUE_TEMPLATE/dns_provider_request.yml +++ b/.github/ISSUE_TEMPLATE/dns_provider_request.yml @@ -2,7 +2,8 @@ name: DNS Provider request description: Request support for a new DNS provider title: "[DNS Provider]: " labels: - - enhancement + - "area: dns-provider" + - "status: needs-triage" type: Feature assignees: - shibayan diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 47dc4780..f894fe1d 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -2,7 +2,7 @@ name: Feature request description: Suggest an idea for this project title: "[Feature]: " labels: - - enhancement + - "status: needs-triage" type: Feature assignees: - shibayan diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 00000000..763fbe93 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,63 @@ +documentation: + - changed-files: + - any-glob-to-all-files: + - "{docs/**,README.md,**/README.md,CONTRIBUTING.md,CODE_OF_CONDUCT.md,SECURITY.md,SUPPORT.md}" + +"area: docs": + - changed-files: + - any-glob-to-any-file: + - docs/** + - README.md + - "**/README.md" + - CONTRIBUTING.md + - CODE_OF_CONDUCT.md + - SECURITY.md + - SUPPORT.md + +"area: acme": + - changed-files: + - any-glob-to-any-file: + - src/Acmebot.Acme/** + - tests/Acmebot.Acme.Tests/** + +"area: backend": + - changed-files: + - any-glob-to-any-file: + - src/Acmebot.App/* + - src/Acmebot.App/Acme/** + - src/Acmebot.App/Extensions/** + - src/Acmebot.App/Functions/** + - src/Acmebot.App/Infrastructure/** + - src/Acmebot.App/Models/** + - src/Acmebot.App/Notifications/** + - src/Acmebot.App/Options/** + - src/Acmebot.App/Properties/** + - src/Acmebot.App/Providers/** + - src/Acmebot.App/Services/** + - src/Acmebot.App/wwwroot/** + - tests/Acmebot.App.Tests/** + +"area: dashboard": + - changed-files: + - any-glob-to-any-file: + - src/Acmebot.App/ClientApp/** + +"area: cli": + - changed-files: + - any-glob-to-any-file: + - src/Acmebot.Cli/** + - tests/Acmebot.Cli.Tests/** + +"area: deployment": + - changed-files: + - any-glob-to-any-file: + - deploy/** + +"area: dns-provider": + - changed-files: + - any-glob-to-any-file: + - src/Acmebot.App/Providers/** + - src/Acmebot.App/Options/*Dns* + - src/Acmebot.App/Extensions/Dns* + - src/Acmebot.App/Services/Dns* + - tests/Acmebot.App.Tests/*Dns* diff --git a/.github/release.yml b/.github/release.yml index 76e205b5..8ce757cb 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -9,6 +9,9 @@ changelog: - question - wontfix categories: + - title: Breaking Changes + labels: + - breaking-change - title: New Features labels: - enhancement @@ -21,6 +24,9 @@ changelog: - title: Dependency Updates labels: - dependencies + - title: Maintenance + labels: + - maintenance - title: Other Changes labels: - "*" diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml new file mode 100644 index 00000000..e2151f82 --- /dev/null +++ b/.github/workflows/pr-labeler.yml @@ -0,0 +1,21 @@ +name: Pull request labeler + +on: + pull_request_target: + types: [opened, edited, reopened, synchronize, ready_for_review] + +permissions: {} + +jobs: + label: + name: Add pull request labels + if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' }} + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + steps: + - name: Add labels from changed files + uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # v6.2.0 + with: + sync-labels: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 803687ce..7fc4dad9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,6 +45,26 @@ These commands cover the contributor-facing validation checks. - Avoid unrelated refactoring in the same pull request. - Do not commit secrets, certificates, or populated `local.settings.json` values. +## Issue and Pull Request Classification + +Issues use GitHub Issue Types as their primary classification: + +- `Bug` for unexpected behavior +- `Feature` for requests, ideas, or new functionality +- `Task` for a specific piece of implementation or documentation work + +Maintainers assign the organization-level `Priority` issue field during triage. An unset priority means the issue has not been prioritized yet. Labels beginning with `area:` identify affected components, and labels beginning with `status:` describe the current triage state. + +Pull requests use exactly one release category label: + +- `bug` +- `enhancement` +- `documentation` +- `dependencies` +- `maintenance` + +These release category labels are reserved for pull requests. The official GitHub pull request labeler adds `documentation` and `area:` labels from changed paths. It only adds labels and does not remove manually assigned labels. Maintainers assign `bug`, `enhancement`, `maintenance`, and `breaking-change` when applicable, while Dependabot applies dependency labels through its repository configuration. Pull request priority is inherited from its linked issue rather than represented by a label. + ## Release Publishing The `Publish` workflow runs for version tags such as `v5.0.0`. Before pushing the tag, create a matching draft GitHub Release. The workflow uploads the Function App package, publishes the CLI package to NuGet, and then publishes the draft release. From 6eaf60abb0fa38446e2742ba0eb6154deaf93b21 Mon Sep 17 00:00:00 2001 From: Tatsuro Shibamura Date: Sun, 9 Aug 2026 22:25:22 +0900 Subject: [PATCH 2/2] Avoid pull request target for labeling --- .github/workflows/pr-labeler.yml | 4 ++-- CONTRIBUTING.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index e2151f82..e6b3b3b6 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -1,7 +1,7 @@ name: Pull request labeler on: - pull_request_target: + pull_request: types: [opened, edited, reopened, synchronize, ready_for_review] permissions: {} @@ -9,7 +9,7 @@ permissions: {} jobs: label: name: Add pull request labels - if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' }} + if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login != 'dependabot[bot]' }} runs-on: ubuntu-latest permissions: contents: read diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7fc4dad9..fa923101 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -63,7 +63,7 @@ Pull requests use exactly one release category label: - `dependencies` - `maintenance` -These release category labels are reserved for pull requests. The official GitHub pull request labeler adds `documentation` and `area:` labels from changed paths. It only adds labels and does not remove manually assigned labels. Maintainers assign `bug`, `enhancement`, `maintenance`, and `breaking-change` when applicable, while Dependabot applies dependency labels through its repository configuration. Pull request priority is inherited from its linked issue rather than represented by a label. +These release category labels are reserved for pull requests. For pull requests whose branch is in this repository, the official GitHub pull request labeler adds `documentation` and `area:` labels from changed paths. It only adds labels and does not remove manually assigned labels. Maintainers label pull requests from forks and assign `bug`, `enhancement`, `maintenance`, and `breaking-change` when applicable, while Dependabot applies dependency labels through its repository configuration. Pull request priority is inherited from its linked issue rather than represented by a label. ## Release Publishing