0.0.7 • Published 2 years ago

mrm-task-git-config-gitlab-deployments v0.0.7

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

mrm task to setup GitLab deployments as git refs

A mrm task that adds GitLab deployments git refs.

What it does

  • Creates config/git-config.ini.

Usage

npm install -g mrm mrm-task-git-config-gitlab-deployments
mrm git-config-gitlab-deployments

Authors and license

Elan Ruusamäe

MIT License, see the included LICENSE file.

Fetch GitLab deployments as git refs

GitLab stores each successful deployment as git ref in project repository.

Making them visible, is simple as fetch refs:

git fetch origin +refs/environments/*:refs/remotes/origin/environments/*
...
 * [new ref]         refs/environments/production-ee-adm-r4fujn/deployments/10 -> origin/environments/production-ee-adm-r4fujn/deployments/10
 * [new ref]         refs/environments/production-ee-fro-fc3ijj/deployments/11 -> origin/environments/production-ee-fro-fc3ijj/deployments/11
 * [new ref]         refs/environments/production-ee-xqj5u1/deployments/33     -> origin/environments/production-ee-xqj5u1/deployments/33
...

However, the environment names are rather cryptic, it's useful for project to setup nice mapping instead.

Create config/git-config.ini:

; invoke from shell:
; git config --add include.path $(git rev-parse --show-toplevel)/config/git-config.ini
[remote "origin"]
	fetch = +refs/environments/production-lv-78lzku/deployments/*:refs/remotes/origin/environment/production/lv/*
	fetch = +refs/environments/production-lt-c7huh2/deployments/*:refs/remotes/origin/environment/production/lt/*
	fetch = +refs/environments/production-ee-cv70fb/deployments/*:refs/remotes/origin/environment/production/ee/*
	fetch = +refs/environments/test-ee-30f7yr/deployments/*:refs/remotes/origin/environment/test/ee/*
	fetch = +refs/environments/test/pebbles/deployments/*:refs/remotes/origin/environment/test/ee/*

Make your git to use that config and fetch refs:

git config --add include.path $(git rev-parse --show-toplevel)/config/git-config.ini
git fetch

To cleanup the refs that were originally fetched:

git for-each-ref refs/remotes/origin/environments/ --format='%(refname)' | xargs -l1 git update-ref -d