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: