All Projects → jk1z → gitlab-release-note-generator

jk1z / gitlab-release-note-generator

Licence: MIT license
A Gitlab release note generator

Programming Languages

javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to gitlab-release-note-generator

podman-gitlab-runner
Use Podman as a custom executor for your Gitlab CI
Stars: ✭ 87 (-1.14%)
Mutual labels:  gitlab, gitlab-ci
gitlab-runner
Gitlab Runner on Alpine Linux [Docker]
Stars: ✭ 17 (-80.68%)
Mutual labels:  gitlab, gitlab-ci
Crane
⬆ A GitLab CI ready image to upgrade services in Rancher
Stars: ✭ 90 (+2.27%)
Mutual labels:  gitlab, gitlab-ci
Kdtool
Kubernetes deployment utility
Stars: ✭ 47 (-46.59%)
Mutual labels:  gitlab, gitlab-ci
Gitlabapiclient
GitLab API client
Stars: ✭ 138 (+56.82%)
Mutual labels:  gitlab, gitlab-ci
Kira
🐿 Project management framework with deep philosophy underneath
Stars: ✭ 61 (-30.68%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Dashboard
📺 TV dashboard for a global view on Gitlab Pipelines
Stars: ✭ 107 (+21.59%)
Mutual labels:  gitlab, gitlab-ci
gitlab-ci-discord-webhook
⛓ Here's your serverless solution for sending build status from GitLab CI to Discord as webhooks.
Stars: ✭ 32 (-63.64%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Local
Tired of pushing to test your .gitlab-ci.yml?
Stars: ✭ 134 (+52.27%)
Mutual labels:  gitlab, gitlab-ci
Python Gitlab
Python wrapper for the GitLab API
Stars: ✭ 1,679 (+1807.95%)
Mutual labels:  gitlab, gitlab-ci
Lab
Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab
Stars: ✭ 911 (+935.23%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Monitor
A simple dashboard for monitoring GitLab CI builds. Alpha version.
Stars: ✭ 152 (+72.73%)
Mutual labels:  gitlab, gitlab-ci
Glci
🦊 Test your Gitlab CI Pipelines changes locally using Docker.
Stars: ✭ 471 (+435.23%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Dashboard
📊 Dashboard for monitoring GitLab CI builds and pipelines for TV
Stars: ✭ 79 (-10.23%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Pipeline Php
☕️ Docker images for test PHP applications with Gitlab CI (or any other CI platform!)
Stars: ✭ 451 (+412.5%)
Mutual labels:  gitlab, gitlab-ci
Lab
lab is a cli client of gitlab like hub
Stars: ✭ 94 (+6.82%)
Mutual labels:  gitlab, gitlab-ci
gitlab-job-log-viewer
Browser extension for code highlighting raw logs in Gitlab CI
Stars: ✭ 21 (-76.14%)
Mutual labels:  gitlab, gitlab-ci
gitlab-setup
A Packer / Terraform / Ansible configuration to install Gitlab and Gitlab-CI
Stars: ✭ 53 (-39.77%)
Mutual labels:  gitlab, gitlab-ci
Semantic Release
📦🚀 semantic-release written in go
Stars: ✭ 113 (+28.41%)
Mutual labels:  gitlab, gitlab-ci
Gitlab Ci Stack
Full CI pipeline project based on Gitlab & Gitlab CI running Docker, completely automated setup by Vagrant & Ansible, providing Let´s Encrypt certificates for private Servers, multiple Gitlab-Runners and the Gitlab Container Registry, incl. GitLab Pages
Stars: ✭ 146 (+65.91%)
Mutual labels:  gitlab, gitlab-ci

CircleCI codecov

Gitlab Release Note Generator

A Gitlab release note generator that generates release note on latest tag

Feature

  • Generate release note on the latest tag based on merge requests and issues

  • Distinguished title with issues or merge requests that have the following labels: enhancement, breaking change, feature and bug

    (Note. if an issue or merge request that has 2 or more labels, that issue or merge request will be displayed again under the corresponding title)

  • Can be integrated as a CD service. Tutorial below

How it works

  1. Find the latest tag
  2. Find the previous tag that is on the same branch as the latest tag.
  3. Locate the date range between the latest and the previous tag. If there is only a tag in the project, then the from date will be the project creation date and the to date will be that tag's creation date.
  4. Find all Merged merge requests and Closed issues within that time range
  5. Generate a release note/changelog based on the findings above.

Software requirement

  • NodeJS ^10.x.x OR docker
  • A gitlab personal access token with api permission. How to Tutorial

How to run this app

Docker method

docker container run -e GITLAB_PERSONAL_TOKEN=gitlabSampleToken -e GITLAB_PROJECT_ID=12345678 -e TARGET_BRANCH=sampleTargetBranch -e TARGET_TAG_REGEX=sampleRegex 00freezy00/gitlab-release-note-generator

Nodejs Method

  • Fill in the parameters mainly GITLAB_PERSONAL_TOKEN, GITLAB_PROJECT_ID, TARGET_BRANCH(optional. Use it only if you want to find tags in the same specific branch) and TARGET_TAG_REGEX (optional. Can use it to distinguish master or develop branch version bump) in app/env.js or feed it in process.env through npm
  • npm install
  • npm start
  • After couple seconds, latest tag should have a release note

Gitlab CI method

  1. Need to pass in gitlab personal access token as a CI variable

  2. c/p the .sample.gitlab-ci.yml to your gitlab ci.

    What's included in the sample gitlab CI script

    • generate-release-note job. Generates a release note on the tag after detecting tag push with this regex /^[0-9]+.[0-9]+.[0-9]+(-[0-9]+)?$/
    • tag-after-deployment job (optional). Tag the commit that contains a version bump with this regex /^[0-9]+.[0-9]+.[0-9]+(-[0-9]+)?$/. Require ssh key to work.
  3. Customise the gitlab ci script to your need

Reference gitlab repo: generator test

Options

These can be specified using environment variables

  • GITLAB_API_ENDPOINT: Your gitlab instaqnce's endpoint
  • GITLAB_PERSONAL_TOKEN: Grant api read/access permission
  • GITLAB_PROJECT_ID: Your project id that is located under settings > general
  • TARGET_BRANCH: The branch to look for release tags (ie master)
  • TARGET_TAG_REGEX: Regular expression of the release tags to search (ie: ^release-.*$)
  • TZ: The timezone for your release notes
    • Default "Australia/Melbourne"
  • ISSUE_CLOSED_SECONDS: The amount of seconds to search after the last commit, useful for Merge Requests that close their tickets a second after the commit.
    • Default 0

Building and Running locally

export GITLAB_PERSONAL_TOKEN=MYGITLABACCESSTOKEN
export GITLAB_PROJECT_ID=99
export GITLAB_API_ENDPOINT=https://my.gitlab.com/api/v4

// run docker to build my local version
docker build -t local-gitlab-release-note-generator .

// run my local version
docker container run \
  -e TZ=America/New_York \
  -e GITLAB_API_ENDPOINT=$GITLAB_API_ENDPOINT \
  -e GITLAB_PERSONAL_TOKEN=$GITLAB_PERSONAL_TOKEN \
  -e GITLAB_PROJECT_ID=$GITLAB_PROJECT_ID \
  -e TARGET_BRANCH=master \
  -e TARGET_TAG_REGEX=^release-.*$ \
  local-gitlab-release-note-generator

TODO:

Feature

  • Release notes generation on selected tag
  • Customise template for the release note

Credits

Thanks to github-changelog-generator for inspiring me to make this app. Sorry, I couldn't wait any longer for that gitlab feature to be merged in.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].