Enforcement
Enforce engineering standards
at PR review time.
Gatekeep checks every pull request against your active DevContracts. Six analysis layers run in parallel. Findings are posted as PR comments. PRs that fail critical gates do not merge. Every run produces a signed evidence file.
How it works
Contracts define the gates.
Gatekeep enforces them.
The workflow is the same for every PR. No manual configuration per repository. The Contract specifies the rules. Gatekeep applies them consistently.
Step 01
PR is raised
A pull request is opened against a repository with an active ticketyboo Contract. Gatekeep receives the webhook from the GitHub App and begins the scan. No manual trigger required.
Step 02
Six layers run
All six analysis layers run in parallel: secret detection, dependency audit, SAST, IaC review, licence compliance, code quality. Each layer is deterministic. The same inputs produce the same outputs on every run.
Step 03
Findings posted, evidence signed
Findings are posted as a structured PR comment, grouped by severity. Critical findings block the merge. An evidence.json file is produced: SHA-256 signed, timestamped, stored in S3. The audit record exists independently of the PR itself.
Scan layers
Six layers. All deterministic.
Each layer is an independent analysis module. Layers run in parallel and their findings are aggregated into a single report. Severity is classified per finding: critical, high, medium, low, info.
Secret detection
Regex patterns match AWS access keys, private keys, database URLs, API tokens, OAuth secrets, and JWT tokens. Shannon entropy analysis flags high-entropy variable assignments. Placeholder values are suppressed to reduce false positives. Matched values are redacted in output.
Dependency audit
Parses manifest files across Python (requirements.txt, Pipfile, pyproject.toml), Node (package.json, package-lock.json), Go (go.mod, go.sum), and Ruby (Gemfile). Cross-references the GitHub Security Advisory Database for known CVEs. Flags unpinned dependencies as supply chain risk.
SAST
AST-based analysis for Python files: command injection (subprocess shell=True), SQL injection (string-formatted queries), insecure deserialization (pickle.loads, unsafe yaml.load, eval), path traversal (open with variable path), and weak cryptography (MD5, SHA1). Regex-based analysis for JavaScript, Go, and Ruby.
IaC review
Terraform: parses HCL2 and checks S3 buckets for missing encryption and public ACLs, security groups for 0.0.0.0/0 ingress, IAM policy documents for wildcard actions, RDS instances for missing storage encryption. CloudFormation: structural detection, then checks S3 public access blocks and EC2 security group ingress rules.
Licence compliance
Detects license files by filename (LICENSE, LICENCE, COPYING variants). Classifies against known SPDX identifiers including MIT, Apache-2.0, GPL-2.0/3.0, AGPL-3.0, MPL-2.0, BSD variants. Flags copyleft licenses in commercial repositories. Cross-references package.json license field for consistency.
Code quality
Python AST analysis across up to 50 files per repository. Cyclomatic complexity per function (threshold: 15). Long function detection (threshold: 100 lines). Long file detection (threshold: 500 lines). Type hint coverage below 50 percent. TODO, FIXME, HACK, and XXX marker density above threshold.
Evidence output
Signed per run. Machine-readable.
Every Gatekeep run produces a structured evidence.json file. SHA-256 signed, timestamped, stored in S3. The evidence file can be committed to the repository, attached to a ticket, or forwarded to an auditor. It is the compliance artefact, not a dashboard screenshot.
evidence.json — example output
SHA-256 signature verifies the evidence file has not been modified after the scan completed. Findings include file path and line number where available. Remediation guidance is included per finding.
Get started
Three steps to your first
governed PR.
Gatekeep does not require infrastructure changes. Install the extension, define a Contract, and the GitHub App handles the rest.
01
Install tickety-ai
Install the VS Code extension from Open VSX. Create a free account. You get 5 one-time welcome runs to try the full platform. No card required.
02
Define your first Contract
A Contract is a configuration file in your repository. Specify which scan layers are active, which severity thresholds block a merge, and which compliance pack applies. Start with the defaults and refine from there.
03
Scan your repository
Use the free scanner at ticketyboo.dev/scan/ to run all six layers against any public repository, with no account needed. Or connect the GitHub App to run Gatekeep on every PR automatically.