desktop / desktop/gh-cli-and-desktop-shared-workflows
triage-detect-spam.yml is broken: gh models was retired on 2026-07-30
- Dominant language
- No language data
- Stars
- 3
- Forks
- 8
- Avg merge
- 1m
- Merged PRs (30d)
- 3
Description
Heads-up from the cli/cli side.
`triage-detect-spam.yml` runs `scripts/spam-detection/process-issue.sh`, which shells out to `gh models run`. GitHub Models was [fully retired on 2026-07-30](https://github.blog/changelog/2026-07-01-github-models-is-being-fully-retired-on-july-30-2026/), so this reusable workflow now fails for any repo that calls it. The `models: read` permission and the `openai/gpt-4o-mini` default input are both dead.
cli/cli had the same scripts vendored locally in its own `detect-spam.yml`, which [started failing](https://github.com/cli/cli/actions/runs/30603515267) for exactly this reason. We are not callers of this shared workflow, so nothing here is urgent for us - just flagging it since the breakage is not obvious until an issue is opened.
### How we resolved it on our side
cli/cli/pull/14027 folds spam detection into our existing `gh aw` agentic triage workflow rather than porting the `gh models` call. The agent applies `suspected-spam` directly, which chains into your `triage-close-suspected-spam.yml` for the comment and close. That path is unchanged and works well.
Two things from that work that may be useful here:
1. **The eval corpus was worth preserving.** We kept the labelled cases and swapped only the runner, over to `copilot -p`. Happy to point at the harness if you want to do the same.
2. **`close-single-word` clobbers labels.** Unrelated to this issue, but `triage-close-single-word-issues.yml` calls `issues.update({labels:['invalid']})`, which *replaces* the label set rather than appending. When it races another workflow, labels get dropped - we saw `suspected-spam` lost from one issue and `needs-triage` from another. We have stopped calling that job, but it will bite other callers.
### Suggested options
- Remove `triage-detect-spam.yml` if nobody calls it any more, or
- Replace the `gh models` call with an equivalent, if GitHub Desktop still relies on it.
Either way it is probably worth not leaving a workflow in the repo that cannot succeed.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading triage-detect-spam.yml and scripts/spam-detection/process-issue.sh, then search for callers, including possible GitHub Desktop usage. Decide whether the reusable workflow can be removed or should replace the retired gh models path, using the cli/cli approach and preserved eval corpus as reference; done means callers have a working spam-detection path and no workflow invokes gh models.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, shell
- Domain
- ci-cd
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100