diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-17 04:10:29 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-17 04:19:50 +0300 |
| commit | 1586fc420942122c7b5948397becca9ddb602b15 (patch) | |
| tree | 7db45490dd1ef08a30c7a4f92f7f80a165441083 /.github | |
| parent | db6f9afad27142248150096aa886f1057c1ebcd6 (diff) | |
chore: refine issue contributor intent flow
Diffstat (limited to '.github')
| -rw-r--r-- | .github/ISSUE_TEMPLATE/bug.yml | 61 | ||||
| -rw-r--r-- | .github/ISSUE_TEMPLATE/change.yml (renamed from .github/ISSUE_TEMPLATE/proposal.yml) | 25 | ||||
| -rw-r--r-- | .github/ISSUE_TEMPLATE/config.yml | 2 | ||||
| -rw-r--r-- | .github/workflows/label-intends-to-pr.yml | 9 |
4 files changed, 81 insertions, 16 deletions
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000..408707b1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,61 @@ +name: Bug report +description: Report something broken in herdr. +body: + - type: markdown + attributes: + value: | + **Before you start:** Read [CONTRIBUTING.md](https://github.com/ogulcancelik/herdr/blob/master/CONTRIBUTING.md). + + New PRs from unapproved contributors are auto-closed by default. Open an issue first and wait for maintainer approval. Issues that do not meet the quality bar in [CONTRIBUTING.md](https://github.com/ogulcancelik/herdr/blob/master/CONTRIBUTING.md) may be closed or left without a reply. + + Keep this short. If it does not fit on one screen, it is too long. Write in your own voice. + + - type: textarea + id: current-behavior + attributes: + label: Current behavior + description: What is happening now? + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: What should happen instead? + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Reproduction + description: What are the shortest steps that show the problem? + validations: + required: true + + - type: textarea + id: impact + attributes: + label: Impact + description: How does this affect you? + validations: + required: true + + - type: textarea + id: environment + attributes: + label: Environment + description: Herdr version, OS, terminal, shell, and any relevant config. + validations: + required: false + + - type: checkboxes + id: contribution-intent + attributes: + label: Contribution intent + options: + - label: I intend to open a PR for this issue. + required: false + - label: I understand this does not mean the issue is approved. + required: false diff --git a/.github/ISSUE_TEMPLATE/proposal.yml b/.github/ISSUE_TEMPLATE/change.yml index 01080b6e..a6cfbc48 100644 --- a/.github/ISSUE_TEMPLATE/proposal.yml +++ b/.github/ISSUE_TEMPLATE/change.yml @@ -1,11 +1,14 @@ -name: Change proposal -description: Propose a bug fix, feature, workflow change, or first-time contribution. -title: "[proposal]: " +name: Feature or behavior change +description: Propose a feature, behavior change, documentation change, or direction check. body: - type: markdown attributes: value: | - Before opening your first PR, describe the change here and wait for maintainer approval. + **Before you start:** Read [CONTRIBUTING.md](https://github.com/ogulcancelik/herdr/blob/master/CONTRIBUTING.md). + + New PRs from unapproved contributors are auto-closed by default. Open an issue first and wait for maintainer approval. Issues that do not meet the quality bar in [CONTRIBUTING.md](https://github.com/ogulcancelik/herdr/blob/master/CONTRIBUTING.md) may be closed or left without a reply. + + Keep this short. If it does not fit on one screen, it is too long. Write in your own voice. - type: textarea id: current-behavior @@ -16,18 +19,18 @@ body: required: true - type: textarea - id: proposed-change + id: requested-change attributes: - label: Proposed change + label: Requested change description: What do you want to change? validations: required: true - type: textarea - id: why-herdr + id: reason attributes: - label: Why this belongs in herdr - description: Explain why this fits herdr's direction. + label: Reason + description: Why does this belong in herdr? validations: required: true @@ -53,7 +56,7 @@ body: attributes: label: Contribution intent options: - - label: I intend to open a PR for this change. + - label: I intend to open a PR for this issue. required: false - - label: I understand this does not mean the change is approved. + - label: I understand this does not mean the issue is approved. required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 64eb98dc..8005e322 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,2 +1,2 @@ -blank_issues_enabled: true +blank_issues_enabled: false contact_links: [] diff --git a/.github/workflows/label-intends-to-pr.yml b/.github/workflows/label-intends-to-pr.yml index 11136ec3..731f0f82 100644 --- a/.github/workflows/label-intends-to-pr.yml +++ b/.github/workflows/label-intends-to-pr.yml @@ -24,9 +24,10 @@ jobs: const body = context.payload.issue.body || ''; const issueNumber = context.payload.issue.number; const { owner, repo } = context.repo; - const checkedIntentPattern = /^\s*-\s*\[[xX]\]\s*I intend to open a PR for this change\.\s*$/m; - const uncheckedIntentPattern = /^\s*-\s*\[ \]\s*I intend to open a PR for this change\.\s*$/m; - const shouldAddLabel = checkedIntentPattern.test(body); + const checkedIntentPattern = /^\s*-\s*\[[xX]\]\s*I intend to open a PR for this (?:change|issue)\.\s*$/m; + const uncheckedIntentPattern = /^\s*-\s*\[ \]\s*I intend to open a PR for this (?:change|issue)\.\s*$/m; + const cliIntentPattern = /^\s*\/i-intend-to-pr\s*$/m; + const shouldAddLabel = checkedIntentPattern.test(body) || cliIntentPattern.test(body); const shouldRemoveLabel = uncheckedIntentPattern.test(body); const labels = context.payload.issue.labels.map((item) => typeof item === 'string' ? item : item.name, @@ -44,7 +45,7 @@ jobs: } if (!shouldAddLabel && !shouldRemoveLabel) { - console.log(`No contribution intent checkbox found for #${issueNumber}.`); + console.log(`No contribution intent signal found for #${issueNumber}.`); return; } |
