Skip to content

fix(ci): repair boj-build.yml — three independent faults - #46

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/boj-build-parse-repair
Aug 3, 2026
Merged

fix(ci): repair boj-build.yml — three independent faults#46
hyperpolymath merged 1 commit into
mainfrom
fix/boj-build-parse-repair

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

boj-build.yml has 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 the jobs: mapping. A later sweep then appended a K9-SVC Validation step at column 2, so YAML met a sequence item inside that permissions mapping:

        continue-on-error: true
permissions:            # <-- col 0, ends `jobs:`
  contents: read

  - name: K9-SVC Validation    # <-- col 2, sequence inside a 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-failed returns "log not found".

2. The curl line is a bash syntax error

-d "{... \"engine\": \"casket\\"}"}

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:

[-d] [{"repo": "R", "branch": "B", "engine": "casket"}]

3. Permissions placement

permissions: belongs above jobs:. Where a file declared the scalar read-all alongside 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 above jobs:, carrying this repository's own scopes
  • K9-SVC Validation re-indented into the job's steps: list
  • curl rewritten with proper line continuations; payload is now well-formed JSON

The checkout SHA pin and any timeout-minutes are preserved exactly as this repository had them. No pin is changed.

Verified: the file parses, jobs is 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, 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. 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

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>
@gitar-bot

gitar-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

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.
Learn more

Code Review ✅ Approved

Repairs YAML syntax errors, balances quote marks in the curl payload, and correctly repositions the permissions block in boj-build.yml. No issues found.

Auto-approved and auto-merge armed: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria. — merges when pipeline and required approvals pass.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

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

@gitar-bot

gitar-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

⚠️ Gitar auto-approved this PR but could not enable auto-merge: auto-merge is disabled for this repository — enable "Allow auto-merge" in the repository settings.

@gitar-bot gitar-bot 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.

Gitar has auto-approved this PR and enabled auto-merge (configure)

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Aug 3, 2026
@hyperpolymath
hyperpolymath marked this pull request as ready for review August 3, 2026 13:06
@hyperpolymath
hyperpolymath merged commit 02ee75b into main Aug 3, 2026
25 of 27 checks passed
@hyperpolymath
hyperpolymath deleted the fix/boj-build-parse-repair branch August 3, 2026 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitar-approved Added by Gitar

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant