Skip to content

Fix catalog-latest-url-bypass: require tag-pinned catalog download URLs - #4194

Open
Shaurya2k06 wants to merge 2 commits into
github:mainfrom
Shaurya2k06:fix/4185-catalog-latest-url-bypass
Open

Fix catalog-latest-url-bypass: require tag-pinned catalog download URLs#4194
Shaurya2k06 wants to merge 2 commits into
github:mainfrom
Shaurya2k06:fix/4185-catalog-latest-url-bypass

Conversation

@Shaurya2k06

Copy link
Copy Markdown

Bug fix — catalog-latest-url-bypass

Proposed fix for issue #4185, applying the remediation from the bug assessment.

Verdict: valid · Severity: high

Summary

Community catalog agent workflows treated tag-pinned download_url as advisory and accepted floating releases/latest/ aliases after an HTTP 200 check. The three workflows now MUST use a tag-pinned URL, reject releases/latest/ before any HTTP check, and require the URL tag to match the submitted version (vX.Y.Z or X.Y.Z).

Changes

File Change Notes
.github/workflows/add-community-extension.md modified Step 2d: MUST + releases/latest/ reject + tag/version match
.github/workflows/add-community-preset.md modified Step 2e: same checklist as extensions
.github/workflows/add-community-bundle.md modified Step 2c: aligned wording; still release-asset URLs only
tests/test_github_workflows.py added test Static assertions on the three workflow sources

Tests Added or Updated

  • tests/test_github_workflows.py::test_community_submission_workflows_require_tag_pinned_download_urls — asserts each community workflow drops “should follow the pattern”, forbids releases/latest/, and requires tag/version match language

Local Verification

  • Commands run: .venv/bin/python -m pytest tests/test_github_workflows.py -q → 6 passed
  • Commands run: .venv/bin/specify --help → CLI help rendered
  • gh aw compile was not available locally; lock YAML left unchanged because compiled workflows runtime-import the .md prompt bodies

Deviations from Assessment

None. Scope is the three workflow files plus a static test, as preferred. No shared checklist doc, no Python URL validator, no skill/template changes.

Risks & Review Notes

  • Instruction-only change: future submissions only; existing catalog entries are untouched.
  • LLM agents can still ignore MUST language; a deterministic validator remains out of scope.

Refs #4185

Testing

  • Tested locally with uv run specify --help
  • Ran existing tests with uv sync && uv run pytest (focused: tests/test_github_workflows.py)
  • Tested with a sample project (if applicable)

AI Disclosure

  • I did not use AI assistance for this contribution
  • I did use AI assistance (describe below)

Drafted and implemented under human supervision by Cursor Grok 4.6. I reviewed the code, ran tests, and the commit myself. I take full responsibility of the code generated by me.

Reject floating releases/latest URLs in the community catalog agent
workflows and require the URL tag to match the submitted version.

Refs github#4185

Assisted-by: Cursor Grok 4.6 (supervised)
Signed-off-by: shaurya2k06 <shaurya2k06@gmail.com>
@Shaurya2k06
Shaurya2k06 requested a review from mnriem as a code owner August 18, 2026 19:22
Copilot AI balanced review requested due to automatic review settings August 18, 2026 19:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review details

  • Files reviewed: 4/4 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread tests/test_github_workflows.py Outdated

@mnriem mnriem left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Please address Copilot feedback

Separate substring checks for vX.Y.Z and X.Y.Z were not independent.

Refs github#4185

Assisted-by: Cursor Grok 4.6 (supervised)
Signed-off-by: shaurya2k06 <shaurya2k06@gmail.com>
Copilot AI review requested due to automatic review settings August 19, 2026 15:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Shaurya2k06
Shaurya2k06 requested a review from mnriem August 19, 2026 15:57
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.

3 participants