Gitlab hero border pattern left svg Gitlab hero border pattern right svg Background wave
GitLab
vs
Azure DevOps
Decision Kit
Decision Kit
Question
Azure DevOps vs GitLab Evaluation Questions

Highlights the important questions to ask and consider while evaluating Azure DevOps and GitLab for your DevOps needs.

Azure DevOps v/s GitLab
Deep Insights

Explore these links for deeper insights on how Azure DevOps and GitLab compare.
- Side by side product comparisons
- Information for business decision makers
- and much more.

Cloud
How To Set Up GitLab on Azure Cloud

Step by step instructions on running GitLab within your Azure Cloud environment. GitLab is cloud agnostic and supports AWS, GCP and Azure Cloud.

Feature Comparison
FEATURES

Commit graph and reporting tools

GitLab provides commit graphs and reporting tools about collaborators’ work.

Learn more about commit graphs

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.

Making it easier to get up and running with GitLab

Lock Discussion

Lock down continued discussion in an issue or merge request as a Master role or higher, to prevent further abuse, spam, or unproductive collaboration.

Lock Discussion

Custom Notifications

Be notified by email, Slack, or ToDos anytime there are changes to an issue or merge request.

Learn more about Custom Notifications

Rich Object Summary on Link Hover

View an information-rich summary by hovering over links to users, issues, merge requests, and other objects in GitLab.

See the epic that implements this

Required Merge Request Approvals

When a project needs multiple sign-offs, you can require every merge request to be approved before merging. With Required Merge Request Approvals you can set the number of necessary approvals and predefine a list of specific approvers. In turn, guarantee the quality and the standards of your code.

Learn more about merge request approvals

Multiple approvers in code review

In GitLab, to ensure strict code review, you can require a minimum number of users to approve of a merge request before it is able to be merged. You can undo an approval by removing it after the fact.

Approvals Documentation

Approval rules for code review

Make sure the right people review merge requests with approval rules by specifying lists of eligible approvers, the minimum number of approvals for each, and which target branches they protect. This makes it easy to request review from different teams like Engineering, UX and Product.

Approvals Documentation

Optional Merge Request Approvals

Code review is an essential practice of every successful project, and giving your approval once a merge request is in good shape is an important part of the review process, as it clearly communicates the ability to merge the change.

Learn more about optional merge request approvals

Deduplicate Git objects for forked repositories

Reduce disk storage requirements of forked Git repositories by pooling Git objects.

Read about Git object pools

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.

Learn more about GitLab Wikis

Design Management

Design Management allows users to upload design assets (such as wireframes and mockups) to GitLab Issues and keep them stored in one single place, giving product designers, managers, and engineers a seamless way to collaborate on design proposals. They can be easily uploaded and are stored in versions. You can start a thread by clicking on the image on the exact location you would like the discussion to be focused on.

Documentation

GitLab-Figma Plugin

Our Figma plugin allows you to upload Figma frames and components to GitLab issues.

Documentation

Image Discussions

Within a commit 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.

Image Discussions

Merge Request Commit Discussions

Comment on a commit within the context of a merge request itself

Merge Request Commit Discussions

Create merge request from email

Create a merge request from email by sending in the merge request title, description, and source branch name. Alternatively use patch files to create a merge request without first pushing a branch.

Create merge request from email

First time contributor badge

Highlight first-time contributors in a project.

Preview your changes with Review Apps

With GitLab CI/CD you can create a new environment for each one of your branches, speeding up your development process. Spin up dynamic environments for your merge requests with the ability to preview your branch in a live environment. Review Apps support both static and dynamic URLs.

Learn more about Review Apps

Ease of migration from other providers

GitLab lets you easily migrate all repos, issues and merge request data from your previous provider.

Learn how to migrate your projects to GitLab

Search files with fuzzy file finder

GitLab provides a way to search a file in your repository in one keystroke.

Read about the file finder in our documentation

Fast-forward merge with 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.

Learn more about rebase before merge

Squash and merge

Combine commits into one so that main branch has a simpler to follow and revert history.

Learn more about squash and merge

Import from GitLab.com

Import projects from GitLab.com to a private GitLab instance.

Learn more about importing projects from GitLab.com

Limit project size at a global, group, and project level

Ensure that disk space usage is under control.

Learn more about project size limiting

Merge Requests

Create merge requests and @mention team members to review and safely merge your changes.

Learn more about merge requests

Merge conflict resolution

Preview merge conflicts in the GitLab UI and tell Git which version to use.

Learn more about the merge conflict resolution UI

Reject unsigned commits

GitLab Premium allows you to enforce GPG signatures by rejecting unsigned commits.

Read more about enforcing push rules

Verified Committer

Verify that a push only contains commits by the same user performing the push.

In development for GitLab. Follow this link for more information.

Git has smaller size requirements

A single repository in Git is typically a number of times smaller than the same repository in SVN.

Read about using Git with GitLab

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 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.

Learn more about File Locking

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 with a single click. No configuration required.

Learn more about Merge when pipeline succeeds

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.

Learn how to revert a commit or a merge request from the GitLab UI.

Powerful branching

A branch in Git contains the entire history that precedes it. It’s also created or moved towards instantly and easily shared.

See the Git documentation to get started with branches

Protected branches

Granular permissions for branches you want to protect.

Read about protected branches

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 leaving the Web IDE.

Learn more about the Web IDE

Live Preview in the Web IDE

Preview changes as you make them to your JavaScript and static HTML projects with Live Preview in the Web IDE.

Learn more about the Web IDE

Web Terminal for Web IDE

Interact with your code in a Web Terminal in the Web IDE to inspect API responses, experiment in a REPL, or compile your code.

Learn more about the Web IDE Web Terminal

File Syncing to Web Terminal

Changes made in the Web IDE will now be synced to the Web Terminal. User changes made in the Web IDE can now be tested within the Web Terminal before committing them to the project.

Learn more about File Syncing to Web Terminal

EditorConfig in the Web IDE

The Web IDE supports the use of .editorconfig files in projects for standardizing coding style of all users working on the project. This helps to easily keep consistency and quality throughout the project.

Learn more about configuring the Web IDE

Paste images in Markdown in the Web IDE

When editing Markdown files in the Web IDE you can now paste images into the content so that they’ll be automatically uploaded and referenced in the content.

Learn more about Markdown editing in the Web IDE

Real-time feedback for .gitlab-ci.yml in Web IDE

To make it easier to configure your GitLab CI pipeline, the Web IDE now provides real-time linting and completion when editing .gitlab-ci.yml files.

Learn more about .gitlab-ci.yml editing feedback in the Web IDE

Merge request versions

View and compare merge request diffs from the merge request UI.

Learn more about merge request versions

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 and can be left on any line, changed or unchanged. You can configure your project to only accept merge requests when all discussions are resolved.

Learn more about resolving discussions

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.

Learn more about cherry picking merge requests

Activity Stream

View a list of the latest commits, merges, comments, and team members on your project.

Learn more about the Activity Stream

GPG Signed Commits

Sign commits and prove that a commit was performed by a certain user.

Read more about GPG signed commits

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.

Learn more about WIP MRs

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.

Read about protected branches

Protected tags

Granular permissions for tags you want to protect.

Read about protected tags

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 templates by assigning a group. Child projects of this group are available as templates when creating a new project.

Read more about Project templates

Vulnerability Management

GitLab’s vulnerability management is about ensuring assets and applications are scanned for vulnerabilities. It also includes the processes to record, manage, and mitigate those vulnerabilities.

Vulnerability management helps identify meaningful sets of vulnerabilities, in both your assets and application code, that can be mitigated, managed, and acted upon by your whole team—not just the security organization. It also provides a unified interface to the systems teams are already using for managing results from the ~”devops::secure” stage so there is always a single source of truth and single place for managing security results.

Learn more about Vulnerability Management

Create projects with Git push

Push new projects to the desired location and a new private project will automatically be created.

Learn more about creating Projects

Pipeline status visible in pull/merge request

Status and results of pipeline runs are viewable at least in summary from the merge/pull request that they are part of.

S/MIME Signed Commits

Sign commits and prove that a commit was performed by a certain user.

Read more about S/MIME signed commits