Skip to content

fix(cg-actions): resolve mirrors via org index (fewer false "no equivalent") - #6

Closed
tylerpaxton wants to merge 1 commit into
mainfrom
cg-actions-mirror-search
Closed

fix(cg-actions): resolve mirrors via org index (fewer false "no equivalent")#6
tylerpaxton wants to merge 1 commit into
mainfrom
cg-actions-mirror-search

Conversation

@tylerpaxton

Copy link
Copy Markdown
Contributor

Problem

Mirror lookup guessed two exact repo names (chainguard-actions/{owner}-{repo}, then {repo}) and checked each directly. When a public mirror existed under a name the guess didn't match exactly, the action was wrongly reported ❌ no equivalent. Concretely:

  • Subpath actionsactions/cache/restore split to actions / cache/restore, producing an invalid guess → ❌, even though chainguard-actions/actions-cache exists.
  • Case differencesazure/cli vs the mirror Azure-cli.

Fix

Build a one-time index of all public, non-archived chainguard-actions repos and resolve the candidate names against it case-insensitively, dropping any subpath. Because the index only contains public repos, private/in-development mirrors (e.g. docker/build-push-action) are still never recommended. Falls back to the previous per-candidate check if the org listing can't be fetched.

Verified (against real catalog)

Action Before After
actions/cache/restore ❌ no equivalent ⚠️ chainguard-actions/actions-cache@v6.1.0
azure/cli (fragile) chainguard-actions/Azure-cli@v2.2.0
docker/build-push-action (private) ❌ (correct)
renovatebot/github-action (absent) ❌ (correct)

Note: this is the durable interim until equivalence is driven by chainctl actions catalog.

🤖 Generated with Claude Code

…alent")

Mirror lookup previously guessed two exact names (chainguard-actions/{owner}-{repo},
{repo}) and did a direct repo check. That produced false "no equivalent" results
when a PUBLIC mirror existed under a name the guess didn't match exactly — most
notably subpath actions (actions/cache/restore) and case differences (azure/cli
-> Azure-cli).

Now build a one-time index of all public, non-archived chainguard-actions repos
and resolve candidates against it case-insensitively, dropping any subpath. Private
/ in-development repos are never in the index, so they're still never recommended.
Falls back to the old per-candidate check if the org listing can't be fetched.

Verified: actions/cache/restore and azure/cli now resolve (previously ❌);
docker/build-push-action (private) and renovatebot/github-action (absent) still ❌.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@tylerpaxton

Copy link
Copy Markdown
Contributor Author

Superseded by #9, which consolidates this into a single reviewable PR (one commit per change, single VERSION bump).

@tylerpaxton tylerpaxton closed this Jul 1, 2026
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.

1 participant