Deploy Token

We use deploy tokens in requirements/ci.txt to allow the CI system to access private apps e.g:

-e git+

To create a deploy token follow the GitLab Deploy tokens documentation.


Copy the Name to “Username (optional)”. The Username is the first part of the URL e.g. work-deploy-token in the example above.

For Scopes, I selected read_repository.

GitLab Branches


Before using Delete Merged Branches, check the list of merged branches to see if there are any you think you might want.

  1. To delete untracked remotes on your local machine, see Git Branches

  2. We have a script to delete untracked-branches

New Repository

To create a new repository:

  • Log into using our company login details.

  • Click on New Project.

  • In the Project path section select the kb group. Select the correct Visibility Level and click Create Project.

  • You should now be able to clone the repository, add a README.rst file and then push.

  • Go to the project Settings, Repository, and scroll down to Protected branches and unprotect the master branch so developers can push to it.

  • Go to the project Settings, CI/CD, and scroll down to Runners and in the Specific Runners column enable the company ci runner in the Runners activated for this project section. In the Shared Runners column click on the Disable shared runners button.

To move a repository from GitHub to GitLab: Migrate from GitHub

Continuous Integration


To set-up a runner see Continuous Integration.


To set-up GitLab Multi-Runner and Docker, see the following section…

GitLab Multi-Runner and Docker

From Install using official GitLab repositories

Install Docker:

Create a Docker image, by following the instructions in the README.rst file in

Install gitlab-runner:

curl -L | sudo bash
sudo apt-get install gitlab-runner


Register the runner using sudo because you cannot enable the service unless you are root.

From Registering Runners

Get a registration token, by browsing to your group and selecting Settings, CI / CD, Runners e.g:



sudo -i
gitlab-runner register

Sample output:

Please enter the gitlab-ci coordinator URL (e.g.
Please enter the gitlab-ci token for this runner:
Please enter the gitlab-ci description for this runner:
Please enter the gitlab-ci tags for this runner (comma separated):
INFO[0204] eabd2c42 Registering runner... succeeded
Please enter the executor: shell, parallels, docker, docker-ssh, ssh:
Please enter the Docker image (eg. ruby:2.1):
Runner registered successfully.

Run in debug mode:

gitlab-runner --debug run

From Install GitLab Runner manually, to install the service:

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

To start the service:

gitlab-runner start

To view logging:

tail -f /var/log/syslog

To set-up Continuous Integration for the project, see Continuous Integration.


To cleanup Docker containers, see Docker.

npm package

Patch, install and publish


Make sure to stop ember serve!


Make sure to update package.json with the latest versions and remove any link packages.


We only publish apps to our package repository (see gitlab_npm_package above). We do not publish projects. To release one of our projects, follow the Release and Deploy notes in the README.rst file.

cd ~/dev/app/app-or-project/front/

# check there are no link dependencies
cat package.json | grep file
# check there is no uncommitted code
git status

rm -rf dist/ node_modules/ /tmp/embroider/
pnpm version patch

# if releasing a project (for 'ember-cli-new-version')
python ../ --version-config

pnpm install
git add config/environment.js package.json package-lock.json
git commit -m "prep for release - ember"

pnpm publish


To use the @kb:registry (see gitlab_npm_package above), I think the package name needs to be prefixed with @kb e.g. "name": "@kb/ember-work"

Personal Access Token


We are using a single GitLab repository (package) for all of our Packages.

Find the Project ID in GitLab:

  • Find the project.

  • Click Settings, General



Create a personal access token:


I am sure some of the Scopes can be removed…

Then set the registry and auth token for pnpm (replacing the Project ID and access token) e.g:

# set the auth token
pnpm config set '//' "my-gitlab-auth-token"
# set the registry (update the project ID)
pnpm config set @kb:registry


I guess the @kb part of the command is from the URL e.g.


I think we can only have one package repository. To check, npm config list or cat ~/.npmrc.