GitLab consists of many subprojects. A curated list of GitLab projects can be found at the GitLab Engineering projects page.
When creating a new project, please follow these steps:
gitlab-orgfor anything related to the application.
gitlab-comfor anything strictly company related.
To avoid complications with context and permissions inheritance, creating projects directly under these root namespaces (e.g.
gitlab-org/NEW_PROJECT) is discouraged. Only Maintainers can create projects there when necessary, but should also avoid doing so for the reason mentioned before.
If you don't have the permissions to create a project there, you can create an Access Request issue and ping one of the Maintainers (gitlab-org, and gitlab-com) for approval.
mainas the name of the default branch.
gitlab-org/gitlabMIT License, but contact legal before using it.
CONTRIBUTING.mdin the repository. It is easiest to simply copy-paste the
gitlab-org/gitalyDCO + License section verbatim.1. Add any further relevant details to the Contribution Guide. See Contribution Example.
CONTRIBUTING.mdfrom the project's
Users can request accesssetting disabled to discourage granting accidental external access.
When changing the settings in an existing repository, it's important to keep communication in mind. In addition to discussing the change in an issue and announcing it in relevant chat channels (e.g.,
#development), consider announcing the change in the Engineering Week-in-Review document. This is particularly important for changes to the GitLab repository.
Following is the default
.gitlab-ci.yml config that all projects under the
gitlab-com groups should use:
include: - template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml' default: tags: - gitlab-org
Or if the project needs to support stable/security branches, use the following instead:
workflow: rules: # For merge requests, create a pipeline. - if: '$CI_MERGE_REQUEST_IID' # For `master` branch, create a pipeline (this includes on schedules, pushes, merges, etc.). - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' # For tags, create a pipeline. - if: '$CI_COMMIT_TAG' # For stable, and security branches, create a pipeline. - if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/' - if: '$CI_COMMIT_BRANCH =~ /^security\//' default: tags: - gitlab-org
workflowto create pipelines for MR,
master, and tags only.
gitlab-orgtag to be used by default which corresponds to cost-optimised runners, with no Docker support. Jobs that need Docker support would use the
If a job requires the usage of Docker, it needs to be defined only in the context of the specific job with the
sast: tags: - gitlab-org-docker
If a job requires the usage of Windows, SaaS runners on Windows should be used. For the exact configuration please check the SaaS runner on Windows documentation.
To publish a project to a package repository, please follow these directions.