/gitlab-badges

It's like a very tiny shields.io (without website) for your private GitLab instance…

Primary LanguageJavaScriptMIT LicenseMIT

GitLab Badges

License Pipeline

This server acts like a very tiny shields.io to generate SVG badges for your private GitLab instance. Uses shield.io's gh-badges to generate them.

Quick Start

Directly

You'll need node.js to run this.

git clone https://github.com/sebbo2002/gitlab-badges.git
cd ./gitlab-badges
npm install
GITLAB_URL=https://gitlab.example.com GITLAB_TOKEN=**** npm start

Docker

You can also use the docker container to run this script:

docker run -e GITLAB_URL=https://gitlab.example.com -e GITLAB_TOKEN=**** sebbo2002/gitlab-badges

Configuration

Use environment variables to set login credentials and pushover tokens:

GITLAB_URL GitLab URL (https://gitlab.example.com)
GITLAB_TOKEN A private Token which is used to query the GitLab API
PORT Port to listen to, default to 8888
BADGE_STYLE Optional, allows to specify the used [badge style](http://shields.io/#styles)
MAX_CACHE_SIZE Optional, to setup the living cache size, defaults to 50

Example

GITLAB_URL=https://gitlab.example.com \
GITLAB_TOKEN=******************** \
BADGE_STYLE=flat-square \
npm start
or
docker run --rm \
  -p 8888 \
  -e 'GITLAB_URL=https://gitlab.example.com' \
  -e 'GITLAB_TOKEN=********************' \
  -e 'BADGE_STYLE=flat-square' \
  sebbo2002/gitlab-badges

API

/:projectId/:branch/build

Generates a badge with the current build state of the latest commit in the given branch. You'll find your project's ID in the GitLab project settings.

Example
https://gitlab-badges.example.com/1337/master/build

/:projectId/:branch/coverage

Generates a badge with the current build coverage of the latest commit in the given branch. You'll find your project's ID in the GitLab project settings.

Example
https://gitlab-badges.example.com/1337/master/coverage

/cache

Returns all currently cached data as a JSON object.

/ping

Returns pong. Usually helpful to monitor the server in a very basic way.

Todo

  • Unit Tests 🙈
  • In Code Documentation ✏️