fix: restore community archive validation and compare submitted checksums - #4689
Conversation
…sums Assisted-by: GitHub Copilot (model: GPT-6 Astra, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The scoped permissions, generated workflows, hosted evidence, and positive and negative regression coverage consistently support the intended fix.
Review effort: Balanced
Findings: None
What changed in this PR
Restores secure archive validation across all community submission workflows and closes #4677.
Changes:
- Adds explicit GitHub URL and checksum-tool permissions.
- Validates submitted checksums against downloaded archives.
- Makes successful bundle labeling deterministic and adds regression coverage.
| File | Description |
|---|---|
tests/test_github_workflows.py |
Tests checksum, permissions, outcomes, and labels. |
.github/workflows/add-community-preset.md |
Restores preset archive validation. |
.github/workflows/add-community-preset.lock.yml |
Regenerates the preset workflow. |
.github/workflows/add-community-extension.md |
Restores extension archive validation. |
.github/workflows/add-community-extension.lock.yml |
Regenerates the extension workflow. |
.github/workflows/add-community-bundle.md |
Adds bundle validation and deterministic labels. |
.github/workflows/add-community-bundle.lock.yml |
Regenerates the bundle workflow. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Assisted-by: GitHub Copilot (model: GPT-6 Astra, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Commit: 42e8339 Replaced inline archive URL interpolation with an edit-tool data file and a fixed, double-quoted curl argument in all three submission workflows. Added strict URL character checks and regression coverage for shell metacharacters. Regenerated the workflow locks; runtime permissions are unchanged. Hosted workflows were not rerun. Posted on behalf of @KSchlobohm by GitHub Copilot (model: GPT-6 Astra, autonomous); code and comment fully AI-drafted. |
Description
Closes #4677.
Restore release-archive validation in the extension, preset, and bundle submission workflows. Hosted fork runs also exposed a checksum decision error: a submission containing an all-zero checksum was accepted despite the downloaded archive having a different digest.
This builds on #4622, which already added curl, HTTPS/timeout protections, direct-download evidence instructions, and GitHub archive firewall access. Those protections are retained, not replaced.
No submission-form changes, fork test catalog entries, or unrelated fork changes are included. This does not introduce an independent checksum enforcement gate.
Testing
Hosted fork evidence
The bundle label omission occurred in the initial valid case and an identical-input retry.
Local regression coverage
git diff --checkpassed. The upstream test count differs because overlapping archive assertions were consolidated rather than duplicated.Limits of the evidence
FAILED. Other runs also differed from the prescribed ordering.AI Disclosure
GitHub Copilot (model: GPT-6 Astra, autonomous; reasoning setting not exposed) authored the fork changes, upstream port, regression tests, test orchestration, and this draft on behalf of @KSchlobohm. The human directed the scope and approved the fork publications. No human line-by-line review is claimed.