Skip to content

BEAR GitLab Service

Advanced Research Computing provides a self-hosted GitLab service (https://gitlab.bham.ac.uk) at the University, offering a secure, collaborative platform for managing source code and version control. Designed to support research, this service allows university users to create, share, and maintain repositories within a controlled environment that ensures data privacy and security.

Key features

  • Version Control using git: Track changes to code and documents, enabling collaboration and rollback capabilities.
  • Collaboration Tools: Facilitate teamwork with features such as merge requests, issue tracking, and project management.
  • CI/CD Integration: Automate testing and deployment processes to streamline development workflows.

Accessing the service

To access the GitLab service you will first need adding to a BEAR project that has the GitLab facility enabled. See the following link for further information:
Edit a Single BEAR Project

Once you are a member of an appropriate project you can access the GitLab service at https://gitlab.bham.ac.uk by using your University of Birmingham credentials.

GitLab roles and BEAR projects

A user's status in a BEAR project determines their role in the associated GitLab project, which affects their permissions. The roles map as follows:

BEAR Project Role GitLab Role
PI Owner
Data Manager Maintainer
Member Developer

Further information about GitLab roles and permissions is available in the GitLab documentation.

Default Branch Requirement

A default branch needs to be set for each GitLab project and is typically set to main or master. However, the default branch must be created by a user with the Maintainer or Owner role. If you are a standard member of a BEAR project (and therefore a Developer in GitLab) then you will need to contact your project's PI or Data Manager to set the default branch for your GitLab project.

If you try to push to a GitLab project without a default branch set, you will receive an error message similar to the following:

remote: A default branch (e.g. main) does not yet exist for bear_project_name/repository_name
remote: Ask a project Owner or Maintainer to create a default branch: