Repository navigation
fix(ci): the BoJ trigger has never been a valid workflow - #32
Conversation
⚙ Auto: BoJ server build trigger has failed every run, with zero jobs each
time. The reason is a job-level guard:
if: ${{ vars.BOJ_SERVER_URL != '' || secrets.BOJ_SERVER_URL != '' }}
GitHub rejects this outright — "Unrecognized named-value: 'secrets'". The
secrets context is not available in a job-level if:, only in env:, with:,
run: and reusable-workflow inputs. So the file has never been a valid
workflow, and the run fails during expression evaluation before any job
exists. That is why it produces no log and no check run: there is nothing
to log.
The guard is also redundant. The step already sets
env: BOJ_URL: ${{ secrets.BOJ_SERVER_URL || vars.BOJ_SERVER_URL }}
which IS a legal use of the secrets context, and then exits 0 early when
BOJ_URL is empty. Deleting the broken guard restores exactly the intended
behaviour: a clean skip when the server is not configured.
This is not a local defect. 51 repositories in the estate carry the same
line, which means 51 mains have been permanently red on a workflow that
has never once executed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.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 ✅ ApprovedRemoves the invalid job-level secrets context reference from the BoJ workflow trigger condition. No issues found.
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Important Your trial ends in 5 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more. Was this helpful? React with 👍 / 👎 | Gitar |
#35) ## Summary Closes the banned-Python violation tracked in #31. `bitfuckit/integrations/git-cola/actions.py` was the last `.py` file in the repo. Python is banned and the SaltStack carve-out no longer applies (infra is Terraform/Ansible). git-cola's *plugin* API is Python-only, but the plugin only did thin `bitfuckit` CLI wrappers, so it's reimplemented as declarative git `guitool.*` config — git-cola's built-in Actions menu, no code — matching the existing lazygit/tortoisegit/lazygit integration pattern (declarative per-tool config files). - Deleted `git-cola/actions.py` - Added `git-cola/guitool.config` (5 actions: Create PR, List PRs, Mirror, Pipeline Status, Auth Status — under a `Bitbucket/` submenu) - Updated `integrations/README.adoc` install instructions - **Repo now contains zero `.py` files** ## CI note `antipattern-check`'s Python step will now pass (no `.py` anywhere). The `Hypatia Neurosymbolic Analysis` job is the separate pre-existing flaky scanner (unrelated; maintainer is patching it). Follow-up #32 will strip the now-dead SaltStack carve-out from the workflow/policy. ## Test plan - [ ] `git ls-files | grep '\.py$'` returns nothing - [ ] `git config include.path` pointing at `guitool.config` makes the actions appear in git-cola's Actions menu - [ ] Each action invokes the correct `bitfuckit` subcommand Refs #31 https://claude.ai/code/session_01LKw5BvbbxFUWi9YMogGJTL --- _Generated by [Claude Code](https://claude.ai/code/session_01LKw5BvbbxFUWi9YMogGJTL)_ Co-authored-by: Claude <noreply@anthropic.com>



⚙ Auto: BoJ server build triggerhas failed every run it has ever had, producing zero jobs and no log each time.Cause
GitHub rejects this outright:
The
secretscontext is not available in a job-levelif:— only inenv:,with:,run:, and reusable-workflow inputs. So the file has never been a valid workflow, and the run dies during expression evaluation before any job exists. That is why it leaves no log and no check run: there is nothing to log.Why deleting the guard is the right fix
It was redundant as well as broken. The step already does the same job correctly:
Removing the broken guard restores exactly the intended behaviour: a clean skip when the server is not configured.
A note on the alternative.
lithoglyphwas already cured differently — by narrowing the guard toif: ${{ vars.BOJ_SERVER_URL != '' }}. That is valid, and its runs now showskippedrather thanfailure, which is how this diagnosis was confirmed against a control. But it silently breaks secret-only configuration, which this workflow's own header explicitly supports ("setBOJ_SERVER_URLas a repository secret or variable"). Deleting the guard honours the documented contract; narrowing it does not.Scope
51 repositories carry the identical broken line, so 51 default branches have been permanently red on a workflow that has never once executed. This PR is one of that set.
Because the workflow has never been valid, this change cannot regress anything — there is no working behaviour to lose.
Found during the 2026-08-05 estate CI/CD census.
🤖 Generated with Claude Code