Skip to content

ci: honest greeting + split PR/issue response jobs#3272

Open
eyalgal wants to merge 10 commits intomainfrom
eyalgal-patch-1
Open

ci: honest greeting + split PR/issue response jobs#3272
eyalgal wants to merge 10 commits intomainfrom
eyalgal-patch-1

Conversation

@eyalgal
Copy link
Copy Markdown
Member

@eyalgal eyalgal commented Mar 13, 2026

Replace the misleading "reviews twice a week, every Monday and Friday" greeting with an honest note, and split the single respond job into event-scoped jobs. The Copilot-powered issue triage that was previously in this PR is deferred to a follow-up, per discussion in this thread.


Before the change?

  • A single respond job posts one greeting on both issues and PRs.
  • The greeting promises "reviews twice a week, every Monday and Friday" — which hasn't matched reality for a long time.

After the change?

Honest greeting. The comment body no longer promises a cadence. It states that the repo is maintained by GitHub and community members on a best-effort basis, and keeps the existing Status: Up for grabs community pointer.

Split jobs. respond becomes two jobs:

  • respond-to-pr — triggered on pull_request_target, requests only pull-requests: write.
  • respond-to-issue — triggered on issues, requests only issues: write.

Each job has a tailored opener ("thank you for this contribution" vs. "thank you for opening this issue") and the same honest body.

No new dependencies, no new external calls, no template parsing. The Copilot-powered triage (template completeness checks, duplicate search, Models API analysis) will come in a follow-up PR with the concerns from this thread addressed (extracted script, model id as env var, repo-variable kill switch, quiet-on-complete-issues behavior).

Pull request checklist

  • Schema migrations have been created if needed (example)
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been reviewed and added / updated if needed (for bug fixes / features)

Does this introduce a breaking change?

  • Yes
  • No

Refactor GitHub Actions workflow to improve PR and issue responses with Copilot integration.
@github-actions
Copy link
Copy Markdown

👋 Hi! Thank you for this contribution! Just to let you know, our GitHub SDK team does a round of issue and PR reviews twice a week, every Monday and Friday! We have a process in place for prioritizing and responding to your input. Because you are a part of this community please feel free to comment, add to, or pick up any issues/PRs that are labeled with Status: Up for grabs. You & others like you are the reason all of this works! So thank you & happy coding! 🚀

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the .github/workflows/immediate-response.yaml GitHub Actions workflow to split PR vs issue automation and add Copilot Models–powered issue triage to generate more actionable, template-aware follow-up comments.

Changes:

  • Split the prior combined responder into respond-to-pr (PR greeting) and triage-issue (issue triage + response).
  • Updated PR greeting message to set expectations around Copilot + human triage.
  • Added issue triage logic (template completeness checks, duplicate search, release context) and a Copilot Models API call to produce concise follow-up questions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread .github/workflows/immediate-response.yaml
Comment thread .github/workflows/immediate-response.yaml Outdated
Comment thread .github/workflows/immediate-response.yaml Outdated
Comment thread .github/workflows/immediate-response.yaml Outdated
eyalgal and others added 2 commits March 13, 2026 13:37
Should work without it, but doesn't hurt to include it

Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
@eyalgal eyalgal added the Type: Maintenance Any dependency, housekeeping, and clean up Issue or PR label Mar 13, 2026
Copy link
Copy Markdown
Contributor

@austenstone austenstone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left two comments: one on missing [MAINT] handling in the issue-type parsing, and one small fix on the bot name (github-actions[bot]).

Comment thread .github/workflows/immediate-response.yaml Outdated
Comment thread .github/workflows/immediate-response.yaml Outdated
eyalgal added 2 commits March 16, 2026 10:05
…THUB_TOKEN env

- Fix `githubactions[bot]` → `github-actions[bot]` in both jobs (austenstone)
- Add `[MAINT]` to issue type detection and cleanTitle regex (austenstone)
- Add `env: GITHUB_TOKEN` to github-script step for Models API auth (deiga)
- Detect GitHub's `_No response_` placeholder as a non-answer
- Change greeting to "A human maintainer will review this" (drop "from the GitHub SDK team")
@eyalgal eyalgal removed the request for review from robert-crandall March 16, 2026 18:58
deiga
deiga previously approved these changes Mar 17, 2026
Copy link
Copy Markdown

@robert-crandall robert-crandall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I want to hold off on this PR. I view this as a cool and clever use case for what Copilot can do, but I do not want to experiment on this repository with unproven Copilot uses. This repository is already under-staffed, and potential improvements like this come with a real risk of increasing workload instead of reducing it. For now, let's implement Copilot only when it has proven its value. For example, I view CCR as a proven value.

When coming back to this PR, some non-exhaustive thoughts:

  • I don't think this organization has Copilot enabled. That needs to be resolved before implementing this or CCR.
  • The logic to review issues should move to a new file, and actions should call that file. That will make it easier to test and to review.
  • The model chosen, gpt-40-mini, should be a variable

@eyalgal
Copy link
Copy Markdown
Member Author

eyalgal commented Mar 18, 2026

@robert-crandall I hear the concern about experimenting on an under-staffed repo, but I'd push back a bit on the framing here.

The current workflow is actively unhelpful: it promises "reviews twice a week, every Monday and Friday" which hasn't been true in a long time, and gives zero triage value. A maintainer's first touch on every issue is spent asking for basic info that the template already requested. With 40-50 new issues a month, that adds up fast.

This isn't an aggressive use of Copilot. It's template validation, duplicate search, and targeted follow-up questions. I simulated it against real issues from this repo, and in every case it asked for exactly what maintainers end up asking manually, sometimes hours later. I'm happy to share those simulations.

I'll monitor it closely after merge and we can roll back immediately if it creates noise instead of reducing it. But waiting for "proven value" on a workflow that replaces something already broken feels like the wrong bar.

Re: the specific suggestions: extracting the logic into a separate file and making the model a variable are good improvements, but I'd treat those as follow-ups rather than blockers. The workflow works as-is, and for this use case gpt-4o-mini is the right fit. On Copilot being enabled: I requested a Copilot review on this very PR and it ran successfully, so it's enabled in some capacity. Happy to verify the exact scope, but it shouldn't block merging.

@eyalgal eyalgal requested a review from robert-crandall March 25, 2026 21:00
nickfloyd
nickfloyd previously approved these changes Mar 25, 2026
@eyalgal eyalgal requested review from austenstone, robert-crandall and stevehipwell and removed request for robert-crandall March 25, 2026 22:10
Copy link
Copy Markdown
Collaborator

@stevehipwell stevehipwell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At a high level I agree that the current workflow doesn't really fit but I'm not sure about the value of adding more signal (we already have too much signal). Wouldn't a better MVP solution be to fix the current behaviour? How about an initial PR to remove this workflow and add a separate workflow for issues and PRs just adding a correct comment in the vein of the original. I'm confident that this would be non-contentious.

After there are separate MVP workflows you could re-add these suggestions as 2 seperate PRs which would be easier to review.

Comment thread .github/workflows/immediate-response.yaml
The `pull_request_target` trigger always runs in the context of the
base repo, so `github.repository` is always `integrations/terraform-provider-github`
for PRs opened against this repo. For issues, the workflow only fires
on the repo's own issue tracker. The check adds no value in either case.

Addresses review feedback from @stevehipwell.
@deiga deiga added the Needs Discussion This issue/PR needs maintainers to discuss and decide on a course of action. label Apr 19, 2026
@deiga
Copy link
Copy Markdown
Collaborator

deiga commented Apr 19, 2026

@eyalgal Could you split this into multiple PRs with the first being least changes to make the "immediate-response" workflow useful again?

Reverts the Copilot-powered triage additions to land them in a
follow-up PR, per #3272 review discussion. This PR now only:

- Replaces the misleading "reviews twice a week" greeting with an
  honest best-effort note.
- Splits the single respond job into respond-to-pr and
  respond-to-issue, each scoped to its event with least-privilege
  permissions.
@eyalgal
Copy link
Copy Markdown
Member Author

eyalgal commented Apr 20, 2026

@deiga — splitting it up. Revised plan after thinking it through:

This PR (now rescoped) — Fix the greeting + split PR/issue jobs. One small PR because the two changes share a rationale ("make the workflow useful + stop promising a cadence we don't have"), and once the messages diverge the job split is the natural shape. Concretely:

  • Rewrites the comment body so it no longer claims "reviews twice a week, every Monday and Friday." Replaces it with an honest note that the repo is maintained by GitHub and community members on a best-effort basis, plus the existing Status: Up for grabs nudge.
  • Splits respond into respond-to-pr (trigger: pull_request_target) and respond-to-issue (trigger: issues), with scoped permissions per job.
  • No new dependencies, no Copilot, no template parsing.

I've just force-pushed this branch to that scope (net diff: one file, +53/-14). Please take another look.

Follow-up PR — Copilot-powered issue triage (the real thing). I'd originally planned a deterministic-only version as an intermediate step, but I think that's the wrong move: a rules-only triage comment (missing-field checklist + duplicate list) would look like the final product while lacking the two things that make it feel smart — asking the one specific follow-up that matters, and staying quiet when the issue is already well-described. Shipping that as an intermediate state risks proving the "noise instead of signal" concern right. So the follow-up will be the full thing, with the concerns from this thread baked in:

  • Script extracted to .github/scripts/triage-issue.js (per @robert-crandall's earlier feedback).
  • Model id + endpoint as workflow-level env: vars so swapping models is a one-line change.
  • Kill switch: if: vars.ENABLE_COPILOT_TRIAGE != 'false' on the job — on by default, flip a repo variable to disable instantly without a revert.
  • Deterministic checks (template completeness, duplicate search) run first and gate the LLM output; if the issue is complete, no duplicates found, and the model returns LGTM, the job posts nothing beyond a minimal greeting.
  • PR description will include a rollout note: monitor the first ~20 issues post-merge; any false-positive complaint → flip the repo var off.

Does this sequencing work?

@eyalgal eyalgal changed the title Enhance immediate-response workflow with Copilot features ci: honest greeting + split PR/issue response jobs Apr 20, 2026
@deiga deiga removed the Needs Discussion This issue/PR needs maintainers to discuss and decide on a course of action. label Apr 20, 2026
@deiga deiga added this to the v6.13.0 milestone Apr 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Type: Maintenance Any dependency, housekeeping, and clean up Issue or PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants