GitLab Community Edition is an application to code, test, and deploy code together. It provides Git repository management with fine-grained access controls, code reviews, issue tracking, activity feeds, wikis, and continuous integration.
This chart stands up a GitLab Community Edition install. This includes:
- A GitLab Omnibus Pod
- At least 3 GB of RAM available on your cluster, in chunks of 1 GB
- Kubernetes 1.4+ with Beta APIs enabled
- PV provisioner support in the underlying infrastructure
- The ability to point a DNS entry or URL at your GitLab install
Regardless of your process, GitLab provides powerful planning tools to keep everyone synchronized.
- Epics: Plan and track work at the feature level by collecting multiple issues together in the same group.
- Roadmaps: Visualize multiple epics across time in a roadmap view
- Group Milestones: Create and manage milestones across projects, to work towards a target date from the group level. View all the issues for the milestone you’re currently working on across multiple projects.
- Group Issue Board: Issue board scoped at the group level so that you can view issues in all projects of that group.
- Multiple Group Issue Boards: Multiple Group Issue Boards, similar to Multiple Project Issue Boards.
- Powerful Issue Tracker: Quickly set the status, assignee or milestone for multiple issues at the same time or easily filter them on any properties. See milestones and issues across projects.
- Issue Boards: GitLab has Issue Boards, each list of an Issue Board is based on a label that exists in your issue tracker. The Issue Board will, therefore, match the state of your issue tracker in a user-friendly way.
- Burndown Charts: GitLab provides Burndown Charts as part of Milestones. This allows users to better track progress during a sprint or while working on a new version of their software.
- Issue Weights: GitLab lets you manage issues using Agile practices by setting the weight of an issue.
- Multiple Project Issue Boards: Large companies often have hundreds of different projects, all with different moving parts at the same time. GitLab Enterprise Edition allows for multiple Issue Boards for a single project so you can to plan, organize, and visualize a workflow for a feature or product release. Multiple Issue Boards are particularly useful for large projects with more than one team or in situations where a repository is used to host the code of multiple products.
- Related issues: Explicitly mark issues as related and track their status.
- Multiple assignees for issues: Assign more than one person to an issue at a time.
- Time tracking: Time Tracking in GitLab lets your team add estimates and record time spent on issues and merge requests.
- Due dates for individual issues: In GitLab, you can set a due date for individual issues. This is very convenient if you have small tasks with a specific deadline.
- Move issues between projects: You can move issues between projects in GitLab. All links, history, and comments will be copied and the original issue will reference the newly moved issue. This makes working with multiple issue trackers much easier.
- Issue Board Assignee Lists: Issue board lists that pull in issues assigned to a given user
- Create new issues from the Issue Board: With GitLab Issue Boards, you can create issues directly from the board and assign multiple labels allowing them to appear on multiple boards.
- Construct Issue Boards around issue labels: An Issue Board is based on its project’s label structure, therefore, it applies the same descriptive labels to indicate placement on the board. GitLab issues can appear on multiple issues and they still have meaning without the context of a particular board.
- Add multiple issues to the board: From an Issue Board, you can add multiple issues to lists in the board by selecting one or more existing issues.
- Configurable Issue Boards: Associate a board with a milestone, labels, an assignee, and a weight
- Issue Board Focus Mode: Get more information at a time with the Issue Board focus mode, which removes all unnecessary elements from the screen to show your Issue Boards.
- Confidential Issues: Keep your information secure with Confidential Issues. With GitLab, you can create confidential issues visible only for project members with Reporter access level or above.
- Automatically close issue(s) when a merge request is merged: With GitLab, you can use specific keywords to close one or more issues as soon as a merge request is merged.
- Enriched Markdown support: GitLab uses ‘GitLab Flavored Markdown’ (GFM). It extends the standard Markdown in a few significant ways to add some useful functionality.
- Issues and merge requests templates: By adding a description template to your MRs, users who create a new issue or merge request can select a template to help them to communicate effectively.
- Portfolio Management: Plan and track work at the project and portfolio level. Manage capacity and resources together with Portfolio Management.
- Learn more about Portfolio Management: Allow external users to create issues in your GitLab instance without an account and without access to anything except their issue. Manage tickets from the GitLab interface.
- Create issue from the email: Create an issue from an email by sending in the issue title and description.
- Create, search and view issues from a chat: Quickly create, view and search for issues straight from chat.
- Labels: Labels provide an easy way to categorize issues or merge requests based on descriptive titles as ‘bug’, or ‘documentation’.
- Configurable issue closing pattern: Define your own specific keywords to close one or more issues as soon as a merge request is merged.
- Free Guest users: Guest users don’t count towards the license count.
Create, view, and manage code and project data through powerful branching tools.
- Commit graph and reporting tools: GitLab provides commit graphs and reporting tools about collaborators’ work.
- Wiki-based project documentation: A separate system for documentation called Wiki, is built right into each GitLab project. Every Wiki is a separate Git repository.
- Search files with fuzzy file finder: GitLab provides a way to search a file in your repository in one keystroke.
- Fast-forward merge with the option to rebase: With this setting at the project level, you can ensure that no merge commits are created and all merges are fast-forwarded. When a fast-forward merge is not possible, the user is given the option to rebase.
- Squash and merge: Combine commits into one so that the main branch has a simpler to follow and revert history.
- Merge request approvals: When a project requires multiple sign-offs, GitLab Enterprise Edition enables you to make sure every merge request is approved by one or more people. Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project, and in turn improves your code’s quality.
- Merge Requests: Create merge requests and @mention team members to review and safely merge your changes.
- Merge conflict resolution: Preview merge conflicts in the GitLab UI and tell Git which version to use.
- File Locking: Working with multiple people on the same file can be a risk. Conflicts when merging a non-text file are hard to overcome and will require a lot of manual work to resolve. With GitLab Enterprise Edition Premium, File Locking helps you avoid merge conflicts and better manage your binary files by preventing everyone, except you, from modifying a specific file or entire directory.
- Revert specific commits or a merge request from the UI: Revert any commit or a single merge request from GitLab’s UI, with a click of a button.
- Powerful branching: A branch in Git contains the entire history that precedes it. It’s also created or moved towards instantly and easily shared.
- Protected branches: Granular permissions for branches you want to protect.
- Web IDE: Contribute to projects faster by using the Web IDE to avoid context switching in your local development environment. The Web IDE is integrated with merge requests and GitLab CI so that you can resolve feedback, fix failing tests and preview changes live with client-side evaluation without leaing the Web IDE.
- Cherry-picking changes: Cherry-pick any commit in the UI by simply clicking the Cherry-Pick button in a merged merge request or a specific commit.
- Activity Stream: View a list of the latest commits, merges, comments, and team members on your project.
- Custom Notifications: Be notified by email, Slack, or ToDos anytime there are changes to an issue or merge request. Restrict push and merge access to certain users: Extend the base functionality of protected branches and choose which users can push or merge to a protected branch.
- Protected tags: Granular permissions for tags you want to protect.
- Built-in and custom project templates: When creating a new project, you can choose to kickstart your project from a predefined template that already has some working example code and CI preconfigured. In addition, you can define a custom project template by assigning a group. Child projects of this group are available as templates when creating a new project.
- The most comprehensive import feature set: GitLab can import projects and issues from more sources (GitHub, BitBucket, Google Code, FogBugz, Gitea and from any git URL) than GitHub or any other VCS. We even have you covered for your move from SVN to Git with comprehensive guides and documentation.
- Allow edits from upstream maintainers in the branch: When a user opens a merge request from a fork, they are given the option to allow upstream maintainers to collaborate with them on the source branch. This allows the maintainers of the upstream project to make small fixes or rebase branches before merging, reducing the back and forth of accepting community contributions.
- Image Discussions: Within a committed view or a merge request diff view, and with respect to a specific location of an image, you can have a resolvable discussion. Have multiple discussions specifying different areas of an image. Merge Request Commit Discussions: Comment on a commit within the context of a merge request itself
- Create merge request from the email: Create a merge request from the email by sending in the merge request title, description, and source branch name.
- Lock Discussion: Lockdown continued the discussion in an issue or merge request as a Master role or higher, to prevent further abuse, spam, or unproductive collaboration. Custom Additional Text in Emails: Include custom additional text in all emails sent by GitLab, such as including disclaimer text
- First-time contributor badge: Highlight first-time contributors in a project.
- Multiple approvals in code review: In GitLab, to ensure strict code review, you can require a specific number of approvals on a merge request by different users before being able to merge it. You can undo an approval by removing it after the fact. Ease of migration from other providers: GitLab lets you easily migrate all reports, issues and merge request data from your previous provider.
- Push rules: Reject new code and commits that don’t comply with company policy.
- Import from GitLab.com: Import projects from GitLab.com to a private GitLab instance. Limit project size at a global, group, and project level: Ensure that disk space usage is under control. Reject unsigned commits: GitLab Enterprise Edition Premium allows you to enforce GPG signatures by rejecting unsigned commits.
- Verified Committer: Verify that a push only contains commits by the same user performing the push. Git has smaller size requirements: A single repository in Git is typically a number of times smaller than the same repository in SVN. Merge when pipeline succeeds: When reviewing a merge request that looks ready to merge but still has one or more CI/CD jobs running, you can set it to be merged automatically when the jobs pipeline succeeds.
- Snippets: Store and share code snippets to engage in a conversation about that piece of code. You can embed snippets on any blog or website using a single line of code. Xcode integration: Open Xcode projects in Xcode directly from GitLab. Starting in Xcode 10, you can also sign in to GitLab in Xcode and access projects directly from the Xcode interface.
- Merge request versions: View and compare merge request diffs from the merge request UI. Inline commenting and discussion resolution: Code or text review is faster and more effective with inline comments in merge requests. Leave comments and resolve discussions on specific lines of code. In GitLab, Merge Request inline comments are interpreted as a discussion. You can configure your project to only accept merge requests when all discussions are resolved.
- GPG Signed Commits: Sign commits and proves that a commit was performed by a certain user. Ability to edit all fields of a merge request: GitLab Merge Requests are editable by the author, the project’s owners and users with master access. Every field is editable, as well as the target branch. Work in Progress merge requests (WIP): Prevent merge requests from accidentally being accepted before they’re completely ready by marking them as Work In Progress (WIP). This gives you all the code review power of merge requests while protecting unfinished work. Create projects with Git push: Push new projects to the desired location and a new private project will automatically be created.
- Project badges: First-class support for badges that are commonly added to a Project’s README, so that they are shown with the project description.