GitHub/GitLab Decision Matrix
This decision matrix provides a detailed comparison between GitHub and GitLab across multiple dimensions relevant to projects hosted at the Eclipse Foundation. The goal is to help projects make informed decisions based on factors such as Code Management, Continuous Integration, platform features available, data governance, infrastructure, ...
Each criterion is assessed side-by-side for both platforms, highlighting key differences and considerations. This matrix is intended as a living document and may evolve as new features or policies are introduced by either platform.
Criteria | GitHub | GitLab | ||
---|---|---|---|---|
Contract & licensing | ||||
Eclipse Foundation contract with the platform | 10 years | 3-year renewable term (GL OSS program participant) | ||
Available Version | Enterprise Cloud | Ultimate 17.8.5 | ||
Policies applied | GitHub policies + Eclipse foundation policies | Eclipse Foundation policies, Private policy | ||
Infrastructure & Hosting | ||||
Data Location | Default in the US, with possible data residency in the EU.(NOTE: data stored outside region) | EU (France, OVH Datacenter) | ||
Data Sovereignty | GH is 100% GitHub, with optional backups managed by EF (not in place) | EF-owned data, with backups in Canada | ||
SLA | GitHub SLA | Eclipse IT SLO | ||
Service Status | GitHub Status | Eclipse status | ||
Authentication | ||||
Authentication | GitHub account (must be specified in EF account for invitation/permissions/ECA) | EF account | ||
2FA | Activated and enforced at enterprise organization level | Activated and enforced globally | ||
Code Management | ||||
Git version | Not disclosed | 2.47.0 | ||
Git Large File Storage (LFS) | Setup gitlfs, Storage and bandwidth quotas | Set up at project level: No quotas yet defined. | ||
Code search | Native search, across all GitHub repositories | Native search, advanced search is not set up, across Eclipse GitLab repositories | ||
Mono repo and git sub-module | Supported | Supported | ||
Permissions | ||||
Project Lead | Maintain | Maintainer (control over sub-groups and projects) | ||
Committer | Write | Developer | ||
Contributor | Triage | Reporter | ||
Organization setup | GitHub Self-Service with Otterdog (PL approval) | Via UI only PL can apply changes (at project and sub-group levels) Modification at Group Level can only be changed by EF IT team | ||
External Contribution | ||||
Community interaction | GitHub issues, PR, and discussion | GitLab issues, MR, GitHub discussion can be simulated in GitLab | ||
Fork | Fork with GitHub Account (ECA integrated via GitHub app). GitHub handle needs to be defined in Eclipse Account for ECA check to work. | Fork with EF account (ECA integrated within GitLab) | ||
CI & Build Infrastructure | ||||
Native CI | GitHub actions | GitLab CI | ||
CI Libraries | Marketplace actions | Template examples EF templates | ||
Runner request | GitHub action is activated by default, or can be changed with Otterdog | Request by a HelpDesk ticket (Runner creation and CI feature activation) | ||
Runner type | Default runners from enterprise plan, extra cost for specific configuration runner e.g. large runner | Runners in EF infra; hosted runners accepted outside of EF Infrastructure accepted after security check | ||
Runner for forked projects | Default GitHub free plan | No shared runners, User have to register their own runner. | ||
Runner concurrency | Defined at enterprise level: 500 concurrent jobs shared among all EF GitHub organizations | Starting with 4 concurrency runners with 1 resource pack | ||
Runner sizing | 4cpu, 16GB RAM GitHub Allocation. Larger runner through sponsoring |
Small: 0.5 CPU/1GB RAM, Medium: 2 CPU/4GB RAM, Large: 4 CPU/8GB RAM (only through sponsoring). Can be overridden up to max resource pack allowed combine with concurrency. See Resource Pack |
||
Runner storage quotas | 14GB | 50GB | ||
Runner storage location | GitHub cloud | Build storage: Datacenter in Canada, Artifacts: EU Datacenter | ||
Runner OS/architecture | VM approach: Linux (x64/arm64), Windows (x64), macOS (intel/arm64) |
Container approach: Linux (x64) (Ubuntu by default), Windows(x64) |
||
Build infrastructure | GitHub cloud runner (Azure datacenter) | EF cluster based on OKD. NOTE: OKD comes with security measure like non-root, drop all CAPS ... |
||
Build/artifact retention | Artifact and log retention: Max 180 days | Archive jobs not set, Artifacts retention: 14 days | ||
Registry | GitHub Package Registry | GitLab Registry is deactivated. Nexus via repo.eclipse.org is proposed |
||
Build Container support | Container client: kaniko, buildah, podman, ... | EF Buildkit infrastructure | ||
Running services | Service containers | GitLab CI Services Resource pack quotas applied to services | ||
Runner statistics | None. Develocity can be used | Grafana dashboard (only internally for now, will be made public later). Develocity can be used in addition | ||
Secrets management | Otterdog applies internal secrets to GitHub org/projects secrets. PL can request creation of specific secrets via ticket | Integrated with internal tooling, PL can add manually their secrets via UI | ||
Code Security/Compliance | ||||
Security tooling | Code scanning, secrets scanning, Dependabot | Security tooling integrated via CI, with reports generation | ||
Security Dashboard | otterdog dashboard | None | ||
IP/license Compliance | Dash Tool GitHub Action | Dash Tool integration Built-in compliance feature GitBab-CI integration (soon) | ||
Project Management | ||||
Project Management | GitHub Projects | GitLab Plan and Track Work | ||
Documentation | ||||
Wiki | Available | Available | ||
Website (Pages) | GitHub Pages | GitLab Pages are disabled. EF project-website process is proposed as an alternative. |
||
Doc as code support | GitHub Flavored Markdown, mermaid, all GitHub markup | GitLab Flavored Markdown, asciidoc, plantuml, marmaid, ... | ||
Advanced Features | ||||
Mirroring | Manual or via GitHub Action | Mirroring available: push, pull, bi-directionnal methods | ||
AI agent | Copilot | GitLab Duo is disabled | ||
Remote development | Codespaces | Web IDE, Workspace | ||
Discussions | Discussions | GitHub discussion can be simulated in GitLab | ||
External app | Marketplace | Integrate with GitLab | ||
Merge Train | Merge queue | Merge train | ||
Service desk | None | Service desk is disabled | ||
Code owner | Code owners | Code owners | ||
Visibility | ||||
Web Referencing | Well referenced by search engines (tested with Google) | Less referenced by search engine due to hosted instance (tested with Google). Sitemap issue for public repository. Repositories can be mirrored to GitHub |
||
Contributor Visibility | Displayed on the Organization/Project page. IMPORTANT: Members have to make their profile public |
Displayed on the Members page. All members are public | ||
Metrics | Insights page: Pulse, Contributors activities, Commits, Forks, watch, stars... | Analyze page: Analytics Dashboard, Contributor, Repo, Code Review Analytics, insights, watch, stars... | ||
Eclipse Project Adoption Rate | 266 (source: otterdog) | 63 (source: GitLab Eclipse Group) |