Skip to content

v3.6.1

Choose a tag to compare

@github-actions github-actions released this 15 Oct 10:58
· 77 commits to main since this release
d5b6738

v3.6.1 — a verified, reproducible GitHub Action

What changed since v3.6.0:

  • Security: the composite Action now verifies the Fendix binary's cosign
    signature before it first runs. cosign is installed first for every
    caller, the installer bundled with the Action revision installs one exact
    release with FENDIX_REQUIRE_SIGNATURE=1, inherited FENDIX_* variables are
    removed, and the binary is published to the job from a private RUNNER_TEMP
    directory only after an exact version check. There is no checksum-only
    fallback.
  • Security: the Action's SARIF upload is pinned by commit
    (github/codeql-action/upload-sarif v4.38.3), and the SHA-pin policy now
    covers action.yml.
  • Fixed: SARIF for a scan with no findings is valid ("rules": [] instead of
    the schema-invalid null that upload-sarif rejected), in fendix scan and
    fendix report.
  • Fixed: the Action works with its defaults. It prepares the Python engine
    from the release's verified source and installs that release's
    hash-locked python/requirements.lock with --require-hashes. Releases up to
    v3.6.0 have no lock and keep requirements.txt with a pydantic<2.14 bound;
    a caller-managed engine_path is unchanged.
  • Fixed: Action failures are legible and fail closed. A setup failure
    before the scan exits 2 with a clear message, SARIF is uploaded only when a
    report exists, and unknown results fail closed. Setup errors name the
    missing build record, signature, download, pip or sync step.
  • Fixed: Semgrep keeps running (pydantic<2.14), and fendix init --ci gitlab
    keeps SARIF as an ordinary artifact.
  • Docs: diff mode, permissions, the GitHub Code Security requirement for
    private SARIF upload, the Sigstore connectivity the Action needs and the
    signed-release boundary are documented. The --diff help states what it
    scopes. No diff behaviour changed.

Upgrading:

  • Pin Fendix-app/Fendix to this release's commit with version: v3.6.1. Do
    not use @v1; it still points to an older revision.
  • The runner needs outbound HTTPS to Sigstore (TUF and Rekor), GitHub and
    PyPI. Without Sigstore access the Action's install fails.
  • SARIF upload from a private or internal repository needs actions: read
    and GitHub Code Security; otherwise set upload-sarif: 'false'.
  • The Action installs only signed releases; automatic Python preparation
    needs v3.5.0 or later. setup-python no longer sets pythonLocation for later
    steps, and fendix is on PATH from a private directory, not /usr/local/bin.

Known limitations: diff mode scopes whole files of the native scanners only
and can miss changed files when --code is a subdirectory (fixes planned for
v3.7.0); the Semgrep/Pydantic line is held until the paired v3.7.0 upgrade
(#111); pull requests from forks cannot upload SARIF.

Known issue (found after release; fixed in v3.6.2): diff-aware scans with a
relative --code path can miss findings. In diff mode (--diff or --staged) with a relative code
path such as ".", the Semgrep and native text scanners receive a file filter
that matches none of the changed files. They report no findings, and the
coverage table still shows them as ok, so a blocking finding that only those
scanners detect does not fail the scan. Affected: the composite Action's
default pull-request setup (code: "." with diff: auto) and the pre-commit hook
written by fendix hook install (fendix scan --code . --staged --fast). Not
affected: the secrets scanner, the Python engine, and scans without diff mode,
including the tested reference workflow, which remains the recommended GitHub
Actions setup:
https://github.com/Fendix-app/Fendix/blob/46dd52e4880a06c3ebc7852ba572bb71f69a2644/examples/github-actions/fendix-scan.yml
Fixed in v3.6.2:
https://github.com/Fendix-app/Fendix/releases/tag/v3.6.2
v3.6.1 users should upgrade. The temporary workarounds used with v3.6.1 (an
absolute code path such as code: ${{ github.workspace }} in the Action or
--code "$PWD" on the command line and in the pre-commit hook, or diff: 'false')
are no longer required after upgrading.

Full notes: CHANGELOG.md, section 3.6.1.