desktop / desktop/gh-cli-and-desktop-shared-workflows

triage-detect-spam.yml is broken: gh models was retired on 2026-07-30

Open
#36 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.