Skip to content

Commit 91813ec

Browse files
authored
Merge pull request #359 from makeplane/gitlab-enterprise
GitLab self-managed configuration
2 parents 5853054 + c7ad9a5 commit 91813ec

File tree

2 files changed

+86
-36
lines changed

2 files changed

+86
-36
lines changed

docs/integrations/github.mdx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ GitHub integration with Plane allows seamless synchronization between your GitHu
1717

1818
Plane supports integration with:
1919

20-
- **GitHub Cloud**.
20+
- **GitHub Cloud**
2121
The standard cloud-hosted GitHub service
2222

23-
- **GitHub Enterprise Server**.
23+
- **GitHub Enterprise Server**
2424
Self-hosted GitHub instances for organizations with specific compliance or security requirements
2525

2626
## Set up GitHub integration
@@ -64,8 +64,10 @@ Link your GitHub organization to your Plane workspace to start syncing repositor
6464
2. On the right pane, select **Integrations**.
6565
3. Find the **GitHub Enterprise** integration and click **Configure**.
6666
4. In the **Connect Organization** section, click **Connect**.
67+
6768
![Connect GitHub Enterprise organization](https://media.docs.plane.so/integrations/github/connect-github-enterprise.webp#hero)
6869
5. Fill the form with the details of your GitHub Enterprise instance and click **Connect**.
70+
6971
![Configure GitHub Enterprise organization](https://media.docs.plane.so/integrations/github/configure-github-enterprise.webp#hero)
7072
6. On the GitHub app installation page, choose the organization you want to connect.
7173
7. Select whether you want to sync all repositories or pick specific ones.

docs/integrations/gitlab.mdx

Lines changed: 82 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11
---
22
title: GitLab
33
hide_title: true
4-
description: Integrate Plane with GitLab to synchronize issues and pull requests. Connect repositories to projects for bidirectional updates and seamless workflows.
4+
description: Integrate Plane with GitLab and Self-managed GitLab to automate pull requests and work item state mapping. Connect repositories to projects for bidirectional updates and seamless workflows.
55
---
66

77
import Tags from "@site/src/components/Tags";
8+
import Tabs from '@theme/Tabs';
9+
import TabItem from '@theme/TabItem';
810

911
<div className="tag-wrapper">
1012
<h1>Integrate with GitLab</h1>
1113
<Tags tags={[{ name: "Pro", link: "https://plane.so/pricing", additionalClass: "pro" }]} />
1214
</div>
1315

14-
:::note[Self-hosted GitLab instance]
15-
Currently, Plane integrates only with GitLab Cloud. Support for self-managed GitLab instances is not available yet, but we’re working on adding it soon.
16-
:::
17-
1816
Integrating GitLab with Plane allows you to sync your development workflow seamlessly by linking GitLab merge requests with Plane work items. This connection enables automated updates and enhances collaboration between developers and project managers.
1917

18+
Plane supports integration with:
19+
20+
- **GitLab.com**
21+
The standard cloud-hosted GitLab service
22+
23+
- **GitLab Self-managed**
24+
Self-hosted GitLab instances for organizations with specific compliance or security requirements
25+
2026
This guide walks you through the steps to connect your GitLab account, link GitLab projects to Plane, and configure pull request automation.
2127

2228
## Set up GitLab integration
@@ -33,26 +39,56 @@ To get started, you'll need to connect your GitLab account, organization, and re
3339

3440
### Connect GitLab organization
3541

36-
Link your GitLab organization to your Plane workspace to start syncing repositories. This step is crucial for enabling the full range of GitLab-Plane integrations.
42+
Link your GitLab organization to your Plane workspace to start syncing repositories. This step is crucial for enabling the full range of GitLab-Plane integration.
43+
44+
<Tabs queryString="edition">
45+
<TabItem value="gitlab-cloud" label="GitLab.com">
46+
:::danger[Self-hosted Plane instance (Commercial Edition)]
47+
If you're running a self-hosted instance of Plane, you'll need to set up a few extra configurations to get GitLab integration working. Check out the [setup guide](https://developers.plane.so/self-hosting/govern/integrations/gitlab?edition=gitlab-cloud) first before diving into the steps on this page.
48+
:::
49+
50+
1. Navigate to Workspace **Settings** in Plane.
3751

38-
1. Navigate to Workspace **Settings** in Plane.
52+
2. Go to the **Integrations** tab.
3953

40-
2. Go to the **Integrations** tab.
54+
3. Locate the **GitLab** integration section.
4155

42-
3. Locate the **GitLab** integration section.
56+
4. Click **Connect** to authenticate your GitLab account and initiate the connection.
4357

44-
4. Click **Connect** to authenticate your GitLab account and initiate the connection.
45-
46-
![Connect GitLab](https://media.docs.plane.so/integrations/gitlab/connect-gitlab.webp#hero)
58+
![Connect GitLab](https://media.docs.plane.so/integrations/gitlab/connect-gitlab.webp#hero)
4759

48-
5. Review the requested permissions and click **Authorize Plane** to grant access.
49-
50-
![Authorize Plane](https://media.docs.plane.so/integrations/gitlab/authorize-plane.webp#hero)
60+
5. Review the requested permissions and click **Authorize Plane** to grant access.
5161

52-
6. Once authenticated, you should see your GitLab account listed as connected.
62+
6. Once authenticated, you should see your GitLab account listed as connected.
63+
</TabItem>
64+
65+
<TabItem value="gitlab-self-managed" label="GitLab Self-managed">
66+
:::danger[Plane Cloud and self-hosted instances]
67+
68+
Before you can integrate with GitLab Self-managed, you must first set up the necessary configurations in your GitLab instance. This is required for both Plane Cloud and self-hosted users.
69+
70+
Follow this [setup guide](https://developers.plane.so/self-hosting/govern/integrations/gitlab?edition=gitlab-self-managed) first before diving into the steps on this section.
71+
:::
72+
73+
1. Navigate to [Workspace settings](/core-concepts/workspaces/overview#access-workspace-settings) in Plane.
74+
2. On the right pane, select **Integrations**.
75+
3. Find the **GitLab Self-managed** integration and click **Configure**.
76+
4. In the **Connect Organization** section, click **Connect**.
77+
78+
![Connect GitLab Enterprise organization](https://media.docs.plane.so/integrations/gitlab/connect-gitlab-self-managed.webp#hero)
79+
5. Fill the form with the details of your GitLab self-managed instance and click **Connect**.
80+
81+
![Configure GitLab Self-managed organization](https://media.docs.plane.so/integrations/gitlab/configure-gitlab-self-managed.webp#hero)
82+
6. On the GitLab app installation page, choose the organization you want to connect.
83+
7. Select whether you want to sync all repositories or pick specific ones.
84+
8. Click **Install** to finalize the connection.
85+
9. After authorization, you’ll be redirected back to Plane, where your GitLab organization will appear as connected.
86+
</TabItem>
87+
</Tabs>
5388

5489
At this stage, your GitLab account is linked to Plane, but you still need to connect specific GitLab projects to Plane projects.
5590

91+
5692
### Connect GitLab project
5793

5894
Connecting a GitLab project allows Plane to receive updates from that project via webhooks. These webhooks are essential for GitLab merge request automation.
@@ -81,31 +117,43 @@ After linking a GitLab project, the next step is to associate it with a Plane pr
81117

82118
3. Once configured, you will see the project connection appear in the **Plane Project Connections** section.
83119

84-
## Sync pull requests
120+
## Configure PR state automation
121+
122+
Pull requests (PRs) are also synchronized with Plane to ensure work item tracking remains accurate throughout the development lifecycle.
123+
124+
To automate pull request state changes with Plane work items:
125+
126+
1. Reference Plane work items in your GitLab PR title or description using the appropriate format. See [Reference formats](#reference-formats) below.
127+
2. Automatic state updates will move the work item state in Plane based on the GitLab PR state defined in your mapping.
85128

86-
Pull requests (PRs) are also synchronized with Plane to ensure issue tracking remains accurate throughout the development lifecycle.
129+
#### Reference formats
130+
There are two ways to reference Plane work items in your GitLab PRs:
87131

88-
#### Closing references and auto-updates
132+
##### With brackets [WEB-344] - State automation
89133

90-
When a pull request includes closing references to GitLab issues (e.g., `closes #14`), any linked Plane work items will automatically update with the PR link. If the PR is merged or closed, the Plane work item state updates based on the configured workflow in [Pull Request Automation](/integrations/gitlab#connect-plane-project).
134+
- Links the work item to the PR
135+
- Adds a comment from Plane App showing linked work items
136+
- Automatically updates the work item state based on PR state changes (as configured in your PR state mapping)
91137

92-
#### Magic words for issue references
138+
##### Without brackets WEB-344 - Link only
93139

94-
You can use specific keywords in GitLab pull requests to manage how Plane work items are updated.
140+
- Links the work item to the PR as a reference
141+
- Adds a comment from Plane App showing referenced work items
142+
- Does not trigger automatic state updates
95143

96-
- **Closing references**
97-
These keywords close linked issues when the PR is merged or closed.
98-
**Keywords**
99-
`close`, `closes`, `closed`, `closing`, `fix`, `fixes`, `fixed`, `resolve`, `resolves`, `resolved`, `complete`, `completes`, `completed`.
144+
*Example*
145+
```bash
146+
PR Title: [WEB-344] Add user authentication feature
147+
PR Description: Implements login functionality for WEB-345
148+
```
100149

101-
- **Non-closing references**
102-
These keywords maintain the state mappings of linked issues but don’t close them.
103-
**Keywords**
104-
`ref`, `references`, `reference to`, `part of`, `related to`.
150+
In this example:
151+
- WEB-344 will be fully automated (state changes with PR state)
152+
- WEB-345 will be linked as a reference only (no state automation)
105153

106-
#### PR lifecycle mapping
154+
### PR lifecycle mapping
107155

108-
The lifecycle of a pull request can be [mapped](/integrations/gitlab#connect-plane-project) to workflow states in Plane. The following PR states are available for mapping:
156+
The lifecycle of a pull request can be mapped to workflow states in Plane. The following PR states are available for mapping:
109157

110158
- A draft PR is created.
111159
- A PR is opened.
@@ -114,6 +162,6 @@ The lifecycle of a pull request can be [mapped](/integrations/gitlab#connect-pla
114162
- The PR is successfully merged.
115163
- The PR is closed without merging.
116164

117-
#### Issue backlinks in pull requests
165+
### Issue backlinks in pull requests
118166

119-
When a PR references Plane work items (using closing or non-closing reference keywords), Plane will post a confirmation comment on the pull request, ensuring visibility into which issues are linked.
167+
When a PR references Plane work items, Plane will post a confirmation comment on the pull request, ensuring visibility into which issues are linked.

0 commit comments

Comments
 (0)