Swazona Gate · for developers

Rules reference

Every rule the Action ships with, what it catches, and whether it blocks. Two run only when a model is configured.

The bundled ruleset

Deterministic rows run the same way on every pull request you configure, as a plain regex check against the diff. Model-only rows run only when a model is configured.

  • no-verify-bypassCritical

    Flags a git command that bypasses commit hooks with --no-verify.

    BlockingDeterministic

    Paths: **/*.sh.githooks/**.github/workflows/**

  • todo-without-issue-refLow

    Flags a TODO comment with no linked issue reference.

    Model tier onlyModel-only

    Paths: **/*

  • eval-of-inputHigh

    Flags eval of a value instead of a safe alternative.

    BlockingDeterministic

    Paths: **/*.sh**/*.py

  • curl-pipe-to-shellCritical

    Flags piping a curl download directly into a shell.

    BlockingDeterministic

    Paths: **/*.sh.github/workflows/**

  • hardcoded-aws-access-keyCritical

    Flags an AWS access key literal committed in code.

    BlockingDeterministic

    Paths: **/*

  • hardcoded-localhost-urlMedium

    Flags a hardcoded localhost or loopback URL.

    BlockingDeterministic

    Paths: **/*.ts**/*.tsx**/*.js**/*.py

  • dom-innerhtml-assignmentHigh

    Flags assigning untrusted content to innerHTML.

    BlockingDeterministic

    Paths: **/*.ts**/*.tsx**/*.js**/*.jsx

  • python-bare-exceptHigh

    Flags a bare except: clause that swallows every error.

    BlockingDeterministic

    Paths: **/*.py

  • empty-js-catch-blockMedium

    Flags an empty catch block that discards an error silently.

    AdvisoryDeterministic

    Paths: **/*.ts**/*.tsx**/*.js**/*.jsx

  • console-log-debugMedium

    Flags a leftover console.log debug statement.

    AdvisoryDeterministic

    Paths: **/*.ts**/*.tsx**/*.js**/*.jsx

  • python-debugger-left-inHigh

    Flags a leftover pdb.set_trace() or breakpoint() call.

    BlockingDeterministic

    Paths: **/*.py

  • type-ignore-without-codeLow

    Flags a bare # type: ignore with no specific error code.

    Model tier onlyModel-only

    Paths: **/*.py

Deterministic vs. model-only

A rule counts as Deterministic in the table above only when it compiles as a plain regex, catches its own incorrect example, and spares its own correct example. Two rules fail that round trip; the table marks them Model-only, and they run only when a model is configured, never in the deterministic engine.

Using your own rules

You can point the Action at a custom rules file. It is read from the pull request's base commit, never from the head checkout — so a pull request can never edit the rules that check it. Leave it unset to use the bundled ruleset instead.

Because a custom ruleset comes from your own repository, its safety depends on the Action version you pin and the workflow you write around it.

Not a developer?See Swazona for founders
JUMPESC TO CLOSE
NAVIGATE
ACTIONS