GitLab #
Gitlab Runner in QEMU/KVM #
First deploy CoreOS in a virtual machine.
Then deploy the Gitlab Runner as a Docker container itself. Following the documentation:
docker run -d --name runner --restart always \
-v /etc/gitlab-runner:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:alpine
docker exec -it runner register
You may need to install your CA certificate both on the CoreOS VM as well as in the runner configuration first:
scp /etc/ipa/ca.crt runner: ssh runner sudo mv ca.crt /etc/ssl/certs/my-ca.pem sudo update-ca-certificates sudo mkdir -p /etc/gitlab-runner/certs sudo cp /etc/ssl/certs/my-ca.pem /etc/gitlab-runner/certs/ca.crt
Reboot the VM and/or restart the Docker service afterwards.
Gitlab API #
Official Documentation is available with all the v4 API routes.
Bash Alias #
A useful bash alias for httpie
to interact with the GitLab API:
gitlab() {
meth=${1:?http method};
api=${2:?api path};
shift 2;
http --check-status \
"$meth" "https://git.rz.semjonov.de/api/v4/$api" \
private-token:"$TOKEN" \
"$@";
}
Then export your personal access token to env:
read TOKEN && export TOKEN
Usage #
Chained to jq
, the usage becomes:
$ gitlab GET projects | jq 'map(.name)'
[
"deploy",
"bookstack",
"preseedinjector",
"frontend",
"sbupdate",
"..."
]
$ gitlab PUT projects/11 wiki_enabled=false
HTTP/1.1 200 OK
Cache-Control: max-age=0, private, must-revalidate
Connection: keep-alive
Content-Length: 2022
Content-Type: application/json
Date: Fri, 27 Jul 2018 13:41:41 GMT
...
Examples #
Get the Wiki Status #
A stupid loop to get the wiki_enabled
status of projects:
for i in {1..116}; do
project=$(gitlab GET projects/$i 2>/dev/null) \
&& wiki=$(jq .wiki_enabled <<<"$project") \
&& path=$(jq .path_with_namespace <<<"$project") \
&& echo "$i $path: $wiki";
done