checkii-ci
Fail-closed pull-request assessment client for the Checkii control plane. Standard library only; Python 3.10 or later (tested on 3.12). Apache-2.0.
Released to PyPI from tags checkii-ci-vX.Y.Z of Checkii/aegis-platform by
.github/workflows/publish-checkii-ci.yml (Trusted Publishing, attested), and
mirrored with the GitHub Action to the public repository
Checkii/checkii-ci. Pin the version;
the mirror's requirements.txt carries the release's sha256 digests for
--require-hashes installs.
python -m pip install --no-deps "checkii-ci==0.1.0"
checkii-ci version
Until the first release is published, install from a reviewed commit:
python -m pip install --no-deps "checkii-ci @ git+https://github.com/Checkii/aegis-platform@<40-hex commit>#subdirectory=packages/checkii-ci"
The API token is read from CHECKII_API_TOKEN (or the older AEGIS_API_TOKEN)
and is never accepted as a flag; a --token flag is refused before its value
can reach a log. The URL comes from --api-url or CHECKII_API_URL; it must be
HTTPS (plain HTTP only for loopback development) and redirects are refused.
Commands
checkii-ci assess --engagement-id 42 --scope-version-id 7 --asset-id 19 --provider GITHUB \
--head-ref refs/heads/feature --head-commit <40-hex> \
--base-ref refs/heads/main --base-commit <40-hex> \
--fail-on high --sarif-out checkii-results.sarif --json-out checkii-summary.json \
[--receipt checkii-receipt.json] [--timeout 900] [--tool semgrep ...]
checkii-ci findings --job-id <id> [--format table|json] [--json-out findings.json]
checkii-ci version
assess issues one immutable base-to-head repository job under a per-run
Idempotency-Key (--idempotency-key or CHECKII_CI_IDEMPOTENCY_KEY), waits
for a terminal status, writes SARIF 2.1.0, optionally the sealed release
receipt, and a run summary (checkii.ci-run-summary.v1: job id, status, exit
code, finding counts). findings prints a job's findings highest severity
first as a fixed-column table or sorted JSON. Output is deterministic.
| Exit | Meaning |
|---|---|
| 0 | passed: no actionable finding at or above --fail-on |
| 1 | threshold: an actionable finding at or above --fail-on |
| 2 | error: configuration, network, timeout or control-plane failure |
| 3 | policy denied: HTTP 401/403, or the job ended POLICY_DENIED |
| 4 | cancelled, stopped or expired |
A network failure is exit 2, never a pass. Findings governed as false positive, accepted risk, remediated or not reproducible do not count toward the threshold but stay in the SARIF.
Pipeline templates, the reusable GitHub Action and the pre-commit hook are
documented in docs/integrations/ci-integration.md of the repository.
Tests
python -m pytest tests/ -q
The tests run the CLI against a loopback http.server control plane.
Metadata
Release files for checkii-ci 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| checkii_ci-0.1.0.tar.gz | 21.3 kB | With provenance | Details for checkii_ci-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| checkii_ci-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for checkii_ci-0.1.0-py3-none-any.whl |
Total release size: 40.0 kB
Release files / checkii_ci-0.1.0.tar.gz
| Download URL | checkii_ci-0.1.0.tar.gz |
|---|---|
| Size | 21.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35c385c00246b1ea37aaf8d749bc63119d88573a9dcec537a8a8cd134c4d772e
|
|
BLAKE2b-256 checksum How to use checksums |
4e155521bbbf3084b529bb34f1b33e64590ac6fd841fbd1ebb9068fc4fbea691
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.
Transparency logRelease files / checkii_ci-0.1.0-py3-none-any.whl
| Download URL | checkii_ci-0.1.0-py3-none-any.whl |
|---|---|
| Size | 18.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
66ec8adbdfe3c08008e68089ca03a2050dd07c7dd64a6d0844aa680d7977fc88
|
|
BLAKE2b-256 checksum How to use checksums |
cfc9162f1bf76a7d59703eb56f6586baacf2d714ca2050abca218f18af22fdbe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.
Transparency logSecurity for checkii-ci 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for checkii_ci-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.