Skip to content

fix(ci): isolate protected fork validation - #54

Merged
ddurst-nvidia merged 1 commit into
mainfrom
fix/app-attributed-protected-dispatch-20260827
Aug 27, 2026
Merged

fix(ci): isolate protected fork validation#54
ddurst-nvidia merged 1 commit into
mainfrom
fix/app-attributed-protected-dispatch-20260827

Conversation

@ddurst-nvidia

@ddurst-nvidia ddurst-nvidia commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Why

  • Protected fork validation must retain the original writer-authorized
    issue_comment context while App-backed check mutations remain isolated in
    protected caller jobs.

What changed

  • Authorize the exact comment, pull-request head, base, and current
    protected-main policy in a checkout-free receiver.
  • Create and finalize the Required CI check only in protected-automation
    jobs whose repository-scoped App token has Checks write and Contents read.
  • Run all candidate work through a secretless local reusable workflow that
    retains the issue_comment event and has no environment, OIDC, write
    permission, cache action, or retained artifacts.
  • Bind authorization and reconciliation to the exact caller workflow, run,
    attempt, actor, triggering actor, reusable job, comment, head, base, and
    policy commit.
  • Preserve the protected validator and conditional Linux, macOS, and Windows
    candidate cargo xtask ci matrix.

Review guide

  • Start with .github/workflows/pr-ci-command.yml and verify that App
    credentials exist only in the protected start and finalization jobs.
  • Then review .github/workflows/pr-ci.yml as the unprivileged reusable
    candidate workflow.
  • Finally review the reusable-call and reconciliation bindings in
    .github/scripts/protected_pr_ci.py and their negative regressions.

Compatibility impact

  • None. Public Rust APIs, schemas, wire formats, MSRV, release behavior, and
    the /ok to test <head-sha> command are unchanged.

Dependency and licensing impact

  • None. No dependency, Action identity, Action pin, license, package-content,
    or third-party-notice changes.

Related issue

  • None.

Testing

  • /tmp/yaml-sigil-tools/bin/actionlint -config-file .github/actionlint.yaml
  • shuck check .github/scripts
  • python3 -m py_compile .github/scripts/protected_pr_ci.py .github/scripts/test_protected_pr_ci.py
  • python3 -m unittest discover -s .github/scripts -p 'test_protected_pr_ci.py'
    — 69 passed
  • cargo xtask ci
  • git diff --check
  • Shared controller, controller tests, command workflow, reconciliation
    workflow, and commit-policy hashes matched their intended sibling files.

Checklist

  • I confirmed this belongs in the Rust implementation repository and is
    not a language-neutral specification change better handled in
    yaml-sigil-spec.
  • I confirmed this change does not bypass or conflict with the public API
    contract in
    yaml-sigil-traits; any required
    traits changes are already available or tracked as coordinated work.
  • I have the right to submit this contribution, every commit is GitHub
    Verified, and every commit includes a Signed-off-by trailer that exactly
    matches its Git author.
  • I understand and can explain this change.
  • I updated documentation or tests where needed.
  • I reviewed CONTRIBUTING.md and SECURITY.md.

@ddurst-nvidia

Copy link
Copy Markdown
Collaborator Author

/ok to test 87c5ed3

Signed-off-by: ddurst <267424412+ddurst-nvidia@users.noreply.github.com>
@ddurst-nvidia
ddurst-nvidia force-pushed the fix/app-attributed-protected-dispatch-20260827 branch from 87c5ed3 to 09e80c7 Compare August 27, 2026 18:39
@ddurst-nvidia ddurst-nvidia changed the title fix(ci): attribute protected dispatch to release app fix(ci): isolate protected fork validation Aug 27, 2026
@ddurst-nvidia

Copy link
Copy Markdown
Collaborator Author

/ok to test 09e80c7

@ddurst-nvidia
ddurst-nvidia merged commit d3685b0 into main Aug 27, 2026
1 check passed
@ddurst-nvidia
ddurst-nvidia deleted the fix/app-attributed-protected-dispatch-20260827 branch August 27, 2026 18:53
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