Projects
In GitLab, you can create projects for hosting your codebase, use it as an issue tracker, collaborate on code, and continuously build, test, and deploy your app with built-in GitLab CI/CD.
Your projects can be available publicly, internally, or privately, at your choice. GitLab does not limit the number of private projects you create.
Project's features
When you create a project in GitLab, you'll have access to a large number of features:
Issues and merge requests:
-
Issue tracker: Discuss implementations with your team within issues
- Issue Boards: Organize and prioritize your workflow
- Multiple Issue Boards (EES/EEP): Allow your teams to create their own workflows (Issue Boards) for the same project
-
Repositories: Host your code in a fully
integrated platform
- Protected branches: Prevent collaborators from messing with history or pushing code without review
- Protected tags: Control over who has permission to create tags, and prevent accidental update or deletion
- Signing commits: use GPG to sign your commits
-
Merge Requests: Apply your branching
strategy and get reviewed by your team
- Merge Request Approvals (EES/EEP): Ask for approval before implementing a change
- Fix merge conflicts from the UI: Your Git diff tool right from GitLab's UI
- Review Apps: Live preview the results of the changes proposed in a merge request in a per-branch basis
- Labels: Organize issues and merge requests by labels
- Time Tracking: Track estimate time and time spent on the conclusion of an issue or merge request
- Milestones: Work towards a target date
- Description templates: Define context-specific templates for issue and merge request description fields for your project
- Slash commands (quick actions): Textual shortcuts for common actions on issues or merge requests
GitLab CI/CD:
-
GitLab CI/CD: GitLab's built-in Continuous Integration, Delivery, and Deployment tool
- Container Registry: Build and push Docker images out-of-the-box
- Auto Deploy: Configure GitLab CI/CD to automatically set up your app's deployment
- Enable and disable GitLab CI
-
Pipelines: Configure and visualize
your GitLab CI/CD pipelines from the UI
- Scheduled Pipelines: Schedule a pipeline to start at a chosen time
- Pipeline Graphs: View your entire pipeline from the UI
- Job artifacts: Define, browse, and download job artifacts
-
Pipeline settings: Set up Git strategy (choose the default way your repository is fetched from GitLab in a job),
timeout (defines the maximum amount of time in minutes that a job is able run), custom path for
.gitlab-ci.yml
, test coverage parsing, pipeline's visibility, and much more
- GitLab Pages: Build, test, and deploy your static website with GitLab Pages
Other features:
- Cycle Analytics: Review your development lifecycle
- Syntax highlighting: An alternative to customize your code blocks, overriding GitLab's default choice of language
Project's integrations
Integrate your project with Jira, Mattermost, Kubernetes, Slack, and a lot more.
New project
Learn how to create a new project in GitLab.
Fork a project
You can fork a project in order to:
- Collaborate on code by forking a project and creating a merge request from your fork to the upstream project
- Fork a sample project to work on the top of that
Import or export a project
- Import a project from:
- Export a project from GitLab
- Importing and exporting projects between GitLab instances
Project's members
Learn how to add members to your projects.
Leave a project
Leave project will only display on the project's dashboard when a project is part of a group (under a group namespace). If you choose to leave a project you will no longer be a project member, therefore, unable to contribute.