Skip to content

ci: fix notify-registry draft-state release lookup#14

Merged
intel352 merged 1 commit into
masterfrom
ci/notify-registry-draft-lookup
May 17, 2026
Merged

ci: fix notify-registry draft-state release lookup#14
intel352 merged 1 commit into
masterfrom
ci/notify-registry-draft-lookup

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Summary

Fixes recurring notify-registry failure across plugin release workflows: Publish GitHub release step uses github.rest.repos.getReleaseByTag which returns 404 for DRAFT releases. GoReleaser config creates releases as draft → step fails on every release.

Root cause

getReleaseByTag only returns published (non-draft) releases. Drafts have no tag indexing — accessible only by release ID.

Fix

Replace with listReleases (which DOES return drafts) + find by tag. Single deterministic API call; no 404-on-draft race.

Note: this repo had wrapped getReleaseByTag in try/catch handling 404; replaced with simpler listReleases + null-check.

Sibling PRs

8 sibling PRs (gcp, azure, authz, authz-ui, bento, security, supply-chain, tofu) ship the same fix across other affected plugin repos.

Test plan

  • YAML parses cleanly
  • Next release tag exercises the fixed path

Rollback

Revert commit.

Root cause (recurring across plugin repos): the "Publish GitHub release"
step in notify-registry job uses github.rest.repos.getReleaseByTag which
returns 404 for DRAFT releases — drafts are NOT accessible by tag name,
only by release ID. GoReleaser config creates releases as draft → step
fails on every release.

Symptoms observed:
- workflow-plugin-authz run 25950232345 (v0.5.4, 2026-05-16) — flagged
- workflow-plugin-azure run 25989195581 (v1.2.1, 2026-05-17) — Phase 2.5+
  cleanup bundle hit this; defensive `gh release edit --draft=false`
  applied post-fact
- workflow-plugin-azure v1.2.0 (Phase 2 cascade, 2026-05-16) — same
- Likely affects every release in repos with this workflow pattern

Fix: replace getReleaseByTag with listReleases + find by tag (drafts
ARE returned by listReleases). Single deterministic API call; no
404-on-draft race.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 17, 2026 12:07
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

Fixes the release workflow’s “Publish GitHub release” step so it can locate draft releases created by GoReleaser (since getReleaseByTag returns 404 for drafts), preventing downstream notify-registry failures.

Changes:

  • Replace repos.getReleaseByTag with repos.listReleases and select the release by tag_name.
  • Simplify the failure path to a null-check with a clearer error message indicating the search scope (latest 100).

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

Comment on lines +55 to +58
const { data: releases } = await github.rest.repos.listReleases({ owner, repo, per_page: 100 });
release = releases.find(r => r.tag_name === tag);
if (!release) {
core.setFailed(`No GitHub release found for ${tag} in repo listing (latest 100); ensure GoReleaser created it before publishing.`);
@intel352 intel352 merged commit 1219f72 into master May 17, 2026
9 checks passed
@intel352 intel352 deleted the ci/notify-registry-draft-lookup branch May 17, 2026 12:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants