Wire GitLab into your automation, both ways.

GitLab tracks the work and runs the CI. Kestra connects it to everything else: file an issue the moment a pipeline fails, raise a merge request when an automated change is ready, trigger GitLab CI on an upstream event, and keep one execution history across the whole chain.

Blueprints for GitLab orchestration.

GitLab is the system of record for code, issues, and CI. Kestra connects it to the rest of the stack: the issues.Create and mergerequests.Create tasks file issues and raise MRs from any workflow, and a CI pipeline can be triggered and polled over the GitLab REST API. File an incident issue on failure, open an MR for a generated change, or fire a pipeline when Terraform or dbt finishes, all in one audited flow.

Open a GitLab issue when a pipeline fails Open blueprint
Triage stale GitLab issues and report Open blueprint
Trigger and poll GitLab CI on an upstream event Open blueprint

Around the GitLab project, not inside it.

GitLab owns the repo, the issues, and the CI runner. Kestra owns the automation around them: what files an issue, what opens an MR, what triggers a pipeline, and where the cross-tool audit trail lives.

File issues automatically on failure

When any flow fails, an errors handler running io.kestra.plugin.gitlab.issues.Create opens a GitLab issue with the execution link, the failing task, and labels. The incident lands in the team's existing tracker without a human relaying it from a Slack alert.

Raise merge requests from automation

When a flow produces a change, a dependency bump, a regenerated config, a data-driven update, mergerequests.Create opens an MR from a source branch for human review. The automation proposes; a person still approves and merges, so generated changes never skip review.

Trigger and poll GitLab CI pipelines

The plugin covers issues and MRs; GitLab CI is driven over the REST API with io.kestra.plugin.core.http.Request. A flow POSTs to the pipeline trigger endpoint when an upstream step confirms, then polls pipeline status until terminal, so CI fires on the event that matters rather than only on a push.

Search and triage issues programmatically

issues.Search queries a project's issues by state and labels. A scheduled flow can pull open issues, summarize stale or unassigned ones, and post a triage digest to Slack, turning a manual board review into an automated routine.

GitLab as one step in a cross-tool chain

GitLab actions rarely stand alone. Kestra runs Terraform, then opens an MR with the plan; or runs a dbt build, then files an issue if tests fail. GitLab is one step in a flow that spans the whole toolchain, with one execution ID.

Self-hosted GitLab, first class

Both tasks accept a custom url and apiPath, so self-managed GitLab behind a corporate network works exactly like GitLab.com. Kestra running inside the same network reaches the private instance without exposing it, which matters for regulated teams.

How teams use GitLab and Kestra

Patterns platform and DevOps teams run in production today. Each one shows the flow end to end, with the real plugin classes in play.

Incidents

Open a GitLab issue when a pipeline fails

A monitored flow runs on a schedule. On failure, the errors handler opens a GitLab issue with the execution link and the failing task, and pings Slack. The incident lands in the team's tracker without manual relay.

Errors-block handler

The issue is created only when the monitored task fails.

Execution link in the issue

The issue body links straight to the failing run.

Lands in the team tracker

No human relays the alert from Slack into GitLab.

scheduled job
monitored work
the pipeline
runs
gitlab issue
on failure
notify
Slack ping
Merge requests

Raise an MR for an automated change

A scheduled flow regenerates a config or bumps a dependency on a branch, then opens a merge request with mergerequests.Create for human review. The automation proposes the change; a person approves and merges it.

Automation proposes

The flow opens the MR; a human still approves and merges.

Generated changes get reviewed

Nothing skips review just because a flow produced it.

Source and target as inputs

Branches and title are typed flow inputs.

schedule
nightly
generate change
on a branch
git push
push branch
open MR
for review
CI trigger

Trigger GitLab CI on an upstream event

When Terraform or an ingestion step finishes, Kestra POSTs to the GitLab pipeline trigger endpoint over the REST API, then polls pipeline status until terminal. CI fires on the event, not only on a push, and the result branches the flow.

REST-driven CI trigger

core.http.Request POSTs to the pipeline trigger token endpoint.

Poll until terminal

A retrying request loop waits for the pipeline to finish.

Fire on any event

CI runs when upstream confirms, not only on a Git push.

upstream step
finishes
trigger pipeline
REST POST
poll status
until terminal
notify
on result
Triage

Automate issue triage on a schedule

A daily flow runs issues.Search for open issues, filters stale or unassigned ones, and posts a triage digest to Slack. A manual board review becomes a routine that runs itself.

Query by state and label

issues.Search filters the project's issues server-side.

Surface what is stuck

Stale or unassigned issues get flagged automatically.

Digest, not noise

One scheduled summary instead of constant board-watching.

schedule
daily
search issues
open + labels
filter
stale / unassigned
digest
Slack summary
Cross-tool

Provision, then open an MR with the result

Kestra runs a Terraform plan, captures the output, and opens a GitLab MR containing the plan for review. Infrastructure changes get the same MR-based review as code, driven from one flow.

Infra changes get reviewed

The Terraform plan lands in an MR like any code change.

One flow, end to end

Plan, branch, and MR share one execution ID.

Reviewers pinged

Slack notifies the right people the MR is open.

terraform plan
capture output
git push
plan to branch
open MR
plan for review
notify
reviewers
Thank you Kestra for your great support and for providing a best-in-class platform to power our integrations!
Patrick Ferreira, CleverConnect
10xIncrease in connector dev speed
2 monthsTo production readiness

Kestra vs the orchestration alternatives GitLab teams evaluate

Capability
GitLab CI
Jenkins
GitHub Actions
File issues from any workflow
issues.Create task
Within CI jobs onlyScripted in jobsScripted in jobs
Raise MRs from automation
mergerequests.Create task
API scripts in CIAPI scriptsAPI scripts
Trigger on non-Git events
Webhook, S3, Kafka, schedule
Pipeline schedules, webhooksPlugins or pollingCron or repo events
Chain GitLab with Terraform, dbt
Native plugins
Scripted in CI YAMLScripted in stagesScripted in steps
Approval gate with reviewer logged
Native pause + resume
Manual job + protected envInput stepEnvironment approvals
Cross-tool execution history
One view across tools
GitLab-scopedJenkins-scopedActions-scoped
Self-hosted, first class
url + apiPath, any instance
Self-managed GitLabSelf-hostSelf-hosted runners

GitLab & Kestra: common questions

Find answers to your questions right here, and don't hesitate to Contact Us if you couldn't find what you're looking for.

See How

Ready to wire GitLab into your automation?

File issues on failure, raise MRs from automation, trigger CI on any event, and chain GitLab with the rest of your stack. Open source, self-hosted, event-driven.