summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorkolaente <konrad@kola-entertainments.de>2018-06-18 19:16:53 +0200
committertechknowlogick <techknowlogick@users.noreply.github.com>2018-06-18 13:16:53 -0400
commit90ad73ae21b40de98bf1986e550c3d965033dc21 (patch)
tree9df69c7e158594aecb093916fb5509eb99f6dbca /docs
parent85414d8b754639cae1a9c361bbdc0714f06b87c1 (diff)
downloadgitea-90ad73ae21b40de98bf1986e550c3d965033dc21.tar.gz
gitea-90ad73ae21b40de98bf1986e550c3d965033dc21.zip
Reorganized feature comparison (#4264)
Diffstat (limited to 'docs')
-rw-r--r--docs/content/doc/features/comparison.en-us.md746
1 files changed, 90 insertions, 656 deletions
diff --git a/docs/content/doc/features/comparison.en-us.md b/docs/content/doc/features/comparison.en-us.md
index 981365c719..698de4f46e 100644
--- a/docs/content/doc/features/comparison.en-us.md
+++ b/docs/content/doc/features/comparison.en-us.md
@@ -27,659 +27,93 @@ _Symbols used in table:_
* _✘ - unsupported_
-<table border="1" cellpadding="4">
- <thead>
- <tr>
- <td>Feature</td>
- <td>Gitea</td>
- <td>Gogs</td>
- <td>GitHub EE</td>
- <td>GitLab CE</td>
- <td>GitLab EE</td>
- <td>BitBucket</td>
- <td>RhodeCode CE</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Open source and free</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Issue tracker</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Pull/Merge requests</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Squash merging</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Rebase merging</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>⁄</td>
- <td>✘</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Pull/Merge request inline comments</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Pull/Merge request approval</td>
- <td>✘</td>
- <td>✘</td>
- <td>⁄</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Merge conflict resolution</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Restrict push and merge access to certain users</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>⁄</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Markdown support</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Issues and pull/merge requests templates</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Revert specific commits or a merge request</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Labels</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Time tracking</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Multiple assignees for issues</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Related issues</td>
- <td>✘</td>
- <td>✘</td>
- <td>⁄</td>
- <td>✘</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Confidential issues</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Comment reactions</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Lock Discussion</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Batch issue handling</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Issue Boards</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Create new branches from issues</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Commit graph</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Web code editor</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Branch manager</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Create new branches</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Repository topics</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Repository code search</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Global code search</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Issue search</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Global issue search</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Git LFS 2.0</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>⁄</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Integrated Git-powered wiki</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Static Git-powered pages</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Group Milestones</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Granular user roles (Code, Issues, Wiki etc)</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Cherry-picking changes</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>GPG Signed Commits</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Reject unsigned commits</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Verified Committer</td>
- <td>✘</td>
- <td>✘</td>
- <td>?</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Subgroups: groups within groups</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Custom Git Hooks</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Repository Activity page</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Deploy Tokens</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Repository Tokens with write rights</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Easy upgrade process</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Built-in Container Registry</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>External git mirroring</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>AD / LDAP integration</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Multiple LDAP / AD server support</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>LDAP user synchronization</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>OpenId Connect support</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>?</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>OAuth 2.0 integration (external authorization)</td>
- <td>✓</td>
- <td>✘</td>
- <td>⁄</td>
- <td>✓</td>
- <td>✓</td>
- <td>?</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Act as OAuth 2.0 provider</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Two factor authentication (2FA)</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>FIDO U2F (2FA)</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Webhook support</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Mattermost/Slack integration</td>
- <td>✓</td>
- <td>✓</td>
- <td>⁄</td>
- <td>✓</td>
- <td>✓</td>
- <td>⁄</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Discord integration</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>Built-in CI/CD</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- <tr>
- <td>External CI/CD status display</td>
- <td>✓</td>
- <td>✘</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Multiple database support</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>⁄</td>
- <td>⁄</td>
- <td>✓</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Multiple OS support</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✓</td>
- </tr>
- <tr>
- <td>Low resource usage (RAM/CPU)</td>
- <td>✓</td>
- <td>✓</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- <td>✘</td>
- </tr>
- </tbody>
-</table>
+#### General Features
+
+| Feature | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
+|---------|-------|------|-----------|-----------|-----------|-----------|--------------|
+| Open source and free | ✓ | ✓ | ✘| ✓ | ✘ | ✘ | ✓ |
+| Low resource usage (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
+| Multiple database support | ✓ | ✓ | ✘ | ⁄ | ⁄ | ✓ | ✓ |
+| Multiple OS support | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ |
+| Easy upgrade process | ✓ | ✓ | ✘ | ✓ | ✓ | ✘ | ✓ |
+| Markdown support | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Static Git-powered pages | ✘ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Integrated Git-powered wiki | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Deploy Tokens | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Repository Tokens with write rights | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
+| Built-in Container Registry | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| External git mirroring | ✓ | ✓ | ✘ | ✘ | ✓ | ✓ | ✓ |
+| FIDO U2F (2FA) | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Built-in CI/CD | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Subgroups: groups within groups | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✓ |
+
+#### Code management
+
+| Feature | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
+|---------|-------|------|-----------|-----------|-----------|-----------|--------------|
+| Repository topics | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Repository code search | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Global code search | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Git LFS 2.0 | ✓ | ✘ | ✓ | ✓ | ✓ | ⁄ | ✓ |
+| Group Milestones | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Granular user roles (Code, Issues, Wiki etc) | ✓ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Verified Committer | ✘ | ✘ | ? | ✓ | ✓ | ✓ | ✘ |
+| GPG Signed Commits | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Reject unsigned commits | ✘ | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
+| Repository Activity page | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Branch manager | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Create new branches | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Web code editor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Commit graph | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+
+#### Issue Tracker
+
+| Feature | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
+|---------|-------|------|-----------|-----------|-----------|-----------|--------------|
+| Issue tracker | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Issue templates | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Labels | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Time tracking | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Multiple assignees for issues | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Related issues | ✘ | ✘ | ⁄ | ✘ | ✓ | ✘ | ✘ |
+| Confidential issues | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Comment reactions | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Lock Discussion | ✘ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Batch issue handling | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Issue Boards | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Create new branches from issues | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Issue search | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Global issue search | ✘ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+
+#### Pull/Merge requests
+
+| Feature | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
+|---------|-------|------|-----------|-----------|-----------|-----------|--------------|
+| Pull/Merge requests | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Squash merging | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |
+| Rebase merging | ✓ | ✓ | ✓ | ✘ | ⁄ | ✘ | ✓ |
+| Pull/Merge request inline comments | ✘ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Pull/Merge request approval | ✘ | ✘ | ⁄ | ✓ | ✓ | ✓ | ✓ |
+| Merge conflict resolution | ✘ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Restrict push and merge access to certain users | ✓ | ✘ | ✓ | ⁄ | ✓ | ✓ | ✓ |
+| Revert specific commits or a merge request | ✘ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Pull/Merge requests templates | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Cherry-picking changes | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+
+
+#### 3rd-party integrations
+
+| Feature | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
+|---------|-------|------|-----------|-----------|-----------|-----------|--------------|
+| Webhook support | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Custom Git Hooks | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| AD / LDAP integration | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Multiple LDAP / AD server support | ✓ | ✓ | ✘ | ✘ | ✓ | ✓ | ✓ |
+| LDAP user synchronization | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| OpenId Connect support | ✓ | ✘ | ✓ | ✓ | ✓ | ? | ✘ |
+| OAuth 2.0 integration (external authorization) | ✓ | ✘ | ⁄ | ✓ | ✓ | ? | ✓ |
+| Act as OAuth 2.0 provider | ✘ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Two factor authentication (2FA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Mattermost/Slack integration | ✓ | ✓ | ⁄ | ✓ | ✓ | ⁄ | ✓ |
+| Discord integration | ✓ | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ |
+| External CI/CD status display | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |