Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/glensc/mrm-task-git-config-gitlab-deployments
Fetch GitLab deployments as git refs
https://github.com/glensc/mrm-task-git-config-gitlab-deployments
Last synced: 25 days ago
JSON representation
Fetch GitLab deployments as git refs
- Host: GitHub
- URL: https://github.com/glensc/mrm-task-git-config-gitlab-deployments
- Owner: glensc
- License: mit
- Created: 2020-06-04T15:20:50.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-07-12T01:36:08.000Z (over 1 year ago)
- Last Synced: 2024-12-13T08:04:35.526Z (about 1 month ago)
- Language: JavaScript
- Size: 39.1 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mrm task to setup GitLab deployments as git refs
A [mrm] task that adds [GitLab deployments git refs](#fetch-gitlab-deployments-as-git-refs).
[mrm]: https://mrm.js.org/
## 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](https://github.com/glensc)
MIT License, see the included [LICENSE](LICENSE) file.
## Fetch GitLab deployments as git refs
GitLab stores each successful deployment as [git ref in project repository][check-out-deployments-locally].
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
...
```[check-out-deployments-locally]: https://docs.gitlab.com/ee/ci/environments/#check-out-deployments-locally
However, the environment names are rather cryptic,
it's useful for project to setup nice mapping instead.Create `config/git-config.ini`:
```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
```