-
Notifications
You must be signed in to change notification settings - Fork 34
[SILO-821] feat: add gitlab issue sync docs #388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -118,6 +118,104 @@ After linking a GitLab project, the next step is to associate it with a Plane pr | |
|
|
||
| 3. Once configured, you will see the project connection appear in the **Plane Project Connections** section. | ||
|
|
||
| ## Sync issues | ||
|
|
||
| With the GitLab integration set up, you can sync issues between Plane and GitLab at the project level. This ensures GitLab issues and Plane work items stay synchronized within your configured GitLab Projects and Plane projects. | ||
|
|
||
| ### Add project work item sync | ||
| Once GitLab is connected to Plane, workspace admins can link GitLab Projects with Plane projects. | ||
|
|
||
| 1. Navigate to the **Project Issue Sync** section under **Integrations**. | ||
| 2. Click the (+) button to create a new sync mapping. | ||
|
|
||
|  | ||
| 3. In the modal that appears, configure the following: | ||
| 1. **Plane project** | ||
| Select the Plane project you want to sync with. | ||
| 2. **GitLab Project** | ||
| Choose the GitLab Project to connect. | ||
| 3. **Project issue sync** | ||
| Map GitLab issue states to Plane states: | ||
| - Issue Open → Select a Plane state (e.g., Todo) | ||
| - Issue Closed → Select a Plane state (e.g., Done) | ||
| 4. **Select issue sync direction** | ||
| Choose how issues should sync: | ||
| - Unidirectional → Sync issues from GitLab to Plane only. | ||
| :::warning | ||
| This will overwrite Plane work item content with GitLab issue data. | ||
| ::: | ||
| - Bidirectional → Sync issues both ways between GitLab and Plane. | ||
|
|
||
|  | ||
| 5. Click **Start Sync**. | ||
|
|
||
| All configured project issue syncs will appear in a list where you can edit or remove them as needed. | ||
|
|
||
| ### Sync issues to Plane | ||
| After configuring project work item sync, you can link existing GitLab issues into your Plane project. | ||
|
|
||
| #### GitLab → Plane | ||
|
|
||
| 1. In your GitLab project, add the `Plane` label to any issue you want to sync. | ||
|
|
||
|  | ||
| 2. The issue will automatically be created as a work item in the linked Plane project. | ||
| 3. Plane posts a comment on the GitLab issue with a link to the newly created work item, confirming the connection. | ||
|
|
||
| 4. The work item in Plane will include a link back to the original GitLab issue. | ||
|
|
||
|  | ||
|
|
||
| ### Sync work items to GitLab | ||
| If you have existing work items in Plane that you want to sync to GitLab, you can do so using labels. | ||
|
|
||
| #### Plane → GitLab | ||
|
|
||
| 1. In your Plane project, add the `gitlab` label to any work item you want to sync. | ||
|
|
||
|  | ||
| 2. A new issue will automatically be created in the linked GitLab project. | ||
|
|
||
|  | ||
| 3. The GitLab issue will be linked back to the Plane work item. | ||
| 4. Future updates will sync according to your configured sync direction (unidirectional or bidirectional). | ||
|
|
||
| ### How issue syncing works | ||
|
|
||
| #### State synchronization | ||
|
|
||
| - When a GitLab issue is opened or closed, the corresponding Plane work item automatically moves to the mapped state. | ||
| - With bidirectional sync enabled, state changes in Plane work items will also update the GitLab issue status (open/closed). | ||
|
|
||
| #### Creating synced issues | ||
|
|
||
| - Issues created in GitLab (within a synced project) are automatically created in the linked Plane project. | ||
| - With bidirectional sync enabled, work items created in Plane (with the sync configured) are also created in GitLab. | ||
|
|
||
| #### Continuous updates | ||
|
|
||
| - All synced properties (title, description, labels, comments, etc.) update automatically based on your sync direction settings. | ||
| - See [What gets synced?](#what-gets-synced) for detailed information on property-level sync behavior | ||
|
|
||
| ### What gets synced? | ||
|
|
||
| :::warning[important] | ||
| In unidirectional sync mode (GitLab → Plane only), data from GitLab issues will overwrite corresponding data in Plane. Changes made in Plane will not sync back to GitLab unless you enable Bidirectional sync in your integration settings. | ||
| ::: | ||
|
|
||
| Here’s what syncs automatically between Plane and GitLab: | ||
|
|
||
| | Property | Sync direction | Notes | | ||
| | -------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| | Title | Both ways | Updates in either platform reflect in the other. | | ||
| | Description | Both ways | Content remains consistent between Plane and GitLab. | | ||
| | Labels | Both ways | If a Label doesn’t exist in Plane, it will be created (and vice versa). | | ||
| | States | Both ways | Updates in either platform reflect in the other. | | ||
| | Comments | Both ways | Comments sync between platforms with source attribution. The comment appears as posted by the Admin with the username of the user who posted the comment. | ||
| | Mentions | Both ways | Mentioned users username will be displayed in Plane and in the GitLab issue. | | ||
| | Issue links | GitLab → Plane | Any issue references in GitLab descriptions or comments will be displayed in Plane with a direct link to the issue including the project name and owner. | | ||
|
Comment on lines
+208
to
+216
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: # First, check the file exists and view the relevant section
head -220 docs/integrations/gitlab.mdx | tail -30Repository: makeplane/docs Length of output: 3692 🏁 Script executed: # Also search for any other mentions of comment attribution behavior in the docs
rg "comment.*admin\|admin.*comment" -i docs/integrations/gitlab.mdx -A 2 -B 2Repository: makeplane/docs Length of output: 40 🏁 Script executed: # Search for implementation details about GitLab integration and comment syncing
fd -e py -e ts -e js -e tsx | xargs rg -l "gitlab.*comment\|comment.*gitlab" -i | head -5Repository: makeplane/docs Length of output: 40 🏁 Script executed: # Search for GitLab integration implementation in the codebase
fd -type f \( -name "*.py" -o -name "*.ts" -o -name "*.tsx" -o -name "*.js" \) | xargs rg -l "gitlab" -i | grep -E "(integr|sync)" | head -10Repository: makeplane/docs Length of output: 302 🏁 Script executed: # Broader search for comment sync or attribution logic
rg "comment.*sync\|sync.*comment" -i -A 3 -B 1 --max-count 10 | head -50Repository: makeplane/docs Length of output: 40 🏁 Script executed: # Look for any integration-related files
fd -type d -name "*integr*" -o -name "*gitlab*"Repository: makeplane/docs Length of output: 228 🌐 Web query:
💡 Result: Short answer: Plane syncs comments with GitLab and shows an attribution for the source; comments created by GitLab (e.g., MR/issue comments or the Plane backlink comment on an MR) are displayed in Plane with their source noted, and Plane will attribute comments to the mapped Plane user when a GitLab account is mapped — otherwise the comment appears as coming from the integration/bot. You can also create/sync comments via Plane’s API using external_source/external_id fields so imported comments retain external attribution. Sources:
References: 🌐 Web query:
💡 Result: Short answer: Plane syncs GitLab comments and posts its own “Plane App” comment when work items/PRs are linked; comments are attributed to the original GitLab user only if that GitLab account is mapped to a Plane workspace user — otherwise the comment will be shown as coming from the integration/bot (or the Plane/GitHub bot example). To avoid comments showing as an admin/bot, map users or connect personal accounts so Plane can attribute comments to the correct user. [1][2] What to do (concise):
Sources:
References: Fix grammar/clarity issues and correct the misleading comment attribution statement. The "Mentioned users' usernames" needs proper possessive plural form. More importantly, the Comments row incorrectly claims "appears as posted by the Admin"—in reality, synced comments are attributed to the mapped Plane user if a GitLab-to-Plane user mapping exists; otherwise they appear as coming from the integration bot. This should be clarified rather than vague. Suggested revisions-| Comments | Both ways | Comments sync between platforms with source attribution. The comment appears as posted by the Admin with the username of the user who posted the comment.
-| Mentions | Both ways | Mentioned users username will be displayed in Plane and in the GitLab issue. |
+| Comments | Both ways | Comments sync between platforms with source attribution. Comments are attributed to the mapped Plane user; if no mapping exists, they appear as posted by the integration bot. |
+| Mentions | Both ways | Mentioned users' usernames are displayed in Plane and in the GitLab issue. |🤖 Prompt for AI Agents |
||
|
|
||
|
|
||
| ## Configure PR state automation | ||
|
|
||
| Pull requests (PRs) are also synchronized with Plane to ensure work item tracking remains accurate throughout the development lifecycle. | ||
|
|
@@ -165,4 +263,4 @@ The lifecycle of a pull request can be mapped to workflow states in Plane. The f | |
|
|
||
| ### Work item backlinks in pull requests | ||
|
|
||
| When a PR references Plane work items, Plane will post a confirmation comment on the pull request, ensuring visibility into which issues are linked. | ||
| When a PR references Plane work items, Plane will post a confirmation comment on the pull request, ensuring visibility into which issues are linked. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: makeplane/docs
Length of output: 822
🏁 Script executed:
Repository: makeplane/docs
Length of output: 40
🏁 Script executed:
Repository: makeplane/docs
Length of output: 85
🏁 Script executed:
Repository: makeplane/docs
Length of output: 40
🏁 Script executed:
Repository: makeplane/docs
Length of output: 40
🏁 Script executed:
Repository: makeplane/docs
Length of output: 40
🏁 Script executed:
Repository: makeplane/docs
Length of output: 36018
🏁 Script executed:
Repository: makeplane/docs
Length of output: 4416
🏁 Script executed:
Repository: makeplane/docs
Length of output: 544
🏁 Script executed:
Repository: makeplane/docs
Length of output: 85
Document the behavior of trigger labels (
Planeandgitlab) — docs don't explain if they're case-sensitive or customizable.The documentation presents these as required "magic" labels but doesn't clarify: whether they're case-sensitive (the inconsistent casing
Planevsgitlabsuggests they are), whether they can be customized in settings, or whether they must pre-exist. Users will fail silently if they useGitlaborplaneinstead. Add a note explaining exact label requirements, case-sensitivity, and whether labels can be customized or auto-created.🧰 Tools
🪛 LanguageTool
[style] ~174-~174: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...the
gitlablabel to any work item you want to sync. 
🤖 Prompt for AI Agents