fix(ci): repair boj-build.yml — three independent faults - #46
Conversation
This workflow has never run. It carried three separate faults, any one
of which would have stopped it.
1. Parse: a `permissions:` block was inserted at column 0 *after* the
job's steps, which terminates the `jobs:` mapping. The
`K9-SVC Validation` step that a later sweep appended then sat at
column 2, so YAML met a sequence item inside that permissions
mapping and the file failed to parse. Actions rejects a workflow
that does not parse before allocating a runner, so this produced no
check run and no log at all.
2. Shell: the curl invocation was mis-quoted —
-d "{... \"engine\": \"casket\\"}"}
The quotes do not balance. Verified by feeding the line to `eval`,
which fails outright: this is a bash syntax error, so even if the
YAML had parsed, the step could not have run.
3. Permissions placement: `permissions:` belongs above `jobs:`. Where a
file declared the scalar `read-all` alongside an indented key —
itself invalid YAML — the block has been narrowed to the scopes the
job actually uses (checkout + curl), preserving any explicitly named
scope.
Repaired: permissions moved above `jobs:` with the file's own scopes,
the K9-SVC step re-indented into the job's `steps:` list, and the curl
rewritten with proper line continuations so the payload is well-formed
JSON. The checkout SHA pin and any `timeout-minutes` are preserved
exactly as this repository had them; no pin is changed.
KNOWN REMAINING ISSUE, deliberately not changed: the step posts to
`http://boj-server.local:7700`, an mDNS name that cannot resolve from a
GitHub-hosted runner, and `continue-on-error: true` hides the failure.
Once this parses, the step will run and silently fail. Repairing the
syntax is in scope; redesigning the trigger is an owner decision, so a
comment now records it rather than leaving it implicit.
Built with git plumbing directly against origin/HEAD, so no local
working tree was involved.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review ✅ ApprovedRepairs YAML syntax errors, balances quote marks in the curl payload, and correctly repositions the permissions block in boj-build.yml. No issues found.
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Important Your trial ends in 7 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more. Was this helpful? React with 👍 / 👎 | Gitar |
|
|
boj-build.ymlhas never run. It carried three independent faults, any one of which would have stopped it.1. It does not parse
A
permissions:block was inserted at column 0, after the job's steps — which terminates thejobs:mapping. A later sweep then appended aK9-SVC Validationstep at column 2, so YAML met a sequence item inside that permissions mapping:Actions rejects a workflow that doesn't parse before allocating a runner, so this produced no check run and no log — the run appears by file path rather than name, and
gh run view --log-failedreturns "log not found".2. The curl line is a bash syntax error
The quotes don't balance. Verified by feeding the line to
eval, which fails outright. So even if the YAML had parsed, this step could not have run.The repaired form produces exactly the intended arguments:
3. Permissions placement
permissions:belongs abovejobs:. Where a file declared the scalarread-allalongside an indented key — itself invalid YAML — the block is narrowed to the scopes the job actually uses (checkout + curl), preserving any explicitly named scope.What changed
permissions:moved abovejobs:, carrying this repository's own scopesK9-SVC Validationre-indented into the job'ssteps:listThe checkout SHA pin and any
timeout-minutesare preserved exactly as this repository had them. No pin is changed.Verified: the file parses,
jobsis a non-empty mapping, and the job has its 3 steps.Known remaining issue — deliberately not changed
The step posts to
http://boj-server.local:7700. That is an mDNS name which cannot resolve from a GitHub-hosted runner, andcontinue-on-error: truehides the failure. Once this parses, the step will run and silently fail.Repairing the syntax is in scope; redesigning the trigger is an owner decision. A comment now records this in the file rather than leaving it implicit.
Provenance
Built with git plumbing directly against
origin/HEAD, so no local working tree was involved and no unrelated local changes are included.🤖 Generated with Claude Code