Skip to main content

GitLab integration

Create issues, open merge requests, run pipelines, and react to repository events across your clients' GitLab projects from any TaskJuice workflow.

What it does

The GitLab integration lets your agency drive every client's GitLab project from a single workflow. Connect a client's GitLab.com account once and TaskJuice can read projects, file and triage issues, open and merge merge requests, manage branches, tags, releases and CI variables, and react in real time when commits land, issues change state, pipelines finish, or access tokens approach expiry.

The GitLab app works with GitLab SaaS (gitlab.com). Self-managed GitLab installations are not supported.

Connect a GitLab account

  1. Register a GitLab OAuth application at https://gitlab.com/-/user_settings/applications, with the redirect URI TaskJuice shows on the connection screen, and tick the api scope.
  2. Add the application's Application ID and Secret in TaskJuice under Settings, Integrations, OAuth clients.
  3. Open your workspace in TaskJuice and navigate to Connections.
  4. Choose GitLab and click Connect.
  5. Enter gitlab.com as the host.
  6. Sign in as the GitLab user whose projects you want to manage on behalf of your client and approve the api scope. GitLab exposes no narrower scope that still permits writes, so api is the least privilege that covers the action surface.

To revoke access, the connected user opens https://gitlab.com/-/user_settings/applications, finds the TaskJuice authorization, and revokes it.

Triggers

TaskJuice registers a project webhook for you when you publish a workflow, and removes it when you unpublish. Pick the project on the trigger node and nothing needs configuring inside GitLab.

  • gitlab/push-event triggers when commits are pushed to a project branch or tag (Push Hook).
  • gitlab/issue-event triggers when an issue is opened, updated, closed, or reopened (Issue Hook).
  • gitlab/merge-request-event triggers when a merge request is opened, updated, approved, merged, or closed (Merge Request Hook).
  • gitlab/tag-push-event triggers when a tag is pushed to or deleted from a project (Tag Push Hook).
  • gitlab/note-event triggers when a comment is left on a commit, merge request, issue, or code snippet (Note Hook).
  • gitlab/confidential-note-event triggers when a comment is left on a confidential issue (Note Hook with event_type: confidential_note).
  • gitlab/pipeline-event triggers when a pipeline's status changes (Pipeline Hook).
  • gitlab/job-event triggers when the status of a CI job changes (Job Hook; object_kind: build).
  • gitlab/wiki-page-event triggers when a wiki page is created, updated, or deleted (Wiki Page Hook).
  • gitlab/deployment-event triggers when a deployment starts, succeeds, fails, or is canceled (Deployment Hook).
  • gitlab/release-event triggers when a release is created or updated (Release Hook).
  • gitlab/confidential-issue-event triggers when a confidential issue is opened, updated, closed, or reopened.
  • gitlab/milestone-event triggers when a project milestone is created, closed, reopened, or deleted.
  • gitlab/emoji-event triggers when an emoji reaction is added to or removed from an issue, merge request, comment, or snippet.
  • gitlab/access-token-event triggers when a project access token is approaching its expiry date, so a workflow can rotate or alert on it before access breaks.

Two triggers poll instead of receiving a webhook:

  • gitlab/new-commit polls a project's default branch each cycle for its most recent commits and emits one activation wrapping every commit not seen on a prior cycle in items.
  • gitlab/new-todo polls the connected account's pending to-do list each cycle (review requests, mentions, assignments, failed builds) and emits one activation wrapping every to-do not seen on a prior cycle in items.
  • gitlab/new-project polls the projects the connected account is a member of and emits one activation wrapping every project not seen on a prior cycle in items.

GitLab authenticates each delivery with the X-Gitlab-Token header, carrying a secret TaskJuice mints when it registers the webhook. Deliveries whose token does not match are rejected.

Confidential issues and confidential comments are delivered with the same body as their ordinary counterparts and are separated only by the X-Gitlab-Event header, so they have their own triggers. If you want both, add both.

Actions

Projects and groups

  • gitlab/get-current-user returns the authenticated GitLab user.
  • gitlab/list-projects list projects the authenticated user can access.
  • gitlab/get-project fetch a single project by numeric ID or URL-encoded path (e.g.
  • gitlab/list-user-projects list the projects owned by a specific user.
  • gitlab/list-groups list the groups the connected account can see.
  • gitlab/get-group fetch a single group by id or URL-encoded full path.
  • gitlab/create-group create a new group.
  • gitlab/list-project-members list a project's members, including members inherited from ancestor groups.
  • gitlab/get-user look up GitLab users by exact username or a search string over name, username, and public email.
  • gitlab/search search across the connected GitLab instance.

Issues

  • gitlab/create-issue create a new issue in a GitLab project.
  • gitlab/list-issues list issues in a project.
  • gitlab/get-issue fetch a single issue by its project-scoped IID.
  • gitlab/update-issue update an issue's title, description, labels, assignees, milestone, due date, confidentiality, or state (close/reopen).
  • gitlab/delete-issue permanently delete an issue.
  • gitlab/comment-on-issue add a comment (note) to an issue.
  • gitlab/list-issue-notes list the comments on an issue, newest first by default.
  • gitlab/get-issue-note fetch a single comment on an issue by id.
  • gitlab/update-issue-note edit the body of an existing issue comment.
  • gitlab/delete-issue-note permanently delete a comment from an issue.
  • gitlab/list-issue-closing-merge-requests list the merge requests that will close an issue when merged.

Merge requests

  • gitlab/create-merge-request open a merge request from a source branch to a target branch in a project.
  • gitlab/list-merge-requests list merge requests in a project, filtered by state and branch.
  • gitlab/get-merge-request fetch a single merge request by its project-scoped IID.
  • gitlab/update-merge-request update a merge request's title, description, target branch, labels, assignees, reviewers, milestone, or state (close/reopen).
  • gitlab/merge-merge-request accept and merge a merge request.
  • gitlab/cancel-merge-when-pipeline-succeeds cancel a merge request's queued auto-merge so it no longer merges when its pipeline succeeds.
  • gitlab/delete-merge-request permanently delete a merge request.
  • gitlab/comment-on-merge-request add a comment (note) to a merge request.
  • gitlab/list-merge-request-notes list the comments on a merge request.
  • gitlab/get-merge-request-note fetch a single comment on a merge request by id.
  • gitlab/update-merge-request-note edit the body of an existing merge request comment.
  • gitlab/delete-merge-request-note permanently delete a comment from a merge request.
  • gitlab/list-merge-request-commits list the commits contained in a merge request.
  • gitlab/list-merge-request-diffs list the file diffs in a merge request.
  • gitlab/list-merge-request-closing-issues list the issues a merge request will close when it is merged.

Repository

  • gitlab/create-branch create a new branch in a project's repository from an existing branch, tag, or commit SHA.
  • gitlab/list-branches list a repository's branches, optionally filtered by a name search.
  • gitlab/get-branch fetch a single branch and its head commit.
  • gitlab/delete-branch delete a branch from the repository.
  • gitlab/create-commit create a commit on a branch with one or more file actions (create, update, delete, move, chmod).
  • gitlab/list-commits list repository commits, filtered by branch or date window.
  • gitlab/get-commit fetch a single commit by SHA, branch, or tag name.
  • gitlab/get-commit-diff fetch the file diffs introduced by a single commit.
  • gitlab/list-commit-comments list the comments left on a commit.
  • gitlab/create-commit-comment post a comment on a commit, optionally anchored to a file and line.
  • gitlab/get-file fetch a file from a project's repository at a given ref.
  • gitlab/list-repository-tree list the files and directories at a path in the repository.
  • gitlab/list-contributors list repository contributors with their commit and line counts.
  • gitlab/create-tag create a lightweight or annotated tag pointing at a commit, branch, or existing tag.
  • gitlab/list-tags list a repository's tags.
  • gitlab/get-tag fetch a single repository tag by name.
  • gitlab/delete-tag delete a tag from a project's repository.

Releases, labels and milestones

  • gitlab/create-release create a release from an existing tag, or create the tag from a ref at the same time.
  • gitlab/list-releases list a project's releases, newest first.
  • gitlab/get-release fetch a single release by its tag name.
  • gitlab/update-release change a release's name, description, or release date.
  • gitlab/delete-release delete a release.
  • gitlab/create-label create a new label in a project with a name and color.
  • gitlab/list-labels list a project's labels, optionally filtered by a search keyword.
  • gitlab/get-label fetch a single project label by name or id.
  • gitlab/update-label rename a project label or change its color, description, or priority.
  • gitlab/delete-label delete a project label.
  • gitlab/create-milestone create a new milestone in a project with an optional date window.
  • gitlab/list-milestones list a project's milestones, filtered by state.
  • gitlab/get-milestone fetch a single project milestone by id.
  • gitlab/update-milestone change a milestone's title, description, dates, or open/closed state.
  • gitlab/delete-milestone permanently delete a project milestone.
  • gitlab/list-milestone-issues list the issues assigned to a milestone.

CI/CD

  • gitlab/create-pipeline trigger a new CI/CD pipeline on a branch or tag, optionally with pipeline variables.
  • gitlab/list-pipelines list a project's pipelines, filtered by status or ref.
  • gitlab/get-pipeline fetch a single pipeline by id.
  • gitlab/cancel-pipeline cancel a running pipeline and its jobs.
  • gitlab/retry-pipeline retry the failed and canceled jobs in a pipeline.
  • gitlab/list-jobs list a project's CI jobs, filtered by scope.
  • gitlab/get-job fetch a single CI job by id.
  • gitlab/cancel-job cancel a running CI job.
  • gitlab/retry-job retry a failed or canceled CI job.
  • gitlab/create-variable create a project-level CI/CD variable, optionally protected, masked, or scoped to an environment.
  • gitlab/list-variables list a project's CI/CD variables.
  • gitlab/get-variable fetch a single CI/CD variable by key.
  • gitlab/update-variable change the value or flags of an existing CI/CD variable.
  • gitlab/delete-variable permanently delete a project CI/CD variable.
  • gitlab/list-deployments list a project's deployments, filtered by environment or status.
  • gitlab/get-deployment fetch a single deployment by id.

Snippets

  • gitlab/create-snippet create a project code snippet from one or more files.
  • gitlab/list-snippets list a project's code snippets.
  • gitlab/get-snippet fetch a single project snippet by id.
  • gitlab/update-snippet change a project snippet's title, description, or visibility.
  • gitlab/delete-snippet permanently delete a project snippet.
  • gitlab/list-snippet-notes list the comments on a project snippet.
  • gitlab/create-snippet-note post a comment on a project snippet.

To-dos

  • gitlab/list-todos list the connected user's to-do items (review requests, mentions, assignments), filtered by state, action, or target type.
  • gitlab/mark-todo-done mark a single to-do item on the connected user's list as done.
  • gitlab/create-todo-on-issue add a to-do item for the connected account on an issue.
  • gitlab/mark-all-todos-done mark every pending to-do for the connected account as done.

Known limitations

  • GitLab.com meters the REST API per user. When it returns a 429, TaskJuice surfaces a retryable rate-limit error and respects the reset window the response advertises.
  • Running or retrying CI requires an identity-verified GitLab.com account. On an unverified account, Run Pipeline and Retry Pipeline fail with "Identity verification is required in order to run CI jobs", and no jobs exist for the job actions or the Job Event trigger to read.
  • Actions, resource pickers, managed webhooks and the two polling triggers all call gitlab.com. Self-managed GitLab is not supported.
  • In List Projects, Order by offers only Id and Created at. Ordering by name, path, updated or last activity alongside Membership only exceeds GitLab's own query timeout and fails upstream. Sort on any other field in a later step instead.
  • Group-level webhooks are a GitLab Premium feature and are not covered. Triggers register against a single project.
Was this helpful?