Hello. This time, the delay in the release of the release post turned out just 10 days, and it pleases.
This time he translated chebureque , for which he was very grateful!
In short: Increased productivity, appeared protecting branches from changes using masks, improved diff display, added manual actions to CI, mass subscription to tickets, improved support for Slack, and added more emoji.
The text of the translation itself:
The main task of GitLab is to allow you to go from an idea to a ready-to-use product as quickly as possible. Each of our releases is aimed at making this path even easier, and version 8.10 especially succeeded in this!
GitLab 8.10 simplifies review and merge code processes: now you have even more convenient diffs and additional features to protect branches from accidental changes. And when it comes time to deploy the finished code, you can use the function of manual checks before you deploy your code with one click.
Our July ( MVP ) - Winnie! He helped us a lot by correcting bugs and putting order in our issue tracker .
To protect the branches from accidental deletion or modification, they can be protected. This mechanism, among other things, allows you to allow or deny access to the branches for writing, depending on the rights of users - for example, you can prevent ordinary developers from pushing or merging into production and release branches.
In Gitlab 8.10, you can now set up such automatic protection using masks that will be applied to branch names. This greatly simplifies working in repositories with a large number of branches.
For example, if you put a protection on a release-*
mask, all branches whose name begins with release-
will automatically become protected. When developing GitLab, we use this feature to protect our stable branches using the *-stable
mask.
As mentioned above, the branch protection option allows you to distinguish between who can push into important branches and who cannot. By default, push and merge to protected branches is available only to users with Master
permissions and above.
In previous versions of GitLab, users of the 'Developer' group were automatically allowed to push into secure branches. Starting from version 8.10, you can independently give Developer
members rights to push separately and separately to Merge.
In this example, members of the Developer
group may have merge requisitions, but cannot directly push into the specified branches. That is, these branches are protected from direct pushing, but for accepting a merge-request, they do not need to wait for a user with a high level of permissions. Please note that this functionality is available only from the web interface and is not available from the command line.
Here you can also add approvals from the Enterprise Edition, which allows you to require a review from several people before accepting changes. In this case, a merge-request must be viewed by several developers, but any user from the Developer
group can nevertheless accept it.
Read more about secure branches.
Regardless of whether you are writing code, doing code review, or even working not with code, but with some other text content, you most likely have to work a lot with diffs. It is very desirable that the diffs work quickly and be comfortable. In GitLab 8.10, diffs began to be rendered much faster and learned a few interesting things.
We have improved the side-by-side diffs, and now they show the changes in an even more visual form.
If the changes affect only part of the line, we will show you exactly its modified portion (and not the entire string):
Now you can slap diffs by clicking on the file name. This will help you conveniently view the changes file by file.
Large diffs ( > 10kb ) will always be shown collapsed (but you can deploy them at any time). This should be a great help if you constantly have to look through a lot of big changes in a lot of files.
Of course, you have already set up a pipeline (pipeline) for Continuous Integration / Continuous Delivery ? Using such an automatic pipeline for production deployment may not be the best idea. Automatic deployment to staging is quite a normal practice, but before porting the code to production, it is better to do at least a few manual tests to finally make sure that everything is working fine.
Now you can set manually activated conditions for deployment in production. The when: manual
option adds a new action to the web interface that needs to be activated manually — and the pipeline will continue to be executed only after this manual action. For example, your release manager will click this button after manually making sure that staging is working fine. Any job in your pipeline can be marked with the when: manual
option.
These actions are also displayed in environments to make it easier for you to translate assemblies from staging to production.
About the CI / CD system in GitLab
Environments in CI
If you want to mark several lines in your markdown file as a quote, you no longer need to add to each line >
. Now for this there is a multi-line syntax:
>>> . . , ! >>>
Read more about GitLab Flavored Markdown
Now you can spread the data of your repositories across several mount points. Just enter all the necessary mount points in the gitlab.rb
file:
git_data_dirs({ "default" => "/var/opt/gitlab/git-data", "alternative" => "/mnt/nas/git-data" })
After that, in the GitLab admin panel, you can specify under which mount point each new repository should be stored.
Learn more about multiple mount points.
Now you can subscribe (and unsubscribe) to a large number of tickets at the same time. This is useful in cases where you want to dive straight into a new project and be aware of everything at once, or vice versa, want to be in silence from constant email notifications.
In the previous version (8.9), we added individual alerts so that you would receive notifications only about project events of interest to you.
In GitLab 8.10, you can manage these settings for project groups by setting the same alert settings for several projects at once (do not forget that individual project settings take precedence over group settings).
Prior to version 8.10, GitLab users who wanted to use Kerberos authentication had to enter the login and password of their Kerberos account on the GitLab login page. Since version 8.10, GitLab Enterprise Edition allows Kerberos users to log in to GitLab without entering a username and password - now you just need to click on the "Kerberos Spnego" button on the login page.
This is made possible by the new OmniAuth provider for SPNEGO authentication via Kerberos. This provider uses the CERN Institute for Nuclear Research , with which it became possible for GitLab to do git clone using ticket-based authentication via Kerberos.
If the user's browser "understands" the Kerberos protocol, and the user himself has a valid Kerberos ticket on his machine, the browser will automatically log in to GitLab without asking anything from the user.
Detailed information on configuring ticket-based authentication via Kerberos for GitLab Enterprise Edition is available in the corresponding documentation section .
In the next release, we will remove password-based authentication through Kerberos, so if you use it, we recommend that you switch to the ticket-based option as soon as possible.
The syntax highlighting in GitLab 8.10 is even better.
We updated rouge from version 1.11.1 to 2.0.5, and in the process of this update added new lexers and fixed several bugs . Now we have the backlight for Docker, F #, IDL, and the already available backlight for praat,
JavaScript, Java, C #, Shell, Liquid, Tulip, Markdown, Ruby, Python and YAML have become even more beautiful!
By the way, now you can redefine the “guessing” of the language for highlighting and set it explicitly using the entry in the .gitattributes
file.
All details are in the relevant documentation .
Now you can prohibit users who are not members of a project or group from applying for membership there . By default, such requests are allowed.
GitLab can now notify you about various project events via Slack - whether it be a comment to a ticket, the creation of a new merge request or a broken build.
Slack service now allows you to configure which Slack channel will receive a message about each event.
Read more about Slack Service here
We have upgraded to gemojione for 2016, and now emoji has become even more.
Now you can blacklist domain names, and email addresses from these domains will not be able to register with your GitLab instance. The settings associated with the blacklist are in the admin panel.
Read about it here.
Now you can independently manage access protocols to Git: you can only allow access to the repository via HTTP, only via SSH or simultaneously via HTTP + SSH
Read more
If the text of the ticket, commentary or merge-request contains a link to the video, then GitLab will display this video directly in the text.
Read more about GitLab flavored markdown
As you know, the CI pipeline can be configured in such a way that errors when performing certain tasks (jobs) in it are not considered fatal . When such errors occur, the CI pipeline displays warnings (warnings). In GitLab 8.10, these warnings will be visible to you on the merge request that caused them
To better understand how customers use GitLab, 8.10 EE regularly sends anonymous statistical information to GitLab, Inc. servers. If you don’t like the idea, turn off this option on the "Application settings" page (on the same page you can see what data will be sent to our server.
From release to release, GitLab is getting better and better in all respects - including speed. This month we accelerated the display of tickets by 2-2.5 times and diffs by a third:
For those interested - here is a list of significant changes in version 8.10 and links to the corresponding requests.
projects
column.pushes_since_gcFrom now on, runner releases will be synchronized with the monthly major GitLab releases. Changes in this runner release ::
Together with GitLab 8.10 comes Gitlab Mattermost 3.2 , an open version of Slack.
German localization, new emoji, improved thread display, full-screen search interface, integration with MS Exchange and XMPP, and much more were added to Mattermost 3.2.
In addition, several security updates have been included in this version of Mattermost, so we strongly recommend upgrading to it.
This release includes many other improvements, including various security fixes. A full list of changes is available in Changelog .
Upgrading to GitLab 8.10 will require 15-30 minutes of downtime. During the update, several columns in the database will be renamed, and several migrations will be performed to correctly update the data. In order not to damage your data during the migration process, the GitLab instance will be stopped for the duration of the update.
The default Nginx configuration for GitLab now overwrites the HTTP headers 'Host' and 'X-Forwarded-Host'. This adds an extra layer of protection against header injection attacks. If you installed GitLab from source, then you will need to update your Nginx configuration. If you installed GitLab using Omnibus, the configuration will be updated automatically (unless you override the 'Host' and 'X-Forwarded-Host' gitlab.rb
in the gitlab.rb
file).
What used to be called Git Hooks is now called Push Rules. In addition, the Git Hooks API is now marked deprecated. This API will be completely thrown into GitLab 9.0, so we recommend that you switch to Push Rules as soon as possible.
Learn more about Push Rules
Warning The information in this section is relevant if you are upgrading to GitLab 8.2 from a previous version. If this is not the case, then read the “Upgrade-barometer” sections for all intermediate versions between your current and 8.2.
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.
If you are installing GitLab from scratch, read the relevant section: https://about.gitlab.com/installation/
Update instructions: https://about.gitlab.com/update/
GitLab Enterprise Edition includes additional features such as support for LDAP groups, confirmation of merge requests, file locking, and more. 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 we missed, here is a link to the translation of a post about release 8.9
Source: https://habr.com/ru/post/306860/
All Articles