New to Kestra?
Use blueprints to kickstart your first workflows.
Detect open GitLab issues with no activity for N days and auto-create a weekly triage tracking issue, scheduled and orchestrated end to end with Kestra.
Keep your GitLab backlog clean by automatically detecting stale issues that have gone untouched for too long and opening a single weekly triage report your team can act on. This flow searches every open issue in a GitLab project, filters the ones with no activity beyond a configurable threshold (default 30 days), and creates a tracking issue that lists each stale item with its link, last update, and labels. It turns backlog hygiene from a manual chore into a scheduled, repeatable orchestration covering GitLab issue search, stale detection, and automated issue creation.
weekly_triage (io.kestra.plugin.core.trigger.Schedule) fires every Monday at 9 AM UTC via the cron 0 9 * * 1.search_open_issues (io.kestra.plugin.gitlab.issues.Search) fetches all issues in the state: opened for the configured projectId.find_stale_issues (io.kestra.plugin.scripts.python.Script) loads the issues, compares each updated_at against a cutoff derived from the stale_days input, and writes the matches to stale_issues.json.log_summary (io.kestra.plugin.core.log.Log) records the path to the generated stale report.create_triage_issue (io.kestra.plugin.gitlab.issues.Create) opens a new GitLab issue titled with the run date, embeds the stale list, and applies the triage and stale labels.stale_issues.json artifact for downstream use.stale_days input.triage, stale) for easy filtering and reporting.GitLab has no native scheduler that can periodically scan issues, apply custom staleness logic, and open a summary issue. Kestra fills that gap: the event driven Schedule trigger runs the job on a precise cron, declarative YAML keeps the whole pipeline versioned and reviewable, retries handle transient API failures, and full execution lineage shows exactly which issues were flagged in each run. Mixing a Python filtering step with native GitLab tasks in one flow is something GitLab CI alone cannot express cleanly.
GITLAB_TOKEN: a GitLab personal access token with api scope.PROJECT_ID: the numeric ID of your GitLab project (Settings, General).api scope.GITLAB_TOKEN.PROJECT_ID.triage and stale labels in your GitLab project.stale_days per project to tighten or loosen the staleness window.