Personal access tokens Branch rules overview Community Assistance Built-in CI/CD Innersourcing Project import from various external systems Ease of migration from other providers Group migration between GitLab instances Project migration between GitLab instances Project exports Issues Tasks Description Templates Check Lists File Attachments Emoji reactions GitLab Flavored Markdown Threaded Discussions Filterable System Activity Track Title Changes Labels Prioritized Labels Milestones Issue Due Dates Assignee Lock Discussion Confidential Issues Linked Issues Move Issue to Another Project Mark Issue as Duplicate Anticipate Duplicate Issue New Issue via Email Bulk Edit Issues Bulk Edit Merge Requests Export Issues CSV file Import Issues CSV file Quick Actions Custom Notifications To-Do List Sub-addressing Email Servers Catch-all Email Mailboxes Jira Integration Jira Issues Integration Jira Issues Importer Jira Development Panel Integration Project Issue Board Group Issue Board Multiple Project Issue Boards Total Issue Count per Issue Board List Issue Board Label Lists Issue Board Focus Mode Reorder Issues in Issue Board List Add Multiple Issues to Project Issue Board New Issue in Issue Board List Time Tracking Track Time Spent Track Estimated Time Required Value Stream Management Powerful branching Protected branches Commit graph and reporting tools Create new branches from issues Allow edits from upstream maintainers in a fork Search files with fuzzy file finder Fast-forward merge with option to rebase Squash and merge Remote repository push mirroring Xcode integration Cherry-picking changes Sign Commits with GPG Sign Commits with SSH Sign Commits and Tags with X.509 Protected tags Git tags Git LFS 2.0 support Keep personal email private Download single repository files AsciiDoc S/MIME Signed Commits Optional Merge Request Approvals Suggest changes to merge requests Multi-line diff comments Image Discussions Merge Request Commit Discussions Create merge request from email First time contributor badge Cleaner diffs for Jupyter Notebook files Improved rich text editor suggest changes experience Comment Templates GitLab CLI - `glab` Corporate Network Support for GitLab Duo OAuth Authentication in JetBrains IDEs Clone project inside Visual Studio Code Open project in Visual Studio Code Insert Snippets directly in Visual Studio Code View issues and merge requests in Visual Studio Code View merge request changes in VS Code Autocomplete GitLab CI Variables in VS Code View code review comments in VS Code Merge request reviews in VS Code Comments indicator for merge request reviews in VS Code Check out branches of merge requests in Visual Studio Code Create and apply patches in VS Code Remote Repositories for GitLab in VS Code HTTP agent options in JetBrains IDEs Deduplicate Git objects for forked repositories Git protocol v2 support Partial Clone Git Server Hooks Web IDE Extension marketplace in the Web IDE on GitLab.com EditorConfig in the Web IDE Paste images in Markdown in the Web IDE All new rich text editor experience Use GitLab Pages without wildcard DNS Wiki based project documentation WYSIWYG Editing in Wiki Design Management GitLab-Figma Plugin Project Level Value Stream Analytics Built-in Container Registry Preview your changes with Review Apps Environments Auto-stop New features every month One integrated tool Choice and flexibility Access to the server Runs on metal Run your own software on your instance Use your configuration management software Use standard Unix tools for maintenance and monitoring Single package installation Single configuration file Basic backup and restore mechanism without additional software IPv6 ready Access to and ability to modify source code Global Search API Project webhooks File hooks Display merge request status for builds on Jenkins CI Manage groups Subgroups: groups within groups Share groups with other groups Share projects with other groups Project and group visibility Organization Restrict SSH Keys Customizable system header and footer messages Granular user roles and flexible permissions Token Permissions Merge Requests Merge conflict resolution Auto-merge Revert specific commits or a merge request from the UI Launch Gitpod Workspaces directly from GitLab Snippets Merge request versions Inline commenting and discussion resolution Activity Stream CI/CD Horizontal Autoscaling DevOps Score Database load balancing for PostgreSQL Deploy from Chat Create, search and view issues from chat Mattermost integration Google Hangouts integration Built for using containers and Docker Docker image support Container registry webhooks Container registry high availability Supports private container registries SaaS container registry offering Use container registry through REST API Container registry storage management Group-level Docker registry browser Use search to find and container images Helm chart repository support Cloud Native Container debugging with an integrated web terminal Container image cleanup policies CI/CD variables Comprehensive pipeline graphs Online visualization of HTML artifacts Browsable artifacts Latest artifacts locked to prevent deletion Scheduled triggering of pipelines Code Quality MR Widget Protected variables Nested variable expansion Environments and deployments Per-environment permissions Create a release from the UI Environments history Environment-specific variables Group-level variables Customizable path for CI/CD configuration Object storage for artifacts Object storage for LFS Run CI/CD jobs on Windows Run CI/CD jobs on macOS Run CI/CD jobs on Linux ARM Run CI/CD jobs on FreeBSD Show code coverage rate for your pipelines Auto DevOps Protected Runners GitLab Agent for Kubernetes GitOps deployment management Publish static websites for free with GitLab Pages Keep track of releases using GitLab Releases Group-level release analytics Publish your website from a private project for free Custom domains for GitLab Pages Multiple custom domains for GitLab Pages Limit the maximum number of custom domains per project Secure custom domains (HTTPS) with GitLab Pages GitLab Pages custom domains verification GitLab Pages support all Static Site Generators GitLab Pages example projects GitLab Pages Templates for Static Site Generators GitLab Pages supports all Jekyll plugins Custom Error Pages (404) for GitLab Pages Access control for GitLab Pages Timed and manual incremental rollout deployments Canary Deployments Multiple integrations Application Partners You decide when you upgrade Easy upgrade process Retrieval In good company Ability to edit all fields of a merge request Automatically close issue(s) when a merge request is merged Configurable issue closing pattern Draft merge requests Responsive-first design Community based, users can help shape the product Authenticate with GitLab OAuth Applications Automatic Retry for Failed CI Jobs CI on Protected Branches Include external files in CI/CD pipeline definition Static Application Security Testing Infrastructure as Code (IaC) Security Scanning Secret Detection Full Git History Secret Detection Container Scanning Automated Accessibility scanning of Review Apps Repeat failed test notification Graph Code coverage changes over time Fast SSH Authorization Create projects with Git push Step folding for CI/CD logs Instant SSL with Let's Encrypt for Omnibus GitLab ChatOps Deploy Tokens Plugins Projects Badges Group badges API Project badges API Project topic management Project settings Manage projects Members of a project Archive a project Unarchive a project Star a project Inactive project deletion GitLab Flavored Markdown with CommonMark Create Markdown tables from JSON data Initialize README on project creation Two-factor Authentication (2FA) Unit Test Report Failed test screenshots in test report See unit test summaries in merge request widget Achievements User profile page User status message Contributions calendar Image scaler Configuration Modeling Configuration Automation Configure Monitoring Repository languages on project overview Terraform plan output summary in Merge Requests Interactive Web Terminals Inline code coverage in merge request diff Package Registry cleanup policies Forward requests for npm packages not found in GitLab to npmjs.com Forward requests for Python packages not found in GitLab to PyPI.org Forward requests for Maven packages not found in GitLab to Maven central Conan (C/C++) Repository Maven (Java) Repository npm (node) Registry NuGet (.NET) Repository PyPI (Python) Repository Terraform Module Registry Go Proxy Composer (PHP) Repository Use the Package Registry through REST API Package debugging with an integrated web terminal Publish and share package versions Run jobs only when there are changes to a file or path More efficient job execution flow Run pipelines for merge requests Windows Container Executor Pipeline deletion Feature Flags Feature Flag List view Percent of Users Strategy for Feature Flags Flexible Rollout Strategy for Feature Flags UserID Rollout Strategy for Feature Flags Set multiple strategies per environment User List Strategy for Feature Flags Official GitLab container with AWS client installed Deploy Keys Auto Deploy to ECS with Auto DevOps Template to Deploy to EC2 Auto Deploy to EC2 with Auto DevOps Git protocol v2 support Merge request reviews Explicit support for monorepos Global Docker registry browser Error tracking Dependency Proxy for Container Registry Merge request pipelines Pipeline Resource Groups Associate Releases with Milestones GitLab-managed Terraform state files Trigger pipeline on any event in code repository Community powered workflows (configuration is code so are shareable) Any platform, any language, and cloud Pipeline defined in one file kept in the repository Store CI configuration outside the repository Auto suggest pipelines to start with based on code language Advanced CI/CD configuration linter Comes with many pre-defined pipelines Connects the diff tools & services used during the SDLC Hosted runners on Linux for GitLab.com Hosted runners on Windows for GitLab.com (Beta) Pipeline status visible in pull/merge request Live streaming of logs from running pipeline Search across all job logs View raw logs in plaintext Multiple pipelines per repo Reference actions/jobs in another repo Define Parent-child pipelines Parent-child pipelines Usage Trends Incidents Incident Timeline Generic HTTP Endpoint Service Desk Service Desk Custom Branding Customer Relations Management Code intelligence by Sourcegraph Code intelligence Release Evidence Release Progress view Instance-level project integration management for external services Deploy Freeze Complex, simultaneous deployments per environment Robust deploy and rollback bundle Pre-written deploy target mechanisms Load balancer management for Blue/Green deployment Link runbooks to a Release Alerts Create parallel jobs via a matrix of targets Block and Ban users Create a release directly from the .gitlab-ci.yml via the release CLI Generic Package Registry Alert Notifications Merge request reviewers GitLab Runner Operator for Kubernetes Changelog Broadcast messages reCAPTCHA Interactive onboarding for GitLab Pages Secure your CI/CD workflow using ID Tokens CI/CD job token Flux sync status visualization CI/CD Catalog CI/CD components GitLab Runner Autoscaler