What is Azure DevOps? Azure DevOps offers functionality that covers multiple stages of the DevOps lifecycle including planning tools, source code management (SCM), and CI/CD. Azure DevOps got there by rebranding some products to Azure DevOps and by integrating some of the tools that make up the DevOps Toolchain. For example, on September 10, 2018 Microsoft renamed VSTS to Azure DevOps and later renamed TFS to Azure DevOps Server, and upgraded both with the same new user interface.
GitLab has built a single application that covers the entire DevOps Tool Chain - planning, source code management, continuous integration, continuous delivery, security too monitoring. This enable close and seamless exchange of information and actions from one point in the DevOps lifecycle to another.
FEATURES | Azure DevOps |
|
---|---|---|
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. |
|
|
Ease of migration from other providers
GitLab lets you easily migrate all repos, issues and merge request data from your previous provider. |
|
|
Lock Discussion
Lock down continued discussion in an issue or merge request as a Maintainer role or higher, to prevent further abuse, spam, or unproductive collaboration. |
|
|
Custom Notifications
Be notified by email, Slack, or to-do items anytime there are changes to an issue or merge request. |
|
|
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. |
|
|
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. |
|
|
Commit graph and reporting tools
GitLab provides commit graphs and reporting tools about collaborators’ work. |
|
|
Required Merge Request Approvals
Guarantee quality and standards of your code by mandating a set number of necessary approvals and predefine a list of specific approvers. |
|
|
Multiple approvers in code review
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. |
|
|
Approval rules for code review
Approval rules ensure that the right people review merge requests by specifying eligible approvers and the minimum number of approvals required for a merge request. |
|
|
Search files with fuzzy file finder
GitLab provides a way to search a file in your repository in one keystroke. |
|
|
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. |
|
|
Squash and merge
Combine commits into one so that main branch has a simpler to follow and revert history. |
|
|
Reject unsigned commits
GitLab 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. In development for GitLab. Follow this link for more information. |
|
|
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. |
|
|
GPG Signed Commits
Sign commits and prove that a commit was performed by a certain user. |
|
|
X.509 Signed Commits and Tags
Sign commits and prove that a commit was performed by a certain user. |
|
|
Restrict push and merge access
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. |
|
|
S/MIME Signed Commits
Sign commits and prove that a commit was performed by a certain user. |
|
|
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. |
|
|
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. |
|
|
Merge Request Commit Discussions
Comment on a commit within the context of a merge request itself |
|
|
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. |
|
|
First time contributor badge
Highlight first-time contributors in a project. |
|
|
Cleaner diffs for Jupyter Notebook files
GitLab automatically strips out the noise and displays a cleaner version of the diff for these files. Human-readable diffs make it easier to review the substance of the change, without worrying about the formatting pieces that Jupyter Notebooks need. |
|
|
Clone project inside Visual Studio Code
Use the |
|
|
Open project in Visual Studio Code
Use the clone dropdown for a project and choose to open the project in Visual Studio Code. |
|
|
Insert Snippets directly in Visual Studio Code
Insert snippets stored in GitLab directly into your working file in VS Code. |
|
|
View issues and merge requests in Visual Studio Code
View issues and merge requests directly in VS Code for easy access and collaboration. This gives quick access to the information needed, and the ability to respond directly to issues and merge requests via comments. |
|
|
View merge request changes in VS Code
View the changes for merge requests directly in VS Code with familiar layout and diff interfaces. |
|
|
Autocomplete GitLab CI Variables in VS Code
VS Code provides auto-completion for predefined environment variables when editing your |
|
|
View code review comments in VS Code
See merge request comments on diffs directly in VS Code when reviewing a merge request. |
|
|
Merge request reviews in VS Code
The sidebar in VS Code contains a list of all the changed files in the merge request. Selecting files opens a diff comparison for you to review the changes in VS Code. While viewing the diff, you can read feedback left on the files, and create new comments by selecting a line number and creating your comment. All comments and feedback you provide in VS Code are available in the GitLab web interface, making it easy for you to perform your reviews in VS Code, and other users to participate in GitLab. |
|
|
Comments indicator for merge request reviews in VS Code
When reviewing a merge request, files with a comment have an additional indicator to easily identify feedback. |
|
|
Check out branches of merge requests in Visual Studio Code
When reviewing a merge request you can right click to check out the branch locally for easier review and testing. |
|
|
Create and apply patches in VS Code
Create and apply patches directly in Visual Studio Code. The new |
|
|
Remote Repositories for GitLab in VS Code
Remote repositories allow you to browse a read-only version of a project in your familiar VS Code environment. You can then quickly find the information you’re looking for, compare an implementation, or copy a snippet you need. |
|
|
Deduplicate Git objects for forked repositories
Reduce disk storage requirements of forked Git repositories by pooling Git objects. |
|
|
Variable replication factor
Allow configuration of a per-repository replication factor for repositories stored in the Gitaly Cluster. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
EditorConfig in the Web IDE
The Web IDE supports the use of |
|
|
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. |
|
|
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 Learn more about .gitlab-ci.yml editing feedback in the Web IDE |
|
|
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. |
|
|
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. |
|
|
GitLab-Figma Plugin
Our Figma plugin allows you to upload Figma frames and components to GitLab issues. |
|
|
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. |
|
|
Limit project size at a global, group, and project level
Ensure that disk space usage is under control. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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 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. |
|
|
Activity Stream
View a list of the latest commits, merges, comments, and team members on your project. |
|
|
Draft merge requests
Prevent merge requests from accidentally being accepted before they’re completely ready by marking them as Draft. This gives you all the code review power of merge requests, while protecting unfinished work. |
|
|
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. |
|
|
Vulnerability Management
Empower your entire team, and not just Security, to act on security findings with a unified interface for scan results from all GitLab Security scanners. |
|
|
Create projects with Git push
Push new projects to the desired location and a new private project will automatically be created. |
|
|
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. |
|
|