Skip to main content
Recipes

GitLab + issues

Full config for a GitLab repo driven by closed issues.

.releasejet.yml

provider:
  type: gitlab
  url: https://gitlab.com
source: issues
categories:
  feature: "New Features"
  bug: "Bug Fixes"
  improvement: "Improvements"
uncategorized: strict

Self-hosted GitLab? Set provider.url to your instance URL.

GitLab CI

.gitlab-ci.yml:

release-notes:
  stage: deploy
  image: node:20-alpine
  rules:
    - if: $CI_COMMIT_TAG
  before_script:
    - npm i -g @makispps/releasejet
  script:
    - releasejet generate --tag "$CI_COMMIT_TAG" --publish
  variables:
    GITLAB_API_TOKEN: $GITLAB_API_TOKEN

Workflow

  1. Label issues with feature, bug, improvement.
  2. Push a tag to GitLab: git tag v1.2.0 && git push origin v1.2.0.
  3. The pipeline runs, ReleaseJet fetches closed issues between the previous tag and v1.2.0, and creates a GitLab release.

Strict mode

This config sets uncategorized: strict, which fails the pipeline if any issue in the range is missing a category label. This forces the team to label every closed issue before a release can ship.