aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/doc/features
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/doc/features')
-rw-r--r--docs/content/doc/features/authentication.en-us.md100
-rw-r--r--docs/content/doc/features/authentication.zh-cn.md2
-rw-r--r--docs/content/doc/features/authentication.zh-tw.md2
-rw-r--r--docs/content/doc/features/comparison.en-us.md215
-rw-r--r--docs/content/doc/features/comparison.zh-cn.md2
-rw-r--r--docs/content/doc/features/localization.en-us.md2
-rw-r--r--docs/content/doc/features/localization.zh-cn.md2
-rw-r--r--docs/content/doc/features/localization.zh-tw.md2
-rw-r--r--docs/content/doc/features/webhooks.en-us.md2
-rw-r--r--docs/content/doc/features/webhooks.zh-cn.md2
-rw-r--r--docs/content/doc/features/webhooks.zh-tw.md2
11 files changed, 186 insertions, 147 deletions
diff --git a/docs/content/doc/features/authentication.en-us.md b/docs/content/doc/features/authentication.en-us.md
index d91aa68c25..0c83fa4d2f 100644
--- a/docs/content/doc/features/authentication.en-us.md
+++ b/docs/content/doc/features/authentication.en-us.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "Authentication"
slug: "authentication"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
@@ -22,20 +22,25 @@ menu:
Both the LDAP via BindDN and the simple auth LDAP share the following fields:
- Authorization Name **(required)**
+
- A name to assign to the new method of authorization.
- Host **(required)**
+
- The address where the LDAP server can be reached.
- Example: `mydomain.com`
- Port **(required)**
+
- The port to use when connecting to the server.
- Example: `389` for LDAP or `636` for LDAP SSL
- Enable TLS Encryption (optional)
+
- Whether to use TLS when connecting to the LDAP server.
- Admin Filter (optional)
+
- An LDAP filter specifying if a user should be given administrator
privileges. If a user account passes the filter, the user will be
privileged as an administrator.
@@ -43,6 +48,7 @@ Both the LDAP via BindDN and the simple auth LDAP share the following fields:
- Example for Microsoft Active Directory (AD): `(memberOf=CN=admin-group,OU=example,DC=example,DC=org)`
- Username attribute (optional)
+
- The attribute of the user's LDAP record containing the user name. Given
attribute value will be used for new Gitea account user name after first
successful sign-in. Leave empty to use login name given on sign-in form.
@@ -53,11 +59,13 @@ Both the LDAP via BindDN and the simple auth LDAP share the following fields:
- Example for Microsoft Active Directory (AD): `sAMAccountName`
- First name attribute (optional)
+
- The attribute of the user's LDAP record containing the user's first name.
This will be used to populate their account information.
- Example: `givenName`
- Surname attribute (optional)
+
- The attribute of the user's LDAP record containing the user's surname.
This will be used to populate their account information.
- Example: `sn`
@@ -67,19 +75,24 @@ Both the LDAP via BindDN and the simple auth LDAP share the following fields:
address. This will be used to populate their account information.
- Example: `mail`
-**LDAP via BindDN** adds the following fields:
+### LDAP via BindDN
+
+Adds the following fields:
- Bind DN (optional)
+
- The DN to bind to the LDAP server with when searching for the user. This
may be left blank to perform an anonymous search.
- Example: `cn=Search,dc=mydomain,dc=com`
- Bind Password (optional)
+
- The password for the Bind DN specified above, if any. _Note: The password
is stored in plaintext at the server. As such, ensure that the Bind DN
has as few privileges as possible._
- User Search Base **(required)**
+
- The LDAP base at which user accounts will be searched for.
- Example: `ou=Users,dc=mydomain,dc=com`
@@ -96,24 +109,28 @@ Both the LDAP via BindDN and the simple auth LDAP share the following fields:
- Enable user synchronization
- This option enables a periodic task that synchronizes the Gitea users with
the LDAP server. The default period is every 24 hours but that can be
- changed in the app.ini file. See the *cron.sync_external_users* section in
+ changed in the app.ini file. See the _cron.sync_external_users_ section in
the [sample
app.ini](https://github.com/go-gitea/gitea/blob/master/custom/conf/app.example.ini)
- for detailed comments about that section. The *User Search Base* and *User
- Filter* settings described above will limit which users can use Gitea and
- which users will be synchronized. When initially run the task will create
+ for detailed comments about that section. The _User Search Base_ and _User
+ Filter_ settings described above will limit which users can use Gitea and
+ which users will be synchronized. When initially run the task will create
all LDAP users that match the given settings so take care if working with
large Enterprise LDAP directories.
-**LDAP using simple auth** adds the following fields:
+### LDAP using simple auth
+
+Adds the following fields:
- User DN **(required)**
+
- A template to use as the user's DN. The `%s` matching parameter will be
substituted with login name given on sign-in form.
- Example: `cn=%s,ou=Users,dc=mydomain,dc=com`
- Example: `uid=%s,ou=Users,dc=mydomain,dc=com`
-- User Search Base (optional)
+- User Search Base (optional)
+
- The LDAP base at which user accounts will be searched for.
- Example: `ou=Users,dc=mydomain,dc=com`
@@ -124,23 +141,28 @@ Both the LDAP via BindDN and the simple auth LDAP share the following fields:
- Example: `(&(objectClass=posixAccount)(cn=%s))`
- Example: `(&(objectClass=posixAccount)(uid=%s))`
-**Verify group membership in LDAP** uses the following fields:
+### Verify group membership in LDAP
+
+Uses the following fields:
+
+- Group Search Base (optional)
+
+ - The LDAP DN used for groups.
+ - Example: `ou=group,dc=mydomain,dc=com`
+
+- Group Name Filter (optional)
-* Group Search Base (optional)
- * The LDAP DN used for groups.
- * Example: `ou=group,dc=mydomain,dc=com`
+ - An LDAP filter declaring how to find valid groups in the above DN.
+ - Example: `(|(cn=gitea_users)(cn=admins))`
-* Group Name Filter (optional)
- * An LDAP filter declaring how to find valid groups in the above DN.
- * Example: `(|(cn=gitea_users)(cn=admins))`
+- User Attribute in Group (optional)
-* User Attribute in Group (optional)
- * Which user LDAP attribute is listed in the group.
- * Example: `uid`
+ - Which user LDAP attribute is listed in the group.
+ - Example: `uid`
-* Group Attribute for User (optional)
- * Which group LDAP attribute contains an array above user attribute names.
- * Example: `memberUid`
+- Group Attribute for User (optional)
+ - Which group LDAP attribute contains an array above user attribute names.
+ - Example: `memberUid`
## PAM (Pluggable Authentication Module)
@@ -154,28 +176,35 @@ This option allows Gitea to log in to an SMTP host as a Gitea user. To
configure this, set the fields below:
- Authentication Name **(required)**
+
- A name to assign to the new method of authorization.
- SMTP Authentication Type **(required)**
+
- Type of authentication to use to connect to SMTP host, PLAIN or LOGIN.
- Host **(required)**
+
- The address where the SMTP host can be reached.
- Example: `smtp.mydomain.com`
- Port **(required)**
+
- The port to use when connecting to the server.
- Example: `587`
- Allowed Domains
+
- Restrict what domains can log in if using a public SMTP host or SMTP host
with multiple domains.
- Example: `gitea.io,mydomain.com,mydomain2.com`
- Enable TLS Encryption
+
- Enable TLS encryption on authentication.
- Skip TLS Verify
+
- Disable TLS verify on authentication.
- This authentication is activate
@@ -188,7 +217,8 @@ configure this, set the fields below:
- On the FreeIPA server, create a `gitea.ldif` file, replacing `dc=example,dc=com`
with your DN, and provide an appropriately secure password:
-```
+
+ ```sh
dn: uid=gitea,cn=sysaccounts,cn=etc,dc=example,dc=com
changetype: add
objectclass: account
@@ -197,18 +227,22 @@ configure this, set the fields below:
userPassword: secure password
passwordExpirationTime: 20380119031407Z
nsIdleTimeout: 0
-```
+ ```
- Import the LDIF (change localhost to an IPA server if needed). A prompt for
- Directory Manager password will be presented:
-```
+ Directory Manager password will be presented:
+
+ ```sh
ldapmodify -h localhost -p 389 -x -D \
"cn=Directory Manager" -W -f gitea.ldif
-```
-- Add an IPA group for gitea\_users :
-```
+ ```
+
+- Add an IPA group for gitea_users :
+
+ ```sh
ipa group-add --desc="Gitea Users" gitea_users
-```
+ ```
+
- Note: For errors about IPA credentials, run `kinit admin` and provide the
domain admin account password.
@@ -224,13 +258,15 @@ Before activating SSPI single sign-on authentication (SSO) you have to prepare y
- Create a separate user account in active directory, under which the `gitea.exe` process will be running (eg. `user` under domain `domain.local`):
- Create a service principal name for the host where `gitea.exe` is running with class `HTTP`:
+
- Start `Command Prompt` or `PowerShell` as a priviledged domain user (eg. Domain Administrator)
- Run the command below, replacing `host.domain.local` with the fully qualified domain name (FQDN) of the server where the web application will be running, and `domain\user` with the name of the account created in the previous step:
- ```
- setspn -A HTTP/host.domain.local domain\user
+
+ ```sh
+ setspn -A HTTP/host.domain.local domain\user
```
-- Sign in (*sign out if you were already signed in*) with the user created
+- Sign in (_sign out if you were already signed in_) with the user created
- Make sure that `ROOT_URL` in the `[server]` section of `custom/conf/app.ini` is the fully qualified domain name of the server where the web application will be running - the same you used when creating the service principal name (eg. `host.domain.local`)
diff --git a/docs/content/doc/features/authentication.zh-cn.md b/docs/content/doc/features/authentication.zh-cn.md
index 4ed913320c..481e33441b 100644
--- a/docs/content/doc/features/authentication.zh-cn.md
+++ b/docs/content/doc/features/authentication.zh-cn.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "认证"
slug: "authentication"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/authentication.zh-tw.md b/docs/content/doc/features/authentication.zh-tw.md
index 4dd0248970..da257409a2 100644
--- a/docs/content/doc/features/authentication.zh-tw.md
+++ b/docs/content/doc/features/authentication.zh-tw.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "認證"
slug: "authentication"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/comparison.en-us.md b/docs/content/doc/features/comparison.en-us.md
index 77299404cb..0bd06da24c 100644
--- a/docs/content/doc/features/comparison.en-us.md
+++ b/docs/content/doc/features/comparison.en-us.md
@@ -3,7 +3,7 @@ date: "2018-05-07T13:00:00+02:00"
title: "Gitea compared to other Git hosting options"
slug: "comparison"
weight: 5
-toc: true
+toc: false
draft: false
menu:
sidebar:
@@ -15,114 +15,117 @@ menu:
# Gitea compared to other Git hosting options
+**Table of Contents**
+
+{{< toc >}}
+
To help decide if Gitea is suited for your needs, here is how it compares to other Git self hosted options.
Be warned that we don't regularly check for feature changes in other products, so this list may be outdated. If you find anything that needs to be updated in the table below, please report it in an [issue on GitHub](https://github.com/go-gitea/gitea/issues).
_Symbols used in table:_
-* _✓ - supported_
-
-* _⁄ - supported with limited functionality_
-
-* _✘ - unsupported_
-
-#### 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Orgmode support | ✓ | ✘ | ✓ | ✘ | ✘ | ✘ | ? |
-| CSV support | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | ? |
-| Third-party render tool support | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ | ? |
-| Static Git-powered pages | [✘](https://github.com/go-gitea/gitea/issues/302) | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
-| Integrated Git-powered wiki | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| Deploy Tokens | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Repository Tokens with write rights | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
-| Built-in Container Registry | [✘](https://github.com/go-gitea/gitea/issues/2316) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
-| 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 | [✓](https://github.com/go-gitea/gitea/pull/9708) | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
-| Repository Activity page | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Branch manager | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Create new branches | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
-| Web code editor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Commit graph | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Template Repositories | [✓](https://github.com/go-gitea/gitea/pull/8768) | ✘ | ✓ | ✘ | ✓ | ✓ | ✘ |
-
-#### 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 | ✘ | ✘ | ⁄ | [✓](https://docs.gitlab.com/ce/user/project/issues/related_issues.html) | ✓ | ✘ | ✘ |
-| Confidential issues | [✘](https://github.com/go-gitea/gitea/issues/3217) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
-| Comment reactions | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
-| Lock Discussion | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
-| Batch issue handling | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
-| Issue Boards (Kanban) | [✓](https://github.com/go-gitea/gitea/pull/8346) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
-| Create new branches from issues | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
-| Issue search | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| Global issue search | [✘](https://github.com/go-gitea/gitea/issues/2434) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| Issue dependency | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
-| Create issue via email | [✘](https://github.com/go-gitea/gitea/issues/6226) | [✘](https://github.com/gogs/gogs/issues/2602) | ✘ | ✘ | ✓ | ✓ | ✘ |
-| Service Desk | [✘](https://github.com/go-gitea/gitea/issues/6219) | ✘ | ✘ | [✓](https://gitlab.com/groups/gitlab-org/-/epics/3103) | ✓ | ✘ | ✘ |
-
-#### Pull/Merge requests
-
-| Feature | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
-|---------|-------|------|-----------|-----------|-----------|-----------|--------------|
-| Pull/Merge requests | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Squash merging | ✓ | ✘ | ✓ | [✓](https://docs.gitlab.com/ce/user/project/merge_requests/squash_and_merge.html) | ✓ | ✓ | ✓ |
-| Rebase merging | ✓ | ✓ | ✓ | ✘ | ⁄ | ✘ | ✓ |
-| Pull/Merge request inline comments | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
-| Pull/Merge request approval | ✓ | ✘ | ⁄ | ✓ | ✓ | ✓ | ✓ |
-| Merge conflict resolution | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| Restrict push and merge access to certain users | ✓ | ✘ | ✓ | ⁄ | ✓ | ✓ | ✓ |
-| Revert specific commits or a merge request | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| Pull/Merge requests templates | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
-| Cherry-picking changes | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
-| Download Patch | ✓ | ✘ | ✓ | ✓ | ✓ | [/](https://jira.atlassian.com/plugins/servlet/mobile#issue/BCLOUD-8323) | ✘ |
-
-
-#### 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 | [✓](https://github.com/go-gitea/gitea/pull/5378) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| Two factor authentication (2FA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| Mattermost/Slack integration | ✓ | ✓ | ⁄ | ✓ | ✓ | ⁄ | ✓ |
-| Discord integration | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
-| Microsoft Teams integration | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
-| External CI/CD status display | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+- _✓ - supported_
+
+- _⁄ - supported with limited functionality_
+
+- _✘ - unsupported_
+
+## 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 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Orgmode support | ✓ | ✘ | ✓ | ✘ | ✘ | ✘ | ? |
+| CSV support | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | ? |
+| Third-party render tool support | ✓ | ✘ | ✘ | ✘ | ✘ | ✓ | ? |
+| Static Git-powered pages | [✘](https://github.com/go-gitea/gitea/issues/302) | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Integrated Git-powered wiki | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Deploy Tokens | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Repository Tokens with write rights | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
+| Built-in Container Registry | [✘](https://github.com/go-gitea/gitea/issues/2316) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| 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 | [✓](https://github.com/go-gitea/gitea/pull/9708) | ✘ | ✓ | ✓ | ✓ | ✘ | ✓ |
+| Repository Activity page | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Branch manager | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Create new branches | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Web code editor | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Commit graph | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Template Repositories | [✓](https://github.com/go-gitea/gitea/pull/8768) | ✘ | ✓ | ✘ | ✓ | ✓ | ✘ |
+
+## 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 | ✘ | ✘ | ⁄ | [✓](https://docs.gitlab.com/ce/user/project/issues/related_issues.html) | ✓ | ✘ | ✘ |
+| Confidential issues | [✘](https://github.com/go-gitea/gitea/issues/3217) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Comment reactions | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Lock Discussion | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Batch issue handling | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Issue Boards (Kanban) | [✓](https://github.com/go-gitea/gitea/pull/8346) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Create new branches from issues | ✘ | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Issue search | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Global issue search | [✘](https://github.com/go-gitea/gitea/issues/2434) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Issue dependency | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | ✘ |
+| Create issue via email | [✘](https://github.com/go-gitea/gitea/issues/6226) | [✘](https://github.com/gogs/gogs/issues/2602) | ✘ | ✘ | ✓ | ✓ | ✘ |
+| Service Desk | [✘](https://github.com/go-gitea/gitea/issues/6219) | ✘ | ✘ | [✓](https://gitlab.com/groups/gitlab-org/-/epics/3103) | ✓ | ✘ | ✘ |
+
+## Pull/Merge requests
+
+| Feature | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
+| ----------------------------------------------- | -------------------------------------------------- | ---- | --------- | --------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------ | ------------ |
+| Pull/Merge requests | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Squash merging | ✓ | ✘ | ✓ | [✓](https://docs.gitlab.com/ce/user/project/merge_requests/squash_and_merge.html) | ✓ | ✓ | ✓ |
+| Rebase merging | ✓ | ✓ | ✓ | ✘ | ⁄ | ✘ | ✓ |
+| Pull/Merge request inline comments | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
+| Pull/Merge request approval | ✓ | ✘ | ⁄ | ✓ | ✓ | ✓ | ✓ |
+| Merge conflict resolution | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Restrict push and merge access to certain users | ✓ | ✘ | ✓ | ⁄ | ✓ | ✓ | ✓ |
+| Revert specific commits or a merge request | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Pull/Merge requests templates | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Cherry-picking changes | [✘](https://github.com/go-gitea/gitea/issues/5158) | ✘ | ✘ | ✓ | ✓ | ✘ | ✘ |
+| Download Patch | ✓ | ✘ | ✓ | ✓ | ✓ | [/](https://jira.atlassian.com/plugins/servlet/mobile#issue/BCLOUD-8323) | ✘ |
+
+## 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 | [✓](https://github.com/go-gitea/gitea/pull/5378) | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Two factor authentication (2FA) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| Mattermost/Slack integration | ✓ | ✓ | ⁄ | ✓ | ✓ | ⁄ | ✓ |
+| Discord integration | ✓ | ✓ | ✓ | ✓ | ✓ | ✘ | ✘ |
+| Microsoft Teams integration | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✘ |
+| External CI/CD status display | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
diff --git a/docs/content/doc/features/comparison.zh-cn.md b/docs/content/doc/features/comparison.zh-cn.md
index b21a9b76d2..8ccdebe8cd 100644
--- a/docs/content/doc/features/comparison.zh-cn.md
+++ b/docs/content/doc/features/comparison.zh-cn.md
@@ -3,7 +3,7 @@ date: "2019-02-14T11:51:04+08:00"
title: "横向对比 Gitea 与其它 Git 托管工具"
slug: "comparison"
weight: 5
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/localization.en-us.md b/docs/content/doc/features/localization.en-us.md
index a9c9b3480b..a5b7a52f89 100644
--- a/docs/content/doc/features/localization.en-us.md
+++ b/docs/content/doc/features/localization.en-us.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "Localization"
slug: "localization"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/localization.zh-cn.md b/docs/content/doc/features/localization.zh-cn.md
index 81de966ea2..6a6f637326 100644
--- a/docs/content/doc/features/localization.zh-cn.md
+++ b/docs/content/doc/features/localization.zh-cn.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "本地化"
slug: "localization"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/localization.zh-tw.md b/docs/content/doc/features/localization.zh-tw.md
index 534ff89f42..b311cc543c 100644
--- a/docs/content/doc/features/localization.zh-tw.md
+++ b/docs/content/doc/features/localization.zh-tw.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "在地化"
slug: "localization"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/webhooks.en-us.md b/docs/content/doc/features/webhooks.en-us.md
index e755513485..5d792f5f57 100644
--- a/docs/content/doc/features/webhooks.en-us.md
+++ b/docs/content/doc/features/webhooks.en-us.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "Webhooks"
slug: "webhooks"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/webhooks.zh-cn.md b/docs/content/doc/features/webhooks.zh-cn.md
index d3bb4797b0..fe9008717a 100644
--- a/docs/content/doc/features/webhooks.zh-cn.md
+++ b/docs/content/doc/features/webhooks.zh-cn.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "Webhooks"
slug: "webhooks"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar:
diff --git a/docs/content/doc/features/webhooks.zh-tw.md b/docs/content/doc/features/webhooks.zh-tw.md
index d3bb4797b0..fe9008717a 100644
--- a/docs/content/doc/features/webhooks.zh-tw.md
+++ b/docs/content/doc/features/webhooks.zh-tw.md
@@ -3,7 +3,7 @@ date: "2016-12-01T16:00:00+02:00"
title: "Webhooks"
slug: "webhooks"
weight: 10
-toc: true
+toc: false
draft: false
menu:
sidebar: