GitLab https://about.gitlab.com/blog/ 2018-12-12T00:00:00+00:00 The GitLab Team What to expect at Predict 2019, a virtual reality conference https://about.gitlab.com/2018/12/12/what-to-expect-at-predict-2019/ 2018-12-12T00:00:00+00:00 2018-12-12T00:00:00+00:00 Tina Sturgis <p>✅ Learn about up and coming tech trends in 2019</p> <p>✅ For free</p> <p>✅ Without leaving your desk</p> <p>If your response is <a href="https://predict2019.com">"Sign me up!"</a>, let's talk about Predict 2019.</p> <h2 id="what-is-predict-2019">What is Predict 2019?</h2> <p><a href="https://predict2019.com">Predict 2019</a> is the industry’s first truly immersive, virtual reality conference focused on predictions on the future of DevOps, Security, and related technology. Taking place on Dec. 18, <a href="https://predict2019.com">Predict 2019</a> is hosted on a platform that makes it look and feel like a real conference, with simulated theaters to view the keynotes and presentations, a conference lobby for chatting and socializing, and a virtual expo floor with exhibitor stands equipped with video, downloads, and even swag for you to take. This exciting event is offered through MediaOps, the company behind technical communities such as DevOps.com, Container Journal, Security Boulevard, and DevOps TV. So when GitLab had an opportunity to be a premier sponsor for Predict 2019, we jumped at the chance.</p> <div class="newsletter-cta-b panel panel-default panel-newsletter-cta"> <div class="panel-body newsletter-cta"> <div class="panel-header"> <?xml version="1.0" encoding="UTF-8"?> <svg width="56px" height="52px" viewBox="0 0 56 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs></defs> <g id="Desktop" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="blog-newsletter-cta-graphic-v2" transform="translate(-1070.000000, -383.000000)" fill="#FFFFFF"> <g id="gitlab-newsletter-cta-b" transform="translate(948.000000, 363.000000)"> <g id="Page-1" transform="translate(122.000000, 20.000000)"> <path d="M53.1397841,30.8022957 L34.558125,44.3561117 L51.1622841,22.9844307 L53.4156477,29.9385534 C53.5192159,30.2590074 53.4081705,30.6062589 53.1397841,30.8022957 Z M2.86117045,30.8027742 C2.59198864,30.6062589 2.48094318,30.2590074 2.58419318,29.9395104 L4.83819318,22.9833141 L21.4412386,44.3634491 L2.86117045,30.8027742 Z M11.2584659,3.11293374 L16.410625,19.0155227 L6.12523864,19.0155227 L11.2584659,3.11293374 Z M36.0973295,21.5676699 L28.0054886,46.5780748 L19.9136477,21.5676699 L36.0973295,21.5676699 Z M44.7420114,3.11277423 L49.8844659,19.0155227 L39.5995568,19.0155227 L44.7420114,3.11277423 Z M31.4494886,44.2040994 L33.126625,39.0203693 L38.7700568,21.578038 L49.0266477,21.578038 L32.9091477,42.3254 L31.4494886,44.2040994 Z M17.2337614,21.578038 L24.5527386,44.1996331 L6.98544318,21.578038 L17.2337614,21.578038 Z M55.8366932,29.1508969 L52.8941477,20.069719 C52.8793523,19.9864552 52.8535795,19.904946 52.8220795,19.8248724 L46.9193295,1.57207485 C46.5984432,0.615657669 45.7433295,-4.78527557e-05 44.7385114,-4.78527557e-05 L44.725625,-4.78527557e-05 C43.7206477,0.00521595093 42.8707841,0.62730184 42.5600795,1.58547362 L36.9236477,19.0155227 L19.0866932,19.0155227 L13.4396023,1.58483558 C13.1295341,0.62746135 12.2796705,0.00537546013 11.2746932,-4.78527557e-05 C10.2687614,-0.00563067484 9.40314773,0.611669939 9.07589773,1.58611166 L3.17648864,19.8628356 C3.17092045,19.8781485 3.16344318,19.8923448 3.15851136,19.9076577 L0.163147727,29.151854 C-0.280556818,30.5249092 0.201329545,32.0172773 1.36269318,32.8658663 L27.2447159,51.755584 C27.4696705,51.919719 27.7320114,51.9999521 27.9932386,51.9999521 C28.2622614,51.9999521 28.5292159,51.9133387 28.7525795,51.746492 C28.753375,51.745854 28.7543295,51.745535 28.755125,51.7448969 L54.6377841,32.8655472 C55.7988295,32.0172773 56.2807159,30.5249092 55.8366932,29.1508969 Z" id="Fill-1"></path> </g> </g> </g> </g> </svg> <div id="above-cta-form"> <div class="newsletter-preamble"> New blog posts directly to your inbox </div> <div class="newsletter-sub-preamble"> Sign up for our bi-monthly newsletter </div> </div> <div id="confirm-cta-form" style="display: none;"> <div class="newsletter-preamble"> Thanks, you’re <br /> signed up! </div> <div class="newsletter-sub-preamble"> GitLab is coming to your inbox </div> <img class="success-image" src="/images/emojis/newsletter-signup-success.png" /> </div> </div> <div class="newsletter-form"> <form class="notdefined" id="mktoForm_1547"> <script src="//app-ab13.marketo.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> MktoForms2.loadForm("//app-ab13.marketo.com", "194-VVC-221", 1547, function(form) { form.onSuccess(function(values, followUpUrl) { form.getFormElem().hide(); document.getElementById('above-cta-form').style.display = 'none'; document.getElementById('confirm-cta-form').style.display = 'block'; dataLayer.push({event: 'mktoLead',mktoFormId: form.getId()}); return false; }); function getgacid() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch (e) { return 'n/a'; } } form.vals({ 'gacid': getgacid() }); }); </script> </form> </div> </div> </div> <h2 id="gitlab-at-predict-2019">GitLab at Predict 2019</h2> <h3 id="speakers">Speakers</h3> <p>During the event on Dec. 18, GitLab's <a href="/company/team/#brandoncjung">Brandon Jung</a>, VP of Alliances, will be speaking at a theater session called "Accelerate software delivery: How to make 2019 your cloud-native year" at 2 p.m. EST.</p> <p>Additionally, Senior Product Marketing Manager <a href="/company/team/#cblake2000">Cindy Blake</a> will take part in a panel session, "Ubiquitous Open Source makes for security challenges," at 12 p.m. EST.</p> <p>Don’t worry if you are already booked for the day of the event; the virtual conference will be available to attend for 90 days afterwards too.</p> <h3 id="booth-and-swag">Booth and swag</h3> <p>We will also have a GitLab virtual booth located in the exhibit hall where you will have access to loads of information in the form of videos, webpage links, and pdf files to download and review immediately or take with you for future reference. You won't even need a bag to carry it all with you! Bonus!</p> <p>During the live event we will have GitLabbers on hand to chat with and answer your questions, and if you visit our booth we'll arm you with a code for a FREE GitLab T-shirt from the <a href="https://shop.gitlab.com/">GitLab swag store</a>.</p> <p class="alert alert-gitlab-purple"><a href="https://predict2019.com/#join-us">Sign up now to attend Predict 2019</a>!</p> <p class="note">Photo by <a href="https://unsplash.com/photos/xGtHjC_QNJM?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">JESHOOTS.COM</a> on <a href="https://unsplash.com/search/photos/virtual-reality?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></p> <img src='https://about.gitlab.com/images/blogimages/woman-wearing-vr-goggles.jpg' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab's HackerOne Bug Bounty Program is public today https://about.gitlab.com/2018/12/12/gitlab-hackerone-bug-bounty-program-is-public-today/ 2018-12-12T00:00:00+00:00 2018-12-12T00:00:00+00:00 Kathy Wang <p>Today, we are announcing that our HackerOne bug bounty program is now <a href="https://hackerone.com/gitlab">public</a>. Since we opened our private bounty program in December, 2017, we have been preparing to take this program public by working through some of the challenges of managing a bug bounty program. We have awarded over $200,000 in bounties since the bug bounty program went live last year. This means we mitigated nearly 200 vulnerabilities reported to us.</p> <p>Our first response time to newly submitted findings has decreased significantly, from an average time of 48+ hours to 7 hours. That is a significant reduction achieved through security automation, and will help us scale, and better engage the hacker community.</p> <div class="newsletter-cta-b panel panel-default panel-newsletter-cta"> <div class="panel-body newsletter-cta"> <div class="panel-header"> <?xml version="1.0" encoding="UTF-8"?> <svg width="56px" height="52px" viewBox="0 0 56 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs></defs> <g id="Desktop" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="blog-newsletter-cta-graphic-v2" transform="translate(-1070.000000, -383.000000)" fill="#FFFFFF"> <g id="gitlab-newsletter-cta-b" transform="translate(948.000000, 363.000000)"> <g id="Page-1" transform="translate(122.000000, 20.000000)"> <path d="M53.1397841,30.8022957 L34.558125,44.3561117 L51.1622841,22.9844307 L53.4156477,29.9385534 C53.5192159,30.2590074 53.4081705,30.6062589 53.1397841,30.8022957 Z M2.86117045,30.8027742 C2.59198864,30.6062589 2.48094318,30.2590074 2.58419318,29.9395104 L4.83819318,22.9833141 L21.4412386,44.3634491 L2.86117045,30.8027742 Z M11.2584659,3.11293374 L16.410625,19.0155227 L6.12523864,19.0155227 L11.2584659,3.11293374 Z M36.0973295,21.5676699 L28.0054886,46.5780748 L19.9136477,21.5676699 L36.0973295,21.5676699 Z M44.7420114,3.11277423 L49.8844659,19.0155227 L39.5995568,19.0155227 L44.7420114,3.11277423 Z M31.4494886,44.2040994 L33.126625,39.0203693 L38.7700568,21.578038 L49.0266477,21.578038 L32.9091477,42.3254 L31.4494886,44.2040994 Z M17.2337614,21.578038 L24.5527386,44.1996331 L6.98544318,21.578038 L17.2337614,21.578038 Z M55.8366932,29.1508969 L52.8941477,20.069719 C52.8793523,19.9864552 52.8535795,19.904946 52.8220795,19.8248724 L46.9193295,1.57207485 C46.5984432,0.615657669 45.7433295,-4.78527557e-05 44.7385114,-4.78527557e-05 L44.725625,-4.78527557e-05 C43.7206477,0.00521595093 42.8707841,0.62730184 42.5600795,1.58547362 L36.9236477,19.0155227 L19.0866932,19.0155227 L13.4396023,1.58483558 C13.1295341,0.62746135 12.2796705,0.00537546013 11.2746932,-4.78527557e-05 C10.2687614,-0.00563067484 9.40314773,0.611669939 9.07589773,1.58611166 L3.17648864,19.8628356 C3.17092045,19.8781485 3.16344318,19.8923448 3.15851136,19.9076577 L0.163147727,29.151854 C-0.280556818,30.5249092 0.201329545,32.0172773 1.36269318,32.8658663 L27.2447159,51.755584 C27.4696705,51.919719 27.7320114,51.9999521 27.9932386,51.9999521 C28.2622614,51.9999521 28.5292159,51.9133387 28.7525795,51.746492 C28.753375,51.745854 28.7543295,51.745535 28.755125,51.7448969 L54.6377841,32.8655472 C55.7988295,32.0172773 56.2807159,30.5249092 55.8366932,29.1508969 Z" id="Fill-1"></path> </g> </g> </g> </g> </svg> <div id="above-cta-form"> <div class="newsletter-preamble"> New blog posts directly to your inbox </div> <div class="newsletter-sub-preamble"> Sign up for our bi-monthly newsletter </div> </div> <div id="confirm-cta-form" style="display: none;"> <div class="newsletter-preamble"> Thanks, you’re <br /> signed up! </div> <div class="newsletter-sub-preamble"> GitLab is coming to your inbox </div> <img class="success-image" src="/images/emojis/newsletter-signup-success.png" /> </div> </div> <div class="newsletter-form"> <form class="notdefined" id="mktoForm_1547"> <script src="//app-ab13.marketo.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> MktoForms2.loadForm("//app-ab13.marketo.com", "194-VVC-221", 1547, function(form) { form.onSuccess(function(values, followUpUrl) { form.getFormElem().hide(); document.getElementById('above-cta-form').style.display = 'none'; document.getElementById('confirm-cta-form').style.display = 'block'; dataLayer.push({event: 'mktoLead',mktoFormId: form.getId()}); return false; }); function getgacid() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch (e) { return 'n/a'; } } form.vals({ 'gacid': getgacid() }); }); </script> </form> </div> </div> </div> <p>On average, our mean time to mitigation (MTTR) for critical security issues is currently less than 30 days. Our current goal is to now focus on bringing the MTTR metric for medium-high security issues to less than 60 days, on average.</p> <p>Yesterday, we released a <a href="https://www.hackerone.com/resources/gitlab-hps-for-startups">webinar</a> to announce our plans to be a public bug bounty program. In managing a <a href="https://hackerone.com/gitlab">public bug bounty program</a>, we will now be able to reward our hacker community for reporting security vulnerabilities to us directly through the program.</p> <p>The past year has been a great journey of learning about managing a bug bounty program, and we have plans to further expand upon our public program in 2019 and beyond. We would also like to acknowledge some of our top contributors from the hacker community, including <a href="https://hackerone.com/ngalog">ngalog</a>, <a href="https://hackerone.com/jobert">jobert</a>, and <a href="https://hackerone.com/fransrosen">fransrosen</a>. Check out the <a href="https://hackerone.com/gitlab">program</a> to see how you can contribute!</p> <img src='https://about.gitlab.com/images/blogimages/security-cover.png' class='webfeedsFeaturedVisual' style='display: none;' /> Announcing GitLab Serverless https://about.gitlab.com/2018/12/11/introducing-gitlab-serverless/ 2018-12-11T00:00:00+00:00 2018-12-11T00:00:00+00:00 Priyanka Sharma <p>Serverless is the latest innovation in cloud computing that promises to alter the cost-benefit equation for enterprises. As our CEO, <a href="/company/team/#sytses">Sid Sijbrandij</a> says, "All roads lead to compute." There is a race among providers to acquire as many workloads from enterprises as possible, at the cheapest cost. The latter is where serverless comes in: serverless computing is an execution model in which the cloud provider acts as the server, dynamically managing the allocation of machine resources. Pricing is based on the actual resources consumed by an application, rather than on pre-purchased units of capacity.</p> <p>This field began with the release of <a href="https://en.wikipedia.org/wiki/AWS_Lambda">AWS Lambda</a> in November 2014. In the four short years since then, it has become a well-known workflow that enterprises are eager to adopt. Today, we are announcing <a href="/product/serverless/">GitLab Serverless</a> to enable our users to take advantage of the benefits of serverless.</p> <h2 id="gitlab-serverless-is-launching-dec-22">GitLab Serverless is launching Dec. 22</h2> <p>GitLab is the only single application for the entire DevOps lifecycle. As part of that vision, we will release GitLab Serverless in GitLab 11.6, coming later this month, to allow enterprises to plan, build, and manage serverless workloads with the rest of their code from within the same GitLab UI. It leverages <a href="https://cloud.google.com/knative/">Knative</a>, which enables <a href="https://en.wikipedia.org/wiki/Autoscaling">autoscaling</a> down to zero and back up to run serverless workloads on Kubernetes. This allows businesses to employ a multi-cloud strategy and leverage the value of serverless without being locked into a specific cloud provider.</p> <p>In order to bring the best-in-class to our users, we partnered with <a href="https://triggermesh.com/">TriggerMesh</a> founder <a href="https://twitter.com/sebgoa">Sebastien Goasguen</a> and his team. Sebastien has been part of the serverless landscape since the beginning. He built a precursor to Knative, Kubeless. He is actively involved with the Knative community and understands the workflow from soup to nuts. Sebastien says, "We are excited to help GitLab enable all their users to deploy functions directly on the Knative function-as-a-service clusters. We believe that these additions to GitLab will give those users the best possible experience for complete serverless computing from beginning to end."</p> <h2 id="serverless-first">"Serverless first"</h2> <p>As any attendees at <a href="/2018/12/06/aws-reinvent-recap/">AWS re:Invent</a> would have noticed, the behemoth is putting all its energies behind serverless. We heard <a href="https://www.computerworlduk.com/cloud-computing/how-trustpilot-takes-serverless-first-approach-engineering-with-aws-3688267/">stories from the likes of TrustPilot</a> about changing their engineering culture to "serverless first." This is because serverless cloud providers save money by not having to keep idle machines provisioned and running, and are passing on the benefits to their customers. While this is amazing news, it is hard to truly embrace a workflow if it lives outside of developers' entrenched habits. GitLab has millions of users and is used by over 100,000 organizations, and with GitLab Serverless they can now enjoy the cost savings and elegant code design serverless brings, from the comfort of their established workflows.</p> <p>As with all GitLab endeavors, making serverless multi-cloud and accessible to everyone is a big, hairy, audacious goal. Today, Knative can be installed to a Kubernetes cluster with a single click via the GitLab Kubernetes integration. It shipped in <a href="/2018/11/22/gitlab-11-5-released/#easily-deploy-and-integrate-knative-with-gitlab">GitLab 11.5</a>.</p> <h3 id="how-to-activate-gitlab-serverless">How to activate GitLab Serverless</h3> <p>Starting with the release of GitLab 11.6 on Dec. 22, the "Serverless" tab will be available for users as an alpha offering. Please do check it out and share your feedback with us.</p> <ol> <li>Go to your GitLab instance and pick your project of choice.</li> <li>Click on the <code>Operations</code> menu item in the sidebar.</li> <li>Pick <code>Serverless</code> to view the list of all the functions you have defined. You will also be able to see a brief description as well as the Knative cluster the function is deploying to.</li> </ol> <p><img src="https://gitlab.com/gitlab-org/gitlab-ce/uploads/8b821d4aaa1bb75375dc54567a4313ad/CE-project__serverless-grouped.png" alt="Serverless list view" title="Serverless list view" class="shadow large center" /></p> <p>To dig further, click into the function for more info.</p> <p><img src="https://gitlab.com/gitlab-org/gitlab-ce/uploads/9e1e3893aa5369a2a165d1dd95c98dd8/CE-project__serverless--function-details.png" alt="function detail view" title="function detail view" class="shadow large center" /></p> <p>All this goodness will be available Dec. 22. In the meantime, we would love to see you at <a href="/events">KubeCon Seattle</a>, where our product and engineering experts are attending to talk all things serverless with attendees. Hope to see you at booth S44!</p> <img src='https://about.gitlab.com/images/blogimages/gitlab-serverless-blog.png' class='webfeedsFeaturedVisual' style='display: none;' /> Friends don't let friends add options to code https://about.gitlab.com/2018/12/10/friends-dont-let-friends-add-options-to-code/ 2018-12-10T00:00:00+00:00 2018-12-10T00:00:00+00:00 Suri Patel <p>Sometimes, when trying to make it easier to work in an application, our instinct is to add optional features that users can enable if their situations require a specific functionality. Our intentions may be good, but these actions can actually cause <em>more</em> problems, since we invite users to second-guess their choices by adding extra steps into the user experience.</p> <h2 id="the-disadvantages-of-a-choose-your-own-adventure-model">The disadvantages of a <a href="https://en.wikipedia.org/wiki/Choose_Your_Own_Adventure">choose your own adventure</a> model</h2> <p>One of the most celebrated aspects of <a href="/solutions/open-source/">open source</a> is the freedom that allows developers to brighten a user’s day by adding an optional feature that may not be for everyone, but allows a small portion of users to engage with a project in a specific way. While it may seem like a great idea to cater to individual needs, there are several disadvantages to making something an option.</p> <h3 id="it-creates-more-work-for-developers">It creates more work for developers</h3> <p>Creating extra options means more work for both frontend and backend teams. These features add additional code, tests, and documentation for each setting, and the various states alter the UI. Adding options hurts you in every step of the development process.</p> <h3 id="it-places-a-burden-on-the-user-to-choose">It places a burden on the user to choose</h3> <p>When we solve problems by including options, we force a user to think about the function and consider its purpose and drawbacks, placing a burden on them to control how they use an application. A user hesitates and has to make a decision about whether this is something that should be enabled. After all, if an option significantly enhanced the user experience, then wouldn’t it have been automatically integrated?</p> <h3 id="it-makes-future-functionality-more-difficult-to-implement">It makes future functionality more difficult to implement</h3> <p>There's also the long-term impact of additional options. Just one extra option can lead to one of two paths, which might influence other parts of an application. So, every time we add an option, the number of states of the application doubles. That's exponential growth and it adds up quickly, making it harder to diagnose errors. Multiple options can lead to the creation of states of which we’re unaware, so it’s harder for the user to understand how an application should behave, because they don't know whether errors are due to an option or not. And, if it is an option causing the error, <em>which</em> option is the problem?</p> <h2 id="how-we-avoid-adding-options-bask-in-the-glow-of-iteration">How we avoid adding options: Bask in the glow of iteration</h2> <p>So, how do you know if a feature should be optional or not? At GitLab, we ship the first <a href="/handbook/values/#iteration">iteration</a> and keep delivering based on user feedback. Some of the features that we anticipated may never roll out, because users didn’t request them. Iteration allows us to reduce the scope of development and avoid including features that aren’t popular or useable.</p> <div class="newsletter-cta-b panel panel-default panel-newsletter-cta"> <div class="panel-body newsletter-cta"> <div class="panel-header"> <?xml version="1.0" encoding="UTF-8"?> <svg width="56px" height="52px" viewBox="0 0 56 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs></defs> <g id="Desktop" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="blog-newsletter-cta-graphic-v2" transform="translate(-1070.000000, -383.000000)" fill="#FFFFFF"> <g id="gitlab-newsletter-cta-b" transform="translate(948.000000, 363.000000)"> <g id="Page-1" transform="translate(122.000000, 20.000000)"> <path d="M53.1397841,30.8022957 L34.558125,44.3561117 L51.1622841,22.9844307 L53.4156477,29.9385534 C53.5192159,30.2590074 53.4081705,30.6062589 53.1397841,30.8022957 Z M2.86117045,30.8027742 C2.59198864,30.6062589 2.48094318,30.2590074 2.58419318,29.9395104 L4.83819318,22.9833141 L21.4412386,44.3634491 L2.86117045,30.8027742 Z M11.2584659,3.11293374 L16.410625,19.0155227 L6.12523864,19.0155227 L11.2584659,3.11293374 Z M36.0973295,21.5676699 L28.0054886,46.5780748 L19.9136477,21.5676699 L36.0973295,21.5676699 Z M44.7420114,3.11277423 L49.8844659,19.0155227 L39.5995568,19.0155227 L44.7420114,3.11277423 Z M31.4494886,44.2040994 L33.126625,39.0203693 L38.7700568,21.578038 L49.0266477,21.578038 L32.9091477,42.3254 L31.4494886,44.2040994 Z M17.2337614,21.578038 L24.5527386,44.1996331 L6.98544318,21.578038 L17.2337614,21.578038 Z M55.8366932,29.1508969 L52.8941477,20.069719 C52.8793523,19.9864552 52.8535795,19.904946 52.8220795,19.8248724 L46.9193295,1.57207485 C46.5984432,0.615657669 45.7433295,-4.78527557e-05 44.7385114,-4.78527557e-05 L44.725625,-4.78527557e-05 C43.7206477,0.00521595093 42.8707841,0.62730184 42.5600795,1.58547362 L36.9236477,19.0155227 L19.0866932,19.0155227 L13.4396023,1.58483558 C13.1295341,0.62746135 12.2796705,0.00537546013 11.2746932,-4.78527557e-05 C10.2687614,-0.00563067484 9.40314773,0.611669939 9.07589773,1.58611166 L3.17648864,19.8628356 C3.17092045,19.8781485 3.16344318,19.8923448 3.15851136,19.9076577 L0.163147727,29.151854 C-0.280556818,30.5249092 0.201329545,32.0172773 1.36269318,32.8658663 L27.2447159,51.755584 C27.4696705,51.919719 27.7320114,51.9999521 27.9932386,51.9999521 C28.2622614,51.9999521 28.5292159,51.9133387 28.7525795,51.746492 C28.753375,51.745854 28.7543295,51.745535 28.755125,51.7448969 L54.6377841,32.8655472 C55.7988295,32.0172773 56.2807159,30.5249092 55.8366932,29.1508969 Z" id="Fill-1"></path> </g> </g> </g> </g> </svg> <div id="above-cta-form"> <div class="newsletter-preamble"> New blog posts directly to your inbox </div> <div class="newsletter-sub-preamble"> Sign up for our bi-monthly newsletter </div> </div> <div id="confirm-cta-form" style="display: none;"> <div class="newsletter-preamble"> Thanks, you’re <br /> signed up! </div> <div class="newsletter-sub-preamble"> GitLab is coming to your inbox </div> <img class="success-image" src="/images/emojis/newsletter-signup-success.png" /> </div> </div> <div class="newsletter-form"> <form class="notdefined" id="mktoForm_1547"> <script src="//app-ab13.marketo.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> MktoForms2.loadForm("//app-ab13.marketo.com", "194-VVC-221", 1547, function(form) { form.onSuccess(function(values, followUpUrl) { form.getFormElem().hide(); document.getElementById('above-cta-form').style.display = 'none'; document.getElementById('confirm-cta-form').style.display = 'block'; dataLayer.push({event: 'mktoLead',mktoFormId: form.getId()}); return false; }); function getgacid() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch (e) { return 'n/a'; } } form.vals({ 'gacid': getgacid() }); }); </script> </form> </div> </div> </div> <p>Whenever users need something new, try to create a solution that's acceptable for the most number of people. Rely on your development and operations teams to provide feedback and ask them to relate to the end user. Conducting <a href="/handbook/engineering/ux/ux-research/#ux-research">UX research</a> with your users also helps identify pain points and needs.</p> <p>Teams are continually constrained by development capacity, and adding options to applications can absorb previous time and effort. We suggest shipping your application without an option and waiting to see whether people request it or make a <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=feature+proposal">feature proposal</a> for it. In the end, our role is to solve users’ problems, and our goal is to identify the underlying cause of a challenge and fix it in a way that doesn't need an option.</p> <p class="note"><a href="https://unsplash.com/photos/pKeF6Tt3c08">Cover image</a> by <a href="https://unsplash.com/@bdchu614">Brendan Church</a> on Unsplash</p> <img src='https://about.gitlab.com/images/blogimages/options.jpg' class='webfeedsFeaturedVisual' style='display: none;' /> Git Protocol v2 now enabled for SSH on GitLab.com https://about.gitlab.com/2018/12/10/git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com/ 2018-12-10T00:00:00+00:00 2018-12-10T00:00:00+00:00 James Ramsay <p>GitLab added support for <a href="/2018/10/22/gitlab-11-4-released/#git-protocol-v2">Git Protocol v2 over HTTP and SSH in GitLab 11.4</a>, and enabled Protocol v2 over HTTP on GitLab.com, but not for SSH. On Nov. 23, we enabled <a href="https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5244">Git Protocol v2 over SSH on GitLab.com</a>. You can view Git Protocol usage on our <a href="https://dashboards.gitlab.com/d/pqlQq0xik/git-protocol-versions?refresh=5m&amp;orgId=1">public dashboard</a>.</p> <p>Git Protocol v2 is supported from Git v2.18.0 and is opt-in. To enable globally, run <code>git config --global protocol.version 2</code>.</p> <h2 id="what-git-protocol-v2-means-for-you">What Git Protocol v2 means for you</h2> <p>Git 2.18 introduced support for Protocol v2, which defines how clones, fetches, and pushes are communicated between the client (your computer) and the server (GitLab). The new <a href="https://www.kernel.org/pub/software/scm/git/docs/technical/pack-protocol.html">wire protocol</a> improves the performance of fetch commands and enables future protocol improvements. <a href="https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html">Read more about Protocol v2</a> in the release post by the author of the change.</p> <p>To see the reduction in network traffic with Protocol v2 you can run the commands below:</p> <pre class="highlight plaintext"><code># Original Git wire protocol GIT_TRACE_PACKET=1 git -c protocol.version=0 ls-remote git@gitlab.com:gitlab-org/gitlab-ce.git master # New Git wire protocol v2 GIT_TRACE_PACKET=1 git -c protocol.version=2 ls-remote git@gitlab.com:gitlab-org/gitlab-ce.git master </code></pre> <p>In moving from Protocol v0 to v2, on this repo the number of lines ("packets") sent behind the scenes drops from over 36,000 to fewer than 30.</p> <img src='https://about.gitlab.com/images/default-blog-image.png' class='webfeedsFeaturedVisual' style='display: none;' /> Highlights from AWS re:Invent 2018 https://about.gitlab.com/2018/12/06/aws-reinvent-recap/ 2018-12-06T00:00:00+00:00 2018-12-06T00:00:00+00:00 Priyanka Sharma <p>Last week GitLab was at AWS re:Invent 2018, the marquee event for cloud computing in the US. As the frontrunner in the space, Amazon has built re:Invent to be a juggernaut. This year it commanded most of the Las Vegas strip and had over 50,000 attendees. As a first-time visitor myself, I was impressed by the sheer scale and efficiency of the event. I was also thrilled to achieve my personal goal of giving my first talk with a live demo using code and GitLab. As for GitLab, we saw that our company emerged as a leader in the DevOps space with a single application for the whole software development lifecycle.</p> <h2 id="highlights">Highlights</h2> <h3 id="reinventing-cicd-pipelines">Reinventing CI/CD pipelines</h3> <p>Our CEO <a href="/company/team/#sytses">Sid Sijbrandij</a> and I did a talk and live demo about reinventing CI/CD pipelines using GitLab, <a href="/kubernetes">Kubernetes</a>, and EKS. This was our first hint that this re:Invent was going to be special. The talk was bursting at the seams with attendees, as we shared both the challenges of the toolchain crisis engulfing our ecosystem, and about how a single application for the entire DevOps lifecycle can make an improvement of over 200 percent in cycle times. You can <a href="https://docs.google.com/presentation/d/1x1g4pfpoaav9lhcYkjAJylLMl-9S0JFTeKXlNF98O-I/edit?usp=sharing">check out the presentation here</a>.</p> <p><img src="/images/blogimages/aws-2018/aws_2018_sid_talk_stage.jpeg" alt="Sid Sijbrandij and Priyanka Sharma on stage at AWS re:Invent" class="shadow medium center" /></p> <p>The demo, which showed us running a CI/CD pipeline and deploying code to Kubernetes on EKS, is an example of the <a href="/cloud-native/">cloud native workflows</a> users can push via GitLab. It is such competency that makes Kubernetes on EKS a breeze and is the reason GitLab was awarded the <a href="/2018/11/28/gitlab-achieves-aws-devops-competency-certification/">AWS Partner DevOps Competency Certification</a> to confirm our viability and excellence as a DevOps solution for companies using AWS Cloud.</p> <h3 id="validation-for-our-vision">Validation for our vision</h3> <p>Our experience at re:Invent was one of validation and emergence. As a company, we saw that our efforts to build the first single application for the entire DevOps lifecycle have paid off and our users resonated with our message. Most folks who came to our booth were aware that GitLab played a part in multiple stages (if not all) of their workflow and many were avid <a href="/product/continuous-integration/">GitLab CI</a> fans. Gone are the days when <a href="https://docs.gitlab.com/ee/workflow/gitlab_flow.html">version control</a> was the only thing GitLab was associated with.</p> <p><img src="/images/blogimages/aws-2018/aws_booth_collage.jpeg" alt="Collage from GitLab at AWS re:Invent" class="medium center" /></p> <p>Our VP of Alliances, <a href="/company/team/#brandoncjung">Brandon Jung</a>, <a href="https://www.youtube.com/watch?v=Ejs5xGAhL8s">appeared on theCUBE</a> with a company called Beacon. As the former head of partnerships at Google Cloud, Brandon has a long history with GitLab. He has seen the company grow over the years and shared how our rocketship ascent across the DevOps lifecycle convinced him of the potential. He said, "In just over two years, <a href="/2017/09/27/gitlab-leader-continuous-integration-forrester-wave/">GitLab became the frontrunner for continuous integration</a>, according to Forrester. That's impressive."</p> <h3 id="livestream-with-the-new-stack">Livestream with The New Stack</h3> <p>I also represented GitLab on <a href="https://www.pscp.tv/w/1eaJbODAepnxX">a livestream podcast</a> with <a href="https://thenewstack.io/">The New Stack</a>, <a href="https://twitter.com/biilmann?lang=en">Matt Biilmann</a>, CEO of <a href="/2018/06/13/netlify-launches-gitlab-support/">Netlify</a>, and <a href="https://twitter.com/jbeda">Joe Beda</a>, founder of <a href="https://heptio.com/">Heptio</a> and creator of Kubernetes. We discussed GitOps, NoOps, and the toolchain crisis. As Matt wisely said, "Trust in open source is critical to cloud computing and the ecosystem. Companies like GitLab will keep the players honest."</p> <div class="center"> <blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">GitOps, NoOps and the tool chain crisis. <a href="https://t.co/mtfm8OaYYD">https://t.co/mtfm8OaYYD</a></p>&mdash; The New Stack (@thenewstack) <a href="https://twitter.com/thenewstack/status/1067881587214184448?ref_src=twsrc%5Etfw">November 28, 2018</a></blockquote> <script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </div> <p>We thank AWS for creating this amazing ecosystem of end users and practitioners who came together in Vegas last week. Next year will be bigger, better. Until then, see you all at <a href="/events/">KubeCon</a>! 😃</p> <img src='https://about.gitlab.com/images/blogimages/aws-2018/aws_booth_2018.jpeg' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab Critical Security Release: 11.5.3, 11.4.10, 11.3.12 https://about.gitlab.com/2018/12/06/critical-security-release-gitlab-11-dot-5-dot-3-released/ 2018-12-06T00:00:00+00:00 2018-12-06T00:00:00+00:00 Ethan Strike <p>Today we are releasing versions 11.5.3, 11.4.10, and 11.3.12 for GitLab Community Edition (CE) and Enterprise Edition (EE).</p> <p>These versions contain an important security fix, and we strongly recommend that all GitLab installations be upgraded to one of these versions immediately.</p> <p>The vulnerability details will be made public on our issue tracker in approximately 30 days.</p> <p>Please read on for more information regarding this release.</p> <h2 id="directory-traversal-in-templates-api">Directory Traversal in Templates API</h2> <p>The templates api was vulnerable to a directory traversal issue which could allow an attacker to read arbitrary files on a GitLab server. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19856">CVE-2018-19856</a>.</p> <p>Thanks to <a href="https://hackerone.com/nyangawa">@nyangawa</a> of Chaitin Tech for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected">Versions Affected</h3> <p>Affects GitLab CE/EE 8.11 and later.</p> <h3 id="remediation">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="updating">Updating</h2> <p>To update, check out our <a href="/update">update page</a>.</p> <img src='https://about.gitlab.com/images/default-blog-image.png' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab Runner update required to use SAST in Auto DevOps https://about.gitlab.com/2018/12/06/gitlab-runner-update-required-to-use-auto-devops-and-sast/ 2018-12-06T00:00:00+00:00 2018-12-06T00:00:00+00:00 Fabio Busatto <p>We are introducing a major change for the <a href="https://docs.gitlab.com/ee/user/project/merge_requests/sast.html">SAST</a> job definition for <a href="https://docs.gitlab.com/ee/topics/autodevops/">Auto DevOps</a> with <strong>GitLab 11.6</strong>, shipping Dec. 22. As a result, SAST jobs will fail after the upgrade to GitLab 11.6 if they are picked up by a version of <a href="https://docs.gitlab.com/runner/">GitLab Runner</a> prior to 11.5. The jobs will fail, but they will not block pipelines. However, you won't see results for SAST in the merge request or at the pipeline level anymore.</p> <p>The same change will happen for <a href="https://docs.gitlab.com/ee/user/project/merge_requests/dependency_scanning.html">Dependency Scanning</a>, <a href="https://docs.gitlab.com/ee/user/project/merge_requests/container_scanning.html">Container Scanning</a>, <a href="https://docs.gitlab.com/ee/user/project/merge_requests/dast.html">DAST</a>, and <a href="https://docs.gitlab.com/ee/user/project/merge_requests/license_management.html">License Management</a> in future releases.</p> <h2 id="why-did-this-happen">Why did this happen?</h2> <p>The <a href="https://docs.gitlab.com/ee/ci/examples/sast.html">new job definition</a> uses the <a href="https://docs.gitlab.com/ee/ci/yaml/README.html#artifactsreportssast-ultimate"><code>reports</code> syntax</a>, which is necessary to show SAST results in the <a href="https://docs.gitlab.com/ee/user/group/security_dashboard/">Group Security Dashboard</a>. Unfortunately, this syntax is not supported by GitLab Runner prior to 11.5.</p> <h2 id="who-is-affected">Who is affected?</h2> <p>You are affected by this change if you meet <strong>all</strong> the requirements in the following list:</p> <ol> <li>You are using Auto DevOps <strong>AND</strong></li> <li>you have at least one GitLab Runner 11.4 or older set up for your projects <strong>AND</strong></li> <li>you are interested in security reports.</li> </ol> <h2 id="who-is-not-affected">Who is not affected?</h2> <p>You are <strong>not</strong> affected by this change if you meet <strong>at least one</strong> of the requirements in the following list:</p> <ol> <li>You are not using Auto DevOps <strong>OR</strong></li> <li>you are using only GitLab Runner 11.5 or newer <strong>OR</strong></li> <li>you are using only shared runners on GitLab.com (we already upgraded them) <strong>OR</strong></li> <li>you are not interested in security reports.</li> </ol> <h2 id="how-to-solve-the-problem">How to solve the problem</h2> <p>If you are not affected by the change, you don't need to take any action.</p> <p>If you are affected, you should upgrade your GitLab Runners to version 11.5 or newer as soon as possible. If you don't, you will not have new SAST reports until you do upgrade. If you upgrade your runners later, SAST will start to work again correctly.</p> <h2 id="which-is-the-expected-timeline">Which is the expected timeline?</h2> <p>GitLab 11.6 will be released on <strong>Dec. 22</strong>. This change may also be shipped in an early release candidate (RC) version.</p> <p>If you are using a <strong>self-managed</strong> GitLab instance, and you don't install RC versions, you will be affected when you'll upgrade to GitLab 11.6.</p> <p>If you are using <strong>GitLab.com</strong>, you will be affected as soon as the RC version with the change will be deployed.</p> <p>Feel free to reach out to us with any further questions!</p> <img src='https://about.gitlab.com/images/default-blog-image.png' class='webfeedsFeaturedVisual' style='display: none;' /> Introducing Patroni as the Postgres Failover Manager on GitLab.com https://about.gitlab.com/2018/12/05/availability-postgres-patroni/ 2018-12-05T00:00:00+00:00 2018-12-05T00:00:00+00:00 Gerardo Lopez-Fernandez <h2 id="upcoming-maintenance-windows-for-patroni-deployment">Upcoming Maintenance Windows for Patroni Deployment</h2> <p>We are writing this post to let our community know we are planning on performing the work necessary to deploy <a href="https://github.com/zalando/patroni">Patroni</a> as the Postgres Failover Manager on GitLab.com over two weekends: a dry-run to test our migration plan and tools on Saturday, Dec 8, 2018, and the actual deployment on Saturday, December 15, 2018.</p> <p>During the maintenance windows, the following services will be unavailable:</p> <ul> <li>SaaS website (<a href="https://gitlab.com/">GitLab.com</a> will be offline, but <a href="https://about.gitlab.com/">about.gitlab.com</a> and <a href="https://docs.gitlab.com/">docs.gitlab.com</a> will still be available)</li> <li>Git ssh</li> <li>Git https</li> <li>registry</li> <li>CI/CD</li> <li>Pages</li> </ul> <h3 id="maintenance-window---dry-run---saturday-december-8-at-1300-utc">Maintenance Window - Dry run - Saturday, December 8 at 13:00 UTC</h3> <p>We will perform testing and validation of our deployment procedures and tools during this maintenance window to do final readiness checks. This maintenance window should last 30 minutes.</p> <h3 id="maintenance-window---actual-cutover---saturday-december-15-at-1300-utc">Maintenance Window - Actual Cutover - Saturday, December 15 at 13:00 UTC</h3> <p>On the day of the cutover, we are planning to start at 13:00 UTC. The time window for GitLab.com to be in maintenance is currently planned to be 30 minutes. Should any times for this change, we will be updating on the channels listed below. When this window is completed GitLab.com will be running Patroni.</p> <ul> <li><a href="https://status.gitlab.com/">GitLab Status page</a></li> <li><a href="https://twitter.com/gitlabstatus">GitLab Status Twitter</a></li> </ul> <img src='https://about.gitlab.com/images/blogimages/gitlab-gke-integration-cover.png' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab Patch Release: 11.5.2 https://about.gitlab.com/2018/12/04/gitlab-11-5-2-released/ 2018-12-04T00:00:00+00:00 2018-12-04T00:00:00+00:00 Cindy Pallares <p>Today we are releasing version 11.5.2 for GitLab Community Edition and Enterprise Edition.</p> <p>This version resolves a number of regressions and bugs in <a href="/2018/11/22/gitlab-11-5-released/">this month's 11.5.0 release</a> and prior versions.</p> <h2 id="gitlab-community-edition-and-enterprise-edition">GitLab Community Edition and Enterprise Edition</h2> <p>Available in GitLab Core, Starter, Premium, and Ultimate:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22916">Fix impersonation token value not displaying after creation</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23112">Fix emoji not rendering in filter dropdown</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23195">Fix the dimensions of image diffs</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23306">Correctly handle data-loss scenarios when encrypting columns</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23244">Fix stuck tooltip on stop env button</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23279">Allow commenting to resolved non-diff discussions</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23314">Remove Site Statistic</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23308">Clear BatchLoader context between Sidekiq jobs</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23321">Update issue boards images for recent cards redesign</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23247">New Crowdin translations</a></li> </ul> <p>Available in GitLab Starter, Premium, and Ultimate:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8543">Fill timestamp for Approver bulk insertion</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8509">Fix issues analytics query</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8466">Exclude code owner from merge request participants to avoid spam</a></li> </ul> <p>Available in GitLab Ultimate:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8494">Add additional requirements to Security Dashboard</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8459">Resolve inability to scroll operations dashboard</a></li> </ul> <h2 id="omnibus-gitlab">Omnibus GitLab</h2> <ul> <li><a href="https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/2871">Make remote-syslog template use correct log directory</a></li> </ul> <h2 id="upgrade-barometer">Upgrade barometer</h2> <p>Please be aware that by default the Omnibus packages will stop, run migrations, and start again, no matter how “big” or “small” the upgrade is. This behavior can be changed by adding a <a href="http://docs.gitlab.com/omnibus/update/README.html"><code>/etc/gitlab/skip-auto-migrations</code></a> file, which is only used for <a href="https://docs.gitlab.com/omnibus/update/README.html">updates</a>.</p> <h2 id="updating">Updating</h2> <p>To update, check out our <a href="/update/">update page</a>.</p> <h2 id="gitlab-subscriptions">GitLab subscriptions</h2> <p>Access to GitLab Starter, Premium, and Ultimate features is granted by a paid <a href="/pricing/">subscription</a>.</p> <p>Alternativelly, <a href="https://gitlab.com/users/sign_in">sign up for GitLab.com</a> to use GitLab's own infrastructure.</p> <img src='https://about.gitlab.com/images/default-blog-image.png' class='webfeedsFeaturedVisual' style='display: none;' /> Crossplane lowers the barrier to a multi-cloud future https://about.gitlab.com/2018/12/04/opensource-multi-cloud-crossplane/ 2018-12-04T00:00:00+00:00 2018-12-04T00:00:00+00:00 Sid Sijbrandij <p>Cloud computing has become the dominant IT paradigm and multi-cloud looks poised to be the primary approach, with <a href="https://www.rightscale.com/blog/cloud-industry-insights/cloud-computing-trends-2018-state-cloud-survey">81 percent of enterprises</a> already adopting a multi-cloud strategy.</p> <p>A multi-cloud strategy prevents vendor lock-in, which is increasingly important as three major providers (AWS, GCP, and Azure) dominate the market. Despite the many benefits of a multi-cloud strategy, deploying across multiple clouds is still incredibly complex. While Kubernetes has emerged as the standard container orchestration platform, most organizations are running more than just container workloads, and there’s currently no standard for workload portability across managed services. What’s needed is a consistent, multi-cloud, open source interface, and we think there’s a new, interesting project up for the challenge.</p> <h2 id="crossplane-aims-to-simplify-multi-cloud-strategy">Crossplane aims to simplify multi-cloud strategy</h2> <p>Crossplane, <a href="https://crossplane.io/">announced today</a>, is an open source multi-cloud control plane sponsored by <a href="https://upbound.io">Upbound</a>. Crossplane introduces a set of workload resource abstractions on top of existing managed services and cloud offerings to enable an unprecedented degree of workload portability across cloud providers. There are <a href="https://medium.com/gitlab-magazine/multi-cloud-maturity-model-2de185c01dd7">six levels of multi-cloud maturity</a> and until today, application portability (i.e. the ability to run an app on any cloud) is incredibly rare and has been difficult to achieve.</p> <p>Upbound is the sponsoring company behind <a href="https://rook.io">Rook.io</a>, a cloud native storage service for Kubernetes, and are experts in running managed services the cloud native way. With this project, Upbound strives for Crossplane to become a universal API for cloud computing, and a control plane for smart controllers that can work across clouds. The end goal is to enable a clean separation of concerns between developers who want to consume resources without knowing the details of how they are provisioned or managed, and administrators who want to tightly control the details of implementation and policies.</p> <h2 id="how-does-crossplane-compare-to-existing-tools">How does Crossplane compare to existing tools?</h2> <p>Similar projects exist, but are not nearly as flexible in their ability to support workload portability across multiple clouds. For example, Terraform and <a href="https://github.com/awslabs/aws-service-operator">AWS Service Operator</a> are similar infrastructure provisioning tools, but they do not support workload portability across cloud providers. Terraform can dynamically provision infrastructure and typically performs changes only when the tool is run by a human, and AWS Service Operator can only provision managed services in AWS.</p> <p>As a result of an open API approach, Crossplane has an opportunity to change the cloud industry as we know it, and we’re excited that they've chosen GitLab to be the first complex app deployed with them.</p> <h2 id="why-crossplane--gitlab">Why Crossplane + GitLab?</h2> <p>"GitLab has a proven track record supporting multi-cloud DevOps,” says Bassam Tabbara, founder and CEO at Upbound. “Customers value the simplicity of the toolchain and the flexibility of the diverse deployment environments that GitLab offers them. Their open collaboration and culture made them the natural fit to be the first complex app deployed with Crossplane."</p> <p>At GitLab, we’ve committed to multi-cloud DevOps, as detailed in my recent post on <a href="https://medium.com/gitlab-magazine/there-are-3-public-clouds-left-and-well-use-all-of-them-214858d793e9">why GitLab will use all three public clouds</a>. Most of our customers are already leveraging a multi-cloud strategy using <a href="/product/continuous-integration/">GitLab CI/CD</a> and are increasingly looking for more ways to deploy their code across multiple cloud environments. The choices available today are too complex and vendor driven, but with Crossplane the ability to orchestrate clouds becomes simple. We look forward to collaborating with them on this vision and as the first complex app deployed with Crossplane.</p> <p>Once GitLab has been successfully deployed with Crossplane, the next step is to use the project to deploy applications from GitLab. We’ll provide updates as they become available.</p> <img src='https://about.gitlab.com/images/blogimages/crossplane.png' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab Patch Release: 11.4.9 https://about.gitlab.com/2018/12/04/gitlab-11-4-9-released/ 2018-12-04T00:00:00+00:00 2018-12-04T00:00:00+00:00 Steve Azzopardi <!-- For detailed instructions on how to complete this, please see https://gitlab.com/gitlab-org/release/docs/blob/master/general/patch/blog-post.md --> <p>Today we are releasing version 11.4.9 for GitLab Community Edition and Enterprise Edition.</p> <p>This version resolves a number of regressions and bugs in <a href="/2018/10/22/gitlab-11-4-released">last month's 11.4 release</a> and prior versions.</p> <h2 id="gitlab-community-edition-and-enterprise-edition">GitLab Community Edition and Enterprise Edition</h2> <p>Available in GitLab Core, Starter, Premium, and Ultimate:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22916">Display impersonation token value after creation</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23306">Correctly handle data-loss scenarios when encrypting columns</a></li> </ul> <h2 id="upgrade-barometer">Upgrade barometer</h2> <p>This version does not include any new migrations, and should not require any downtime.</p> <p>Please be aware that by default the Omnibus packages will stop, run migrations, and start again, no matter how “big” or “small” the upgrade is. This behavior can be changed by adding a <a href="http://docs.gitlab.com/omnibus/update/README.html"><code>/etc/gitlab/skip-auto-migrations</code></a> file, which is only used for <a href="https://docs.gitlab.com/omnibus/update/README.html">updates</a>.</p> <h2 id="updating">Updating</h2> <p>To update, check out our <a href="/update/">update page</a>.</p> <h2 id="gitlab-subscriptions">GitLab subscriptions</h2> <p>Access to GitLab Starter, Premium, and Ultimate features is granted by a paid <a href="/pricing/">subscription</a>.</p> <p>Alternativelly, <a href="https://gitlab.com/users/sign_in">sign up for GitLab.com</a> to use GitLab's own infrastructure.</p> <img src='https://about.gitlab.com/images/default-blog-image.png' class='webfeedsFeaturedVisual' style='display: none;' /> What went down at the Q4'2018 GitLab Hackathon https://about.gitlab.com/2018/11/29/q4-hackathon-recap/ 2018-11-29T00:00:00+00:00 2018-11-29T00:00:00+00:00 Ray Paik <p>Following the success of the <a href="/2018/10/09/hackathon-recap/">inaugural GitLab Hackathon in September</a>, the GitLab community again gathered on Nov. 14-15 for the Q4 hackathon. Many first-time contributors also participated in this event and the community contribution far exeeded what we saw from the first Hackathon.</p> <h2 id="so-what-did-we-accomplish">So what did we accomplish?</h2> <p>One of the key goals of the event was to encourage community members to contribute Merge Requests (MRs), and the community delivered 65 of them, with 46 merged as of Nov. 26. You can check out the status of MRs at <a href="https://gitlab.com/gitlab-com/marketing/community-relations/contributor-program/gitlab-hackathon/q4-2018-hackathon/issues/1">Hackathon Community MRs</a>. This is almost the triple the number of MRs from the September Hackathon, as we easily surpassed the September total by the end of Day 1. Beyond the number of MRs, what was also impressive was community's participation across a wide variety of GitLab projects. In addition to GitLab <a href="https://gitlab.com/gitlab-org/gitlab-ce">Community</a> and <a href="https://gitlab.com/gitlab-org/gitlab-ee">Enterprise</a> editions, we saw MRs for <a href="https://gitlab.com/gitlab-org/gitlab-development-kit">GitLab Development Kit (GDK)</a>, <a href="https://gitlab.com/gitlab-org/gitlab-shell">GitLab Shell</a>, <a href="https://gitlab.com/gitlab-org/gitter/webapp">Gitter</a>, <a href="https://gitlab.com/gitlab-com/www-gitlab-com">the GitLab website</a>, and more.</p> <h2 id="what-else-happened-during-the-event">What else happened during the event?</h2> <p>In addition to hacking, we had several community experts deliver tutorial sessions on topics ranging from <a href="https://www.youtube.com/watch?v=0WatxtwgLDE">Meltano</a>, <a href="https://www.youtube.com/watch?v=mCec7g6Ml70">Omnibus</a>, <a href="https://www.youtube.com/watch?v=0GVtrxZ5_a8">GitLab Architecture</a>, and <a href="https://www.youtube.com/watch?v=LFWTW6PbJOQ">Gitter</a>. Recordings/slides from all the sessions can also be found on the <a href="https://gitlab.com/gitlab-com/marketing/community-relations/contributor-program/gitlab-hackathon/q4-2018-hackathon/wikis/home">Hackathon wiki page</a>.</p> <h2 id="when-is-the-next-hackathon">When is the next Hackathon?</h2> <p>We will be having another Hackathon in mid-Q1'2019, and will announce the dates in January. Please stay tuned for further announcements in another blog post and discussions on the <a href="https://gitter.im/gitlabhq/community">GitLab Community room in Gitter</a> and on the <a href="https://forum.gitlab.com/c/announcements">GitLab forum</a>. More importantly, if you have any suggestions for topics and/or feedback on last month's event, please mention them on the <a href="https://gitter.im/gitlabhq/community">GitLab Community room in Gitter</a> to help us improve future Hackathons.</p> <h2 id="hackathon-prizes">Hackathon prizes</h2> <p>As we announced at the Hackathon kickoff, everyone who had MRs merged will receive a token of our appreciation for their contribution. During the Hackathon period, 19 people had MRs merged and the "grand prize" winner with most MRs merged is once again <a href="https://gitlab.com/gtsiolis">George Tsiolis</a>, with 13 merged MRs! Congratulations to everyone! I will reach out to all winners shortly.</p> <h2 id="how-do-i-get-started-with-contributing">How do I get started with contributing?</h2> <p>A good place to start is the <a href="/community/contribute/">Contributing to GitLab page</a>, where you can learn how you can contribute to GitLab code, documentation, translation, and UX design.</p> <p>If you have any questions, you are always welcome to reach me at rpaik@gitlab.com.</p> <p class="note"><a href="https://unsplash.com/photos/ZV_64LdGoao">"Gitlab application screengrab"</a> by <a href="https://unsplash.com/@pankajpatel">Pankaj Patel</a> on Unsplash</p> <img src='https://about.gitlab.com/images/blogimages/2018-09-13-gitlab-hackathon-cover.jpg' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab Security Release: 11.5.1, 11.4.8, and 11.3.11 https://about.gitlab.com/2018/11/28/security-release-gitlab-11-dot-5-dot-1-released/ 2018-11-28T00:00:00+00:00 2018-11-28T00:00:00+00:00 Ethan Strike <p>Today we are releasing versions 11.5.1, 11.4.8, and 11.3.11 for GitLab Community Edition (CE) and Enterprise Edition (EE).</p> <p>These versions contain a number of important security fixes, and we strongly recommend that all GitLab installations be upgraded to one of these versions immediately.</p> <p>The vulnerability details will be made public on our issue tracker in approximately 30 days.</p> <p>Please read on for more information regarding this release.</p> <h2 id="view-names-of-private-groups">View Names of Private Groups</h2> <p>The Todos dashboard permitted an unauthorized user to view the names of private groups. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19494">CVE-2018-19494</a>.</p> <p>Thanks to <a href="https://hackerone.com/ashish_r_padelkar">@ashish_r_padelkar</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected">Versions Affected</h3> <p>Affects GitLab CE/EE 11.2 and later.</p> <h3 id="remediation">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="persistent-xss-in-environments">Persistent XSS in Environments</h2> <p>The Environments page contained a lack of input validation and output encoding issue which resulted in a persistent XSS. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19493">CVE-2018-19493</a>.</p> <p>Thanks to <a href="https://hackerone.com/xanbanx">@xanbanx</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-1">Versions Affected</h3> <p>Affects GitLab CE/EE 11.0 and later.</p> <h3 id="remediation-1">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="ssrf-in-prometheus-integration">SSRF in Prometheus integration</h2> <p>The Prometheus integration was vulnerable to an SSRF issue which allowed an attacker to make requests to any local network resource accessible from the GitLab server. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19495">CVE-2018-19495</a>.</p> <p>Thanks to <a href="https://hackerone.com/bull">@bull</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-2">Versions Affected</h3> <p>Affects GitLab CE/EE 9.0 and later.</p> <h3 id="remediation-2">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="unauthorized-promotion-of-milestones">Unauthorized Promotion of Milestones</h2> <p>Milestones were vulnerable to an insecure object reference issue where a user with insufficient privilieges could promote a project milestone to a group milestone. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19496">CVE-2018-19496</a>.</p> <p>Thanks to <a href="https://hackerone.com/sandeep_hodkasia">@sandeep_hodkasia</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-3">Versions Affected</h3> <p>Affects GitLab CE/EE 10.2 and later.</p> <h3 id="remediation-3">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="exposure-of-confidential-issue-title">Exposure of Confidential Issue Title</h2> <p>The commits listing page in a project permitted an unauthorized user to view the title of a confidential issue. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19577">CVE-2018-19577</a>.</p> <p>Thanks to <a href="https://hackerone.com/ngalog">@ngalog</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-4">Versions Affected</h3> <p>Affects GitLab CE/EE 8.6 and later.</p> <h3 id="remediation-4">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="persisent-xss-in-markdown-fields-via-mermaid-script">Persisent XSS in Markdown Fields via Mermaid Script</h2> <p>Fields that accept Markdown contained incomplete input validation and output encoding when accepting Mermaid script, which resulted in a persistent XSS. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19573">CVE-2018-19573</a>.</p> <p>Thanks to <a href="https://hackerone.com/fransrosen">@fransrosen</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-5">Versions Affected</h3> <p>Affects GitLab CE/EE 10.3 and later.</p> <h3 id="remediation-5">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="persistent-xss-in-markdown-fields-via-unrecognized-html-tags">Persistent XSS in Markdown Fields via Unrecognized HTML Tags</h2> <p>Fields that accept Markdown contained incomplete input validation and output encoding when accepting unrecognized HTML tags, which resulted in a persistent XSS. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19570">CVE-2018-19570</a>.</p> <p>Thanks to <a href="https://hackerone.com/otr">@otr</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-6">Versions Affected</h3> <p>Affects GitLab CE/EE 11.3 and later.</p> <h3 id="remediation-6">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="symlink-race-condition-in-pages">Symlink Race Condition in Pages</h2> <p>GitLab Pages had a symlink race condition that would allow unauthorized access to files in the Pages chroot. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19572">CVE-2018-19572</a>.</p> <p>Thanks to <a href="https://gitlab.com/waldi">Bastian Blank</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-7">Versions Affected</h3> <p>Affects GitLab CE 8.17 &amp; EE 8.3 and later.</p> <h3 id="remediation-7">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="unauthorized-changes-by-guest-user-in-issues">Unauthorized Changes by Guest User in Issues</h2> <p>GitLab issues were vulnerable to an insecure object reference issue that allowed a Guest user to make changes to, or delete their own comments after an issue had been made confidential. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19576">CVE-2018-19576</a>.</p> <p>Thanks to <a href="https://hackerone.com/sandeep_hodkasia">@sandeep_hodkasia</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-8">Versions Affected</h3> <p>Affects GitLab CE/EE 8.6 and later.</p> <h3 id="remediation-8">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="unauthorized-comments-on-locked-issues">Unauthorized Comments on Locked Issues</h2> <p>GitLab issues were vulnerable to an insecure object reference issue that allowed an unauthorized user to make comments after an issue had been locked. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19575">CVE-2018-19575</a>.</p> <p>Thanks to <a href="https://hackerone.com/ngalog">@ngalog</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-9">Versions Affected</h3> <p>Affects GitLab CE/EE 10.1 and later.</p> <h3 id="remediation-9">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="improper-enforcement-of-token-scope">Improper Enforcement of Token Scope</h2> <p>The GitLab web interface was vulnerable to an authorization issue that allowed access to the web-UI as a user using their Personal Access Token (PAT) of any scope. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19569">CVE-2018-19569</a>.</p> <p>With this fix, the use of PATs is limited to the API, the RSS feed, and the registry, which could break any existing automation scripts that don't use the API. The impact is expected to be limited.</p> <p>Thanks to Jan Alsenz of Oneconsult AG for responsibly reporting this vulnerability to us.</p> <p><em>Updated: 2018-11-28:</em> We have received reports that this change has impacted how repo files and job artifacts are downloaded for some users. For instructions on how to do so through the API, please see <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/54572#note_120859334">our support issue</a>. Thank you to the users participating in this issue. Your feedback is important to us.</p> <h3 id="versions-affected-10">Versions Affected</h3> <p>Affects GitLab CE/EE 8.8 and later.</p> <h3 id="remediation-10">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="crlf-injection-in-project-mirroring">CRLF Injection in Project Mirroring</h2> <p>When using the Git protocol, project mirroring was vulnerable to a CRLF injection vulnerability. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19585">CVE-2018-19585</a>.</p> <p>Thanks to <a href="https://hackerone.com/chromium1337">@chromium1337</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-11">Versions Affected</h3> <p>Affects GitLab CE/EE 8.18 and later.</p> <h3 id="remediation-11">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="xss-in-oauth-authorization">XSS in OAuth Authorization</h2> <p>The OAuth authorization process contained a lack of input validation and output encoding which resulted in an XSS. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19574">CVE-2018-19574</a>.</p> <p>Thanks to <a href="https://hackerone.com/fransrosen">@fransrosen</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-12">Versions Affected</h3> <p>Affects GitLab CE/EE 7.6 and later.</p> <h3 id="remediation-12">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="ssrf-in-webhooks">SSRF in Webhooks</h2> <p>Webhooks were vulnerable to an SSRF vulnerability that allowed an attacker to make requests to any local network resource accessible from the GitLab server. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19571">CVE-2018-19571</a>.</p> <p>Thanks to <a href="https://hackerone.com/nyangawa">@nyangawa</a> of Chaitin Tech for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-13">Versions Affected</h3> <p>Affects GitLab CE/EE 8.18 and later.</p> <h3 id="remediation-13">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="send-email-on-email-address-change">Send Email on Email Address Change</h2> <p>Previously, GitLab did not send an email to the old email address when an email address change was made. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19580">CVE-2018-19580</a>.</p> <p>Thanks to <a href="https://hackerone.com/muon4">@muon4</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-14">Versions Affected</h3> <p>Affects all versions of GitLab CE/EE.</p> <h3 id="remediation-14">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="workhorse-logs-contained-tokens">Workhorse Logs Contained Tokens</h2> <p>Workhorse was logging access tokens, which allowed administrators with access to the logs to see the tokens of other users. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19583">CVE-2018-19583</a>.</p> <h3 id="versions-affected-15">Versions Affected</h3> <p>Affects GitLab CE/EE 8.0 and later.</p> <h3 id="remediation-15">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="unauthorized-publishing-of-draft-comments">Unauthorized Publishing of Draft Comments</h2> <p>The discussion drafts endpoint, used in merge requests, contained an insecure object reference vulnerability that permitted an unauthorized user to publish the drafts of another user. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19582">CVE-2018-19582</a>.</p> <p>Thanks to <a href="https://hackerone.com/lucky_sen">@lucky_sen</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-16">Versions Affected</h3> <p>Affects GitLab EE 11.4 and later.</p> <h3 id="remediation-16">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="guest-can-set-weight-of-a-new-issue">Guest Can Set Weight of a New Issue</h2> <p>GitLab issues were vulnerable to an insecure object reference issue that allowed a Guest user to set the weight of an issue they created. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19581">CVE-2018-19581</a>.</p> <p>Thanks to <a href="https://hackerone.com/ngalog">@ngalog</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-17">Versions Affected</h3> <p>Affects GitLab EE 8.3 and later.</p> <h3 id="remediation-17">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="disclosure-of-private-groups-members-and-milestones">Disclosure of Private Group's Members and Milestones</h2> <p>An insecure direct object reference vulnerability in issue boards allowed authenticated, but unauthorized users to view members and milestone details of private groups. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19584">CVE-2018-19584</a>.</p> <p>Thanks to <a href="https://hackerone.com/ngalog">@ngalog</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-18">Versions Affected</h3> <p>Affects GitLab EE 11.0 and later.</p> <h3 id="remediation-18">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="persisent-xss-in-operations">Persisent XSS in Operations</h2> <p>The Operations page contained a lack of input validation and output encoding which resulted in a persistent XSS. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19579">CVE-2018-19579</a>.</p> <p>Thanks to <a href="https://hackerone.com/ngalog">@ngalog</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-19">Versions Affected</h3> <p>Affects GitLab EE 11.5.</p> <h3 id="remediation-19">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="reporter-can-view-operations-page">Reporter Can View Operations Page</h2> <p>Due to incomplete permissions validation, a user with Reporter privileges was permitted to view the Jaeger Tracing Operations page. The issue is now mitigated in the latest release and is assigned <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19578">CVE-2018-19578</a>.</p> <p>Thanks to <a href="https://hackerone.com/vijay_kumar1110">@vijay_kumar1110</a> for responsibly reporting this vulnerability to us.</p> <h3 id="versions-affected-20">Versions Affected</h3> <p>Affects GitLab EE 11.5.</p> <h3 id="remediation-20">Remediation</h3> <p>We <strong>strongly recommend</strong> that all installations running an affected version above to be upgraded to the latest version as soon as possible.</p> <h2 id="upgrade-to-redis-3212">Upgrade to Redis 3.2.12</h2> <p>The version of Redis used in the Omnibus package was upgraded in the GitLab 11.3 release. This upgrade was previously included in GitLab 11.4 and 11.5 Omnibus packages, and includes several security fixes. The upgrade to Redis was incorrectly reported in the <a href="https://about.gitlab.com/2018/10/29/security-release-gitlab-11-dot-4-dot-3-released/">October security release</a>.</p> <h2 id="updating">Updating</h2> <p>To update, check out our <a href="/update">update page</a>.</p> <img src='https://about.gitlab.com/images/default-blog-image.png' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab achieves AWS DevOps Competency certification https://about.gitlab.com/2018/11/28/gitlab-achieves-aws-devops-competency-certification/ 2018-11-28T00:00:00+00:00 2018-11-28T00:00:00+00:00 Tina Sturgis and Eliran Mesika <p>Today, we are proud to announce GitLab has been certified with <a href="https://aws.amazon.com/devops/partner-solutions/">AWS DevOps Competency</a>, affirming our further commitment as a technology partner with Amazon Web Services (AWS).</p> <p>Building on the foundation of our AWS partnership over the last three years, with this DevOps certification we’ve now received the highest level of accreditation available from AWS. We bring proven customer success with <a href="/customers/axway/">measurable return on investment</a> for customers running GitLab on AWS and <a href="/solutions/aws/">using GitLab to deploy their software to AWS</a>.</p> <p><img src="/images/blogimages/DevOps_competency_badge.png" alt="AWS DevOps Competency badge" class="small right wrap-text" /></p> <h3 id="why-the-aws-devops-competency-matters">Why the AWS DevOps Competency matters</h3> <p>Achieving this certification sets GitLab apart as an AWS Partner Network (APN) member that provides demonstrated DevOps technical proficiency and proven customer success, with specific focus in the <a href="/product/continuous-integration/">Continuous Integration</a> and <a href="/product/continuous-delivery/">Continuous Delivery</a> category.</p> <p>This is important for our own customers who are either looking to move to AWS or are already using it, as well as for current AWS customers. Potential users of GitLab with AWS can be assured that the GitLab solution has been reviewed and approved by an AWS Architect Review Board and that it meets <a href="https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Best_Practices.pdf">AWS Security Best Practices</a>.</p> <p>Through this process we were able to demonstrate our product is production ready on AWS for DevOps, specifically for improving application delivery, application build/test, or infrastructure/configuration management.</p> <h3 id="gitlab-and-aws-customer-success">GitLab and AWS customer success</h3> <p>To learn more about the GitLab customer case studies considered for this competency, please review both the <a href="/customers/axway/">Axway </a> and <a href="/customers/trek10/">Trek10</a> case studies. You can also access information about other customers on the <a href="/customers/">GitLab customers page</a>.</p> <h3 id="more-about-the-aws-competency-program">More about the AWS Competency Program</h3> <p>AWS established the program to help customers identify, through the AWS Partner Network, partners with deep industry experience and expertise in specialized solution areas. Attaining an AWS Competency allows partners to differentiate themselves to customers by showcasing expertise in a specific solution area.</p> <p>We are honored to obtain this AWS DevOps Competency status, and believe this helps advance <a href="/company/strategy/#mission">our mission to allow everyone to contribute</a>. Our definition of everyone now extends further, to those who are small and large users of AWS and AWS Services on their DevOps journey.   </p> <p>For more information on GitLab’s partnership with AWS, check out <a href="/solutions/aws/">about.gitlab.com/solutions/aws</a>.</p> <p>To learn more about GitLab’s Technology Partners, visit <a href="/partners/">about.gitlab.com/partners</a>.</p> <img src='https://about.gitlab.com/images/blogimages/gitlab-aws-cover.png' class='webfeedsFeaturedVisual' style='display: none;' /> It's raining repos: The microservices repo explosion, and what we're doing about it https://about.gitlab.com/2018/11/26/microservices-integrated-solution/ 2018-11-26T00:00:00+00:00 2018-11-26T00:00:00+00:00 Aricka Flowers <p>Gone are the days of "set it and forget it"-style software development. The increased demand for code and operations on all projects, especially microservices, means more repos. This calls for a more integrated solution to incorporate testing, security updates, monitoring, and more, says GitLab CEO <a href="/company/team/#sytses">Sid Sijbrandij</a>:</p> <blockquote> <p>"The bar's going up for software development. It's no longer enough to just write the code; you also have to write the tests. It's no longer enough to just ship it; you also have to monitor it. You can no longer make it once and forget about it; you have to stay current with security updates. For every product you make you have to integrate more of these tools. It used to be that only the big projects got all these things, but now every single service you ship should have these features, because other projects are dependent on it. One security vulnerability can be enough to take a company down."</p> </blockquote> <p>An increasing number of project repos means exponential growth in the number of tools needed to handle them – bad news for those saddled managing project dependencies. A streamlined workflow is essential to alleviate this burden – here's how we want to help you get there.</p> <h3 id="everything-under-one-roof">Everything under one roof</h3> <p>"With GitLab, we want to enable you to simply commit your code and have all the tools you need integrated out of the box," Sid said. "You don't have to do anything else. It's monitored; we measure whether your dependencies have a vulnerability and fix it for you automatically. I think that's the big benefit of GitLab; that you don't have to go into stitching together 10 tools for every project that you make."</p> <p>By using an integrated solution to manage an ever-growing number of microservices, you can avoid having engineers siloed off with their respective teams and tools. Creating visibility among teams and getting rid of the need for handoffs leads to a faster DevOps lifecycle while also ensuring that your projects deploy and remain stable, Sid explains.</p> <div class="newsletter-cta-b panel panel-default panel-newsletter-cta"> <div class="panel-body newsletter-cta"> <div class="panel-header"> <?xml version="1.0" encoding="UTF-8"?> <svg width="56px" height="52px" viewBox="0 0 56 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs></defs> <g id="Desktop" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="blog-newsletter-cta-graphic-v2" transform="translate(-1070.000000, -383.000000)" fill="#FFFFFF"> <g id="gitlab-newsletter-cta-b" transform="translate(948.000000, 363.000000)"> <g id="Page-1" transform="translate(122.000000, 20.000000)"> <path d="M53.1397841,30.8022957 L34.558125,44.3561117 L51.1622841,22.9844307 L53.4156477,29.9385534 C53.5192159,30.2590074 53.4081705,30.6062589 53.1397841,30.8022957 Z M2.86117045,30.8027742 C2.59198864,30.6062589 2.48094318,30.2590074 2.58419318,29.9395104 L4.83819318,22.9833141 L21.4412386,44.3634491 L2.86117045,30.8027742 Z M11.2584659,3.11293374 L16.410625,19.0155227 L6.12523864,19.0155227 L11.2584659,3.11293374 Z M36.0973295,21.5676699 L28.0054886,46.5780748 L19.9136477,21.5676699 L36.0973295,21.5676699 Z M44.7420114,3.11277423 L49.8844659,19.0155227 L39.5995568,19.0155227 L44.7420114,3.11277423 Z M31.4494886,44.2040994 L33.126625,39.0203693 L38.7700568,21.578038 L49.0266477,21.578038 L32.9091477,42.3254 L31.4494886,44.2040994 Z M17.2337614,21.578038 L24.5527386,44.1996331 L6.98544318,21.578038 L17.2337614,21.578038 Z M55.8366932,29.1508969 L52.8941477,20.069719 C52.8793523,19.9864552 52.8535795,19.904946 52.8220795,19.8248724 L46.9193295,1.57207485 C46.5984432,0.615657669 45.7433295,-4.78527557e-05 44.7385114,-4.78527557e-05 L44.725625,-4.78527557e-05 C43.7206477,0.00521595093 42.8707841,0.62730184 42.5600795,1.58547362 L36.9236477,19.0155227 L19.0866932,19.0155227 L13.4396023,1.58483558 C13.1295341,0.62746135 12.2796705,0.00537546013 11.2746932,-4.78527557e-05 C10.2687614,-0.00563067484 9.40314773,0.611669939 9.07589773,1.58611166 L3.17648864,19.8628356 C3.17092045,19.8781485 3.16344318,19.8923448 3.15851136,19.9076577 L0.163147727,29.151854 C-0.280556818,30.5249092 0.201329545,32.0172773 1.36269318,32.8658663 L27.2447159,51.755584 C27.4696705,51.919719 27.7320114,51.9999521 27.9932386,51.9999521 C28.2622614,51.9999521 28.5292159,51.9133387 28.7525795,51.746492 C28.753375,51.745854 28.7543295,51.745535 28.755125,51.7448969 L54.6377841,32.8655472 C55.7988295,32.0172773 56.2807159,30.5249092 55.8366932,29.1508969 Z" id="Fill-1"></path> </g> </g> </g> </g> </svg> <div id="above-cta-form"> <div class="newsletter-preamble"> New blog posts directly to your inbox </div> <div class="newsletter-sub-preamble"> Sign up for our bi-monthly newsletter </div> </div> <div id="confirm-cta-form" style="display: none;"> <div class="newsletter-preamble"> Thanks, you’re <br /> signed up! </div> <div class="newsletter-sub-preamble"> GitLab is coming to your inbox </div> <img class="success-image" src="/images/emojis/newsletter-signup-success.png" /> </div> </div> <div class="newsletter-form"> <form class="notdefined" id="mktoForm_1547"> <script src="//app-ab13.marketo.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> MktoForms2.loadForm("//app-ab13.marketo.com", "194-VVC-221", 1547, function(form) { form.onSuccess(function(values, followUpUrl) { form.getFormElem().hide(); document.getElementById('above-cta-form').style.display = 'none'; document.getElementById('confirm-cta-form').style.display = 'block'; dataLayer.push({event: 'mktoLead',mktoFormId: form.getId()}); return false; }); function getgacid() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch (e) { return 'n/a'; } } form.vals({ 'gacid': getgacid() }); }); </script> </form> </div> </div> </div> <p>"Our customers that switched from a fragmented setup and were only able to get projects through that cycle a few times a year are now deploying a few times a week," Sid said. "The ability to go from planning to monitoring it in production is what GitLab brings to the table. We have an ample amount of customer case studies showing how we helped improve their speed."</p> <h3 id="better-support-for-microservices">Better support for microservices</h3> <p>We are boning up our support of microservices, and have a number of features in the works to improve this area, including <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/34758">group level Kubernetes clusters</a>, a <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/49336">global Docker registry browser</a>, and adding the <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/22972">ability to define multiple pipelines</a>. This is to build on what's already there:</p> <p>"We have great support for microservices. GitLab has <a href="/2018/10/31/use-multiproject-pipelines-with-gitlab-cicd/">multi-project pipelines</a> and <a href="https://docs.gitlab.com/ee/ci/triggers/README.html#ci-job-token">can trigger pipelines from multi-projects via API</a>," Sid detailed. "The CI Working Group of the CNCF (Cloud Native Computing Foundation), the most cloud native organization in the world probably, uses GitLab to test their projects. We've got great support for things like <a href="/kubernetes">Kubernetes</a> and cloud native technologies. In GitLab, every project you have can be attached to a Kubernetes cluster, and GitLab uses that to run everything that’s going on. We know that a lot of our users and customers are using microservices, and we work great with them."</p> <h3 id="future-focus-best-in-class-solutions">Future focus: best-in-class solutions</h3> <p>GitLab is much more than just version control. Having started with the planning, creating and verifying stages in 2011 and 2012, we’ve had time to make those capabilities very strong. We are now strengthening our offerings in the other steps of the DevOps lifecycle: managing, packaging, releasing, configuring, monitoring and security.</p> <p>"We are seeing enormous progress in those areas, but they can't go head to head with the best-in-class solutions just yet. So that's going be the theme for GitLab next year, to make sure each of our solutions is best in class instead of just the three things we started with," Sid says. "And we won't take our eyes off the ball."</p> <p class="note"><a href="https://unsplash.com/photos/wplxPRCF7gA">Cover image</a> by <a href="https://unsplash.com/@rubavi78">Ruben Bagues</a> on Unsplash</p> <img src='https://about.gitlab.com/images/blogimages/microservices-explosion.jpg' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab 11.5 released with Group Security and Operations Dashboards, and Access Control for Pages https://about.gitlab.com/2018/11/22/gitlab-11-5-released/ 2018-11-22T00:00:00+00:00 2018-11-22T00:00:00+00:00 Fabio Busatto <h2 class="intro-header" id="group-dashboard-for-security-teams">Group dashboard for security teams</h2> <p>For a long time, developers have used GitLab as a tool to secure their code. But now, GitLab is making security teams first-class citizens so they can use GitLab to effect better application security and ensure compliance. With 11.5, the <a href="#group-security-dashboard">Group Security Dashboard</a> pulls together all of the information security personnel need into one place, so folks like CISOs, CIOs, and application security leaders get a specific view designed for them. The group dashboard has a redesigned look and new visualizations, bringing together security information across multiple projects and providing a high-level view while also enabling the ability to drill down into specific reports. With 11.5, we're starting with SAST reports, and we'll be adding more to the group dashboard in the future. Our goal is to build a single tool that security teams can use instead of needing to switch back and forth between multiple tools.</p> <h2 class="intro-header" id="new-dashboard-for-operations-teams">New dashboard for operations teams</h2> <p>In the same way that the Group Security Dashboard makes security teams first-class citizens, the <a href="#operations-dashboard">Operations Dashboard</a> provides a tailored experience for operations professionals. This instance-wide dashboard provides a single view across projects to get a summary of each project’s operational health, including pipeline and alert status.</p> <h2 class="intro-header" id="control-access-to-gitlab-pages">Control access to GitLab Pages</h2> <p><a href="/product/pages/">GitLab Pages</a> is an easy way to serve static content on the web, making it perfect for use cases such as documentation for your project. But what about private projects where documentation and other static artifacts should only be accessed by project members? In the past, you'd either have to make your assets public to take advantage of Pages, or you would not be able to use the feature at all.</p> <p>Now, in GitLab 11.5, the same access control permissions that apply to your issues and code can also be applied to static webpages served by GitLab Pages. Unauthenticated users will get a 404 when visiting the link. As of today, <a href="#access-control-for-pages">access controls for GitLab pages</a> is available for self-managed GitLab, with GitLab.com support coming soon.</p> <p>This is a unique feature that we're particularly proud of because it comes from our open source community. Access control for Pages has been one of our <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/33422">most requested features</a> and <a href="https://gitlab.com/gitlab-org/gitlab-pages/merge_requests/94">the code has been community contributed</a> as well!</p> <h2 class="intro-header" id="knative-for-kubernetes">Knative for Kubernetes</h2> <p>“Serverless” is a popular, yet often misunderstood industry term. Some folks equate serverless with "Function as a Service," or FaaS, but this <a href="https://martinfowler.com/articles/serverless.html">isn't quite accurate</a>. In a nutshell, serverless enables a programming paradigm where you are able to focus on writing business logic without having to understand or even worry about the underlying infrastructure where your software is deployed. As such, both functions and applications can be serverless.</p> <p><a href="https://cloud.google.com/knative/">Knative</a> is a Kubernetes-based platform to build, deploy, and manage modern serverless workloads, and GitLab 11.5 comes with the ability to <a href="#easily-deploy-and-integrate-knative-with-gitlab">easily deploy and integrate Knative with GitLab</a>. You can now install Knative to your <a href="/solutions/kubernetes/">connected Kubernetes cluster</a> with a single click. With GitLab 11.5, you'll be able to use Knative for your serverless applications, with <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/43959">serverless functions coming in 11.6</a>.</p> <p>Today, Knative is still in alpha, but there are some compelling reasons to deploy applications using Knative as it comes with some powerful functionality out-of-the-box. In particular, Knative manages pod scaling for you so you can automatically scale up, or even scale down to zero without additional configuration. Additionally, Knative comes with eventing built in so using it to deploy microservices makes it easier to manage inter-process communication between your producer and consumer services.</p> <h2 class="intro-header" id="and-so-much-more">And so much more!</h2> <p>With so many great features in this release, we couldn't pack them all into the intro. Be sure to read up on other exciting new features like <a href="#parallel-attribute-for-faster-pipelines">the parallel attribute for faster pipelines</a>, <a href="#issue-board-cards-redesigned">redesigned Issue Board cards</a>, and an initial <a href="#open-jaeger-from-gitlab">Jaeger integration</a>. We’ve made big improvements in this release to make code review easier and more useful, including the ability to <a href="#comment-on-unchanged-lines-in-merge-request">comment on unchanged lines in merge requests</a>, <a href="#preview-merge-request-review-before-submitting-it">preview merge request reviews before submitting</a>, and <a href="#assign-approvers-based-on-code-owners">assign approvers based on Code Owners</a> along with <a href="#review-app-direct-link">Review App direct links</a>. Keep reading to see all of the features that are part of this release.</p> <img src='https://about.gitlab.com/images/11_5/11_5-cover-image.jpg' class='webfeedsFeaturedVisual' style='display: none;' /> <!-- CTA --> <p class='cta text-center'> <a href="/events/" class="btn btn-red webcast-button" target="_blank">Join us for an upcoming event</a> </p> <!-- MVP --> <section class='mvp gray-section' id='mvp'> <div class='release-post-section'> <img alt='GitLab MVP badge' src='/images/mvp_badge.png' /> <h2 id='mvp'> <a class='header-link' href='#mvp'> <i class='fas fa-link'></i> </a> This month's Most Valuable Person (<a href='/community/mvp/'>MVP</a>) is <a href="https://gitlab.com/tuomoa">Tuomo Ala-Vannesluoma</a> </h2> <p>Tuomo did an amazing job by implementing <a href="#access-control-for-pages">Access control for Pages</a>, a highly requested feature. Private projects can now restrict access to their content to authorized users. This enables groups of people to host internal web pages that may contain sensitive information, for example.</p> <p>Thank you, Tuomo! This feature required a significant amount of work across <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18589"><code>gitlab-ce</code></a>, <a href="https://gitlab.com/gitlab-org/gitlab-pages/merge_requests/94"><code>gitlab-pages</code></a>, and <a href="https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/2583"><code>omnibus-gitlab</code></a> GitLab projects.</p> </div> </section> <!-- top feature --> <section class='release-post-section' id='top-feature'> <div class='release-post-section text-center'> <h2 class='features-released' id='key-features-released'> <a class='header-link' href='#key-features'> <i class='fas fa-link'></i> </a> Key features released in GitLab 11.5 </h2> </div> <h2 id='group-security-dashboard'> <a class='header-link' href='#group-security-dashboard'> <i class='fas fa-link'></i> </a> Group Security Dashboard </h2> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Security teams need to easily access information about the security status of all their projects, so they know which is the most important task to take next. This is even more important for Directors of Security that need to have a high-level view of possible critical issues affecting the entire development.</p> <p>With GitLab 11.5, a first iteration of a new Security Dashboard is available at group level. It provides a summary for all the <a href="https://docs.gitlab.com/ee/user/project/merge_requests/sast.html">SAST</a> vulnerabilities in all the projects in that group, and a list of actionable entries that can be used to start a remediation process. For example, you can open an issue with a suggested solution, or simply dismiss the entry if you classify it as a false positive. Support for other tests (Dependency Scanning, Container Scanning, DAST) will be added in the future.</p> <p><strong>Note:</strong> The Group Security Dashboard requires the new <a href="https://docs.gitlab.com/ee/ci/yaml/README.html#artifactsreports"><code>reports</code></a> syntax and GitLab Runner 11.5 or higher in order to display results. <a href="https://docs.gitlab.com/ee/topics/autodevops/">Auto DevOps</a> will be supported in a future release.</p> <div class='column'> <img alt='Group Security Dashboard' class='shadow' src='/images/11_5/group-security-dashboard.png' /> </div> <div class='row reference-buttons'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-sm product-icon' href='https://docs.gitlab.com/ee/user/group/security_dashboard/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-sm product-icon' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/6709' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </section> <hr /> <!-- primary features --> <section id='primary-features'> <div class='release-row'> <div class='column'> <h2 id='operations-dashboard'> <a class='header-link' href='#operations-dashboard'> <i class='fas fa-link'></i> </a> Operations Dashboard </h2> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>For organizations who have embraced DevOps, and for teams with more operations-leaning members, it is important to be able to quickly ascertain the health of the projects in your organization.</p> <p>GitLab 11.5 introduces a new, operations-focused dashboard, providing a summary of the key operational metrics of each project a user is interested in. This includes the time since the last deployment, most recent commit, as well as whether there are any active alerts.</p> <p>The dashboard can be set as a user’s preferred homepage, or accessed via clicking on the new dashboard icon in the top bar.</p> <div class='row reference-buttons'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-sm product-icon' href='https://docs.gitlab.com/ee/user/operations_dashboard/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-sm product-icon' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/5781' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <div class='column'> <img alt='Operations Dashboard' class='shadow' src='/images/11_5/ops-dashboard.png' /> </div> </div> <hr /> <div class='release-row image-left'> <div class='column text-column'> <h2 id='access-control-for-pages'> <a class='header-link' href='#access-control-for-pages'> <i class='fas fa-link'></i> </a> Access control for Pages </h2> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>The 11.5 release introduces a fantastic new community-contributed feature which enables access control for Pages. Now, instead of only supporting use cases where the content associated with the product is public, you can use Pages to build and publish protected content that should only be accessible by project members. Operational documentation, internal secrets, or even just private planning or other information can now be confidently published automatically in an easy-to-access way, while ensuring only the right people are able to see it.</p> <p>This is currently not enabled on GitLab.com, you can follow <a href="https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/5576">issue 5576</a> for more information.</p> <div class='row reference-buttons'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-sm product-icon' href='https://docs.gitlab.com/ee/user/project/pages/introduction.html#gitlab-pages-access-control-core-only' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-sm product-icon' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/33422' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <div class='column image-column'> <img alt='Access control for Pages' class='shadow' src='/images/11_5/access-control-pages.png' /> </div> </div> <hr /> <div class='release-row'> <div class='column'> <h2 id='easily-deploy-and-integrate-knative-with-gitlab'> <a class='header-link' href='#easily-deploy-and-integrate-knative-with-gitlab'> <i class='fas fa-link'></i> </a> Easily deploy and integrate Knative with GitLab </h2> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Building serverless applications enables teams to focus their time on making a great product and eliminates the need of provisioning, managing, and operating servers.</p> <p>Starting in GitLab 11.5, you can now deploy <a href="https://cloud.google.com/knative/">Knative</a> to your existing Kubernetes cluster with a single click using the GitLab Kubernetes integration. Knative is a Kubernetes-based platform to build, deploy, and manage modern serverless workloads. Tasks that were once difficult, such as source-to-container builds, routing and managing traffic, and scaling-to-zero, now work effortlessly out of the box.</p> <div class='row reference-buttons'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-sm product-icon' href='https://docs.gitlab.com/ee/user/project/clusters/serverless/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-sm product-icon' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/54027' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <div class='column'> <img alt='Easily deploy and integrate Knative with GitLab' class='shadow' src='/images/11_5/knative.png' /> </div> </div> <hr /> <div class='release-row image-left'> <div class='column text-column'> <h2 id='assign-approvers-based-on-code-owners'> <a class='header-link' href='#assign-approvers-based-on-code-owners'> <i class='fas fa-link'></i> </a> Assign approvers based on Code Owners </h2> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Knowing who to ask to review your merge request isn’t always obvious. Code Owners, which allow files to be assigned to the responsible team members, are now automatically assigned as merge request approvers.</p> <p>Assigning approvers automatically based on Code Owners will notify the relevant Code Owners of impending changes so that they are able to review and approve the changes.</p> <p>Support for defining Code Owners was introduced in <a href="/2018/09/22/gitlab-11-3-released/#code-owners">GitLab 11.3</a>. In upcoming releases, Code Owners will be further integrated into the merge request workflow with <a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/4418">required approvals</a>.</p> <div class='row reference-buttons'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-sm product-icon' href='https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html#eligible-approvers' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-sm product-icon' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/1012' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <div class='column image-column'> <img alt='Assign approvers based on Code Owners' class='shadow' src='/images/11_5/approvals.png' /> </div> </div> <hr /> <div class='release-row'> <div class='column'> <h2 id='parallel-attribute-for-faster-pipelines'> <a class='header-link' href='#parallel-attribute-for-faster-pipelines'> <i class='fas fa-link'></i> </a> Parallel attribute for faster pipelines </h2> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>The speed of pipelines is an important factor for any team, and running tests or other parallelizable tasks tends to take a big chunk of the time for any build. Adding this new keyword gives teams the ability to simply parallelize tests, allowing everyone to accelerate their software delivery process. To use this feature, simply set the parallel attribute to how many copies of the task you’d like to split it into, and GitLab will handle the work of automatically creating the appropriate number of jobs running your task.</p> <div class='row reference-buttons'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-sm product-icon' href='https://docs.gitlab.com/ee/ci/yaml/#parallel' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-sm product-icon' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/21480' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <div class='column'> <img alt='Parallel attribute for faster pipelines' class='shadow' src='/images/11_5/parallel-keyword.png' /> </div> </div> </section> <!-- secondary features --> <section id='secodary-features'> <div class='release-post-section text-center zero-bottom-margin'> <h2 class='features-released' id='other-improvements-in-gitlab'> <a class='header-link' href='#other-improvements-in-gitlab'> <i class='fas fa-link'></i> </a> Other improvements in GitLab 11.5 </h2> </div> <div class='release-row align-top divider'> <div class='secondary-release-column'> <div class='secondary-column-feature'> <h3 id='comment-on-unchanged-lines-in-merge-request'> <a class='header-link' href='#comment-on-unchanged-lines-in-merge-request'> <i class='fas fa-link'></i> </a> Comment on unchanged lines in merge request </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>An important purpose of code review is to draw attention to aspects of the proposed change that may not have been considered. Often this means pointing out unforseen consequences in areas of the code base that are unchanged.</p> <p>GitLab now supports commenting on both changed and unchanged lines in merge request diffs, so that you can directly draw the attention of the author to changes that are required that have not yet been made. When reviewing a merge request diff you can expand collapsed, unchanged lines using the ellipsis (<strong>…</strong>) button.</p> <p>In upcoming releases, support for commenting on unchanged lines will be expanded from changed files to <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/52501">unchanged files</a>.</p> <img alt='Comment on unchanged lines in merge request' class='shadow' src='/images/11_5/unchanged-comment.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/discussions/index.html#resolvable-discussions' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/13950' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='group-file-templates'> <a class='header-link' href='#group-file-templates'> <i class='fas fa-link'></i> </a> Group file templates </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>File templates for <code>LICENSE</code>, <code>.gitignore</code>, <code>Dockerfile</code>, and <code>.gitlab-ci.yml</code> files make it easy to add these common files to projects. Custom file templates can now be shared with all the projects in a group and sub-groups, by configuring a template repository for the group.</p> <p>Custom templates are useful when the templates provided by GitLab are too generic, for example a custom license that should be used for every project in the company, or a complex Dockerfile that should be used for every microservice.</p> <p>Support for instance-wide template repositories was <a href="/2018/09/22/gitlab-11-3-released/#custom-file-templates-for-self-managed-instances">introduced in GitLab 11.3</a>.</p> <img alt='Group file templates' class='shadow' src='/images/11_5/group-templates.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/group/#group-level-file-templates-premium' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/5987' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='review-app-direct-link'> <a class='header-link' href='#review-app-direct-link'> <i class='fas fa-link'></i> </a> Review App direct link </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>When you’re working on a branch and have only changed a few files, it’s not very helpful for the Review App link to take you to the root of the website. To make this more useful, we’ve added a dropdown selector to the Review App link which can now take you directly to the page(s) that you’ve changed.</p> <img alt='Review App direct link' class='shadow' src='/images/11_5/direct-page-link.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/ci/environments.html#go-directly-from-source-files-to-public-pages-on-the-environment' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/33418' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='issue-analytics'> <a class='header-link' href='#issue-analytics'> <i class='fas fa-link'></i> </a> Issue Analytics </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>In this release, we have provided a dynamic chart showing the number of issues created in your group, per month, for the past year. There is even a filter that allows you to filter down to a particular scope of issues.</p> <p>This will help teams dig more deeply into their issue analytics. For example, you can quickly see how many bug issues have been created, if you use a bug label.</p> <p>See how we plan to <a href="https://gitlab.com/groups/gitlab-org/-/epics/313">expand on charting capabilities</a> and please participate in the discussion.</p> <img alt='Issue Analytics' class='shadow' src='/images/11_5/issue-analytics.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/group/issues_analytics/index.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7478' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='preview-merge-request-review-before-submitting-it'> <a class='header-link' href='#preview-merge-request-review-before-submitting-it'> <i class='fas fa-link'></i> </a> Preview merge request review before submitting it </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Code review is an essential practice of successful projects, but providing clear and actionable feedback can be difficult. A particular challenge is avoiding leaving comments that become irrelevant or incomplete as one’s understanding of the changes improves as one reads more of the diff.</p> <p>With this release you are now able to preview your merge request review before submitting. Merge request reviews, introduced in GitLab 11.4, allow reviewers to draft many items of feedback and submit them all as a single action.</p> <p>In future iterations, we will improve the feature to send <a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/4326">one email notification</a> per merge request review.</p> <img alt='Preview merge request review before submitting it' class='shadow' src='/images/11_5/review-preview.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/discussions/index.html#merge-request-reviews-premium' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/4327' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='keep-your-email-address-private'> <a class='header-link' href='#keep-your-email-address-private'> <i class='fas fa-link'></i> </a> Keep your email address private </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>It’s important to know who is contributing code to your project and be able to look up a commit author in the GitLab interface, using Git locally, or on a fork hosted elsewhere, but this exposes your email publicly.</p> <p>GitLab now provides a <code>noreply</code> email address that can be used locally and for web commits to help make it easier to keep your email address private.</p> <img alt='Keep your email address private' class='shadow' src='/images/11_5/noreply-email.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/profile/#private-commit-email' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/43521' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='new-cicd-syntax-for-security-quality-and-performance-report-types'> <a class='header-link' href='#new-cicd-syntax-for-security-quality-and-performance-report-types'> <i class='fas fa-link'></i> </a> New CI/CD syntax for security, quality, and performance report types </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Before GitLab 11.5, reports like SAST or DAST relied on a combination of job and artifacts names to be recognized as such by the system. This was not optimal to scale and to support more advanced features like the Group Security Dashboard, because of the performance implications to access artifacts. With the previous syntax you needed to use specific job names (like <code>sast</code>) but now you can specify custom job names.</p> <p>In GitLab 11.5 a new implementation has been introduced to leverage the new <code>reports</code> syntax. New job definitions are now available for <a href="https://docs.gitlab.com/ee/ci/examples/sast.html">SAST</a>, <a href="https://docs.gitlab.com/ee/ci/examples/dast.html">DAST</a>, <a href="https://docs.gitlab.com/ee/ci/examples/dependency_scanning.html">Dependency Scanning</a>, <a href="https://docs.gitlab.com/ee/ci/examples/container_scanning.html">Container Scanning</a>, <a href="https://docs.gitlab.com/ee/ci/examples/license_management.html">License Management</a>, <a href="https://docs.gitlab.com/ee/ci/examples/code_quality.html">Code Quality</a>, and <a href="https://docs.gitlab.com/ee//ci/examples/browser_performance.html">Browser Performance Testing</a>. The <a href="#old-ci/cd-syntax-for-security,-quality,-and-performance-report-types">old syntax has been deprecated</a> and could be removed in a future release. You are encouraged to upgrade your definitions in order to benefit from improved performances and the Group Security Dashboard, even if the old syntax is still working. The new syntax requires GitLab Runner 11.5 or above.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/ci/yaml/README.html#artifactsreports' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/52323' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='open-a-merge-request-with-a-patch-via-email'> <a class='header-link' href='#open-a-merge-request-with-a-patch-via-email'> <i class='fas fa-link'></i> </a> Open a merge request with a patch via email </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>GitLab has supported opening a merge request via email for a long time, but before sending the email the branch must already exist on the server. Now you can open a merge request with only an email by attaching one or more patch files (<code>.patch</code>).</p> <p>Patch files are the standard for sharing and transmitting changes between systems. In future releases of GitLab we will build on this foundation for <a href="https://gitlab.com/groups/gitlab-org/-/epics/260">distributed merge requests</a>, which will allow merge requests between GitLab instances, and other Git hosting tools too.</p> <figure class='video_container'> <iframe allowfullscreen='true' frameborder='0' src='https://www.youtube.com/embed/Y6jb_3hV8Po'></iframe> </figure> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/merge_requests/#adding-patches-when-creating-a-merge-request-via-e-mail' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/40830' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='empty-state-for-wiki-only-projects'> <a class='header-link' href='#empty-state-for-wiki-only-projects'> <i class='fas fa-link'></i> </a> Empty state for Wiki-only projects </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>We’ve improved the experience for Wiki-only projects without a default project overview page. The empty state for this project setup now better encourages users to add a page to the relevant Wiki and get these projects off to a great start.</p> <img alt='Empty state for Wiki-only projects' class='shadow' src='/images/11_5/wiki-project-empty-state.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/wiki/index.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/48731' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='open-jaeger-from-gitlab'> <a class='header-link' href='#open-jaeger-from-gitlab'> <i class='fas fa-link'></i> </a> Open Jaeger from GitLab </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Tracing provides deep introspection into the performance and health of a deployed application, tracking each function or microservice which handles a given request. This makes it easy to understand the end-to-end flow of a request, regardless of whether you are using a monolithic or distributed system.</p> <p>GitLab 11.5 includes an initial integration with <a href="https://www.jaegertracing.io">Jaeger</a>, the <a href="https://www.cncf.io">CNCF</a>-hosted tracing project, allowing users to easily open the Jaeger UI from GitLab.</p> <img alt='Open Jaeger from GitLab' class='shadow' src='/images/11_5/jaeger.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/operations/tracing.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/4753' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='consistent-status-check-names-for-github-integration'> <a class='header-link' href='#consistent-status-check-names-for-github-integration'> <i class='fas fa-link'></i> </a> Consistent status-check names for GitHub integration </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>It is now possible to configure status checks on the GitHub side that can be marked as “required” without having to configure this one by one, based on their name. Previously, the check names included the branch name, so it was not possible to do this easily. This feature is enabled via the GitHub integration configuration section.</p> <img alt='Consistent status-check names for GitHub integration' class='shadow' src='/images/11_5/consistent-check-names.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/integrations/github.html#static--dynamic-status-check-names' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/6696' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='omnibus-go-apps-now-use-the-gitlab-cert-directory'> <a class='header-link' href='#omnibus-go-apps-now-use-the-gitlab-cert-directory'> <i class='fas fa-link'></i> </a> Omnibus Go apps now use the GitLab cert directory </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>GitLab includes a number of Go-based applications. Prior to 11.5, these applications utilized the standard OS system location for trusted certificates, instead of the Omnibus GitLab directory.</p> <p>With this release, Go applications now use the same directory for trusted certificates as the rest of GitLab, by default <code>/opt/gitlab/embedded/ssl/certs/</code>, making certificate management easier and more straightforward.</p> <p>GitLab installations which depended upon the Go applications using the system directory should move those certificates to the standard Omnibus GitLab location.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/omnibus/settings/ssl.html#install-custom-public-certificates' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3701' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='close-epic-notification'> <a class='header-link' href='#close-epic-notification'> <i class='fas fa-link'></i> </a> Close epic notification </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>We recently released the ability to close epics, namely having different open and closed states for epics. In this release, we are adding notifications for closing and reopening epics, to help users follow more closely on work they are interested in.</p> <img alt='Close epic notification' class='shadow' src='/images/11_5/epic-closed-notification.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/workflow/notifications.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7272' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='json-logging-for-audit-events'> <a class='header-link' href='#json-logging-for-audit-events'> <i class='fas fa-link'></i> </a> JSON logging for audit events </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>In order to make audit events easier to analyze and ingest outside of GitLab, we’ve added <code>audit_json.log</code> to capture audit events in a structured log file. With this change, shipping and parsing logs becomes much easier – especially for visualization and analysis in other tools.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/administration/audit_events.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/54244' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='autocomplete-epic-in-issue-and-merge-request'> <a class='header-link' href='#autocomplete-epic-in-issue-and-merge-request'> <i class='fas fa-link'></i> </a> Autocomplete epic in issue and merge request </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>You can now more easily search and refer to epics while working in an issue or merge request. Just type <code>&amp;</code> and enter a few numbers or characters in the issue or merge request’s description or a comment. GitLab’s autocomplete will search for epics in the immediate parent group, allowing you to select one easily all without leaving the current page.</p> <img alt='Autocomplete epic in issue and merge request' class='shadow' src='/images/11_5/autocomplete-epic.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/markdown.html#special-gitlab-references' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7472' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='file-list-for-browsing-merge-request-diff'> <a class='header-link' href='#file-list-for-browsing-merge-request-diff'> <i class='fas fa-link'></i> </a> File list for browsing merge request diff </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Moving backwards and forwards between files in the merge request diff is necessary in all but the smallest of changes. In addition to the <a href="/2018/10/22/gitlab-11-4-released/#file-tree-for-browsing-merge-request-diff">file tree added in GitLab 11.4</a>, GitLab now includes a searchable file list of changes to make it easy to see which files have changed and jump between them, whether you prefer a tree or a list.</p> <img alt='File list for browsing merge request diff' class='shadow' src='/images/11_5/mr-tree-list.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/merge_requests/index.html#merge-request-diff-file-navigation' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/51859' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='more-information-about-deployments-in-merge-requests'> <a class='header-link' href='#more-information-about-deployments-in-merge-requests'> <i class='fas fa-link'></i> </a> More information about deployments in merge requests </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Currently, environment information is hidden when a newer pipeline is running. With this change we are adding information on in-progress deployments to the widget, so you know that an update is on its way.</p> <p>One of the most exciting results of this functionality in this release is that the link to the current deployment will remain available in cases where a new deployment is running, allowing you to still find the link to the Review App. In cases where lots of deployments were constantly running, this previously made it quite difficult to get the timing right in some cases.</p> <img alt='More information about deployments in merge requests' class='shadow' src='/images/11_5/enhanced-deploy-information-MR.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/merge_requests/index.html#pipeline-status-in-merge-requests' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/25140' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='authenticate-with-jira-cloud-using-email-address-and-api-token'> <a class='header-link' href='#authenticate-with-jira-cloud-using-email-address-and-api-token'> <i class='fas fa-link'></i> </a> Authenticate with Jira Cloud using email address and API token </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Jira Cloud is <a href="https://confluence.atlassian.com/cloud/blog/2018/06/say-goodbye-to-usernames-in-atlassian-cloud">removing usernames for authentication</a>. So to support this change, we now allow you to use an email address and API token to authenticate with Jira Cloud instead.</p> <img alt='Authenticate with Jira Cloud using email address and API token' class='shadow' src='/images/11_5/jira-email-api-token.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/integrations/jira.html#configuring-gitlab' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/49936' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='automatically-navigate-to-last-visited-board'> <a class='header-link' href='#automatically-navigate-to-last-visited-board'> <i class='fas fa-link'></i> </a> Automatically navigate to last visited board </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>As teams use more and more issue boards, it can become cumbersome to navigate among many of them in the dropdown navigation. With this release, GitLab will automatically send you to the last visited board, whenever you access the boards navigation from the sidebar menu of a given project or a group. This is saved to the system, so even if you use GitLab between different browsers and devices, the last visited board will be saved.</p> <p>Note that you can still directly link to a specific board by saving the URL of the board when you are viewing it.</p> <p>See upcoming planned improvements to <a href="https://gitlab.com/groups/gitlab-org/-/epics/336">managing multiple boards</a> and participate in the comments.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards-starter' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7760' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='filter-by-open-or-closed-epics-in-api'> <a class='header-link' href='#filter-by-open-or-closed-epics-in-api'> <i class='fas fa-link'></i> </a> Filter by open or closed epics in API </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>We recently released the ability to close epics, namely having different open and closed states for epics. In this release, we are exposing that state in the API itself, so that you can filter on open or closed epics when retrieving a list of them, as well as see the state in a single epic retrieved itself.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/api/epics.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7615' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='milestone-changed-notification'> <a class='header-link' href='#milestone-changed-notification'> <i class='fas fa-link'></i> </a> Milestone changed notification </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>GitLab milestones are useful for teams to plan and track work to be done in a time-boxed period or to associate with a code release. These dates are important for teams to communicate timelines with each other and stakeholders in general. So when milestones change, it is critical that people are updated.</p> <p>With this release, we’ve added email notifications for changing milestones in issues and merge requests, so that people can stay updated if a piece of work has been delayed, moved earlier, or just de-scoped.</p> <img alt='Milestone changed notification' class='shadow' src='/images/11_5/milestone-changed-notification.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/workflow/notifications.html#issue--merge-request-events' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/51520' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='epic-keyboard-shortcuts'> <a class='header-link' href='#epic-keyboard-shortcuts'> <i class='fas fa-link'></i> </a> Epic keyboard shortcuts </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Similar to issues and merge requests, you can perform basic operations in an epic page with keyboard shortcuts, helping those users who want to get more done, more quickly, without leaving the keyboard.</p> <p>Use <kbd>r</kbd> to start a new comment. (It will even quote selected text.) Use <kbd>e</kbd> to edit the description. And use <kbd>l</kbd> to change labels.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/workflow/shortcuts.html#epics' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/4187' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='issue-board-cards-redesigned'> <a class='header-link' href='#issue-board-cards-redesigned'> <i class='fas fa-link'></i> </a> Issue Board cards redesigned </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>A central place of collaboration in GitLab is Issue Boards, where teams can organize and view planned and ongoing work in one location. With this release, we’ve improved the design of issue cards, showing relevant information in a simple and organized manner. We are showing the issue title, time-tracking information, confidentiality, labels, due date, weight, and assignee, all in the card.</p> <img alt='Issue Board cards redesigned' class='shadow' src='/images/11_5/board-card-design.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/issue_board.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/47008' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='render-index-files-like-readmes-in-repositories'> <a class='header-link' href='#render-index-files-like-readmes-in-repositories'> <i class='fas fa-link'></i> </a> Render 'index' files like 'README's in repositories </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>When a <code>README.*</code> file is present in a directory of a repository, it’s rendered automatically by GitLab without the need to explicitly open it. With GitLab 11.5, it’s now possible to do the same thing with an <code>index.*</code> file.</p> <p>This is particularly useful when you also deploy your content online using a static site generator. Previously, if you used <code>README.md</code> it would render to <code>README.html</code>, whereas with <code>index.html</code> you can now have clean URLs since most web servers treat <code>http://example.com/page/index.html</code> and <code>http://example.com/page/</code> the same.</p> <p>This is not limited to Markdown files as GitLab supports a number of <a href="https://docs.gitlab.com/ee/user/project/repository/index.html#supported-markup-languages-and-extensions">markup languages</a>.</p> <img alt='Render &#39;index&#39; files like &#39;README&#39;s in repositories' class='shadow' src='/images/11_5/index-file-repository.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/repository/index.html#repository-readme-and-index-files' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/18933' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='rbac-creates-service-account-restricted-to-projects-namespace'> <a class='header-link' href='#rbac-creates-service-account-restricted-to-projects-namespace'> <i class='fas fa-link'></i> </a> RBAC creates service account restricted to project's namespace </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Securing Kubernetes instances is paramount for running production-ready, mission-critical apps. RBAC provides great power and flexibility in securing your cluster.</p> <p>Starting in GitLab 11.5, our Kubernetes integration will create a dedicated service account and role binding for each project’s namespace which will be used in GitLab CI jobs. This eliminates the need to use the <code>cluster-admin</code> token when interacting with GitLab CI runners.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/clusters/#role-based-access-control-rbac' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/51716' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='discussion-activity-filter-in-issues-and-merge-requests'> <a class='header-link' href='#discussion-activity-filter-in-issues-and-merge-requests'> <i class='fas fa-link'></i> </a> Discussion activity filter in issues and merge requests </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>We are glad to see teams collaborating actively in issue and merge request comments. For more involved discussions and longer-lived issues and merge requests, the discussion activity can become very long, with a lot of generated system notes.</p> <p>With this release, we’ve implemented a filter to allow you to focus on just comments or system activity in the discussion area of an issue or merge request. Your selection is saved for all issues or all merge requests in GitLab. So if you prefer one mode, you can just make the selection once, and it will persist forever.</p> <p>We are planning to bring <a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/7526">the same functionality to epics</a> too.</p> <img alt='Discussion activity filter in issues and merge requests' class='shadow' src='/images/11_5/discussion-activity-filter.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/discussions/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/51323' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='update-git-submodules-via-api'> <a class='header-link' href='#update-git-submodules-via-api'> <i class='fas fa-link'></i> </a> Update Git submodules via API </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Git submodules allow you to include a Git repository within another Git repository. GitLab now supports updating the submodule reference via the API. This is particularly useful for automation, allowing you to keep your project up to date with the latest dependencies using the API.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/api/repository_submodules.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/41213' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='show-feedback-if-git-push-validation-takes-too-long'> <a class='header-link' href='#show-feedback-if-git-push-validation-takes-too-long'> <i class='fas fa-link'></i> </a> Show feedback if Git push validation takes too long </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Every time you push changes to a Git repository on GitLab, GitLab performs checks on each commit to enforce permissions, repository size restrictions and validates the presence of LFS objects. In some cases large pushes can fail without feedback when validation takes too long.</p> <p>GitLab now provides feedback when Git push operations time out because validation is taking too long. This will help debug the source of the problem by providing better feedback to the user.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/topics/git/troubleshooting_git.html#timeout-during-git-pushpull' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/42790' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='discussion-activity-redesign-in-issues-merge-requests-and-epics'> <a class='header-link' href='#discussion-activity-redesign-in-issues-merge-requests-and-epics'> <i class='fas fa-link'></i> </a> Discussion activity redesign in issues, merge requests, and epics </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>In this release, we’ve improved the design of discussion activity in issues, merge requests, and epics. We’ve made it easier to read comments and parse system note activity, so you can focus on the information that’s relevant to you at the given moment.</p> <img alt='Discussion activity redesign in issues, merge requests, and epics' class='shadow' src='/images/11_5/discussion-activity-design.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/discussions/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/29294' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='quick-access-to-prioritized-group-settings'> <a class='header-link' href='#quick-access-to-prioritized-group-settings'> <i class='fas fa-link'></i> </a> Quick access to prioritized Group settings </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>With GitLab 11.5, we are iterating on the settings page of Groups to prioritize the most sought-after configuration options. The top-most section is expanded by default, and we’ve clarified labels and links to provide clear direction on where to find settings and what they do. We’re continuously working on this – Project and Admin settings improvements are coming soon!</p> <img alt='Quick access to prioritized Group settings' class='shadow' src='/images/11_5/group-settings-quick-access.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/group/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/49417' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='create-new-group-page-redesign'> <a class='header-link' href='#create-new-group-page-redesign'> <i class='fas fa-link'></i> </a> 'Create new group' page redesign </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>With this release, we are aligning the ‘New group’ page with the ‘New project’ page, consolidating and repositioning relevant fields for clarity and consistency.</p> <img alt='&#39;Create new group&#39; page redesign' class='shadow' src='/images/11_5/create-new-group-redesign.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/group/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/50962' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='help-menu-in-top-navigation'> <a class='header-link' href='#help-menu-in-top-navigation'> <i class='fas fa-link'></i> </a> Help menu in top navigation </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>With this release, we are updating the top navigation bar by moving two items into a new, dedicated Help menu section. We’ll continue to add additional items there related to instance-level support and feedback in future iterations coming soon!</p> <img alt='Help menu in top navigation' class='shadow' src='/images/11_5/top-navigation-help-item.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/50728' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='remediation-info-for-gemnasium'> <a class='header-link' href='#remediation-info-for-gemnasium'> <i class='fas fa-link'></i> </a> Remediation info for Gemnasium </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p><a href="https://docs.gitlab.com/ee/user/project/merge_requests/dependency_scanning.html">Dependency Scanning</a> relies on the <a href="https://gitlab.com/gitlab-org/security-products/gemnasium">Gemnasium service</a> for the majority of supported languages. This allows GitLab to report known vulnerabilities in packages, but this information was missing a remediation that helps developers to easily fix the problem.</p> <p>With GitLab 11.5, Gemnasium service provides remediations every time the information is available. This is then reported in the vulnerability details window, and in the related issue. For example, the remediation could report the minimum version a library should be updated to in order to fix the security problem.</p> <img alt='Remediation info for Gemnasium' class='shadow' src='/images/11_5/gemnasium-remediation.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/merge_requests/dependency_scanning.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7069' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='audit-event-logging-for-project-features-and-group-settings'> <a class='header-link' href='#audit-event-logging-for-project-features-and-group-settings'> <i class='fas fa-link'></i> </a> Audit event logging for project features and group settings </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>Audit Events captures important events that take place on your GitLab instance, and we’re now capturing additional changes in 11.5:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8027">Project-level feature settings changes</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8051">Group settings changes</a></li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/administration/audit_events.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='gitlab-helm-chart-improvements'> <a class='header-link' href='#gitlab-helm-chart-improvements'> <i class='fas fa-link'></i> </a> GitLab Helm chart improvements </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <ul> <li>LDAP and OmniAuth settings have been <a href="https://gitlab.com/charts/gitlab/blob/master/doc/charts/globals.md#omniauth">unified in the <code>global</code> settings</a>, making it easier to configure. Users currently configuring it individually for each subchart will need to update their settings to upgrade to 11.5.</li> <li>Git protocol v2 is now enabled.</li> <li>The <a href="https://docs.gitlab.com/ee/administration/pseudonymizer.html">GitLab Pseudonymizer</a> is <a href="https://gitlab.com/charts/gitlab/blob/master/doc/charts/globals.md#pseudonymizer-settings">now supported</a>.</li> <li>Maven package support is <a href="https://gitlab.com/charts/gitlab/tree/master/doc/advanced/external-object-storage#lfs-artifacts-uploads-packages">now available</a>.</li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/charts/gitlab/tree/master/doc' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='activity-dashboard-redesign'> <a class='header-link' href='#activity-dashboard-redesign'> <i class='fas fa-link'></i> </a> Activity dashboard redesign </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>With this release, we are updating the activity dashboard design to give a better view into who is doing what in your GitLab instance. The new activity feed gives a reader more context on what actions have taken place to keep you always up to date.</p> <img alt='Activity dashboard redesign' class='shadow' src='/images/11_5/activity-dashboard-redesign.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/49403' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='gitlab-runner-115'> <a class='header-link' href='#gitlab-runner-115'> <i class='fas fa-link'></i> </a> GitLab Runner 11.5 </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>We’re also releasing GitLab Runner 11.5 today! GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab.</p> <h4 id="most-interesting-changes">Most interesting changes:</h4> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1057">Support RAW artifacts</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1051">Add failure reason for execution timeout</a>.</li> </ul> <p>A list of all changes can be found in GitLab Runner’s <a href="https://gitlab.com/gitlab-org/gitlab-runner/blob/v11.5.0/CHANGELOG.md">CHANGELOG</a>.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/runner' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='geo-improvements'> <a class='header-link' href='#geo-improvements'> <i class='fas fa-link'></i> </a> Geo improvements </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>We continually focus on improving our <a href="/solutions/geo/">Geo</a> feature for distributed teams. Some of the additional noteworthy improvements in GitLab 11.5 include:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/7963">Rails console now always displays primary/secondary state correctly</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8124">Secondary instances now show a more specific flash message on actionable pages</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8121">Geo nodes projects list is now searchable</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8120">Recheck/resync of projects can now be triggered for all projects</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/6070">Improved performance of Geo SQL queries</a>.</li> <li><a href="https://docs.gitlab.com/ee/administration/geo/replication/">Major documentation improvements</a>.</li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/administration/geo/replication/configuration.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/groups/gitlab-org/-/boards/805065?milestone_title=11.5&amp;label_name[]=Geo' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h6a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H5zm1 3a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 3a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm3-5h1a1 1 0 0 1 0 2H9a1 1 0 1 1 0-2zm0 3h1a1 1 0 0 1 0 2H9a1 1 0 1 1 0-2zm-3 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm3-2h1a1 1 0 0 1 0 2H9a1 1 0 0 1 0-2z"/></svg> Issue Board </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='secondary-column-feature'> <h3 id='omnibus-improvements'> <a class='header-link' href='#omnibus-improvements'> <i class='fas fa-link'></i> </a> Omnibus improvements </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <ul> <li>GitLab 11.5 includes <a href="https://mattermost.com/blog/mattermost-5-4-user-focused-features-new-data-export-tool-mobile-enhancements-and-more/">Mattermost 5.4</a>, an <a href="https://mattermost.com/">open source Slack-alternative</a> whose newest release includes user-focused features, new data export tool, plus much more. This version also includes <a href="http://about.mattermost.com/security-updates/">security updates</a> and upgrade is recommended.</li> <li>It is now possible to set the <a href="https://docs.gitlab.com/omnibus/settings/configuration.html#disable-user-and-group-account-management">desired group name</a> for each GitLab services to run as.</li> <li>Go-based applications included in GitLab Omnibus now utilize the standard Omnibus Gitlab directory for trusted certificates.</li> <li>The maximum number of concurrent connections to GitLab Pages can now be configured using <code>gitlab_pages['max_connections']</code>.</li> <li><code>bundler</code> has been updated to 1.16.6, <code>unicode-display_width</code> to 1.4.0, <code>gitlab-monitor</code> to 2.19.1, and <code>gitlab-elasticsearch-indexer</code> to 0.3.0</li> <li>We have improved the readability of the <a href="http://gitlab-org.gitlab.io/omnibus-gitlab/licenses.html">list of open source licenses in use by GitLab</a>.</li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/omnibus/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> </div> </div> </div> <hr class='hidden-lg' /> <div class='hidden-lg secondary-column-feature'> <h3 id='performance-improvements'> <a class='header-link' href='#performance-improvements'> <i class='fas fa-link'></i> </a> Performance improvements </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Some of the more noteworthy performance improvements in GitLab 11.5 include:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/43034">Issue board lists perform fewer SQL queries</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22606">Improved performance of the snippets dashboards by a factor of 250</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22732">License Management doesn’t require Docker-in-Docker, and can now be cached by GitLab Runner</a>. See the <a href="https://docs.gitlab.com/ee/ci/examples/license_management.html">new job definition</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8027">Improve performance of rendering large reports</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22725">Significantly cut memory and SQL queries when reloading diffs</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22325">Use cached readme blobs where appropriate</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22731">Optimize merge request refresh by using the database to check commit SHAs</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22709">Reduce SQL queries needed to load open merge requests</a>.</li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' data-placement='auto' data-toggle='tooltip' href='https://gitlab.com/groups/gitlab-org/merge_requests?scope=all&amp;utf8=%E2%9C%93&amp;state=merged&amp;label_name%5B%5D=performance&amp;milestone_title=11.5' target='_blank' title='See all the performance improvements in GitLab 11.5'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M3.161 8.425l-2.016.063a.3.3 0 0 1-.222-.512l2.415-2.414a.3.3 0 0 1 .145-.08l2.139-.492c-.072.097-.146.196-.221.3-.36.491-1.734 2.433-1.973 2.765l-.267.37zm7.82 1.922l-.492 2.14a.3.3 0 0 1-.08.146l-2.415 2.414a.3.3 0 0 1-.511-.221l.063-2.017.356-.258c.364-.261 2.295-1.628 2.778-1.982l.301-.222zm-3.13-6.47c1.445-1.445 3.306-1.892 5.584-1.341.54 2.288.093 4.15-1.342 5.584-1.19 1.19-3.234 2.47-5.729 4.315-.127.094-.366.32-.716.68a1 1 0 0 1-1.423.01l-1.379-1.38a1 1 0 0 1 .01-1.423c.359-.35.585-.588.68-.715C5.373 7.12 6.652 5.076 7.85 3.877zm1.341 2.901a1 1 0 1 0 1.415-1.414 1 1 0 0 0-1.415 1.414z"/></svg> Performance improvements </a> </div> </div> </div> <hr class='hidden-lg' /> </div> <div class='secondary-release-column'> <div class='visible-lg secondary-column-feature'> <h3 id='group-file-templates'> <a class='header-link' href='#group-file-templates'> <i class='fas fa-link'></i> </a> Group file templates </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>File templates for <code>LICENSE</code>, <code>.gitignore</code>, <code>Dockerfile</code>, and <code>.gitlab-ci.yml</code> files make it easy to add these common files to projects. Custom file templates can now be shared with all the projects in a group and sub-groups, by configuring a template repository for the group.</p> <p>Custom templates are useful when the templates provided by GitLab are too generic, for example a custom license that should be used for every project in the company, or a complex Dockerfile that should be used for every microservice.</p> <p>Support for instance-wide template repositories was <a href="/2018/09/22/gitlab-11-3-released/#custom-file-templates-for-self-managed-instances">introduced in GitLab 11.3</a>.</p> <img alt='Group file templates' class='shadow' src='/images/11_5/group-templates.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/group/#group-level-file-templates-premium' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/5987' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='issue-analytics'> <a class='header-link' href='#issue-analytics'> <i class='fas fa-link'></i> </a> Issue Analytics </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>In this release, we have provided a dynamic chart showing the number of issues created in your group, per month, for the past year. There is even a filter that allows you to filter down to a particular scope of issues.</p> <p>This will help teams dig more deeply into their issue analytics. For example, you can quickly see how many bug issues have been created, if you use a bug label.</p> <p>See how we plan to <a href="https://gitlab.com/groups/gitlab-org/-/epics/313">expand on charting capabilities</a> and please participate in the discussion.</p> <img alt='Issue Analytics' class='shadow' src='/images/11_5/issue-analytics.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/group/issues_analytics/index.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7478' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='keep-your-email-address-private'> <a class='header-link' href='#keep-your-email-address-private'> <i class='fas fa-link'></i> </a> Keep your email address private </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>It’s important to know who is contributing code to your project and be able to look up a commit author in the GitLab interface, using Git locally, or on a fork hosted elsewhere, but this exposes your email publicly.</p> <p>GitLab now provides a <code>noreply</code> email address that can be used locally and for web commits to help make it easier to keep your email address private.</p> <img alt='Keep your email address private' class='shadow' src='/images/11_5/noreply-email.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/profile/#private-commit-email' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/43521' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='open-a-merge-request-with-a-patch-via-email'> <a class='header-link' href='#open-a-merge-request-with-a-patch-via-email'> <i class='fas fa-link'></i> </a> Open a merge request with a patch via email </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>GitLab has supported opening a merge request via email for a long time, but before sending the email the branch must already exist on the server. Now you can open a merge request with only an email by attaching one or more patch files (<code>.patch</code>).</p> <p>Patch files are the standard for sharing and transmitting changes between systems. In future releases of GitLab we will build on this foundation for <a href="https://gitlab.com/groups/gitlab-org/-/epics/260">distributed merge requests</a>, which will allow merge requests between GitLab instances, and other Git hosting tools too.</p> <figure class='video_container'> <iframe allowfullscreen='true' frameborder='0' src='https://www.youtube.com/embed/Y6jb_3hV8Po'></iframe> </figure> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/merge_requests/#adding-patches-when-creating-a-merge-request-via-e-mail' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/40830' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='open-jaeger-from-gitlab'> <a class='header-link' href='#open-jaeger-from-gitlab'> <i class='fas fa-link'></i> </a> Open Jaeger from GitLab </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Tracing provides deep introspection into the performance and health of a deployed application, tracking each function or microservice which handles a given request. This makes it easy to understand the end-to-end flow of a request, regardless of whether you are using a monolithic or distributed system.</p> <p>GitLab 11.5 includes an initial integration with <a href="https://www.jaegertracing.io">Jaeger</a>, the <a href="https://www.cncf.io">CNCF</a>-hosted tracing project, allowing users to easily open the Jaeger UI from GitLab.</p> <img alt='Open Jaeger from GitLab' class='shadow' src='/images/11_5/jaeger.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/operations/tracing.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/4753' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='omnibus-go-apps-now-use-the-gitlab-cert-directory'> <a class='header-link' href='#omnibus-go-apps-now-use-the-gitlab-cert-directory'> <i class='fas fa-link'></i> </a> Omnibus Go apps now use the GitLab cert directory </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>GitLab includes a number of Go-based applications. Prior to 11.5, these applications utilized the standard OS system location for trusted certificates, instead of the Omnibus GitLab directory.</p> <p>With this release, Go applications now use the same directory for trusted certificates as the rest of GitLab, by default <code>/opt/gitlab/embedded/ssl/certs/</code>, making certificate management easier and more straightforward.</p> <p>GitLab installations which depended upon the Go applications using the system directory should move those certificates to the standard Omnibus GitLab location.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/omnibus/settings/ssl.html#install-custom-public-certificates' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/omnibus-gitlab/issues/3701' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='json-logging-for-audit-events'> <a class='header-link' href='#json-logging-for-audit-events'> <i class='fas fa-link'></i> </a> JSON logging for audit events </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>In order to make audit events easier to analyze and ingest outside of GitLab, we’ve added <code>audit_json.log</code> to capture audit events in a structured log file. With this change, shipping and parsing logs becomes much easier – especially for visualization and analysis in other tools.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/administration/audit_events.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/54244' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='file-list-for-browsing-merge-request-diff'> <a class='header-link' href='#file-list-for-browsing-merge-request-diff'> <i class='fas fa-link'></i> </a> File list for browsing merge request diff </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Moving backwards and forwards between files in the merge request diff is necessary in all but the smallest of changes. In addition to the <a href="/2018/10/22/gitlab-11-4-released/#file-tree-for-browsing-merge-request-diff">file tree added in GitLab 11.4</a>, GitLab now includes a searchable file list of changes to make it easy to see which files have changed and jump between them, whether you prefer a tree or a list.</p> <img alt='File list for browsing merge request diff' class='shadow' src='/images/11_5/mr-tree-list.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/merge_requests/index.html#merge-request-diff-file-navigation' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/51859' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='authenticate-with-jira-cloud-using-email-address-and-api-token'> <a class='header-link' href='#authenticate-with-jira-cloud-using-email-address-and-api-token'> <i class='fas fa-link'></i> </a> Authenticate with Jira Cloud using email address and API token </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Jira Cloud is <a href="https://confluence.atlassian.com/cloud/blog/2018/06/say-goodbye-to-usernames-in-atlassian-cloud">removing usernames for authentication</a>. So to support this change, we now allow you to use an email address and API token to authenticate with Jira Cloud instead.</p> <img alt='Authenticate with Jira Cloud using email address and API token' class='shadow' src='/images/11_5/jira-email-api-token.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/integrations/jira.html#configuring-gitlab' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/49936' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='filter-by-open-or-closed-epics-in-api'> <a class='header-link' href='#filter-by-open-or-closed-epics-in-api'> <i class='fas fa-link'></i> </a> Filter by open or closed epics in API </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>We recently released the ability to close epics, namely having different open and closed states for epics. In this release, we are exposing that state in the API itself, so that you can filter on open or closed epics when retrieving a list of them, as well as see the state in a single epic retrieved itself.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/api/epics.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/7615' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='epic-keyboard-shortcuts'> <a class='header-link' href='#epic-keyboard-shortcuts'> <i class='fas fa-link'></i> </a> Epic keyboard shortcuts </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Premium'> <div class='badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Similar to issues and merge requests, you can perform basic operations in an epic page with keyboard shortcuts, helping those users who want to get more done, more quickly, without leaving the keyboard.</p> <p>Use <kbd>r</kbd> to start a new comment. (It will even quote selected text.) Use <kbd>e</kbd> to edit the description. And use <kbd>l</kbd> to change labels.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/workflow/shortcuts.html#epics' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ee/issues/4187' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='render-index-files-like-readmes-in-repositories'> <a class='header-link' href='#render-index-files-like-readmes-in-repositories'> <i class='fas fa-link'></i> </a> Render 'index' files like 'README's in repositories </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>When a <code>README.*</code> file is present in a directory of a repository, it’s rendered automatically by GitLab without the need to explicitly open it. With GitLab 11.5, it’s now possible to do the same thing with an <code>index.*</code> file.</p> <p>This is particularly useful when you also deploy your content online using a static site generator. Previously, if you used <code>README.md</code> it would render to <code>README.html</code>, whereas with <code>index.html</code> you can now have clean URLs since most web servers treat <code>http://example.com/page/index.html</code> and <code>http://example.com/page/</code> the same.</p> <p>This is not limited to Markdown files as GitLab supports a number of <a href="https://docs.gitlab.com/ee/user/project/repository/index.html#supported-markup-languages-and-extensions">markup languages</a>.</p> <img alt='Render &#39;index&#39; files like &#39;README&#39;s in repositories' class='shadow' src='/images/11_5/index-file-repository.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/project/repository/index.html#repository-readme-and-index-files' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/18933' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='discussion-activity-filter-in-issues-and-merge-requests'> <a class='header-link' href='#discussion-activity-filter-in-issues-and-merge-requests'> <i class='fas fa-link'></i> </a> Discussion activity filter in issues and merge requests </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>We are glad to see teams collaborating actively in issue and merge request comments. For more involved discussions and longer-lived issues and merge requests, the discussion activity can become very long, with a lot of generated system notes.</p> <p>With this release, we’ve implemented a filter to allow you to focus on just comments or system activity in the discussion area of an issue or merge request. Your selection is saved for all issues or all merge requests in GitLab. So if you prefer one mode, you can just make the selection once, and it will persist forever.</p> <p>We are planning to bring <a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/7526">the same functionality to epics</a> too.</p> <img alt='Discussion activity filter in issues and merge requests' class='shadow' src='/images/11_5/discussion-activity-filter.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/discussions/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/51323' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='show-feedback-if-git-push-validation-takes-too-long'> <a class='header-link' href='#show-feedback-if-git-push-validation-takes-too-long'> <i class='fas fa-link'></i> </a> Show feedback if Git push validation takes too long </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Every time you push changes to a Git repository on GitLab, GitLab performs checks on each commit to enforce permissions, repository size restrictions and validates the presence of LFS objects. In some cases large pushes can fail without feedback when validation takes too long.</p> <p>GitLab now provides feedback when Git push operations time out because validation is taking too long. This will help debug the source of the problem by providing better feedback to the user.</p> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/topics/git/troubleshooting_git.html#timeout-during-git-pushpull' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/42790' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='quick-access-to-prioritized-group-settings'> <a class='header-link' href='#quick-access-to-prioritized-group-settings'> <i class='fas fa-link'></i> </a> Quick access to prioritized Group settings </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>With GitLab 11.5, we are iterating on the settings page of Groups to prioritize the most sought-after configuration options. The top-most section is expanded by default, and we’ve clarified labels and links to provide clear direction on where to find settings and what they do. We’re continuously working on this – Project and Admin settings improvements are coming soon!</p> <img alt='Quick access to prioritized Group settings' class='shadow' src='/images/11_5/group-settings-quick-access.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/user/group/' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/49417' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='help-menu-in-top-navigation'> <a class='header-link' href='#help-menu-in-top-navigation'> <i class='fas fa-link'></i> </a> Help menu in top navigation </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>With this release, we are updating the top navigation bar by moving two items into a new, dedicated Help menu section. We’ll continue to add additional items there related to instance-level support and feedback in future iterations coming soon!</p> <img alt='Help menu in top navigation' class='shadow' src='/images/11_5/top-navigation-help-item.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/50728' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='audit-event-logging-for-project-features-and-group-settings'> <a class='header-link' href='#audit-event-logging-for-project-features-and-group-settings'> <i class='fas fa-link'></i> </a> Audit event logging for project features and group settings </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>Audit Events captures important events that take place on your GitLab instance, and we’re now capturing additional changes in 11.5:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8027">Project-level feature settings changes</a></li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8051">Group settings changes</a></li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/administration/audit_events.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='activity-dashboard-redesign'> <a class='header-link' href='#activity-dashboard-redesign'> <i class='fas fa-link'></i> </a> Activity dashboard redesign </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>With this release, we are updating the activity dashboard design to give a better view into who is doing what in your GitLab instance. The new activity feed gives a reader more context on what actions have taken place to keep you always up to date.</p> <img alt='Activity dashboard redesign' class='shadow' src='/images/11_5/activity-dashboard-redesign.png' /> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/gitlab-org/gitlab-ce/issues/49403' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M10.892 3.072l1.048.185a3 3 0 0 1 2.433 3.476l-.868 4.924a3 3 0 0 1-3.12 2.474A3.98 3.98 0 0 0 11 12.03a.999.999 0 0 0 .535-.72l.869-4.924a1 1 0 0 0-.811-1.158L11 5.122V4c0-.32-.037-.63-.108-.928zM4 1h3a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4z"/></svg> Issue </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='geo-improvements'> <a class='header-link' href='#geo-improvements'> <i class='fas fa-link'></i> </a> Geo improvements </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Core'> <div class='badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Not available in GitLab Starter'> <div class='badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Free'> <div class='badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Bronze'> <div class='badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Silver'> <div class='badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Not available in GitLab.com Gold'> <div class='badge'>GOLD</div> </a> </div> </div> <p>We continually focus on improving our <a href="/solutions/geo/">Geo</a> feature for distributed teams. Some of the additional noteworthy improvements in GitLab 11.5 include:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/7963">Rails console now always displays primary/secondary state correctly</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8124">Secondary instances now show a more specific flash message on actionable pages</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8121">Geo nodes projects list is now searchable</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/8120">Recheck/resync of projects can now be triggered for all projects</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/issues/6070">Improved performance of Geo SQL queries</a>.</li> <li><a href="https://docs.gitlab.com/ee/administration/geo/replication/">Major documentation improvements</a>.</li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' href='https://docs.gitlab.com/ee/administration/geo/replication/configuration.html' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h4.244a2 2 0 0 1 1.434.606l2.756 2.834A2 2 0 0 1 14 5.835V12a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V5.835L9.244 3H5zm1.5 7h3a.5.5 0 1 1 0 1h-3a.5.5 0 1 1 0-1zm0-2h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1zM8 2l3 1.995L13 7H9a1 1 0 0 1-1-1V2z"/></svg> Documentation </a> <a class='btn btn-default btn-xs product-icon-xm' href='https://gitlab.com/groups/gitlab-org/-/boards/805065?milestone_title=11.5&amp;label_name[]=Geo' target='_blank'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5 1h6a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3zm0 2a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H5zm1 3a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 3a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm3-5h1a1 1 0 0 1 0 2H9a1 1 0 1 1 0-2zm0 3h1a1 1 0 0 1 0 2H9a1 1 0 1 1 0-2zm-3 5a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm3-2h1a1 1 0 0 1 0 2H9a1 1 0 0 1 0-2z"/></svg> Issue Board </a> </div> </div> <hr class='hidden-lg' /> </div> <div class='visible-lg secondary-column-feature'> <h3 id='performance-improvements'> <a class='header-link' href='#performance-improvements'> <i class='fas fa-link'></i> </a> Performance improvements </h3> <div class='badge-container dark'> <div class='top-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Core'> <div class='available badge'>CORE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Starter'> <div class='available badge'>STARTER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Premium'> <div class='available badge'>PREMIUM</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#self-managed' title='Available in GitLab Ultimate'> <div class='available badge'>ULTIMATE</div> </a> </div> <div class='bottom-row'> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Free'> <div class='available badge'>FREE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Bronze'> <div class='available badge'>BRONZE</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Silver'> <div class='available badge'>SILVER</div> </a> <a data-placement='top' data-toggle='tooltip' href='/pricing/#gitlab-com' title='Available in GitLab.com Gold'> <div class='available badge'>GOLD</div> </a> </div> </div> <p>Some of the more noteworthy performance improvements in GitLab 11.5 include:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/43034">Issue board lists perform fewer SQL queries</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22606">Improved performance of the snippets dashboards by a factor of 250</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22732">License Management doesn’t require Docker-in-Docker, and can now be cached by GitLab Runner</a>. See the <a href="https://docs.gitlab.com/ee/ci/examples/license_management.html">new job definition</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8027">Improve performance of rendering large reports</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22725">Significantly cut memory and SQL queries when reloading diffs</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22325">Use cached readme blobs where appropriate</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22731">Optimize merge request refresh by using the database to check commit SHAs</a>.</li> <li><a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22709">Reduce SQL queries needed to load open merge requests</a>.</li> </ul> <div class='row reference-buttons ref-buttons-second-features'> <div class='col-md-12 col-sm-12'> <a class='btn btn-default btn-xs product-icon-xm' data-placement='auto' data-toggle='tooltip' href='https://gitlab.com/groups/gitlab-org/merge_requests?scope=all&amp;utf8=%E2%9C%93&amp;state=merged&amp;label_name%5B%5D=performance&amp;milestone_title=11.5' target='_blank' title='See all the performance improvements in GitLab 11.5'> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M3.161 8.425l-2.016.063a.3.3 0 0 1-.222-.512l2.415-2.414a.3.3 0 0 1 .145-.08l2.139-.492c-.072.097-.146.196-.221.3-.36.491-1.734 2.433-1.973 2.765l-.267.37zm7.82 1.922l-.492 2.14a.3.3 0 0 1-.08.146l-2.415 2.414a.3.3 0 0 1-.511-.221l.063-2.017.356-.258c.364-.261 2.295-1.628 2.778-1.982l.301-.222zm-3.13-6.47c1.445-1.445 3.306-1.892 5.584-1.341.54 2.288.093 4.15-1.342 5.584-1.19 1.19-3.234 2.47-5.729 4.315-.127.094-.366.32-.716.68a1 1 0 0 1-1.423.01l-1.379-1.38a1 1 0 0 1 .01-1.423c.359-.35.585-.588.68-.715C5.373 7.12 6.652 5.076 7.85 3.877zm1.341 2.901a1 1 0 1 0 1.415-1.414 1 1 0 0 0-1.415 1.414z"/></svg> Performance improvements </a> </div> </div> <hr class='hidden-lg' /> </div> </div> </div> </section> <!-- complementary information --> <!-- deprecations --> <section class='release-post-section' id='deprecations'> <h2 class='text-center' id='release-deprecations'> <a class='header-link' href='#release-deprecations'> <i class='fas fa-link'></i> </a> Deprecations </h2> <h3 id='&lt;code&gt;sast_container&lt;/code&gt;-value-in-&lt;code&gt;gitlab_features&lt;/code&gt;-environment-variable'> <a class='header-link' href='#&lt;code&gt;sast_container&lt;/code&gt;-value-in-&lt;code&gt;gitlab_features&lt;/code&gt;-environment-variable'> <i class='fas fa-link'></i> </a> <code>sast_container</code> value in <code>GITLAB_FEATURES</code> environment variable </h3> <p>The <code>GITLAB_FEATURES</code> <a href="https://docs.gitlab.com/ee/ci/variables/#predefined-variables-environment-variables">environment variable</a>, available to CI/CD jobs, lists all the available features based on the current license/tier.</p> <p>The <code>sast_container</code> value for <a href="https://docs.gitlab.com/ee/user/project/merge_requests/container_scanning.html">Container Scanning</a> is now deprecated, and replaced with <code>container_scanning</code>. The old value could be removed in GitLab 12.0.</p> <p> Removal date: <strong>Mar. 22, 2019.</strong> </p> <h3 id='old-ci/cd-syntax-for-security,-quality,-and-performance-report-types'> <a class='header-link' href='#old-ci/cd-syntax-for-security,-quality,-and-performance-report-types'> <i class='fas fa-link'></i> </a> Old CI/CD syntax for security, quality, and performance report types </h3> <p>Before GitLab 11.5, jobs and artifacts had to be named specifically to automatically extract report data and show it in the merge request widget. While these old job definitions are still working, they have been deprecated and may be removed in the next major release, GitLab 12.0.</p> <p>You are advised to update your current <code>.gitlab-ci.yml</code> configuration to reflect that change. You can find the new definitions in our documentation for <a href="https://docs.gitlab.com/ee/ci/examples/sast.html">SAST</a>, <a href="https://docs.gitlab.com/ee/ci/examples/dast.html">DAST</a>, <a href="https://docs.gitlab.com/ee/ci/examples/dependency_scanning.html">Dependency Scanning</a>, <a href="https://docs.gitlab.com/ee/ci/examples/container_scanning.html">Container Scanning</a>, <a href="https://docs.gitlab.com/ee/ci/examples/license_management.html">License Management</a>, <a href="https://docs.gitlab.com/ee/ci/examples/code_quality.html">Code Quality</a>, and <a href="https://docs.gitlab.com/ee//ci/examples/browser_performance.html">Browser Performance Testing</a>.</p> <p>The new syntax requires GitLab Runner 11.5 or newer to work correctly.</p> <p> Removal date: <strong>Mar. 22, 2019.</strong> </p> <h3 id='pipelines-older-than-three-months-are-no-longer-re-runnable'> <a class='header-link' href='#pipelines-older-than-three-months-are-no-longer-re-runnable'> <i class='fas fa-link'></i> </a> Pipelines older than three months are no longer re-runnable </h3> <p>As of this release, older jobs (&gt;3 months) will no longer be allowed to be “played” or “retried,” and rollback will no longer be available. As of now we are not actually deleting this data so we can receive feedback on potential problems with this change. Please join the discussion in <a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/50939">#50939</a> if you have concerns.</p> <p> Removal date: <strong>Nov. 22, 2018.</strong> </p> <h3 id='elasticsearch-5.5-and-earlier-not-supported-in-gitlab-11.5'> <a class='header-link' href='#elasticsearch-5.5-and-earlier-not-supported-in-gitlab-11.5'> <i class='fas fa-link'></i> </a> Elasticsearch 5.5 and earlier not supported in GitLab 11.5 </h3> <p>GitLab 11.5 will no longer support Elasticsearch 5.5 and below. It will only support Elasticsearch 5.6 and 6.x. See the <a href="/2018/11/16/new-elasticsearch-version-requirements/">blog post</a> for additional details.</p> <p> Removal date: <strong>Nov. 22, 2018.</strong> </p> <h3 id='support-for-prometheus-1.x-in-omnibus-gitlab'> <a class='header-link' href='#support-for-prometheus-1.x-in-omnibus-gitlab'> <i class='fas fa-link'></i> </a> Support for Prometheus 1.x in Omnibus GitLab </h3> <p>With GitLab 11.4 (Oct. 22, 2018) the bundled Prometheus 1.0 version is deprecated in Omnibus GitLab. Prometheus 2.0 is <a href="#prometheus-20-upgrade-for-omnibus-gitlab">now included</a>, however the metrics format is incompatible with 1.0. Existing installations can upgrade to 2.0 and optionally migrate their data <a href="https://docs.gitlab.com/omnibus/update/gitlab_11_changes.html#11-4">using an included tool</a>.</p> <p>With GitLab 12.0 any installation not yet running Prometheus 2.0 will be automatically upgraded. Metric data from Prometheus 1.0 will not be migrated, and will be lost.</p> <p> Removal date: <strong>GitLab 12.0</strong> </p> </section> <!-- Updgrade barometer --> <section class='release-post-section' id='upgrade-barometer'> <h2 class='text-center' id='barometer'> <a class='header-link' href='#barometer'> <i class='fas fa-link'></i> </a> Upgrade barometer </h2> <p>To upgrade to GitLab 11.5 from the latest 11.4 version, no downtime is required. To upgrade without downtime, please consult the <a href="https://docs.gitlab.com/ee/update/README.html#upgrading-without-downtime">documentation on downtimeless upgrades</a>.</p> <p>For this release we have migrations, post-deploy migrations, and to help with the larger migrations we have introduced background migrations.</p> <p>GitLab.com migrations took approximately 9 minutes and post-deploy migrations amounted for a total of around 32 minutes. Background migrations on the other hand are sidekiq jobs that will run synchronously, for this release these migrations took around 2 days to complete, no side effects were expected nor present, these target older kubernetes cluster integrations so newer kubernets cluster integrations are not affected.</p> <p>GitLab Geo users, please consult the documentation on <a href="https://docs.gitlab.com/ee/administration/geo/replication/updating_the_geo_nodes.html">upgrading Geo</a>.</p> <p>Go apps in Omnibus <a href="#go-apps-in-omnibus-now-use-standard-gitlab-certificate-directory">now use the standard GitLab certificate directory</a>. Installations which depended upon the Go applications using the system directory, should move those certificates to the standard Omnibus GitLab location.</p> </section> GitLab Patch Release: 11.4.7 https://about.gitlab.com/2018/11/21/gitlab-11-4-7-released/ 2018-11-21T00:00:00+00:00 2018-11-21T00:00:00+00:00 Jan Provaznik <!-- For detailed instructions on how to complete this, please see https://gitlab.com/gitlab-org/release/docs/blob/master/general/patch/blog-post.md --> <p>Today we are releasing version 11.4.7 for GitLab Community Edition and Enterprise Edition. This release only contains a fix for GitLab Enterprise Edition, GitLab Community Edition has no changes compared to 11.4.6.</p> <h2 id="gitlab-enterprise-edition">GitLab Enterprise Edition</h2> <p>Available in GitLab Starter, Premium, and Ultimate:</p> <ul> <li><a href="https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8248">Fix code owner suggestion missing in GitLab Starter</a></li> </ul> <h2 id="upgrade-barometer">Upgrade barometer</h2> <p>This version does not include any new migrations, and should not require any downtime.</p> <p>Please be aware that by default the Omnibus packages will stop, run migrations, and start again, no matter how “big” or “small” the upgrade is. This behavior can be changed by adding a <a href="http://docs.gitlab.com/omnibus/update/README.html"><code>/etc/gitlab/skip-auto-migrations</code></a> file, which is only used for <a href="https://docs.gitlab.com/omnibus/update/README.html">updates</a>.</p> <h2 id="updating">Updating</h2> <p>To update, check out our <a href="/update/">update page</a>.</p> <h2 id="gitlab-subscriptions">GitLab subscriptions</h2> <p>Access to GitLab Starter, Premium, and Ultimate features is granted by a paid <a href="/pricing/">subscription</a>.</p> <p>Alternativelly, <a href="https://gitlab.com/users/sign_in">sign up for GitLab.com</a> to use GitLab's own infrastructure.</p> <img src='https://about.gitlab.com/images/default-blog-image.png' class='webfeedsFeaturedVisual' style='display: none;' /> How we maintain product velocity with monthly releases https://about.gitlab.com/2018/11/21/why-gitlab-uses-a-monthly-release-cycle/ 2018-11-21T00:00:00+00:00 2018-11-21T00:00:00+00:00 Suri Patel <p>We eagerly await the 22nd of each month, because we get to share the hard work of our team and community with our users. Our <a href="/releases/">release</a> schedule illustrates our belief in the <a href="/handbook/engineering/#the-importance-of-velocity">importance of velocity</a> and our commitment to delivering value in the form of features. Monthly releases might seem aggressive to outsiders, but we believe our ability to deliver features quickly is a competitive advantage that has helped us find success.</p> <h2 id="three-cheers-for-monthly-releases">Three cheers for monthly releases!</h2> <p>A monthly release schedule is great for users, because it adds value at a predictable pace. Most of GitLab's installations are self managed, helping users identify when new functionality will arrive. As a user, you can look forward to the 22nd of every month, knowing that's when new features become available.</p> <p><img src="/images/blogimages/releasebirthday.png" alt="A screenshot of a user's comment, which says that he is looking forward to February 22 more than 21, which is his birthday" class="shadow" /></p> <h3 id="a-predictable-schedule-helps-with-planning-team-capacity">A predictable schedule helps with planning team capacity</h3> <p>The team has also found that it's easier to determine how much capacity we have when we're planning our workload, because there's no need to agree on deadlines. GitLabbers know exactly how many days they have to work on something, and we can plan in advance. Working with such a short timeframe forces us to build features as small as possible. We can't say, "I need two releases for this," so we have to really think about how we can make a feature smaller, an idea that's reinforced by our <a href="/handbook/values/#iteration">iteration value</a>.</p> <div class="newsletter-cta-a panel panel-default panel-newsletter-cta"> <div class="panel-body newsletter-cta"> <div class="panel-header"> <?xml version="1.0" encoding="UTF-8"?> <svg width="56px" height="52px" viewBox="0 0 56 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs></defs> <g id="Desktop" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="blog-newsletter-cta-graphic-v2" transform="translate(-1070.000000, -383.000000)" fill="#FFFFFF"> <g id="gitlab-newsletter-cta-b" transform="translate(948.000000, 363.000000)"> <g id="Page-1" transform="translate(122.000000, 20.000000)"> <path d="M53.1397841,30.8022957 L34.558125,44.3561117 L51.1622841,22.9844307 L53.4156477,29.9385534 C53.5192159,30.2590074 53.4081705,30.6062589 53.1397841,30.8022957 Z M2.86117045,30.8027742 C2.59198864,30.6062589 2.48094318,30.2590074 2.58419318,29.9395104 L4.83819318,22.9833141 L21.4412386,44.3634491 L2.86117045,30.8027742 Z M11.2584659,3.11293374 L16.410625,19.0155227 L6.12523864,19.0155227 L11.2584659,3.11293374 Z M36.0973295,21.5676699 L28.0054886,46.5780748 L19.9136477,21.5676699 L36.0973295,21.5676699 Z M44.7420114,3.11277423 L49.8844659,19.0155227 L39.5995568,19.0155227 L44.7420114,3.11277423 Z M31.4494886,44.2040994 L33.126625,39.0203693 L38.7700568,21.578038 L49.0266477,21.578038 L32.9091477,42.3254 L31.4494886,44.2040994 Z M17.2337614,21.578038 L24.5527386,44.1996331 L6.98544318,21.578038 L17.2337614,21.578038 Z M55.8366932,29.1508969 L52.8941477,20.069719 C52.8793523,19.9864552 52.8535795,19.904946 52.8220795,19.8248724 L46.9193295,1.57207485 C46.5984432,0.615657669 45.7433295,-4.78527557e-05 44.7385114,-4.78527557e-05 L44.725625,-4.78527557e-05 C43.7206477,0.00521595093 42.8707841,0.62730184 42.5600795,1.58547362 L36.9236477,19.0155227 L19.0866932,19.0155227 L13.4396023,1.58483558 C13.1295341,0.62746135 12.2796705,0.00537546013 11.2746932,-4.78527557e-05 C10.2687614,-0.00563067484 9.40314773,0.611669939 9.07589773,1.58611166 L3.17648864,19.8628356 C3.17092045,19.8781485 3.16344318,19.8923448 3.15851136,19.9076577 L0.163147727,29.151854 C-0.280556818,30.5249092 0.201329545,32.0172773 1.36269318,32.8658663 L27.2447159,51.755584 C27.4696705,51.919719 27.7320114,51.9999521 27.9932386,51.9999521 C28.2622614,51.9999521 28.5292159,51.9133387 28.7525795,51.746492 C28.753375,51.745854 28.7543295,51.745535 28.755125,51.7448969 L54.6377841,32.8655472 C55.7988295,32.0172773 56.2807159,30.5249092 55.8366932,29.1508969 Z" id="Fill-1"></path> </g> </g> </g> </g> </svg> <div id="above-cta-form"> <div class="newsletter-preamble"> New blog posts directly to your inbox </div> <div class="newsletter-sub-preamble"> Sign up for our bi-monthly newsletter </div> </div> <div id="confirm-cta-form" style="display: none;"> <div class="newsletter-preamble"> Thanks, you’re <br /> signed up! </div> <div class="newsletter-sub-preamble"> GitLab is coming to your inbox </div> <img class="success-image" src="/images/emojis/newsletter-signup-success.png" /> </div> </div> <div class="newsletter-form"> <form class="notdefined" id="mktoForm_1546"> <script src="//app-ab13.marketo.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> MktoForms2.loadForm("//app-ab13.marketo.com", "194-VVC-221", 1546, function(form) { form.onSuccess(function(values, followUpUrl) { form.getFormElem().hide(); document.getElementById('above-cta-form').style.display = 'none'; document.getElementById('confirm-cta-form').style.display = 'block'; dataLayer.push({event: 'mktoLead',mktoFormId: form.getId()}); return false; }); function getgacid() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch (e) { return 'n/a'; } } form.vals({ 'gacid': getgacid() }); }); </script> </form> </div> </div> </div> <blockquote> <p>"Sometimes, team members will propose having longer release cycles, because we'd be able to fit more into it, or we'd be able to do better quality control, but I think that's short sighted. It's true that in a longer release cycle, you can fit more in, but that will require bigger steps, and we know that iteration is what makes us achieve velocity. So, the smaller the steps we take, the faster we can go and the easier it is to do quality control. We think a monthly release cycle is the optimal frequency." – <a href="/company/team/#sytses">Sid Sijbrandij</a>, GitLab CEO</p> </blockquote> <h2 id="challenges-posed-by-monthly-releases">Challenges posed by monthly releases</h2> <h3 id="its-not-always-easy-to-stick-to-the-plan">It's not always easy to stick to the plan</h3> <p>It's not all sunshine and rainbows. While we're strong proponents of the monthly release, we realize that there are quite a few challenges. A few of the drawbacks relate to our actual deadline and staying on track with the <a href="/direction/">direction</a> of GitLab. For example, a release might be far away, but we want to ship something now. Or, we want to ship something, but the release just passed, and now we have to wait. Sometimes we try to cram in something just before the merge window closes even though it's not ready. When these situations arise, we remember to <a href="/2015/12/07/why-we-shift-objectives-and-not-release-dates-at-gitlab/">shift objectives</a> and focus on providing value to our users.</p> <h3 id="theres-a-big-impact-on-morale">There's a big impact on morale</h3> <p>One of the most bittersweet aspects of monthly releases is that morale can soar or suffer, depending on the processes that are put in place. We're thrilled when we make something and quickly see the benefits. With our schedule, GitLabbers see their hard work in action within a month, which is way better than in some enterprise organizations in which someone might make something that won't get released for six months. At GitLab, people can rapidly effect change with their contributions and feel like their work matters.</p> <p>There were times in the past, however, when our release schedule dampened morale. In the early days, we had a few times when things came down to the wire, and we battled bugs right until the end, making the 22nd look like an impossibility. The rush towards the end caused quite a bit of stress on the team, so we decided to create a bigger buffer between the release and the closing of our merge window. We also developed a <a href="https://gitlab.com/gitlab-org/release/docs/blob/master/README.md">release process</a> to help keep us on track. Our <a href="https://gitlab.com/gitlab-org/release-tools/blob/master/templates/monthly.md.erb">release template</a> has helped us identify problems earlier so that we're not feeling pressured at the end, which could be detrimental to everyone's motivation.</p> <h2 id="how-to-determine-the-right-cadence">How to determine the right cadence</h2> <p>While we've found success with monthly releases, we understand that it's not right for everyone. If you're a SaaS provider, you don't need releases and can just ship whenever something is finished. If you're shipping software that people manage themselves, you're going to have to do versioning, so that people know what version they're on and are aware of releases, patches, and upgrades. A monthly release cycle forces you into this, so in that case, this cadence would work well for your team. If there's hardware in the loop, extensive testing, or human testing that's needed, then a longer release cadence is required, because you have to factor in significant fixed costs.</p> <p>Identifying the right cadence for your organization comes down to experimentation and what your users will accept. Some user bases may only want to update every quarter or twice a year, while others want more frequent versions to stay current with industry changes. Because we strongly believe that smaller steps let you deliver faster, we encourage you to start with monthly releases and work towards settling on the pacing that works best. <a href="/handbook/values/#collaboration">Collaborate</a> with your team to create processes that simplify actions and hold <a href="/handbook/engineering/management/team-retrospectives/">retrospectives</a> to make adjustments. We've found that our <a href="/2017/02/14/our-retrospective-and-kickoff-are-public/">retrospectives</a> are extremely helpful in identifying consistent problem areas.</p> <p class="note"><a href="https://www.pexels.com/photo/22-apartment-architecture-building-210790/">Cover image</a> licensed under <a href="https://www.pexels.com/creative-commons-images/">CC 0</a></p> <img src='https://about.gitlab.com/images/blogimages/monthlyrelease.jpg' class='webfeedsFeaturedVisual' style='display: none;' /> GitLab Code Contributor: Hannes Rosenögger https://about.gitlab.com/2018/11/20/contributor-post-hannes/ 2018-11-20T00:00:00+00:00 2018-11-20T00:00:00+00:00 Ray Paik <p>For this month's blog post, we're featuring another <a href="/community/core-team/">Core Team</a> member <a href="https://gitlab.com/haynes">Hannes Rosenögger</a>.</p> <h3 id="when-did-you-first-contribute-to-gitlab">When did you first contribute to GitLab?</h3> <p>My first <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/263">MR to close multiple issues with one commit</a> was back in December 2014. So that's almost four years ago!</p> <h3 id="why-and-how-did-you-decide-to-contribute-to-gitlab">Why and how did you decide to contribute to GitLab?</h3> <p>I used the Community Edition privately and noticed that mentioning multiple issues in an MR only closed the first issue. Since GitLab was open source and the fix was easy, I decided to fix it myself. GitLab's open policy about everything within the company was also a huge factor.</p> <div class="newsletter-cta-a panel panel-default panel-newsletter-cta"> <div class="panel-body newsletter-cta"> <div class="panel-header"> <?xml version="1.0" encoding="UTF-8"?> <svg width="56px" height="52px" viewBox="0 0 56 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs></defs> <g id="Desktop" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="blog-newsletter-cta-graphic-v2" transform="translate(-1070.000000, -383.000000)" fill="#FFFFFF"> <g id="gitlab-newsletter-cta-b" transform="translate(948.000000, 363.000000)"> <g id="Page-1" transform="translate(122.000000, 20.000000)"> <path d="M53.1397841,30.8022957 L34.558125,44.3561117 L51.1622841,22.9844307 L53.4156477,29.9385534 C53.5192159,30.2590074 53.4081705,30.6062589 53.1397841,30.8022957 Z M2.86117045,30.8027742 C2.59198864,30.6062589 2.48094318,30.2590074 2.58419318,29.9395104 L4.83819318,22.9833141 L21.4412386,44.3634491 L2.86117045,30.8027742 Z M11.2584659,3.11293374 L16.410625,19.0155227 L6.12523864,19.0155227 L11.2584659,3.11293374 Z M36.0973295,21.5676699 L28.0054886,46.5780748 L19.9136477,21.5676699 L36.0973295,21.5676699 Z M44.7420114,3.11277423 L49.8844659,19.0155227 L39.5995568,19.0155227 L44.7420114,3.11277423 Z M31.4494886,44.2040994 L33.126625,39.0203693 L38.7700568,21.578038 L49.0266477,21.578038 L32.9091477,42.3254 L31.4494886,44.2040994 Z M17.2337614,21.578038 L24.5527386,44.1996331 L6.98544318,21.578038 L17.2337614,21.578038 Z M55.8366932,29.1508969 L52.8941477,20.069719 C52.8793523,19.9864552 52.8535795,19.904946 52.8220795,19.8248724 L46.9193295,1.57207485 C46.5984432,0.615657669 45.7433295,-4.78527557e-05 44.7385114,-4.78527557e-05 L44.725625,-4.78527557e-05 C43.7206477,0.00521595093 42.8707841,0.62730184 42.5600795,1.58547362 L36.9236477,19.0155227 L19.0866932,19.0155227 L13.4396023,1.58483558 C13.1295341,0.62746135 12.2796705,0.00537546013 11.2746932,-4.78527557e-05 C10.2687614,-0.00563067484 9.40314773,0.611669939 9.07589773,1.58611166 L3.17648864,19.8628356 C3.17092045,19.8781485 3.16344318,19.8923448 3.15851136,19.9076577 L0.163147727,29.151854 C-0.280556818,30.5249092 0.201329545,32.0172773 1.36269318,32.8658663 L27.2447159,51.755584 C27.4696705,51.919719 27.7320114,51.9999521 27.9932386,51.9999521 C28.2622614,51.9999521 28.5292159,51.9133387 28.7525795,51.746492 C28.753375,51.745854 28.7543295,51.745535 28.755125,51.7448969 L54.6377841,32.8655472 C55.7988295,32.0172773 56.2807159,30.5249092 55.8366932,29.1508969 Z" id="Fill-1"></path> </g> </g> </g> </g> </svg> <div id="above-cta-form"> <div class="newsletter-preamble"> New blog posts directly to your inbox </div> <div class="newsletter-sub-preamble"> Sign up for our bi-monthly newsletter </div> </div> <div id="confirm-cta-form" style="display: none;"> <div class="newsletter-preamble"> Thanks, you’re <br /> signed up! </div> <div class="newsletter-sub-preamble"> GitLab is coming to your inbox </div> <img class="success-image" src="/images/emojis/newsletter-signup-success.png" /> </div> </div> <div class="newsletter-form"> <form class="notdefined" id="mktoForm_1546"> <script src="//app-ab13.marketo.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> MktoForms2.loadForm("//app-ab13.marketo.com", "194-VVC-221", 1546, function(form) { form.onSuccess(function(values, followUpUrl) { form.getFormElem().hide(); document.getElementById('above-cta-form').style.display = 'none'; document.getElementById('confirm-cta-form').style.display = 'block'; dataLayer.push({event: 'mktoLead',mktoFormId: form.getId()}); return false; }); function getgacid() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch (e) { return 'n/a'; } } form.vals({ 'gacid': getgacid() }); }); </script> </form> </div> </div> </div> <h3 id="which-areas-of-the-gitlab-product-have-you-been-contributing-to">Which area(s) of the GitLab product have you been contributing to?</h3> <p>I guess it's been pretty random for me. Most of my contributions have been on the backend side and documentation fixes, but if I see something that I can easily fix or I need a feature for my work, I try to make a contribution. I also provide support on the #gitlab IRC channel on freenode. My IRC handle is <code>haynes</code>.</p> <h3 id="can-you-tell-us-what-you-do-professionally">Can you tell us what you do professionally?</h3> <p>I am a Java software developer for a public sector organization in Germany.</p> <h3 id="what-do-you-like-to-do-when-youre-not-working">What do you like to do when you're not working?</h3> <p>When I'm not working, I'm probably doing something for my local scout group. I enjoy working with the kids and teaching. I also like to fix things from coffee machines to cars. Basically anything that I can fix with a bit of work.</p> <!-- carousel --> <div id="carousel-example-generic-5" class="carousel slide medium center" data-ride="carousel" data-interval="10000"> <!-- Indicators --> <ol class="carousel-indicators"> <li data-target="#carousel-example-generic-5" data-slide-to="0" class="active"></li> <li data-target="#carousel-example-generic-5" data-slide-to="1"></li> <li data-target="#carousel-example-generic-5" data-slide-to="2"></li> </ol> <!-- Wrapper for slides --> <div class="carousel-inner" role="listbox"> <div class="item active"> <img src="/images/blogimages/Hannes-blogpost/workbench.jpg" alt="Hannes on workbench" /> </div> <div class="item"> <img src="/images/blogimages/Hannes-blogpost/dishwasher.jpg" alt="Hannes working on his dishwasher" /> </div> <div class="item"> <img src="/images/blogimages/Hannes-blogpost/washing_machine.jpg" alt="Washing machine repair" /> </div> </div> <!-- Controls --> <a class="left carousel-control" href="#carousel-example-generic-5" role="button" data-slide="prev"> <svg class="glyphicon glyphicon-chevron-left" width="11" height="19" viewBox="0 0 11 19" xmlns="http://www.w3.org/2000/svg"><path d="M.44 10.13l8.345 8.345 2.007-2.007-6.814-6.814 6.814-6.815L8.785.832.44 9.177a.652.652 0 0 0-.202.477c0 .183.067.343.202.477z" fill-rule="evenodd" /></svg> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-example-generic-5" role="button" data-slide="next"> <svg class="glyphicon glyphicon-chevron-right" width="11" height="19" viewBox="0 0 11 19" xmlns="http://www.w3.org/2000/svg"><path d="M10.59 10.13l-8.344 8.345L.24 16.468l6.814-6.814L.24 2.839 2.246.832l8.345 8.345a.652.652 0 0 1 .201.477.652.652 0 0 1-.201.477z" fill-rule="evenodd" /></svg> <span class="sr-only">Next</span> </a> </div> <h3 id="what-advice-do-you-have-for-others-who-may-be-interested-in-contributing-to-gitlab">What advice do you have for others who may be interested in contributing to GitLab?</h3> <p>Contributing to GitLab is easier than it looks at a first glance and you can contribute to the community in many different ways. For example, if you want to help out translating the GitLab user interface to your native language on <a href="https://translate.gitlab.com/">CrowdIn</a>, this does not require programming skills or any special setup on your laptop. Also when you want to contribute code, reviewers are normally quite fast in getting back to you and are more than happy to help if you have any questions.</p> <p>If you are unsure how to get started or you need help, anyone should feel free to ping me on Twitter (<a href="https://twitter.com/hrosenoegger">@hrosenoegger</a>) or in the #gitlab IRC channel on <a href="http://freenode.net/">freenode</a>.</p> <h3 id="anything-else-you-want-to-share-with-the-community">Anything else you want to share with the community?</h3> <p>I love the fact that GitLab actually listens to the community. Even after they make a decision to add a new, paid feature, when community members believe it makes more sense to have the feature in <a href="/pricing/#self-managed">GitLab Core</a> or the free tier of <a href="/pricing/">GitLab.com</a>, they will actually port it back. The <a href="/2018/06/22/gitlab-11-0-released/#squash-and-merge-in-gitlab-core-and-gitlabcom-free">Squash and Merge feature</a> is a good example of that.</p> <h2 id="interested-in-learning-how-you-can-contribute">Interested in learning how you can contribute?</h2> <p>A good place to start is the <a href="/community/contribute/">Contributing to GitLab page</a>, where you can learn how you can contribute to GitLab code, documentation, translation, and UX design.</p> <p>If you have any questions, you are always welcome to reach me at rpaik@gitlab.com.</p> <p><em>Note: This post is part of a series featuring people who contribute to GitLab. Read the <a href="/2018/10/04/contributor-post-luke/">October Code Contributor post</a>, <a href="/2018/09/06/contributor-post-jacopo/">September Code Contributor post</a>, and <a href="/2018/08/08/contributor-post-vitaliy/">August Code Contributor post</a>.</em></p> <img src='https://about.gitlab.com/images/blogimages/contributors-cover.png' class='webfeedsFeaturedVisual' style='display: none;' /> Our top 6 tips for making the most of AWS re:Invent https://about.gitlab.com/2018/11/19/aws-pre-event-post/ 2018-11-19T00:00:00+00:00 2018-11-19T00:00:00+00:00 William Chia <p>This year's <a href="/events/aws-reinvent/">AWS re:Invent</a>, Nov. 26-30, looks to be an amazing show. <a href="/solutions/aws/">GitLab works great together with AWS</a> and as an <a href="/partners/#strategic-partners">AWS partner</a> we're excited to be a part of the show. To help you prepare, the team has put together some top tips for getting the most out of re:Invent, along with a list of all the places you can find GitLab on site.</p> <h2 id="top-6-tips-for-aws">Top 6 tips for AWS</h2> <h3 id="1-strategize">1. Strategize</h3> <p>Know what is a must-do/-see for you and plan accordingly, including all talks and networking events. The week has so much going on and you, unfortunately, cannot do it all, so prioritize what is most important to you, and what you will get the most value out of.</p> <h3 id="2-manage-your-time">2. Manage your time</h3> <p>All transportation takes longer than you think it will or should during your time in Las Vegas. The conference footprint is huge. Give yourself a buffer to get to talks and plan on arriving early if you want to attend some of the more popular talks.</p> <h3 id="3-set-goals">3. Set goals</h3> <p>It is easy to get sidetracked, so having a set list of things you want to accomplish or a reminder of why you have chosen to invest your resources and time to be there can be key. When you are are starting to wear down on the morning of day three and need to remind yourself why you came, a list of goals can help you get out of bed 😃</p> <div class="newsletter-cta-a panel panel-default panel-newsletter-cta"> <div class="panel-body newsletter-cta"> <div class="panel-header"> <?xml version="1.0" encoding="UTF-8"?> <svg width="56px" height="52px" viewBox="0 0 56 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs></defs> <g id="Desktop" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="blog-newsletter-cta-graphic-v2" transform="translate(-1070.000000, -383.000000)" fill="#FFFFFF"> <g id="gitlab-newsletter-cta-b" transform="translate(948.000000, 363.000000)"> <g id="Page-1" transform="translate(122.000000, 20.000000)"> <path d="M53.1397841,30.8022957 L34.558125,44.3561117 L51.1622841,22.9844307 L53.4156477,29.9385534 C53.5192159,30.2590074 53.4081705,30.6062589 53.1397841,30.8022957 Z M2.86117045,30.8027742 C2.59198864,30.6062589 2.48094318,30.2590074 2.58419318,29.9395104 L4.83819318,22.9833141 L21.4412386,44.3634491 L2.86117045,30.8027742 Z M11.2584659,3.11293374 L16.410625,19.0155227 L6.12523864,19.0155227 L11.2584659,3.11293374 Z M36.0973295,21.5676699 L28.0054886,46.5780748 L19.9136477,21.5676699 L36.0973295,21.5676699 Z M44.7420114,3.11277423 L49.8844659,19.0155227 L39.5995568,19.0155227 L44.7420114,3.11277423 Z M31.4494886,44.2040994 L33.126625,39.0203693 L38.7700568,21.578038 L49.0266477,21.578038 L32.9091477,42.3254 L31.4494886,44.2040994 Z M17.2337614,21.578038 L24.5527386,44.1996331 L6.98544318,21.578038 L17.2337614,21.578038 Z M55.8366932,29.1508969 L52.8941477,20.069719 C52.8793523,19.9864552 52.8535795,19.904946 52.8220795,19.8248724 L46.9193295,1.57207485 C46.5984432,0.615657669 45.7433295,-4.78527557e-05 44.7385114,-4.78527557e-05 L44.725625,-4.78527557e-05 C43.7206477,0.00521595093 42.8707841,0.62730184 42.5600795,1.58547362 L36.9236477,19.0155227 L19.0866932,19.0155227 L13.4396023,1.58483558 C13.1295341,0.62746135 12.2796705,0.00537546013 11.2746932,-4.78527557e-05 C10.2687614,-0.00563067484 9.40314773,0.611669939 9.07589773,1.58611166 L3.17648864,19.8628356 C3.17092045,19.8781485 3.16344318,19.8923448 3.15851136,19.9076577 L0.163147727,29.151854 C-0.280556818,30.5249092 0.201329545,32.0172773 1.36269318,32.8658663 L27.2447159,51.755584 C27.4696705,51.919719 27.7320114,51.9999521 27.9932386,51.9999521 C28.2622614,51.9999521 28.5292159,51.9133387 28.7525795,51.746492 C28.753375,51.745854 28.7543295,51.745535 28.755125,51.7448969 L54.6377841,32.8655472 C55.7988295,32.0172773 56.2807159,30.5249092 55.8366932,29.1508969 Z" id="Fill-1"></path> </g> </g> </g> </g> </svg> <div id="above-cta-form"> <div class="newsletter-preamble"> New blog posts directly to your inbox </div> <div class="newsletter-sub-preamble"> Sign up for our bi-monthly newsletter </div> </div> <div id="confirm-cta-form" style="display: none;"> <div class="newsletter-preamble"> Thanks, you’re <br /> signed up! </div> <div class="newsletter-sub-preamble"> GitLab is coming to your inbox </div> <img class="success-image" src="/images/emojis/newsletter-signup-success.png" /> </div> </div> <div class="newsletter-form"> <form class="notdefined" id="mktoForm_1546"> <script src="//app-ab13.marketo.com/js/forms2/js/forms2.min.js"></script> <script type="text/javascript"> MktoForms2.loadForm("//app-ab13.marketo.com", "194-VVC-221", 1546, function(form) { form.onSuccess(function(values, followUpUrl) { form.getFormElem().hide(); document.getElementById('above-cta-form').style.display = 'none'; document.getElementById('confirm-cta-form').style.display = 'block'; dataLayer.push({event: 'mktoLead',mktoFormId: form.getId()}); return false; }); function getgacid() { try { var tracker = ga.getAll()[0]; return tracker.get('clientId'); } catch (e) { return 'n/a'; } } form.vals({ 'gacid': getgacid() }); }); </script> </form> </div> </div> </div> <h3 id="4-take-care-of-yourself">4. Take care of yourself</h3> <p>This is a simple tip that can make all the difference during networking and negotiations. It is a long week and to make the most of it you do need to practice some self-care. Hydrate regularly, eat meals at regular hours, and stick to your exercise routine. Bring your most comfortable shoes instead of your best looking ones. You will thank yourself when you are walking the strip for the 30th time. Actually, bring two pairs of comfortable shoes. Having the option to switch it up if one pair is rubbing you the wrong way can turn a frustrating experience into a non-issue.</p> <h3 id="5-pack-your-go-bag-the-night-before">5. Pack your go-bag the night before</h3> <p>Bring a full stock of business cards and external power banks. The days are long and networking strong. Make sure to charge all your devices overnight and don't forget anything you may need for a full day away from your hotel.</p> <h3 id="6-be-open-to-learning-and-new-experiences">6. Be open to learning and new experiences</h3> <p>This takes us back to the underlying question of why we gather at conferences such as re:Invent. Simply put, to learn from thought leaders and our peers. You are there to connect, share best practices, and expand your point of view. Hopefully, you'll leave with some new approaches, more solutions, and more questions to explore when you get home. Plan on taking notes of your interactions and the connections you make. At GitLab, we create issues for all actionable takeaways from the event. This is a great way for us to make sure the info doesn't get lost and gets disseminated to the rest of the team.</p> <h2 id="come-join-gitlab-at-aws-2018">Come join GitLab at AWS 2018</h2> <p>GitLab will be on site in Las Vegas with pleny of demos and tutorials you won't want to miss.</p> <h3 id="sign-up-to-book-a-time-with-gitlab">Sign up to book a time with GitLab</h3> <p>re:Invent can be an extrodinarily busy event with more people to meet and things to see than you'll have time for. To ensure you get time to talk with the GitLab experts on site, <a href="/events/aws-reinvent/">book some time in advance</a> to make sure you get a scheduled slot you can count on.</p> <h3 id="stop-by-booth-2608-on-the-expo-floor-in-the-venetian">Stop by booth 2608 on the expo floor in The Venetian</h3> <p>The team will be staffing our booth during all expo hours. We'll have some unique swag to hand out along with demos and experts to answer your questions.</p> <h3 id="come-see-our-ceo-show-off-gitlab--eks">Come see our CEO show off GitLab + EKS</h3> <p>On Tuesday, Nov. 27 at 12:10 p.m. in the Pilvi Theater, <a href="https://www.linkedin.com/in/sijbrandij/">Sid</a> and <a href="https://www.linkedin.com/in/pritianka/">Priyanka</a> will be showing how to <a href="https://www.portal.reinvent.awsevents.com/connect/search.ww#loadSearch-searchPhrase=%22GitLab%22&amp;searchType=session&amp;tc=0&amp;sortBy=abbreviationSort&amp;p=">reinvent your pipelines with GitLab, Kubernetes, and Amazon EKS</a> along with a live demo.</p> <h3 id="demo-set-up-your-pipelines-in-five-minutes">Demo: Set up your pipelines in five minutes</h3> <p>Join <a href="https://www.linkedin.com/in/jshlmbrt/">Joshua</a> at the GitLab booth (2608) on Wednesday, Nov. 28 at 1 p.m. for a live demo of GitLab <a href="/product/auto-devops/">Auto DevOps</a>.</p> <h3 id="gitlab-ci-101">GitLab CI 101</h3> <p>Join <a href="https://www.linkedin.com/in/reb33/">Reb</a> at the GitLab booth (2608) on Tuesday, Nov. 27 at 2 p.m. for a tutorial on getting up and going with <a href="/product/continuous-integration/">GitLab continuous integration</a>.</p> <p>See you there!</p> <img src='https://about.gitlab.com/images/events/IMG_4756.jpeg' class='webfeedsFeaturedVisual' style='display: none;' />