From 1586fc420942122c7b5948397becca9ddb602b15 Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sun, 17 May 2026 04:10:29 +0300 Subject: chore: refine issue contributor intent flow --- .github/ISSUE_TEMPLATE/bug.yml | 61 ++++++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/change.yml | 62 +++++++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/ISSUE_TEMPLATE/proposal.yml | 59 ----------------------------- .github/workflows/label-intends-to-pr.yml | 9 +++-- 5 files changed, 129 insertions(+), 64 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/change.yml delete mode 100644 .github/ISSUE_TEMPLATE/proposal.yml (limited to '.github') 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/change.yml b/.github/ISSUE_TEMPLATE/change.yml new file mode 100644 index 00000000..a6cfbc48 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/change.yml @@ -0,0 +1,62 @@ +name: Feature or behavior change +description: Propose a feature, behavior change, documentation change, or direction check. +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 does herdr do today? + validations: + required: true + + - type: textarea + id: requested-change + attributes: + label: Requested change + description: What do you want to change? + validations: + required: true + + - type: textarea + id: reason + attributes: + label: Reason + description: Why does this belong in herdr? + validations: + required: true + + - type: dropdown + id: product-impact + attributes: + label: Does this change UI, interaction, workflow, or product direction? + options: + - "No" + - "Yes" + - "Not sure" + validations: + required: true + + - type: textarea + id: product-impact-details + attributes: + label: Impact details + description: If yes or not sure, explain what changes for users. + + - 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/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/ISSUE_TEMPLATE/proposal.yml b/.github/ISSUE_TEMPLATE/proposal.yml deleted file mode 100644 index 01080b6e..00000000 --- a/.github/ISSUE_TEMPLATE/proposal.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Change proposal -description: Propose a bug fix, feature, workflow change, or first-time contribution. -title: "[proposal]: " -body: - - type: markdown - attributes: - value: | - Before opening your first PR, describe the change here and wait for maintainer approval. - - - type: textarea - id: current-behavior - attributes: - label: Current behavior - description: What does herdr do today? - validations: - required: true - - - type: textarea - id: proposed-change - attributes: - label: Proposed change - description: What do you want to change? - validations: - required: true - - - type: textarea - id: why-herdr - attributes: - label: Why this belongs in herdr - description: Explain why this fits herdr's direction. - validations: - required: true - - - type: dropdown - id: product-impact - attributes: - label: Does this change UI, interaction, workflow, or product direction? - options: - - "No" - - "Yes" - - "Not sure" - validations: - required: true - - - type: textarea - id: product-impact-details - attributes: - label: Impact details - description: If yes or not sure, explain what changes for users. - - - type: checkboxes - id: contribution-intent - attributes: - label: Contribution intent - options: - - label: I intend to open a PR for this change. - required: false - - label: I understand this does not mean the change is approved. - required: false 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; } -- cgit v1.2.3