License & Deployment Mix: 17 tools – 11 OSS, 5 SaaS. (OSS and SaaS counts can overlap when an open-source tool also offers a vendor-hosted edition.)

What Is Git Hosting / Repository Management?

Git hosting (also called a code forge or repository management platform) is the software and infrastructure used to store, manage, and collaborate on Git repositories. At its simplest, a Git server accepts push and fetch operations over SSH or HTTPS. At the other end of the spectrum, a full DevOps platform wraps Git hosting with code review, CI/CD, container registries, project management, and security scanning – turning a repository into the central hub for the entire software delivery lifecycle.

Git hosting platforms solve the problems that arise when multiple developers work on shared codebases:

  • Central source of truth – a canonical remote that all developers push to and pull from, eliminating “works on my machine” drift
  • Access control – fine-grained permissions on who can read, write, and administer each repository, branch, or tag
  • Code review – pull request (PR) or merge request (MR) workflows that require peer review before code reaches protected branches
  • Branch protection – rules that prevent direct pushes to main/release branches, require status checks to pass, and enforce linear history
  • Auditability – commit signing, access logs, and immutable history that support compliance and forensic investigation
  • Collaboration – inline comments, suggestions, threaded discussions, and code owner assignments that make review feedback structured and actionable

For organizations, the choice of Git hosting platform has far-reaching implications. It determines how code is reviewed, how CI/CD pipelines are triggered, how access is governed, and how artifacts are stored. Migrating between platforms is disruptive, so the initial evaluation matters.

The information on these pages was researched by a combination of human review and large language models. To suggest an addition or correction, please contact us. Prepared by Rhodium Systems Inc., author of the ResorsIT platform — a unified IT operations management platform for IT teams and MSPs that integrates a curated suite of open-source, commercial, and SaaS applications into a single system with shared identity, single sign-on, access control, and a common audit trail. Use this catalogue only as a starting point for your own research, and review any tool carefully against your own requirements before relying on it. Catalogue data version 2026.197.

Comparison

This evaluation covers the full Git hosting landscape.


SSO / OIDC Comparison

OIDC is the preferred SSO protocol. The table notes each tool’s behaviour with Authentik as the IdP.

ToolOIDCSAMLSCIMAuthentik Notes
GiteaYesNoNoNative OIDC support; Authentik as IdP; group mapping via claims
ForgejoYesNoNoNative OIDC support; Authentik as IdP; group mapping via claims; same as Gitea
GitLab CEYesNoNoNative OIDC via OmniAuth; Authentik as IdP; group sync via LDAP or claims
GitLab EEYesYesYesFull OIDC, SAML, and SCIM (Premium+); Authentik as IdP; group sync
GogsNoNoNoNo native SSO; LDAP/PAM only; reverse proxy auth possible
OneDevYesNoNoNative OIDC support; Authentik as IdP; group mapping
GitoliteNoNoNoSSH key-based auth only; no web UI; no SSO
cgitNoNoNoNo auth (read-only frontend); use reverse proxy + Authentik for access control
Soft ServeNoNoNoSSH key-based auth only; no web UI; no SSO
GerritYesYesNoNative OIDC and SAML via plugins; Authentik as IdP; LDAP group sync
GitBucketNoNoNoNo native OIDC; LDAP only; reverse proxy auth possible via plugin
Bitbucket CloudYes*YesYesAtlassian Access OIDC/SAML; SCIM via Atlassian; Authentik federation possible
Bitbucket DCNoYesNoSAML SSO via Atlassian plugin; no native OIDC; LDAP/Crowd integration
Azure DevOpsYes*YesYesEntra ID (Azure AD) SSO; OIDC via Entra; SCIM via Entra; Authentik federation possible
GitHubYes*YesYesGitHub Enterprise SAML SSO; OIDC for Actions; SCIM provisioning; Authentik as SAML IdP
CodebergNoNoNoPublic Forgejo instance; no custom SSO; use Codeberg accounts
SourceHutNoNoNoEmail-based accounts; no SSO; no OIDC/SAML

* = requires specific configuration, enterprise tier, or external identity provider

Best SSO support: GitLab EE (OIDC, SAML, SCIM), GitHub Enterprise (SAML, SCIM), Azure DevOps (OIDC, SAML, SCIM), Bitbucket Cloud (OIDC, SAML, SCIM)

No SSO: Gitolite, Soft Serve (SSH-only), cgit (read-only), Gogs (LDAP only), Codeberg (public instance), SourceHut (email accounts)


Repository Management Features

ToolWeb UICode ReviewBranch ProtectionLFSMirroringSigningWiki
GiteaYesPR modelYesYesPush + PullGPG, SSHYes
ForgejoYesPR modelYesYesPush + PullGPG, SSHYes
GitLab CEYesMR modelYesYesPush + PullGPGYes
GitLab EEYesMR modelYes (advanced)YesPush + PullGPGYes
GogsYesPR modelBasicYesNoNoYes
OneDevYesPR modelYesYesPush + PullGPGNo
GitoliteNoNoPer-branch ACLsNoManualNoNo
cgitRead-onlyNoNoNoNoDisplaysNo
Soft ServeTUINoNoYesNoNoNo
GerritYesChange-basedYesNoPullGPGNo
GitBucketYesPR modelBasicYesNoNoYes
Bitbucket CloudYesPR modelYesYesNoGPGNo*
Bitbucket DCYesPR modelYesYesSmart mirroringGPGNo*
Azure DevOpsYesPR modelYes (policies)YesNoNoYes
GitHubYesPR modelYes (rulesets)YesNo (Actions mirror)GPG, SSH, S/MIMEYes
CodebergYesPR modelYesYesPush + PullGPG, SSHYes
SourceHutYesEmail patchesNoNoNoGPGNo

* = Bitbucket uses Confluence for wiki instead of built-in wiki


Wiki Comparison

Most forges include a built-in wiki per repository, stored as a separate Git repository (reponame.wiki.git). This means wiki content is versioned, cloneable, and editable via standard Git workflows.

ToolWikiStorage ModelMarkup FormatsWYSIWYGHierarchyGroup/Org Wiki
GiteaYesSeparate Git repoMarkdownNoFlatNo
ForgejoYesSeparate Git repoMarkdownNoFlatNo
GitLab CEYesSeparate Git repoMarkdown, AsciiDoc, RST, OrgYesFlat (simulated)No
GitLab EEYesSeparate Git repoMarkdown, AsciiDoc, RST, OrgYesFlat (simulated)Yes (group wiki)
GogsYesSeparate Git repoMarkdownNoFlatNo
OneDevNoN/AN/AN/AN/AN/A
GitoliteNoN/AN/AN/AN/AN/A
cgitNoN/AN/AN/AN/AN/A
Soft ServeNoN/AN/AN/AN/AN/A
GerritNoN/AN/AN/AN/AN/A
GitBucketYesSeparate Git repoMarkdownNoFlatNo
BitbucketNo*N/AN/AN/AN/AN/A
Azure DevOpsYesSeparate Git repo (project wiki) or repo folder (code wiki)MarkdownNoTree (hierarchical)No (project-level)
GitHubYesSeparate Git repoMarkdown, AsciiDoc, RST, Org, Creole, MediaWiki, +5NoFlatNo
CodebergYesSeparate Git repoMarkdownNoFlatNo
SourceHutNo**N/AN/AN/AN/AN/A

* = Bitbucket uses Confluence for documentation instead of a built-in wiki

** = SourceHut provides man.sr.ht as a separate documentation service (not per-repository)

Most markup formats: GitHub (9+ formats), GitLab (4 formats). Most other forges support Markdown only.

Hierarchical navigation: Azure DevOps is the only platform with true tree navigation in the wiki sidebar. GitLab simulates hierarchy with / in page titles but does not render a tree.

Wiki as code: Azure DevOps uniquely supports publishing a folder from any Git repository as a wiki, allowing wiki changes to go through PR review.

Group-level wiki: GitLab EE (Premium/Ultimate) supports group wikis for cross-project documentation.

No wiki: OneDev, Gerrit, Gitolite, cgit, Soft Serve, Bitbucket, and SourceHut do not include a per-repository wiki.


Code Review Comparison

ToolReview ModelApproval RulesCode OwnersAuto-MergeInline Suggestions
GiteaPRMin approvals, dismiss staleCODEOWNERS fileYesYes
ForgejoPRMin approvals, dismiss staleCODEOWNERS fileYesYes
GitLab CEMRMin approvalsCODEOWNERS (EE)YesYes
GitLab EEMRAdvanced (per-branch, groups)CODEOWNERSYesYes
GogsPRNo formal approval rulesNoNoNo
OneDevPRMin approvals, custom rulesNoYesYes
GitoliteNoneN/AN/AN/AN/A
cgitNoneN/AN/AN/AN/A
Soft ServeNoneN/AN/AN/AN/A
GerritChange-basedVerified + Code-Review labelsPlugin-basedYes (submit)Inline comments
GitBucketPRBasicNoNoNo
Bitbucket CloudPRMin approvals, default reviewersNo nativeYesNo
Bitbucket DCPRMin approvals, default reviewersNo nativeYes (plugin)No
Azure DevOpsPRMin approvals, required reviewersAuto-reviewersYesNo
GitHubPRMin approvals, dismiss staleCODEOWNERSYesYes
CodebergPRMin approvals, dismiss staleCODEOWNERS fileYesYes
SourceHutEmail patchesMaintainer discretionNoNoReply inline

CI/CD & Registry

ToolBuilt-in CIContainer RegistryPackage Registry
GiteaGitea Actions (GitHub Actions compat)YesYes (npm, PyPI, Maven, Go, etc.)
ForgejoForgejo Actions (GitHub Actions compat)YesYes (npm, PyPI, Maven, Go, etc.)
GitLab CEGitLab CI (YAML, runners)YesYes (npm, PyPI, Maven, Go, NuGet, etc.)
GitLab EEGitLab CI (advanced: DAST, SAST)YesYes (full registry)
GogsNoNoNo
OneDevYes (YAML-based, built-in agent)NoNo
GitoliteNoNoNo
cgitNoNoNo
Soft ServeNoNoNo
GerritZuul / Jenkins integrationNoNo
GitBucketNo (plugin for basic CI)NoNo
Bitbucket CloudBitbucket PipelinesNoNo
Bitbucket DCNo (Bamboo integration)NoNo
Azure DevOpsAzure Pipelines (YAML + visual)Yes (Azure Container Registry)Yes (Azure Artifacts)
GitHubGitHub Actions (YAML, hosted runners)Yes (GHCR)Yes (npm, Maven, NuGet, Docker, etc.)
CodebergForgejo Actions (limited)NoNo
SourceHutbuilds.sr.ht (YAML)NoNo

Access Control & Security

ToolPer-Repo PermsPer-Branch PermsDeploy Keys2FAAudit Log
GiteaYesYes (protection rules)YesYes (TOTP, WebAuthn)Yes
ForgejoYesYes (protection rules)YesYes (TOTP, WebAuthn)Yes
GitLab CEYes (roles)Yes (protected branches)YesYes (TOTP, WebAuthn)Basic
GitLab EEYes (roles)Yes (advanced rules)YesYes (TOTP, WebAuthn)Full audit events
GogsYesBasicYesYes (TOTP)No
OneDevYes (roles)YesYesYes (TOTP)Yes
GitoliteYes (regex rules)Yes (ref-based ACLs)SSH keys onlyNoGit log only
cgitNo (read-only)NoNoNoNo
Soft ServeYes (SSH keys)NoSSH keysNoNo
GerritYes (ACLs)Yes (ref ACLs)NoYes (via plugin)Yes
GitBucketYesBasicYesNoNo
Bitbucket CloudYesYes (branch perms)YesYes (Atlassian account)Yes (Premium)
Bitbucket DCYesYes (branch perms)YesYesYes
Azure DevOpsYesYes (branch policies)No (service connections)Yes (Entra MFA)Yes
GitHubYesYes (rulesets)YesYes (TOTP, WebAuthn, passkeys)Yes (Enterprise)
CodebergYesYesYesYes (TOTP, WebAuthn)No
SourceHutYes (ACLs)NoNoYes (TOTP)No

API Comparison

ToolAPI TypeAuthWebhooksSDKs
GiteaREST (Swagger)Token, OAuth2, BasicYesGo (sdk), Python (community)
ForgejoREST (Swagger)Token, OAuth2, BasicYesGo (sdk), Python (community)
GitLab CE/EEREST + GraphQLPAT, OAuth2, JWTYesRuby (official), Python (python-gitlab), Go, JS
GogsRESTToken, BasicYes (limited)Go (community)
OneDevRESTToken, BasicYesNone official (REST-based)
GitoliteNone (CLI)N/ANo (post-receive hooks)None
cgitNoneN/ANoNone
Soft ServeNone (SSH)N/ANo (hooks via config)None
GerritRESTHTTP auth, OAuthYes (plugins)Python (pygerrit2), Java (native)
GitBucketREST (GitHub compat)Token, BasicYesNone official (GitHub SDK compat)
Bitbucket CloudREST 2.0OAuth2, App passwordYesPython (atlassian-python-api), JS
Bitbucket DCRESTPAT, HTTP BasicYesJava (Atlassian SDK), Python
Azure DevOpsRESTPAT, OAuth2Yes (service hooks).NET, Python, JS, Java (official)
GitHubREST + GraphQLPAT, OAuth, GitHub App JWTYesJS (Octokit), Python, Ruby, Go, .NET (official)
CodebergREST (Forgejo)Token, OAuth2YesSame as Forgejo
SourceHutREST + GraphQLOAuth2, PATYes (webhooks)Python (community)

Deployment and Licensing

ToolLicenseLanguageMin ResourcesDockerBinaryPackages
GiteaMITGo512 MB RAMYesYesYes (deb, rpm)
ForgejoMITGo512 MB RAMYesYesYes (deb, rpm)
GitLab CEMIT (CE)Ruby, Go4 GB RAMYesNoYes (Omnibus deb/rpm)
GitLab EEProprietaryRuby, Go4 GB RAMYesNoYes (Omnibus deb/rpm)
GogsMITGo256 MB RAMYesYesNo
OneDevMITJava1 GB RAMYesNoNo
GitoliteGPL-2.0Perl64 MB RAMNoNoYes (deb, rpm)
cgitGPL-2.0C32 MB RAMYes (community)YesYes (deb, rpm)
Soft ServeMITGo128 MB RAMYesYesYes (brew)
GerritApache-2.0Java2 GB RAMYesNoWAR file
GitBucketApache-2.0Scala/JVM1 GB RAMYesNoWAR file
Bitbucket CloudProprietaryJavaSaaSN/AN/AN/A
Bitbucket DCProprietaryJava4 GB RAMNoNoInstaller
Azure DevOpsProprietary.NETSaaS / 4 GBN/ANoInstaller (Server)
GitHubProprietaryRuby, GoSaaSN/AN/AN/A
CodebergN/A (hosted)Go (Forgejo)SaaSN/AN/AN/A
SourceHutAGPL-3.0Python, Go1 GB RAMNoNoAlpine packages

Scaling & High Availability

ToolHorizontal ScalingHA / ClusteringMax Repos (practical)Max Users (practical)
GiteaNo native (reverse proxy LB)External DB + shared storage10,000+10,000+
ForgejoNo native (reverse proxy LB)External DB + shared storage10,000+10,000+
GitLab CENoNo native HA (external DB)50,000+50,000+
GitLab EEYes (Gitaly cluster)Yes (Geo, Gitaly, PgBouncer)100,000+100,000+
GogsNoNo1,0001,000
OneDevNoExternal DB HA5,000+5,000+
GitoliteNoFilesystem replicationUnlimited (bare repos)10,000+
cgitN/A (stateless CGI)Filesystem replicationUnlimitedN/A
Soft ServeNoNo1,000100
GerritYes (multi-primary)Yes (multi-site plugin)50,000+50,000+
GitBucketNoExternal DB HA5,000+5,000+
Bitbucket CloudSaaS (managed)SaaS (managed)UnlimitedUnlimited
Bitbucket DCYes (clustered)Yes (active-active)50,000+50,000+
Azure DevOpsSaaS (managed)SaaS / DC clusteringUnlimitedUnlimited
GitHubSaaS (managed)SaaS / GHES clusteringUnlimitedUnlimited
CodebergSaaS (managed)SaaS (managed)N/AN/A
SourceHutMicroservices (per-service)Per-service scaling100,000+100,000+

Monitoring Integration

ToolPrometheus MetricsStructured LogsGrafana Dashboards
GiteaYes (/metrics endpoint)Yes (JSON stdout)Community dashboards
ForgejoYes (/metrics endpoint)Yes (JSON stdout)Community dashboards
GitLab CE/EEYes (per-service endpoints)Yes (JSON log files)Official dashboards
GogsNoFile-based logsNone
OneDevNo (JMX via Jolokia)stdout / log filesJVM dashboards
GitoliteNoSSH auth logs onlyNone
cgitNoWeb server logs onlyNone
Soft ServeNostderr logsNone
GerritYes (metrics plugin)File-based logsCommunity dashboards
GitBucketNo (JMX via Jolokia)stdout / log filesJVM dashboards
Bitbucket CloudNo (SaaS)N/AAvailability only
Bitbucket DCJMX / Marketplace pluginApplication logsJVM dashboards
Azure DevOps ServicesNo (SaaS)N/AAvailability only
Azure DevOps ServerWin perf countersIIS + event logsWindows dashboards
GitHub.comNo (SaaS)N/AAvailability only
GitHub EnterpriseYes (collectd / Prometheus)System logsSystem dashboards
CodebergNo (SaaS)N/AAvailability only
SourceHutNoPer-service logsNone

Best monitoring integration: Gitea, Forgejo, GitLab (native Prometheus endpoints with structured JSON logging). Gerrit has good metrics via plugin.

SaaS tools (GitHub.com, Bitbucket Cloud, Azure DevOps Services, Codeberg): monitoring limited to external HTTP availability checks and webhook delivery tracking.


Tools

15 tools.

Azure DevOps Repos

Azure DevOps is Microsoft’s integrated DevOps platform, providing five services: Repos (Git hosting), Pipelines (CI/CD), Boards (work item tracking), Artifacts (package management), and Test Plans (test management).

License: Proprietary (proprietary) · Kind: web · Deploy: saas · SSO: none

Website

Bitbucket

Bitbucket is Atlassian’s Git hosting platform, available as a cloud service (Bitbucket Cloud) and a self-hosted enterprise product (Bitbucket Data Center).

License: Proprietary (proprietary) · Kind: web · Deploy: saas · SSO: none

Website

cgit

cgit is a fast, read-only web frontend for bare Git repositories, written in C as a CGI program; it renders browsable commit logs, trees, and diffs with a minimal resource footprint.

License: GPL-2.0-only (OSS) · Kind: web · Deploy: native · SSO: none

Website · Source

Codeberg

Codeberg is a non-profit, community-funded Git hosting service based in Berlin, Germany, operated by Codeberg e.V. (a registered non-profit association).

License: MIT (OSS) · Kind: web · Deploy: saas · SSO: none

Website · Source

Forgejo

Forgejo is a community-driven fork of Gitea, created in late 2022 when concerns arose about Gitea’s governance shift toward a for-profit company. Maintained under the Codeberg e.V.

License: MIT (OSS) · Kind: web · Deploy: native · SSO: OIDC

Website · Source

Gerrit

Gerrit is a code review platform built around a change-based review model, originally developed at Google for managing the Android Open Source Project (AOSP).

License: Apache-2.0 (OSS) · Kind: web · Deploy: native · SSO: OIDC, SAML

Website · Source

GitBucket

GitBucket is a self-hosted Git platform written in Scala that closely mimics GitHub’s interface and API.

License: Apache-2.0 (OSS) · Kind: web · Deploy: native · SSO: none

Website · Source

Gitea

Gitea is a lightweight, self-hosted Git forge written in Go. Originally forked from Gogs in 2016, Gitea has grown into the most popular open-source alternative to GitHub for self-hosted code management.

License: MIT (OSS) · Kind: web · Deploy: native · SSO: none

Website · Source

GitHub

GitHub is the world’s largest Git hosting platform, with over 100 million developers and 420 million repositories as of 2024.

License: Proprietary (proprietary) · Kind: web · Deploy: saas · SSO: OIDC

Website

GitLab

GitLab is the most comprehensive self-hosted DevOps platform, providing an integrated experience that covers the entire software delivery lifecycle from planning through monitoring.

License: MIT (OSS) · Kind: web · Deploy: native · SSO: OIDC, SAML

Website · Source

Gitolite

Gitolite is an open-source, SSH-based access control layer for bare Git repositories on Linux, providing fine-grained per-repo, per-branch, and per-path permissions via a config-as-code admin repository.

License: GPL-2.0-only (OSS) · Kind: web · Deploy: native · SSO: none

Website · Source

Gogs

Gogs (Go Git Service) is a minimal, self-hosted Git forge written in Go. Created by Jiayu Yi in 2014, Gogs was one of the first lightweight alternatives to GitLab for self-hosted Git hosting.

License: MIT (OSS) · Kind: web · Deploy: native · SSO: none

Website · Source

OneDev

OneDev is a self-hosted Git platform with built-in CI/CD, written in Java. It distinguishes itself from other forges with a powerful built-in CI/CD engine, advanced code search (symbol navigation, semantic search), and a visual YAML editor…

License: MIT (OSS) · Kind: web · Deploy: native · SSO: OIDC

Website · Source

Soft Serve

Soft Serve is a TUI-based (Terminal User Interface) SSH Git server created by Charm, the company behind popular Go TUI libraries like Bubble Tea, Lip Gloss, and Glamour.

License: MIT (OSS) · Kind: web · Deploy: native · SSO: none

Website · Source

SourceHut (sr.ht)

SourceHut (pronounced “source hut,” written sr.ht) is a minimalist software development platform created by Drew DeVault.

License: AGPL-3.0-only (OSS) · Kind: web · Deploy: native, saas · SSO: none

Website · Source

ResorsIT Tools Catalog Search