docs: Update Docs: Backends “gitlab-backend” (#3906)

This commit is contained in:
Travis DePrato 2020-06-17 14:41:20 -04:00 committed by GitHub
parent a50edc7055
commit b4c47caf59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,15 +1,16 @@
--- ---
title: GitLab title: GitLab
weight: 20
group: backends group: backends
weight: 20
--- ---
For repositories stored on GitLab, the `gitlab` backend allows CMS users to log in directly with their GitLab account. Note that all users must have push access to your content repository for this to work. For repositories stored on GitLab, the `gitlab` backend allows CMS users to log in directly with their GitLab account. Note that all users must have push access to your content repository for this to work.
**Note:** GitLab default branch is protected by default, thus typically requires `maintainer` permissions in order for users to have push access.
The GitLab API allows for two types of OAuth2 flows: The GitLab API allows for two types of OAuth2 flows:
* [Web Application Flow](https://docs.gitlab.com/ce/api/oauth2.html#web-application-flow), which works much like the GitHub OAuth flow described above. * [Web Application Flow](https://docs.gitlab.com/ce/api/oauth2.html#web-application-flow), which works much like the GitHub OAuth flow described above.
* [Implicit Grant](https://docs.gitlab.com/ce/api/oauth2.html#implicit-grant-flow), which operates _without_ the need for an authentication server. * [Implicit Grant](https://docs.gitlab.com/ce/api/oauth2.html#implicit-grant-flow), which operates *without* the need for an authentication server.
## Web Application Flow with Netlify ## Web Application Flow with Netlify
@ -34,25 +35,25 @@ With GitLab's Implicit Grant, users can authenticate with GitLab directly from t
1. Follow the [GitLab docs](https://docs.gitlab.com/ee/integration/oauth_provider.html#adding-an-application-through-the-profile) to add your Netlify CMS instance as an OAuth application. For the **Redirect URI**, enter the address where you access Netlify CMS, for example, `https://www.mysite.com/admin/`. For scope, select `api`. 1. Follow the [GitLab docs](https://docs.gitlab.com/ee/integration/oauth_provider.html#adding-an-application-through-the-profile) to add your Netlify CMS instance as an OAuth application. For the **Redirect URI**, enter the address where you access Netlify CMS, for example, `https://www.mysite.com/admin/`. For scope, select `api`.
2. GitLab gives you an **Application ID**. Copy this ID and enter it in your Netlify CMS `config.yml` file, along with the following settings: 2. GitLab gives you an **Application ID**. Copy this ID and enter it in your Netlify CMS `config.yml` file, along with the following settings:
```yaml ```yaml
backend: backend:
name: gitlab name: gitlab
repo: owner-name/repo-name # Path to your GitLab repository repo: owner-name/repo-name # Path to your GitLab repository
auth_type: implicit # Required for implicit grant auth_type: implicit # Required for implicit grant
app_id: your-app-id # Application ID from your GitLab settings app_id: your-app-id # Application ID from your GitLab settings
``` ```
You can also use Implicit Grant with a self-hosted GitLab instance. This requires adding `api_root`, `base_url`, and `auth_endpoint` fields: You can also use Implicit Grant with a self-hosted GitLab instance. This requires adding `api_root`, `base_url`, and `auth_endpoint` fields:
```yaml ```yaml
backend: backend:
name: gitlab name: gitlab
repo: owner-name/repo-name # Path to your GitLab repository repo: owner-name/repo-name # Path to your GitLab repository
auth_type: implicit # Required for implicit grant auth_type: implicit # Required for implicit grant
app_id: your-app-id # Application ID from your GitLab settings app_id: your-app-id # Application ID from your GitLab settings
api_root: https://my-hosted-gitlab-instance.com/api/v4 api_root: https://my-hosted-gitlab-instance.com/api/v4
base_url: https://my-hosted-gitlab-instance.com base_url: https://my-hosted-gitlab-instance.com
auth_endpoint: oauth/authorize auth_endpoint: oauth/authorize
``` ```
**Note:** In both cases, GitLab also provides you with a client secret. You should _never_ store this in your repo or reveal it in the client. **Note:** In both cases, GitLab also provides you with a client secret. You should *never* store this in your repo or reveal it in the client.