GitLab
- Name:
gitlab
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.
Authentication
With GitLab's PKCE authorization, users can authenticate with GitLab directly from the client. To do this:
- Follow the GitLab docs to add your Static CMS instance as an OAuth application and uncheck the Confidential checkbox. For the Redirect URI, enter the address where you access Static CMS, for example,
https://www.mysite.com/admin/
. For scope, selectapi
. - GitLab gives you an Application ID. Copy this ID and enter it in your Static CMS
config
file, along with the following settings:
Name | Type | Default | Description |
---|---|---|---|
auth_type | 'pkce' | The authorization method | |
app_id | string | Application ID from your GitLab settings |
Example
backend:
name: gitlab
repo: owner-name/repo-name # Path to your GitLab repository
auth_type: pkce # Required for pkce
app_id: your-app-id # Application ID from your GitLab settings
Self-Hosted GitLab Instance
You can also use PKCE Authorization with a self-hosted GitLab instance. This requires adding api_root
, base_url
, and auth_endpoint
fields:
Name | Type | Default | Description |
---|---|---|---|
api_root | string | Root API url for self-hosted instance | |
base_url | string | Root url for self-hosted instance | |
auth_endpoint | string | Auth endpoint on self-hosted instance |
Example
backend:
name: gitlab
repo: owner-name/repo-name # Path to your GitLab repository
auth_type: pkce # Required for pkce
app_id: your-app-id # Application ID from your GitLab settings
api_root: https://my-hosted-gitlab-instance.com/api/v4
base_url: https://my-hosted-gitlab-instance.com
auth_endpoint: oauth/authorize
Git Large File Storage (LFS)
The GitLab backend does support git-lfs.