↓ Skip to main content

Compare code security

Code security built in, not bought on top.

Every scanner in the €30 seat.GitHub Enterprise with both security add-ons: $70 a month for each member who pushes code.

fremforge scans secrets, code, dependencies, container images and infrastructure as code on every pull request, ranks what it finds by whether it is exploited and whether your code reaches it, and fixes it with pull requests, on your release branches too. It runs in Germany on T Cloud Public. This page compares it with GitHub Advanced Security, GitLab Ultimate and GitHub with Snyk and SonarQube Cloud, and says where they are ahead.

What a developer costs a month

List prices from each vendor's own pricing page, read on 3 November 2026. Where a vendor publishes no price, it says "on request".

fremforge

€30 a seat, or €25.50 billed annually. Every scanner, triage and fix on this page is in it. Scanning is fair use with no overage: above the allowance a scan waits for the night, it is never refused. Pricing

GitHub + GHAS

$70 for a member who pushes: Enterprise $21 per user (pricing), plus Secret Protection $19 and Code Security $30 per active committer (security plans), one who pushed in the last 90 days (billing). AI Scan and agentic autofix use AI credits on top.

GitLab Ultimate

On request. GitLab's page says "Get custom pricing" for Ultimate; Premium is $29 per user, billed annually (pricing). AI vulnerability resolution also needs GitLab Duo Enterprise (docs).

GitHub + Snyk + SonarQube Cloud

$21, plus two meters. Snyk Team is $25 a month for up to 10 developers; Enterprise is credits at $1, with Code and Open Source 1.0 and IaC 0.33 credits per active contributor per day (Snyk plans). SonarQube Cloud is priced by lines of code, from $34 a month for 100k; Enterprise and Advanced Security on request (Sonar pricing).

Prices in USD are as published; we have not converted them. Snyk's credit rates are per day, so a month depends on the month's length and on Snyk's terms for buying credits.

The scorecard

Competitors: what their own pages say, read on 3 and 4 November 2026. fremforge: what every seat includes, and which switch an owner turns on.

CapabilityGitHub + GHASGitLab UltimateGitHub + Snyk + SonarQube Cloudfremforge
Secrets refused at pushYesWith the Secret Protection add-on (docs)YesSecret push protection, Ultimate (docs)PartialAdd GitGuardian: on github.com its hook runs on each developer's machine (docs); its server hook is for GitHub Enterprise Server (docs)YesOn every push, cannot be turned off; your own patterns too (docs)
Passwords without a token formatYesAI-detected secrets in alerts; at push in preview, on AI credits (plans)NoNo AI detection in its secret detection docs; Duo can flag likely false positives (docs)PartialAdd GitGuardian: a generic password detector for variables named like a password (docs)YesAI-assisted, in code and config files, with a confidence shown; reported in the pull request check, and failing it in every organisation from 17 November 2026; also reported, never blocking, in the weekly history sweep (docs)
Your own secret patternsYesUp to 500 per organisation and 100 per repository, with an AI regex generator, in Secret Protection (docs, AI)PartialCustom rulesets in pipeline secret detection, Ultimate; push protection takes exclusions only (docs, push)PartialAdd GitGuardian: custom detectors on Enterprise, five requests at a time, checked by its engineers (docs)Yes500 per organisation and 100 per repository, applied at push; Draft with AI uses your own model key (docs)
Is the secret still live?YesValidity checks with partners (docs)YesValidity checks, Ultimate (docs)YesWith GitGuardian (docs)Partialfrem.sh tokens on by default and read live; 43 other issuers, each an opt-in (docs)
Your credentials leaked in public codeYesPublic monitoring, Enterprise only, in preview (changelog)NoNo equivalent in its secret detection docsYesGitGuardian Public Monitoring, priced on request (pricing)Partialfrem.sh's own credentials in public github.com code, revoked by default (docs)
Code scanning (SAST)YesCodeQL queries over a database of your code (docs)YesAdvanced SAST, cross-file taint analysis, Ultimate (docs)YesSnyk Code (docs) and SonarQube Cloud taint analysis (docs)PartialEvery pull request, taint rules within a file; cross-file taint nightly on the default branch, rolling out from 17 November 2026 (docs)
Injection in CI workflow filesYesCodeQL queries for Actions workflows: code injection, untrusted checkout, artifact poisoning (docs, queries)NoIts SAST languages list no CI configuration files (docs)YesSonarQube Cloud analyses GitHub Actions files, script injection included (docs, blog)PartialSix rules on every pull request: script injection, untrusted checkout, artifact poisoning, write-all; listed, they do not block (docs)
AI fixes and AI reviewYesAgentic autofix, up to 25 alerts per pull request, on AI credits, GitHub-chosen models (changelog, hosting)PartialVulnerability resolution needs Ultimate and Duo Enterprise (docs)PartialSnyk Agent Fix, in the IDE; the model is not named (docs)YesEvery SAST and taint rule in five languages, up to 25 in one draft pull request, and AI review of pull requests; your own model key only (docs)
Dependency fix pull requestsPartialDependabot security updates "always use the default branch" (docs)PartialAuto-remediation, Ultimate (docs)YesSnyk opens fix pull requests, by hand or automatically (docs)Yes12 ecosystems and CI actions, transitive pins, and into protected release branches (docs)
ReachabilityPartialEnterprise only, in preview (plans)PartialPackage level, Python, JS/TS and Java, each in beta, Ultimate (docs)YesSnyk: Java, JavaScript, TypeScript and Python; C# in early access (docs)YesFunction level for npm and Go, import level for Python and Java, with the evidence (docs)
Exploited in the wild, firstPartialAn EPSS filter on Dependabot alerts (docs)YesKEV and EPSS on each vulnerability (docs)PartialSnyk's risk score weighs EPSS and exploit maturity, in early access (docs)YesEU EUVD and CISA KEV ranked, blocked and fixed first, plus EPSS; an affected version is refused at download (docs, proxy)
Container imagesPartialThrough third-party scanners that upload results (docs)YesContainer scanning (docs)YesSnyk Container (docs)YesEvery registry image, proxied images and the images your Helm charts deploy (docs)
Infrastructure as codeNoCodeQL lists no IaC language (docs)YesIaC scanning; it "does not support adding or replacing rules" (docs)YesSnyk IaC (docs)YesYour own Rego checks, and findings by CIS benchmark and NIS2 area (docs)
Malicious packages refused at downloadPartialPackage firewall, npm only, public preview (changelog)PartialDependency Firewall, early access (blog)PartialAdd Socket: install-time blocking, $25 or $50 a developer (pricing)YesEvery organisation, nine package types and Terraform modules (docs)
Licence policyYesGenerally available, Enterprise Cloud with Code Security (changelog)YesLicense approval policies (docs)PartialSonarQube Advanced Security, a separate subscription (pricing)YesOne policy for pull requests and downloads (docs)
CI secrets per job, with a read auditPartialOrganisation, repository and environment secrets; no read audit described (docs)YesSecrets Manager, Premium and Ultimate (docs)PartialAs GitHub: the add-ons do not change CIYesScoped to workflow, job, branch and event; one audit entry per job (docs)
Job token limited to what the workflow declaresYesThe permissions key, per workflow or job (docs)PartialFine-grained job token permissions, switched on per project (docs)YesAs GitHubPartialRolling out: the permissions: block is enforced for every organisation from 17 November 2026 (docs)
Where it runsPartialAn EU region on GHE.com with Enterprise Cloud data residency (docs)PartialDedicated: single tenant, in your chosen AWS region (docs)PartialSnyk's Frankfurt region needs Enterprise (docs); SonarQube Cloud has an EU region (docs)YesGermany, on T Cloud Public, with offline advisory databases (docs)

"Add-ons" is GitHub Enterprise with Snyk (Open Source, Code, Container and IaC) and SonarQube Cloud. Where a row needs a third tool, the cell names it.

Why these add-ons

A team that keeps GitHub and does not buy GitHub's security add-ons buys the same coverage from specialists. These are the ones that cover each part.

Snyk

One vendor for dependencies, code, container images and IaC, with fix pull requests and reachability. The broadest single replacement for GitHub Code Security. Snyk plans

SonarQube Cloud

Often already in place as the code quality gate, and it adds taint analysis and secrets on pull requests. Priced by lines of code, not by developer. Sonar pricing

GitGuardian, Semgrep or Socket

Added for one gap each: GitGuardian for secrets and public leaks (pricing), Semgrep for cross-file SAST at $30 per contributor for Code (pricing), Socket for blocking malicious packages at install (pricing).

Sovereign by construction

Your code is scanned where it is stored, by a European company, and nothing about it goes to a US service unless you choose one.

In Germany, next to your code

Every scanner runs on T Cloud Public in Germany, in the same platform as your repositories. Features at a glance

Offline advisory databases

Dependencies are matched against copies held inside fremforge; your package list is never sent to an outside service. How matching works

AI only with your key

AI fixes and AI review use your organisation's own model provider, under your contract. fremforge holds no AI key. AI integrations

One processor, not four

One vendor and one data processing agreement instead of a forge plus three scanning vendors, each with its own region choice.

Ranked by what is exploited and what your code calls

The findings that matter, first.

EU and US exploit lists

Findings in the EU Vulnerability Database's exploited list or CISA's KEV catalogue are badged, always block and are fixed first. EPSS ranks the rest. Known exploited

Reachability with evidence

Reachable, not reachable or unknown, with the file and line: function level for npm and Go, import level for Python and Java. Reachability

A fix-by date per severity

Days per severity, breach alerts and a weekly digest. Known exploited findings never get more time. Fix-by SLA

Fixes where you need them

Pull requests, reviewed by a person, never merged by themselves.

Into your release branches

Every protected release branch is scanned, and its fixes go to that branch, not only to main. Release branches

Transitive pins

A vulnerable package deep in the tree is pinned in npm, pnpm, Yarn 1, uv, Poetry, Gradle, Maven and Go. Transitive fixes

Base images and image tags

A base image moves to its fixed version, and an upstream image tag to a newer one. Image fixes

Secrets and IaC, without AI

A hardcoded credential in Go, Python or JavaScript becomes an environment read, and seven common IaC misconfigurations get their secure value. Rotate the secret first. Rule-based fixes

AI fixes, with your model

For every SAST and taint rule in Go, Python, JavaScript/TypeScript, Java and C#, when an owner chooses it. Up to 25 findings in one draft pull request, re-scanned before it opens. AI fix

AI review of pull requests

Opt-in per repository: your model reads the change for security problems and leaves comments, nothing more. AI security review

The supply chain, at the door

Every organisation's packages come through its own dependency proxy, on by default.

Known malware refused

For every organisation, in npm, PyPI, Maven, NuGet, Go, Cargo, Helm, RPM, container images and Terraform modules. Dependency proxy

Package policy

Refuse by severity, EPSS, licence, minimum age or missing signature. Try it in shadow first, then enforce. Package policies

Malware already in your code

Every default branch and every image is matched against known malicious packages, every day. Malicious packages

Known exploited versions refused

A version with a known-exploited vulnerability and a fixed release is refused at download in npm, PyPI, Maven, NuGet, Go and Cargo, whatever your policy's mode. An exception lasts at most 30 days, for one organisation and one version. Known exploited

CI that gets only what it needs

The runner is where a stolen secret does the most harm.

Scoped secrets, audited

A secret reaches a job only when its workflow, job, branch, event and environment match, and every delivery is logged by name. Fork pull requests never get one. Scoped CI secrets

Job tokens as declared

Rolling out: when a workflow declares permissions:, its job token gets no more than that, in every organisation from 17 November 2026. Permissions block

A private fork for the fix

Fix a reported vulnerability in a fork only the advisory's people see, where CI runs with no secrets. Private fix

Injection in your workflows

Six rules read your Actions workflow files on every pull request: values pasted into scripts, untrusted checkouts, poisoned artifacts and write-all tokens. Listed, not blocking. CI workflow rules

Where others are ahead

  • Depth of code analysis. CodeQL, GitLab Advanced SAST, Snyk Code and Semgrep's cross-file rules follow data across files on pull requests. fremforge's taint rules work within a file on pull requests, and across files only in the nightly default-branch scan (rolling out from 17 November 2026), with no path or field sensitivity. For Actions workflows, CodeQL also has more queries than fremforge's six rules.
  • Breadth of validity checks. GitHub, GitLab and GitGuardian check more token types. fremforge checks its own tokens and 43 other issuers, each an opt-in.
  • AI without your own key. GitHub, GitLab and Snyk bring a hosted model. fremforge's AI features run only with your organisation's model provider, so without one there is no AI fix or AI review.
  • Public leaks of any secret. GitHub's public monitoring and GitGuardian look for all your secrets in public code. fremforge looks for credentials frem.sh issued.
  • Dynamic testing. GitLab Ultimate runs DAST. fremforge does not.
  • Self-hosting and years of use. GitHub Enterprise Server and GitLab Self-Managed run in your data centre, and these tools have years of use in many teams. fremforge is hosted only.

Questions buyers ask

Where is my code and data?

In Germany, on Deutsche Telekom's T Cloud Public. Repositories, scans and findings stay there, and the scanners match against advisory databases held inside fremforge. The exceptions are your choice: a third-party validity check you switch on sends the found secret to its own issuer, and AI features call the model provider you configured. Features at a glance

Can I keep GitHub while I move?

Yes. Mirror your repositories and keep working on GitHub while you move; the importer copies history, issues, pull requests and releases when you are ready. GitHub migration guide

We use Snyk or SonarQube Cloud today. What changes?

Scanning starts when a repository arrives, and runs on every pull request with no pipeline step to add. Reachability and the known-exploited ranking decide what to look at first. You can run both side by side until your contract ends. Security onboarding checklist

Does AI see my code?

Only if you switch it on, and only your own provider. AI fixes send the lines around a finding, never the rest of the repository. The AI-assisted password check runs inside fremforge with no network access and is not trained on customer data. Draft with AI for secret patterns sends only the description and made-up examples you type. AI fix

How noisy is it?

You choose the severity that blocks. Findings your code does not reach can be kept from blocking, known exploited ones always block, and the AI-assisted password check leaves likely test fixtures as advisory. Reachability

What is not covered?

Dynamic testing (DAST), cross-file analysis on pull requests, Google Deployment Manager, OpenAPI, Pulumi and CDK templates, and Terraform module or Helm chart versions, for which no advisory feed exists. The tables on this page say where others are ahead.

What does it cost?

€30 a seat a month, or €25.50 billed annually, with every feature on this page included and 1,000 CI minutes per seat. Scanning is fair use with no overage: above the allowance, a pull request scan waits for the night and is never refused. Read-only readers are free. Pricing

Do you count developers who never commit?

fremforge charges a seat for each member who can push or administer; read-only readers are free. GitHub charges its security add-ons per active committer, and Snyk per contributing developer; the price section above compares them.

Included in the seat

Every scanner, triage rule and fix on this page is in the €30 seat, with no add-on. AI features use your own model key, and an owner switches them on.

Also compare: fremforge vs GitHub, fremforge vs GitLab and teams of people and AI agents.

Sources and trademarks

Every statement about GitHub, GitLab, Snyk, SonarQube Cloud, GitGuardian, Semgrep and Socket on this page comes from their own pricing pages, documentation and changelogs, linked where it is made, read on 3 and 4 November 2026. If something here is out of date, tell us at support@frem.sh and we will correct it. GitHub is a trademark of GitHub, Inc. GitLab is a trademark of GitLab Inc. Snyk is a trademark of Snyk Limited. SonarQube is a trademark of SonarSource SA. GitGuardian, Semgrep and Socket are trademarks of their owners. fremforge is not affiliated with any of them.