GitLab CI
Generate release notes automatically in your GitLab CI/CD pipeline.
Basic pipeline
Add to .gitlab-ci.yml:
release:
stage: deploy
image: node:20
rules:
- if: $CI_COMMIT_TAG
script:
- npx @shipi/cli generate --from $(git describe --abbrev=0 HEAD^) -o release-notes.md
release:
tag_name: $CI_COMMIT_TAG
description: release-notes.md
variables:
SHIPI_API_KEY: $SHIPI_API_KEY
GIT_DEPTH: 0
Setup
- Get your API key from the dashboard
- Add
SHIPI_API_KEYas a CI/CD variable (Settings → CI/CD → Variables) - Push a tag to trigger the pipeline
With curl (alternative)
release:
stage: deploy
image: node:20
rules:
- if: $CI_COMMIT_TAG
script:
- npx @shipi/cli generate --from $(git describe --abbrev=0 HEAD^) -o release-notes.md
- |
curl --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
--header "Content-Type: application/json" \
--request POST \
--data "{
\"name\": \"${CI_COMMIT_TAG}\",
\"tag_name\": \"${CI_COMMIT_TAG}\",
\"description\": \"$(cat release-notes.md)\"
}" \
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases"
variables:
SHIPI_API_KEY: $SHIPI_API_KEY
GIT_DEPTH: 0
Options
With diff analysis
script:
- npx @shipi/cli generate --from $(git describe --abbrev=0 HEAD^) --diff -o release-notes.md
With ticket extraction
script:
- npx @shipi/cli generate --from $(git describe --abbrev=0 HEAD^) --tickets -o release-notes.md