📜 ⬆️ ⬇️

GitLab 8.11: Kanban board and conflict resolution with one click

This article is a translation of a GitLab release article. The releases are released every month on the 22nd.


If you missed the previous ones, here are the links: 8.10 , 8.9 , 8.8




In the new GitLab 8.11 there are so many interesting things that we can hardly restrain ourselves in the framework of a constructive story!


So, in the new version appeared:



This month's MVP is Clement Ho. Thanks to him for merge requests and responsiveness in working on tasks.


Ticket Board (Issue Board)


Ticket (issues) in GitLab is a very flexible tool. They may contain links to each other, you can indicate their priorities, you can sort by popularity. The ticket board adds a new way of working with them.


Now you can customize workflows and quickly receive information about the status of tickets. All this is available on a simple and nice looking board, similar to those used in Kanban or Skrama.


Ticket Board in GitLab 8.11


A board is created for each project automatically. By default, all open tickets form a backlog, and all closed ones appear in the Done list.


By adding new lists, you create new workflows. The belonging of the ticket to the list is determined by the label. When a ticket is added to the list, the corresponding label is added to it, and if it is deleted from the list, the label is deleted.


If you used to have labels like , and - it's time to make lists of them. Tickets will appear in them automatically. And, of course, a ticket may belong to more than one list.


If you want to look at this feature in action, take a look at the GitLab CE version 8.12 board .



Ticket Board Documentation

Conflict resolution with merzh


Merzy in large and actively developing projects usually cause many problems. We want you to have a built-in conflict resolution tool. Therefore, you can now do this directly in the GitLab interface.


Resolving conflicts with Merzh in GitLab 8.11


When the merge is blocked by a conflict, you can simply click the "Resolve these conflicts" button and go to the resolution interface. There you can select the desired lines and commit the result.


Of course, not all conflicts can be resolved this way. But we hope that in most cases this tool will help you speed up the passage of requests.


Conflict Resolution Documentation

Permissions to work with branches for specific users (only EE)


Now in Enterprise Edition, you can configure permissions to push or merge to a branch not only for user groups (like developers or owners ), but also for specific users.


New settings can be combined with other functionality, including permissions for subgroups. For example, you can allow only Temlides Pete and Masha to push directly into the branch, but confirm merge-requests to this branch - to all members of the developer level and above.


Permissions to work with branches in GitLab 8.11


For each action (push and merg) you can configure any number of authorized users.


Branch Permissions Documentation

"Closing" comments in merge-requests.


In merge-requests there are long branches of comments, in which you can get confused. But each of them is important.


We added the ability to mark a comment or a whole thread as processed and close it.


Closing discussions in GitLab 8.11


Merge-Requests now also have a counter for unclosed discussions and a convenient button for moving to the next open discussion.


Go to the next open discussion in GitLab 8.11


Documentation for closing discussions in Merge Requests

Schemes of conveyors.


Conveyors in GitLab can have a rather complex structure with many sequential and parallel assemblies. Now you can look at the scheme of a specific conveyor, showing its structure and state. Such a scheme clearly shows the processes occurring in it.


Pipeline Schemes in GitLab 8.11


Just click on the pipeline on the merge-request page or in the list of conveyors. You will see a diagram of this pipeline with a display of completed, failed, active, and pending assemblies.


Templates tickets and merzh-requests.


The ability to standardize tickets and merge requests using templates was already in GitLab Enterprise Edition. Starting from GitLab 8.11, there may be many templates - for example, one for errors and another for sentences. And the opportunity itself is in all versions: GitLab.com, GitLab CE / EE.


Templates are written in the Markdown markup and are located in your repository, respectively, in the folders .gitlab/issue_templates and .gitlab/merge_request_templates :


Ticket and Merge Requests templates in GitLab 8.11


The purpose of this feature is to improve the appearance and completeness of sentences, error messages and merge requests.


Template Documentation

Slash commands


Now GitLab has a slash command ( /command ) - just like in IRC, HipChat, Mattermost or Slack. They allow you to change labels, assign artists, subscribe and unsubscribe from tickets and do much more - quickly and without taking your hands off the keyboard. Commands work in the description of the ticket or merge-request, as well as in the comments.


How to use them:


  1. You enter the text containing the command (from the keyboard, from the template, through the API, as you like).
  2. Confirm sending a comment, save the ticket or request.
  3. Commands are executed and are no longer shown in the text. If the comment consisted only of commands, it will be executed, but not published.

GashLab 8.11


You can use slash commands even when creating a new ticket or request:


Flash commands when creating a ticket in GitLab 8.11


If several commands are sequentially specified, all of them will be executed.


A few ideas on how to use slash commands:



We ourselves look forward to your stories about what other uses you will invent.


Slash Commands Documentation

Integration with Koding


Koding allows you to run your development environment in the cloud, use the same settings for this environment for the entire team, and even use a local editor. Thanks to this, it is not necessary to spend time on installing and setting up a stack for each new computer and with any change.


Starting from version 8.11, GitLab supports integration with Koding. Now, at the touch of a button, you can download the entire project or a separate merge-request and open it in a full-fledged cloud-based IDE. (note that the integration with Koding has not yet been added to GitLab.com).


Enable Koding support in Admin> Application settings


Koding, an integrated IDE in GitLab 8.11


Set up Koding to work with your project:


Koding, an integrated IDE in GitLab 8.11


Koding, an integrated IDE in GitLab 8.11


And that's it! Now you can quickly dump any merge-request, branch and commit of the project into a full-fledged IDE.


Koding, an integrated IDE in GitLab 8.11


We have prepared a short video showing how Koding + GitLab works:



To learn more about Koding in GitLab, refer to our documentation .


Merchant Requests


Now the pipelines are displayed in Merge-Requests:


Pipelines in merge requests in GitLab 8.11


Click on the pipeline to see its layout and builds related to it.


Deployment Status Display for Merge Requests


Now you can specify URLs for your environments:


Set the URL of any environment in GitLab 8.11


Due to this, GitLab shows the deployment status for merge-requests in cases where the deployment occurs automatically during the merge:


See deploy status in merge request in GitLab 8.11


After a successful merge, GitLab will show you a link to the deployment environment, which allows you to see the result of a merge request in one click.


Web hooks for pipelines (pipelines)


To simplify integration with GitLab pipelines, we added web hooks for them. They are triggered when creating, starting, or shutting down a pipeline.


To add a web hook, select Webhooks in the Settings menu of your project.


Highlighting and hiding code


Now GitLab editor supports highlighting and allows you to hide blocks of code.


Code highlighting in GitLab 8.11


Links to Merge Requests with Push


Now, when pushing to GitLab, there are links to the creation of a merge-request, as well as to all merge-requests related to the current one.


Merge request links when pushing in GitLab 8.11


Test coverage icon


Now you can create icons showing test coverage for your project:


Coverage Badge in GitLab 8.11


If you did not use the coverage mapping in GitLab, enable it in the pipeline settings: pipelines/settings .


Test Coverage Icon Documentation

Temporary restrictions on access to the project


When issuing access to the project to a single user or group, you can now set a specific date, after which access to the project will be closed for them.


This makes it easier to work with access rights for temporary team members.


Moving projects between shards (only EE)


Multiple mount points were added to GitLab 8.10.


In GitLab 8.11, it became possible to move projects between shards with the help of the rake command. This functionality is not intended for frequent use, however, it may be useful in cases when you want to test a new shard or move a frequently used project to a fast access repository.


Performance improvements


In this release, a number of changes aimed at improving performance were introduced - merge-requests and their diffs became even faster! Below are graphs showing the performance difference after deploying GitLab 8.11 RC2 on GitLab.com (a drop in performance falls on the deployment).


Diff load for merge-requests:


Performance improvements in GitLab 8.11


Number of executed SQL queries when displaying diffs:


Performance improvements in GitLab 8.11


Time spent on executing SQL queries when rendering diffs:


Performance improvements in GitLab 8.11


Also significantly increased the performance of conveyors:


Performance improvements in GitLab 8.11


Below is a detailed list of the improvements made and the corresponding Merge Requests:


Improvements



New features



Instrumentation



GitLab Mattermost 3.3


GitLab 8.11 comes with the Mattermost 3.3 , the open analog of Slack .


Localization to Chinese, Korean and Dutch, Go bot ,
the ability to flag (flag) posts, mentions of the form @here and much more.


In addition, several security updates have been included in this version of Mattermost, so we strongly recommend upgrading to it.


Redis Sentinel Support


GitLab now has experimental support for Redis Sentinel.


All the details in the documentation

Other changes


This release includes many other improvements, including various security fixes. A full list of changes is available in Changelog .


Upgrade barometer


Upgrading to GitLab 8.11 will require downtime due to database migrations


The downtime for the GitLab.com website (the largest GitLab instance we know) was 15-30 minutes. Depending on the amount of data on your instance, your downtime may be less.


One of the migrations deletes several columns in several tables (and the GitLab instance needs to be minimized so that these data are not lost in the process of accessing them).


Two other migrations create new tables and fill them with information based on the data already existing in the system: in this case, downtime is needed so that the data added does not change during the migration process (and remain unchanged until the 8.11 deployment is complete).


Finally, another migration adds two foreign keys (foreign keys), and here downtime is needed to ensure that there is no simultaneous access to the data being changed.


Obsolescence (deprecation) Ruby 2.1


With this release we updated Ruby to version 2.3.


For manual installations, we strongly recommend that you upgrade to Ruby 2.3. GitLab installations made via Omnibus will automatically use Ruby 2.3.


Ruby 2.1 and 2.2 support will be completely discontinued in GitLab version 8.13.


For those who have updated before the rest


If you upgraded to 8.11 right after the release and got the error undefined method merge! for nil:NilClass undefined method merge! for nil:NilClass , then download a newer package with a lower version .1: 8.11.0-ce.1 .


Just run apt-get update and apt-get install gitlab-ce / apt-get install gitlab-ee , and everything should be fixed by itself.


Forced two-factor authentication using GitLab API and Git over HTTP


If you have two-factor authentication enabled and you try to get an API token via the /sessions or Resource Owner Password Credentials flow provided in OAuth2, then you will not be able to log in. For a successful login in these cases, you will need to use a Personal Access Token.


Read more about personal access tokens

Reindexing Elasticsearch (only for EE)


We have changed the structure of Elasticsearch indexes and now they use parent-child relationships. This improves performance, but requires a complete restructuring of all Elasticsearch indexes. After upgrading to 8.11, you will need to manually remove old indexes and build new ones.


To delete old indexes, make the following request to Elasticsearch:


 curl -XDELETE 'http://localhost:9200/_all/' 

To rebuild indexes follow the steps described in the documentation for integration with Elasticsearch


Warning The above is applicable only if you are upgrading from a previous version (8.10). If you are upgrading from earlier versions, check the “Upgrade-barometer” sections for all intermediate versions.


If you are upgrading from a version of GitLab smaller than 8.0 and at the same time you have CI enabled, you must first upgrade to 8.0 .


By default, during the update process, all Omnibus packages will be stopped, then all their migrations will be rolled out, and only then they will be started again. This behavior does not depend on the size of the update. You can change this behavior by creating the / etc / gitlab / skip-auto-migrations file.


Installation


If you are installing GitLab from scratch, read the relevant section: https://about.gitlab.com/installation/


Update


Update instructions: https://about.gitlab.com/update/


Enterprise Edition


GitLab Enterprise Edition includes additional features such as support for LDAP groups. Detailed information can be found in the description of GitLab EE .


GitLab EE is available only by subscription, details and prices can be found here .


Not enough time to install and configure a new tool? The cost of the subscription includes the installation and update services GitLab on your servers.


PS If you will be updated, update immediately on 8.11.2


PPS Chebureque , nick_volynkin and @ sgnl_0 worked on the translation


')

Source: https://habr.com/ru/post/308632/


All Articles