Skip to content

Fix malformed org config and add pre-merge lint guard - #97

Merged
justaugustus merged 1 commit into
uwu-tools:mainfrom
justaugustus:fix/org-config-syntax-and-lint-guard
Aug 8, 2026
Merged

Fix malformed org config and add pre-merge lint guard#97
justaugustus merged 1 commit into
uwu-tools:mainfrom
justaugustus:fix/org-config-syntax-and-lint-guard

Conversation

@justaugustus

Copy link
Copy Markdown
Member

What

  • Fix: remove the stray backtick on the last line of orgs/uwu-tools/org.yaml (introduced by Org updates #93), which made the file invalid YAML.
  • Guard: add a Lint workflow (yamllint + actionlint) that runs on pull_request so malformed config is caught before merge.

Why

peribolos exited fatal on every invocation, breaking both the hourly Production sync and the GitHub sync tests:

loading orgs: error in orgs/uwu-tools/org.yaml: unmarshal: error converting YAML to JSON:
yaml: line 27: found character that cannot start any token

The bug reached main because the existing peribolos checks only run on push to main — i.e. after merge — so nothing validated the config on the PR.

The guard

  • yamllint over all YAML (org/team configs, allstar, settings, workflows), configured via .yamllint.yml to extend the relaxed preset (tolerant of the peribolos dump format) and fail on genuine syntax errors while ignoring line-length style noise.
  • actionlint over the workflow files.
  • Both jobs follow repo hardening conventions (harden-runner, SHA/digest-pinned actions and images).

Validation (local)

  • yamllint . on the fixed tree → exit 0 (clean).
  • yamllint on the pre-fix file → 27:1 error syntax error: found character '' ...` (exit 1) — confirms the guard catches this class of bug.
  • actionlint on all workflows incl. the new lint.yml → exit 0.

The stray backtick on the final line of orgs/uwu-tools/org.yaml (merged
via uwu-tools#93) made the file invalid YAML, so peribolos exited fatal on every
invocation. This broke both the hourly Production sync and the GitHub
sync tests:

  loading orgs: error in orgs/uwu-tools/org.yaml: unmarshal: error
  converting YAML to JSON: yaml: line 27: found character that cannot
  start any token

Remove the backtick to restore a parseable config.

The bug reached main because the existing peribolos checks only run on
push to main -- i.e. after merge -- so nothing validated the config on
the pull request. Add a Lint workflow that gates on pull_request:

- yamllint over all YAML (org/team configs, allstar, settings,
  workflows), configured via .yamllint.yml to extend the "relaxed"
  preset (tolerant of the peribolos dump format) and fail on genuine
  syntax errors while ignoring line-length style noise.
- actionlint over the workflow files themselves.

Both jobs follow the repo hardening conventions (harden-runner,
SHA/digest-pinned actions and images).

Assisted-by: Claude Code:claude-opus-4-8
Signed-off-by: Stephen Augustus <foo@auggie.dev>
@kusari-inspector

Copy link
Copy Markdown

⚠️ Workspace Mapping Required

Hello! We noticed that your GitHub organization is not yet mapped to a Kusari workspace. Kusari Inspector now requires installations to be associated with a Kusari workspace.

⚠️ NOTE: Only the admin who installed the Kusari GitHub App can complete these steps. If the admin is unable to complete these steps, please contact support@kusari.dev

To complete the setup:

  1. Visit https://console.us.kusari.cloud/auth/github and log in via github
  2. If you have only one workspace, it will be automatically selected for you
  3. Once the mapping is complete, return here and create a new comment with: @kusari-inspector re-run

This will trigger the analysis to run again.

For more information, or if you need help, visit https://github.com/kusaridev/community/discussions

@justaugustus
justaugustus merged commit 3c80aea into uwu-tools:main Aug 8, 2026
3 checks passed
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