Skip to content

fix(root): publish validated iyarc-prune pull requests - #10087

Draft
zahin-mohammad wants to merge 3 commits into
masterfrom
codex/WAL-2232-iyarc-prune-create-pr
Draft

zahin-mohammad wants to merge 3 commits into
masterfrom
codex/WAL-2232-iyarc-prune-create-pr

Conversation

@zahin-mohammad

@zahin-mohammad zahin-mohammad commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Description

The weekly iyarc-prune workflow removes obsolete vulnerability-scan exceptions. It could finish with validated dependency edits but no commit or pull request because the agent treated a checkout on master as a local run. Reported failure and acceptance criteria.

  • Give the workflow explicit ownership of publication: require successful agent completion, reject any change to the original checkout commit, check tracked and untracked files plus a nonempty validation report, preserve existing labels, skip an existing open prune pull request, then create a signed commit and a non-draft pull request against master with the existing labels and assignment. Fail when publication produces no pull request URL. Workflow.

  • Have the agent leave validated edits uncommitted and write its report to the workflow-provided temporary path. Local runs continue to leave edits for developer review. Agent instructions.

  • Replace the unsupported scanner severity flag with the release workflow's scanner output and severity evaluation. Audit instructions.

  • Install scanner version 2.3.8 before the agent runs, with a pinned SHA-256 checksum (a digest used to detect changed downloads). Scanner setup.

WARNING: Generated pull requests use GitHub's repository-scoped workflow credential (GITHUB_TOKEN). Their automated checks may need a maintainer to select Approve workflows to run before they start. The agent report and workflow summary now state this requirement. Current GitHub behavior.

Issue Number

WAL-2232

Type of change

  • Bug fix
  • Agent instruction update

How Has This Been Tested?

VERIFIED locally: workflow syntax, formatting, commit rules, and 34 execution, publication, label, and scanner-installation cases. The decision harness executes the actual workflow Bash steps in an isolated temporary Git repository, with the GitHub command-line client replaced by a controlled stub.

Validation commands and actual output

Run from the repository root:

nix shell github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#actionlint github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#shellcheck -c actionlint .github/workflows/iyarc-prune.yml

Exit status 0; no workflow diagnostics. The tool emitted these environment warnings:

warning: unknown setting 'eval-cores'
warning: unknown setting 'lazy-trees'
node_modules/.bin/prettier --check .claude/agents/iyarc-prune.md .github/workflows/iyarc-prune.yml
Checking formatting...
All matched files use Prettier code style!
nix shell github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#coreutils -c node /tmp/wal-2232-validate.cjs
PASS successful array
PASS successful object
PASS agent error
PASS turn limit
PASS missing result
PASS missing success flag
PASS malformed execution
PASS empty execution
PASS missing execution file
PASS no changes
PASS validated changes
PASS staged changes
PASS unexpected tracked path
PASS unexpected untracked path
PASS new workspace manifest
PASS committed edits
PASS committed unexpected path
PASS empty agent commit
PASS missing checkout commit
PASS manifest without exclusions
PASS missing report
PASS empty report
PASS existing open pull request
PASS pull request query failure
PASS missing labels
PASS one missing label
PASS mixed case existing labels
PASS label query failure
PASS label creation failure
PASS publication URL present
PASS publication URL missing
PASS scanner installation exports path
PASS scanner checksum mismatch
PASS scanner download failure
Workflow decision checks: 34/34 PASS

Scanner-installation checks use a local executable fixture and stub downloads; they verify path export and rejection of download/checksum failures. Separately, the real Linux release binary matched the published checksum:

printf '%s  %s\n' bc98e15319ed0d515e3f9235287ba53cdc5535d576d24fd573978ecfe9ab92dc /tmp/wal-2232-scanner-check/osv-scanner | shasum -a 256 -c
/tmp/wal-2232-scanner-check/osv-scanner: OK

The temporary harness is at /tmp/wal-2232-validate.cjs; it is not checked in. Its load-bearing execution and assertion excerpts are:

const steps = yaml.load(fs.readFileSync('.github/workflows/iyarc-prune.yml', 'utf8')).jobs.prune.steps;
const script = (name) => steps.find((step) => step.name === name).run;
const result = run('bash', ['-e', '-o', 'pipefail', '-c', script(stepName)], env);
assert.equal(result.status === 0, shouldPass, `${name}: ${result.stdout}\n${result.stderr}`);
assert.equal(result.output.includes('ready=true'), ready, name);
yarn check-commits

Output excerpt:

⧗   input: fix(root): guard prune publication and provision scanner

Ticket: WAL-2232
✔   found 0 problems, 0 warnings

git diff --check and the repository commit hooks also passed.

Unverified live behavior: the local harness does not exercise model inference, Linux scanner execution, GitHub token permissions, or signed publication against this repository. The repository setting Allow GitHub Actions to create and approve pull requests also needs verification: gh api repos/BitGo/BitGoJS/actions/permissions/workflow returned HTTP 403 (Resource not accessible by personal access token). After merge, manually dispatch the workflow and verify the resulting commit signature, pull request, labels, assignment, and required checks.

Checklist

  • Reviewed both changed files
  • Workflow syntax and publication decision checks passed locally
  • Agent instructions updated
  • Signed commit follows Conventional Commits and references WAL-2232

@zahin-mohammad
zahin-mohammad requested review from a team as code owners October 28, 2026 18:00

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@linear-code

linear-code Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

WAL-2232

@zahin-mohammad
zahin-mohammad marked this pull request as draft October 28, 2026 18:00
@zahin-mohammad

Copy link
Copy Markdown
Contributor Author

@claude review always

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @zahin-mohammad's task in 26s —— View job


Review of PR #10087

The approach is sound. The workflow now owns publication, and the agent only leaves uncommitted edits plus a report. I found no blocking bugs, but there are a few things to check.

Items to check

  1. CI won't run on the created PR (.github/workflows/iyarc-prune.yml, "Create signed dependency pull request"). peter-evans/create-pull-request with GITHUB_TOKEN creates PRs that do not trigger pull_request workflows. The agent instructions treat PR CI as the "backstop" for the full test suite, so these PRs would sit without checks. If branch protection requires checks, they will be unmergeable until someone pushes an empty commit or closes and reopens the PR. Consider using a GitHub App token or PAT, or call this out in the PR description.

  2. Repo setting dependency. Creating PRs from GITHUB_TOKEN needs "Allow GitHub Actions to create and approve pull requests" enabled for the repo or org. The PR notes that live behavior is unverified, so check this setting before the first dispatch.

  3. Pinned SHA and ref-pin lint. lint-gha.yaml lists peter-evans/create-pull-request as ref-pin. Confirm that 22a9089… is the v7 tag commit and that the lint job passes with it.

  4. Silent early exits. In "Check changes are ready", an existing open prune PR exits 0 with only a step-summary line. That is fine. But labels are created only after the dedupe check, and gh label create --force failing would fail the job after the agent has already spent its tokens. This is acceptable, but you could make it || true, since the labels are a convenience.

  5. Changed-file allowlist. git diff --name-only HEAD ignores untracked files, so a stray new file would not be caught. It also would not be committed, because add-paths limits what is staged, so this is harmless. The modules/*/package.json allowance is broader than the agent's "Only modify osv-scanner.toml, package.json, yarn.lock" rule. That is probably intended, since yarn upgrade-dep touches workspaces, but you may want to align the wording in the agent doc.

  6. Concurrent runs. The branch name osv-scanner-prune/${{ github.run_id }} is unique per run. The concurrency group plus the open-PR check prevents duplicates. This is fine.

  7. Minor. The "Require successful Claude completion" step still runs if: always() and exits non-zero on a missing result. That is the desired fail-closed behavior. The unrelated Prettier blank-line additions in the agent markdown are harmless.

Summary: the logic reads correctly. The main follow-up is item 1 (CI not triggering on bot-created PRs) and verifying items 2 and 3 before the first manual dispatch. I did not run anything locally. This was a read-only review.
· Branch: codex/WAL-2232-iyarc-prune-create-pr

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nothing blocking. The comments below are optional suggestions. There is no need to push a fix for them before merging.

Comment thread .github/workflows/iyarc-prune.yml Outdated
Comment thread .github/workflows/iyarc-prune.yml
Comment thread .github/workflows/iyarc-prune.yml
Comment thread .claude/agents/iyarc-prune.md Outdated
zahin-mohammad and others added 2 commits October 28, 2026 14:33
Ticket: WAL-2232

Co-authored-by: Ralph CLI <ralph-cli@bitgo.com>
Ralph: 18.12.3-bitgo.6 openrouter/openai/gpt-6.1-sol@default:high openrouter/z-ai/glm-5.3-flash@smol:low+task:medium openrouter/z-ai/glm-5.3@slow:max
@zahin-mohammad

Copy link
Copy Markdown
Contributor Author

Failed manual dispatch: cause and fix

The linked run failed before the pruning agent ran, not in the dependency validation or pull-request publication steps. Failed job logs show:

Could not assume role with OIDC: Not authorized to perform sts:AssumeRoleWithWebIdentity

Verified configuration: GitHub's OpenID Connect (OIDC), the login mechanism that exchanges a workflow identity for short-lived AWS credentials, used the feature-branch workflow ref. This repository uses the default subject format. The BitGoJS infrastructure entry grants model-inference access only to the protected role; role generation defaults its protected branch to master, and the trust-policy module matches that branch in the token subject. Checking out master cannot change the workflow branch identity in that token.

This explains why the feature-branch dispatch was rejected while the previous master dispatch authenticated successfully with the same role. Access limit: the deployed AWS role policy could not be read locally (Unable to locate credentials); the policy configuration above is repository evidence, not a dump of live AWS state.

Fixed in signed commit fcef23b543:

  • Reject non-master dispatches before checkout or AWS login, with an explicit instruction to merge workflow changes and select master.
  • Check out the run's exact commit, instead of the moving master tip.
  • Run Claude reporting/completion checks only when Claude was not skipped, preserving real agent failures without adding a misleading missing-execution-file error after an earlier failure.
  • Document the supported manual-dispatch procedure in the existing agent instructions.

WARNING: This does not grant feature branches access to the protected AWS role. Full model-inference and signed-publication verification must run from master after merge. Re-running the old failed run would retain the same unsupported branch identity.

Verification

GitHub reports the pushed commit signature as verified: true, reason: valid.

nix shell github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#actionlint github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#shellcheck -c actionlint .github/workflows/iyarc-prune.yml

Exit 0, no workflow diagnostics. Nix emitted unknown setting 'eval-cores' and unknown setting 'lazy-trees' warnings.

node_modules/.bin/prettier --check .claude/agents/iyarc-prune.md .github/workflows/iyarc-prune.yml
Checking formatting...
All matched files use Prettier code style!

The existing publication harness was exercised again using the invocation already documented in the PR body. Its final output was:

Workflow decision checks: 34/34 PASS

The branch-dispatch smoke executes the actual workflow Bash step locally:

node /tmp/wal-2232-ref-smoke.cjs
PASS master dispatch: exit 0
PASS feature dispatch: exit 1
::error::Run iyarc-prune from master. The AWS role trusts the workflow ref, not the checkout ref. Merge workflow changes before dispatching them.
PASS tag named master: exit 1
PASS similarly named branch: exit 1
PASS pull request ref: exit 1
PASS missing ref: exit 1
Branch dispatch smoke: 6/6 PASS
Temporary smoke script, not checked in; removed after use
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const { spawnSync } = require('node:child_process');
const yaml = require(path.join(process.cwd(), 'node_modules/js-yaml'));
const workflow = yaml.load(fs.readFileSync('.github/workflows/iyarc-prune.yml', 'utf8'));
const guard = workflow.jobs.prune.steps[0];
assert.equal(guard.name, 'Require master workflow ref');
for (const [name, ref, expectedStatus] of [
  ['master dispatch', 'refs/heads/master', 0],
  ['feature dispatch', 'refs/heads/codex/WAL-2232-iyarc-prune-create-pr', 1],
  ['tag named master', 'refs/tags/master', 1],
  ['similarly named branch', 'refs/heads/master-preview', 1],
  ['pull request ref', 'refs/pull/10087/merge', 1],
  ['missing ref', undefined, 1],
]) {
  const env = { ...process.env };
  if (ref === undefined) delete env.GITHUB_REF;
  else env.GITHUB_REF = ref;
  const result = spawnSync('bash', ['-e', '-o', 'pipefail', '-c', guard.run], { env, encoding: 'utf8' });
  assert.equal(result.status, expectedStatus, result.stderr + result.stdout);
  if (expectedStatus && ref) {
    assert.match(result.stdout, /::error::Run iyarc-prune from master/);
    assert.match(result.stdout, /workflow ref, not the checkout ref/);
  }
  console.log(`PASS ${name}: exit ${result.status}`);
  if (name === 'feature dispatch') console.log(result.stdout.trim());
}
console.log('Branch dispatch smoke: 6/6 PASS');

Commit-message validation also passed:

node_modules/.bin/commitlint --last --verbose
✔   found 0 problems, 0 warnings

Hosted verification blocked: attempting to dispatch the updated feature-branch guard with

gh workflow run iyarc-prune.yml --repo BitGo/BitGoJS --ref codex/WAL-2232-iyarc-prune-create-pr

returned:

could not create workflow dispatch event: HTTP 403: Resource not accessible by personal access token

The authenticated-browser fallback also timed out while connecting to the local browser relay. No new hosted workflow run was started by this session. Local smoke verification does not prove live AWS authentication or publication.

@zahin-mohammad

Copy link
Copy Markdown
Contributor Author

AI-generated review — auto-generated with the wallet-platform:review-pr skill. Findings below are backed by source review and runtime checks.

PR Review: #10087 — master execution readiness

Verdict: NEEDS CHANGES on remote commit fcef23b543. Three confirmed publication defects were reproduced. Fixes and documentation are staged locally, but not committed or pushed: GPG, the commit-signing tool, timed out once and its macOS approval prompt was cancelled twice. No unsigned commit was created. Do not mistake the local verification below for a fix already present in this PR.

Summary and ticket alignment

The workflow delegates dependency investigation and validation to the agent, checks the uncommitted edits and report, then creates a signed, non-draft dependency pull request. WAL-2232 requires the published changes to be validated and unexpected paths to fail. The defects below violate those requirements; the staged corrections stay within that scope.

Confirmed findings

Severity Finding Evidence and correction
P1 Publication changes the validated base. Detached checkout at workflow line 38 combined with base: master sends the pinned publisher through a fetch/cherry-pick using --strategy-option=theirs. A conflicting concurrent master change produced a different parent and tree in the actual publisher smoke. The staged correction attaches local master and its local tracking ref to the validated commit, avoiding that replay.
P1 Index-only source edits bypass the path check. Workflow line 194 enumerates working-tree changes but not the Git staging area separately. The publisher commits staged content. A staged source change with baseline working-tree bytes reached publication in the reproduction. The staged correction checks cached paths against the same allowlist before clearing the index and committing the validated working tree.
P2 Nested test/example manifests pass the workspace allowlist. The Bash wildcard at workflow line 201 matches slash characters, so modules/sample/test/package.json passes. The staged correction uses an anchored one-directory-segment check and Git's explicit :(glob)modules/*/package.json publication pathspec.

The staging-area correction intentionally supports ordinary staged dependency changes. Validation describes the working-tree bytes, not a separate staged snapshot. Unexpected staged source paths are rejected; a differing staged value for an allowed manifest is discarded before the publisher stages the validated working-tree value. The actual publisher smoke below includes staged package version 99, validated working-tree version 2, and concurrent upstream version 3; it asserts exact published-tree equality with the validated version-2 tree. Rejecting every staged change is another possible policy, but is not necessary to preserve that invariant.

Other integration contracts reviewed

No additional deterministic blocker was found in these pinned contracts:

No database queries or TypeScript product changes are introduced by this PR.

Verification of the staged corrections

Workflow decisions and both master event types

Invocation from the repository root:

nix shell github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#coreutils -c node /tmp/wal-2232-master-validate.cjs

Actual output excerpts:

PASS staged changes
PASS new workspace manifest
PASS nested workspace test manifest
PASS nested workspace source manifest
PASS index-only unexpected source
PASS index-only allowed manifest uses validated worktree
Workflow decision checks: 38/38 PASS
PASS workflow_dispatch on master
PASS schedule on master
PASS reject refs/heads/codex/WAL-2232-iyarc-prune-create-pr
PASS reject refs/heads/master-preview
PASS reject refs/tags/master
Detached checkout, publication, and master guard checks: 43/43 PASS

The throwaway harness executes the actual workflow Bash in an isolated Git repository. GitHub query/label calls use a controlled stub; this is not token-permission verification. The long script is not checked in. Its load-bearing execution and publication-invariant assertions are:

const result = run('bash', ['-e', '-o', 'pipefail', '-c', script(stepName)], env);
if (test.ready) {
  assert.equal(run('git', ['diff', '--cached', '--quiet', baseSha]).status, 0, test.name);
  assert.equal(run('git', ['symbolic-ref', '--short', 'HEAD']).stdout.trim(), 'master', test.name);
  assert.equal(run('git', ['rev-parse', 'refs/remotes/origin/master']).stdout.trim(), baseSha, test.name);
}

Both focused boundary scripts failed before the fix by reaching the publication stub (Workflow exit: 88). After the correction, these invocations:

node /tmp/wal-2232-workspace-boundary.cjs
node /tmp/wal-2232-index-boundary.cjs

produced:

Workflow exit: 1
::error::Unexpected changed file: modules/sample/test/package.json
PASS nested test manifest is rejected before publication
Workflow exit: 1
::error::Unexpected changed file: source.ts
PASS index-only source mutation is rejected before publication

Actual pinned publisher with concurrent conflicting master changes

bun /tmp/wal-2232-publisher-smoke.ts

Before the base correction, actual output included:

Remote master advanced: true
Publisher preserves validated parent: false
Publisher preserves validated tree: false

After correction, including a fetched advanced tracking ref and a conflicting allowed-path staged value, actual output was:

Working base is branch 'master'
Remote master advanced: true
Publisher preserves validated parent: true
Publisher preserves validated tree: true
PASS pinned publisher preserves validated parent/tree despite concurrent conflicting master change

This executes the unmodified pinned action's createOrUpdateBranch function against a real local bare Git remote; it does not call GitHub's signing or PR APIs. The long throwaway script is not checked in. Load-bearing excerpts:

const validatedTree = git(worker, 'write-tree');
fs.writeFileSync(path.join(worker, 'package.json'), '{"resolution":99}\n');
git(worker, 'add', 'package.json');
fs.writeFileSync(path.join(worker, 'package.json'), '{"resolution":2}\n');
const result = await createOrUpdateBranch(manager, 'chore(deps): smoke', 'master',
  'osv-scanner-prune/smoke', 'origin', false, addPaths);
assert.equal(result.baseCommit.sha, base);
assert.equal(git(worker, 'rev-parse', result.headSha + '^'), base);
assert.equal(git(worker, 'rev-parse', result.headSha + '^{tree}'), validatedTree);
assert.equal(result.branchCommits.length, 1);

Real Linux scanner and release severity gate

node /tmp/wal-2232-linux-smoke.cjs

The actual pinned Linux x86-64 scanner was downloaded, checksum-verified, and run against the current root lockfile in a container. The actual release severity-gate shell then evaluated its JSON. Output excerpt:

/tmp/runner/osv-scanner/osv-scanner: OK
osv-scanner version: 2.3.8
Scanner exit: 1
45 advisory group(s) found, none at or above CVSS 7.0. Not blocking the release.
::warning::45 medium/low advisory group(s) present — see log above. Track remediation in WCN-1550.
PASS pinned Linux scanner command and release severity gate

CVSS means Common Vulnerability Scoring System. Scanner exit 1 means findings; the release gate passed because none reached the configured blocking score of 7.0. This is current-lockfile evidence, not proof of future agent dependency edits.

Complete short Linux smoke script; temporary, not checked in
const assert = require('node:assert/strict');
const fs = require('node:fs');
const os = require('node:os');
const path = require('node:path');
const { spawnSync } = require('node:child_process');
const yaml = require(path.join(process.cwd(), 'node_modules/js-yaml'));
const workflow = yaml.load(fs.readFileSync('.github/workflows/iyarc-prune.yml', 'utf8'));
const scanner = workflow.jobs.prune.steps.find((step) => step.name === 'Install release audit scanner');
const gate = yaml.load(fs.readFileSync('.github/actions/osv-severity-gate/action.yml', 'utf8')).runs.steps[0].run;
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'wal-2232-linux-'));
fs.writeFileSync(path.join(root, 'scanner-install.sh'), scanner.run);
fs.writeFileSync(path.join(root, 'severity-gate.sh'), gate);
const archive = path.join(root, 'inputs.tar');
const packed = spawnSync('tar', ['-cf', archive, '-C', process.cwd(), 'yarn.lock', 'osv-scanner.toml', '.gitignore', 'examples/ts/http-proxy/yarn.lock', '-C', root, 'scanner-install.sh', 'severity-gate.sh'], { encoding: 'utf8' });
assert.equal(packed.status, 0, packed.stderr);
const script = `set -eu
apk add --no-cache bash curl jq git coreutils
mkdir -p /workspace /tmp/runner
cd /workspace
tar -xf -
export RUNNER_TEMP=/tmp/runner GITHUB_PATH=/tmp/github-path OSV_SCANNER_SHA256=${scanner.env.OSV_SCANNER_SHA256}
bash scanner-install.sh
export PATH=/tmp/runner/osv-scanner:$PATH
set +e
osv-scanner --config=osv-scanner.toml --format=json --output-file=/tmp/runner/osv-results.json ./
code=$?
set -e
printf 'Scanner exit: %s\n' "$code"
[ "$code" -le 1 ] || exit "$code"
if [ "$code" -eq 0 ]; then export SCAN_OUTCOME=success; else export SCAN_OUTCOME=failure; fi
export RESULTS_FILE=/tmp/runner/osv-results.json CVSS_THRESHOLD=7.0
bash severity-gate.sh
printf 'PASS pinned Linux scanner command and release severity gate\n'
`;
const result = spawnSync('docker', ['run', '--rm', '-i', '--platform', 'linux/amd64', 'alpine:3.22@sha256:2e0b81d60597f449baa56dc25d355367869d2dca4cd57e866f1e2b52af3eb55f', 'sh', '-c', script], { input: fs.readFileSync(archive), encoding: 'utf8', timeout: 240000 });
console.log(result.stdout);
console.error(result.stderr);
assert.equal(result.status, 0, result.error?.message);

Syntax and formatting

nix shell github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#actionlint github:NixOS/nixpkgs/e9b7fc70551fcd2e52077d58d2c3bcee2428cf8d#shellcheck -c actionlint .github/workflows/iyarc-prune.yml

Exit 0, no workflow diagnostics. Nix emitted the previously observed eval-cores and lazy-trees setting warnings.

node_modules/.bin/prettier --check .claude/agents/iyarc-prune.md .github/workflows/iyarc-prune.yml
Checking formatting...
All matched files use Prettier code style!

Remaining prerequisites

  1. Publish the staged fixes. Commit signing is blocked by human approval. The last signing attempt returned gpg: signing failed: Operation cancelled; no new commit or push succeeded.
  2. Confirm live permissions. The repository setting allowing Actions to create pull requests could not be read (403). Historical bot-created PRs do not prove the setting is unchanged. Live AWS role trust, cross-account model access, and GitHub signing/publication still need a master run; the earlier feature-branch failure cannot exercise those paths.
  3. Approve required checks on generated PRs. Current GitHub documentation says supported PR events created with GITHUB_TOKEN enter an approval-required state. Required checks must actually run and pass before merging generated dependency edits.

Recommendation: do not merge current remote commit fcef23b543 as-is. Publish the locally verified corrections first, then run the merged workflow from master and inspect the generated signed commit and pull request.

This branch has not been deployed

No deployments
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