Posts about gitlab

Setting up a GitLab environment with the GitLab Environment Toolkit

This post is a notebook. It contains instructions to set up and create a GitLab environment in Google Cloud Platform (GCP) using the GitLab Environment Toolkit (GET), installed into a VS Code Dev Container.

The idea is that it's a literate sysadmin runbook, which can be copied and repeated within my get-container.

Notebook instructions

To use this, you must be running Jupyter Notebook with the Bash kernel installed. This is explored in detail on my earlier blog post. Jupyter and the extension should already have been installed when the GET Dev Container was provisioned. If not, then re-run the playbook:

ansible-playbook $WORKSPACE/.devcontainer/get/setup.yaml

Then start jupyter:

jupyter notebook --no-browser --allow-root

(this is aliased to notebook)

Select Kernel

Once jupyter is running in the dev container, you can open this notebook and select the Bash kernel from the Select Kernel button at the top of the buffer. The Bash kernel directly runs bash shell commands, rather than python.

GitLab Profile Multi-project Pipeline

I my previous post I relayed setting up a GitLab scheduled profile to add blog posts from this site's RSS feed into my personalised GitLab profile. I discussed setting up a new profile project, creating the README, fetching and parsing the RSS and inserting it into the README, and creating a pipeline to add the changed README back to the profile project. Finally I scheduled the pipeline to run once daily.

Since I don't actually write a post every single day, this mainly runs to no purpose, consuming CI minutes and filling the job logs with pointless runs. It would be better if the pipeline had a job to update the README only after I've actually made a blog post.

Read more…

Personalised GitLab Profile page

On November 22nd, GitLab announced the release of 14.5, in which you can personalise your profile with a README. This README gives you scope to spice up your GitLab profile page quite a bit, for instance you could:

  • Add more details about yourself, beyond what you can fit into GitLab's small biography field
  • Link to other pages, or to projects you would like to feature, turning your profile into a portfolio
  • Include formatting with any of the markup formats which GitLab can understand

This weekend, I decided to turn my personal GitLab profile into something a bit more personalised, and include an automatically updated list of blog posts from this blog's RSS feed.

Read more…

Life Change for 2020: new job, remote working

It's happened again: my old job is redundant due to circumstance beyond my control, and I was made to find a new one. Like last time, I found a new, better job very quickly. Unlike last time though, I was prepared, and had even started applying…

2020-12-15: UPDATE — this was written in July but unpublished. I have had a few people ask about how I got a new job so darned fast, and I promised to blog about it. I've finally moved the blog off from GitHub Pages, and now at the end of the year is as good a time as any to publish this.

Read more…

Mad month of April


EDIT: 2021-05-18 A year after I wrote this, I found it floating around on an old laptop which has been untouched. It's a bit of a time capsule, and interesting to compare with what I later wrote about the same month. In some ways I think that it's better.


What a month April was! I've come through a turn of events and now things look stable enough that I can write about them.

TL;DR: Job change after COVID-19 fall-out, Staying at Home, loss and hope.

Read more…

Password databases: setting up password-store on a Unix computer

Having covered what pass is, why I'm using it, and the required supporting tools gnupg, git, ssh and a private git remote, it's time to go over how to put the system together.

Setting it all up on a Unix computer is fairly straight-forward. Getting it onto an Android is a bit different. So in this post I'll cover how the pieces of the system fit together, and then walk through setting it up on Unix.

Synchronising your local password-store git repository with your remote store is done a bit differently depending if this is the first time you're setting up the remote, or if you already have a remote and you wish to merge it into your new local. I'll cover that too.

Read more…