<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>GitLab</title>
  <id>https://about.gitlab.com/blog/</id>
  <link href="https://about.gitlab.com/blog/"/>
  <updated>2016-10-17T03:35:00+00:00</updated>
  <author>
    <name>Blog Author</name>
  </author>
  <entry>
    <title>Why We Chose GitLab CI for our CI/CD Solution</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/17/gitlab-ci-oohlala/"/>
    <id>https://about.gitlab.com/2016/10/17/gitlab-ci-oohlala/</id>
    <published>2016-10-17T03:35:00+00:00</published>
    <updated>2016-10-17T03:35:00+00:00</updated>
    <author>
      <name>James Dang</name>
    </author>
    <content type="html">

&lt;p&gt;At &lt;a href=&quot;https:&#x2F;&#x2F;oohlalamobile.com&#x2F;&quot;&gt;OOHLALA Mobile&lt;&#x2F;a&gt;, our testing and deployment of code is done 
through Fabric, essentially a set of Python scripts (called “fabfiles”) that 
are executed on various servers. Recently, we started looking for a &lt;a href=&quot;&#x2F;2016&#x2F;08&#x2F;05&#x2F;continuous-integration-delivery-and-deployment-with-gitlab&#x2F;&quot;&gt;CI&#x2F;CD solution&lt;&#x2F;a&gt; 
that help manage our fabfile deployment system, which is growing 
more complex each day. In the end, we went with &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;gitlab-ci&#x2F;&quot;&gt;GitLab CI&lt;&#x2F;a&gt;, and here’s what we 
found through our experience.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;simple-to-use&quot;&gt;Simple to Use&lt;&#x2F;h2&gt;
&lt;p&gt;Since the bulk of the work is done in Fabric, the CI&#x2F;CD solution can be very simple, 
as it only needs to be able to execute fabfiles. GitLab CI’s shell executor is perfect 
for this. The complexities of other solutions (e.g. Jenkins) are unnecessary for us.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;fast&quot;&gt;Fast&lt;&#x2F;h2&gt;

&lt;p&gt;We will be using the system for all code deploys, including development and QA environments, 
so the CI&#x2F;CD system needs to be fast, to keep up with the fast-paced changes required for 
development. Primarily Docker based solutions, such as CircleCI, took considerably longer 
to run due to the dependency set up stage. With GitLab CI, we can set up our own runner 
with all dependencies pre-installed, and &lt;strong&gt;jobs are executed really fast&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;We would like to have a solution that can be installed on arbitrary hardware, specifically 
our own dedicated macOS and Windows machines that perform our mobile app CI&#x2F;CD for iOS and 
Android respectively. The reasoning is that in the future we may use the same CI&#x2F;CD service 
for our mobile teams as well. GitLab CI can do this for free, as we can simply install GitLab 
runners on our dedicated machines. Other CI solutions (e.g. Travis CI, CircleCI etc.) 
do offer mobile CI&#x2F;CD solutions, but will not meet our requirements since we need our in-house 
build and deploy scripts on dedicated hardware to effectively manage the hundreds of mobile apps that we maintain.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;economical-and-secure&quot;&gt;Economical and Secure&lt;&#x2F;h2&gt;

&lt;p&gt;The solution should be relatively economical, especially since our development team
is still relatively small. Most CI solutions are relatively expensive (e.g. Travis 
CI starts at $129&#x2F;month minimum), and the ones that have free tiers are very 
limited in capacity (e.g. CircleCI and Shippable both allow only 1 concurrent 
job on their free tier). GitLab CI only costs as much as the machine used to run it, 
which is very flexible (a $40&#x2F;month DO instance can run many concurrent jobs without issue).&lt;&#x2F;p&gt;

&lt;p&gt;Ideally (i.e. not a hard requirement), we would like to keep all SSH private keys 
within our own infrastructure for better security. With most other CI solutions, 
we would have to hand them the private keys for all the servers we need to deploy to. 
With GitLab CI, the keys are stored on the CI runner instance, which is hosted by us 
and fully under our control.&lt;&#x2F;p&gt;

&lt;p&gt;In the end, we actually chose to host our code on &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;&quot;&gt;GitLab.com&lt;&#x2F;a&gt;, because of the seamless 
integration with GitLab CI. There weren’t any major differences in features 
(at least ones that we wanted) in the repository hosting solutions we looked at 
(GitHub, Gogs, and GitLab mostly), and the CI solution made the choice easier.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;about-the-author&quot;&gt;About the author&lt;&#x2F;h2&gt;

&lt;p&gt;James Dang is the co-founder the CTO of &lt;a href=&quot;https:&#x2F;&#x2F;oohlalamobile.com&#x2F;&quot;&gt;OOHLALA Mobile&lt;&#x2F;a&gt;, an education technology 
company building the mobile platform for universities and colleges to connect and 
engage with their students.&lt;&#x2F;p&gt;

&lt;!-- identifiers --&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;gitlab-ci-oohlala-cover.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12.7 released</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/17/gitlab-8-dot-12-dot-7-released/"/>
    <id>https://about.gitlab.com/2016/10/17/gitlab-8-dot-12-dot-7-released/</id>
    <published>2016-10-17T00:00:00+00:00</published>
    <updated>2016-10-17T00:00:00+00:00</updated>
    <author>
      <name>Rémy Coutable</name>
    </author>
    <content type="html">
&lt;p&gt;Today we are releasing version 8.12.7 for GitLab Community Edition (CE) and
Enterprise Edition (EE).&lt;&#x2F;p&gt;

&lt;p&gt;This version resolves a number of regressions and bugs in the &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&quot;&gt;recent 8.12
release&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Please read on for more details.&lt;&#x2F;p&gt;



&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Prevent running &lt;code&gt;GfmAutocomplete&lt;&#x2F;code&gt; setup for each diff note. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6569&quot;&gt;!6569&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix long commit messages overflow viewport in file tree. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6573&quot;&gt;!6573&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Use &lt;code&gt;gitlab-markup&lt;&#x2F;code&gt; gem instead of &lt;code&gt;github-markup&lt;&#x2F;code&gt; to fix &lt;code&gt;.rst&lt;&#x2F;code&gt; file rendering. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6659&quot;&gt;!6659&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Prevent flash alert text from being obscured when container is fluid. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6694&quot;&gt;!6694&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix due date being displayed as &lt;code&gt;NaN&lt;&#x2F;code&gt; in Safari. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6797&quot;&gt;!6797&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix JS bug with select2 because of missing &lt;code&gt;data-field&lt;&#x2F;code&gt; attribute in select box. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6812&quot;&gt;!6812&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Do not alter &lt;code&gt;force_remove_source_branch&lt;&#x2F;code&gt; options on MergeRequest unless specified. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6817&quot;&gt;!6817&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix GFM autocomplete setup being called several times. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6840&quot;&gt;!6840&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Handle case where deployment ref no longer exists. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6855&quot;&gt;!6855&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;Omnibus GitLab:&lt;&#x2F;strong&gt; Use forked &lt;code&gt;gitlab-markup&lt;&#x2F;code&gt; gem. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;omnibus-gitlab&#x2F;merge_requests&#x2F;1015&quot;&gt;!1015&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This version has no migrations and should not require any downtime.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;To update, check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;Interested in GitLab Enterprise Edition? Check out the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;features exclusive to
EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself? Subscribers receive upgrade and installation
services.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab reinstates list of servers that have malware</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/15/gitlab-reinstates-list-of-servers-that-have-malware/"/>
    <id>https://about.gitlab.com/2016/10/15/gitlab-reinstates-list-of-servers-that-have-malware/</id>
    <published>2016-10-15T00:00:00+00:00</published>
    <updated>2016-10-15T00:00:00+00:00</updated>
    <author>
      <name>Sid Sijbrandij</name>
    </author>
    <content type="html">
&lt;p&gt;Willem de Groot published a list of web stores that contain malware.
He first hosted this list on GitHub but it was deleted.
Then he hosted it on GitLab where it was also deleted.
The reason we gave him for the deletion was &quot;GitLab views the exposure of the vulnerable systems as egregious and will not abide it.&quot;.
Willem wrote about his experience in a &lt;a href=&quot;https:&#x2F;&#x2F;gwillem.gitlab.io&#x2F;2016&#x2F;10&#x2F;14&#x2F;github-censored-research-data&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;At GitLab we strongly believe in responsible disclosure, for examples of this see &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;disclosure&#x2F;&quot;&gt;our policy&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;hackerone.com&#x2F;disclosure-guidelines&quot;&gt;Hacker One&#x27;s guidelines&lt;&#x2F;a&gt;.
So publishing a list of servers that are vulnerable or hacked without contacting the owner first and giving them time to remedy the situation is not OK.&lt;&#x2F;p&gt;

&lt;p&gt;But in this case the victim of the vulnerability is not only the owner but also the users of the web store.
The owners of web stores have a responsibility to their users.
And it is in the users interest to have the list published so owners &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;gwillem&#x2F;status&#x2F;786908740838682624&quot;&gt;fix their stores&lt;&#x2F;a&gt;.
We currently think that the interest of the user weights heavier.
Therefore we reinstated &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gwillem&#x2F;public-snippets&#x2F;snippets&#x2F;28813&quot;&gt;the snippet&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Willem just &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;gwillem&#x2F;status&#x2F;787379789011251200&quot;&gt;tweeted about my phone call to him to apologise&lt;&#x2F;a&gt;. Thanks for that!&lt;&#x2F;p&gt;

&lt;p&gt;We applaud Willem&#x27;s effort to protect users from malware.
We&#x27;ll keep listening and will do our part to make the internet a more secure place for everyone.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>30 Fundraising Tips from the CEO</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/14/fundraising-tips-ceo/"/>
    <id>https://about.gitlab.com/2016/10/14/fundraising-tips-ceo/</id>
    <published>2016-10-14T00:00:00+00:00</published>
    <updated>2016-10-14T00:00:00+00:00</updated>
    <author>
      <name>Sid Sijbrandij</name>
    </author>
    <content type="html">

&lt;p&gt;How do you raise money for your startup in a climate where it’s increasingly hard to obtain funding? 
Securing support from the right investors is not only a vital source of money, but is also an 
opportunity to benefit from their skills, experience, and connections.&lt;&#x2F;p&gt;

&lt;p&gt;This post outlines the strategies that have worked for us. Of course, every organization is unique, 
so these are the tips that have been most beneficial in our own quest to raise funding at GitLab.&lt;&#x2F;p&gt;



&lt;h2 id=&quot;when-is-the-best-time-to-raise-money&quot;&gt;When Is the Best Time to Raise Money?&lt;&#x2F;h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Eight quarters of run rate is the best time to raise money for your organization.&lt;&#x2F;strong&gt; This gives you sufficient time to spend as long as you need to plan the deck and meet investors without feeling like time is running out. It means that if you are offered a deal you don’t like, you don’t have to accept it. You have the time to step back from fundraising, get back to stockflow neutral, and not be forced to lay off any employees.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Make sure that you have a lot of runway.&lt;&#x2F;strong&gt; This is indicative of how conservative you are financially, so investors will be looking closely at this. You can achieve this by fundraising early. Another strategy is to make sure that your net worth compared to your revenue is low. Don’t make your burn equal to half of your revenue, make it equal to 20% or even 10%.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;h2 id=&quot;organize-your-time-efficiently&quot;&gt;Organize Your Time Efficiently&lt;&#x2F;h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Surround yourself with a great team.&lt;&#x2F;strong&gt; Fundraising requires hours of work from everyone in the group. Make sure you can work effectively with everyone on the team and that you will enjoy spending significant amounts of time together!&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Set aside around three or four months for the fundraising process.&lt;&#x2F;strong&gt; When we went through our first round of fundraising at GitLab, we spent one month on the design phase, one month on the road, two weeks wrapping up with the people that had term sheets, and then one month closing. But, this is extremely fast—most organizations take longer to raise funding. The time consuming element for most organizations is meeting with investors. &lt;a href=&quot;http:&#x2F;&#x2F;a16z.com&#x2F;2015&#x2F;02&#x2F;27&#x2F;16-common-questions-about-fundraising&#x2F;&quot;&gt;Some companies can raise funding in just a few weeks, for others it takes months&lt;&#x2F;a&gt;. It’s always best to be prepared for the process to take longer than you expect.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;As a CEO, you should be prepared to focus solely on fundraising.&lt;&#x2F;strong&gt; There will not be enough time to run the company as well as raise funding. Hire an assistant to prioritize emails and direct your attention towards urgent messages.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Try to minimize the amount of time you spend traveling to investors.&lt;&#x2F;strong&gt; This stage can easily last anywhere between three to six months. At GitLab, we decided to spend only four weeks as we wanted to focus on progressing the company, rather than fundraising. This approach to travel is much better for the team’s quality of life because fundraising is very intense. There are a lot of ups and downs, where you can be ecstatic one day because you are connecting with one investor, and frustrated the next day because you have been turned down by another investor. Confining the traveling stage to a relatively short period of time worked best for us.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;h2 id=&quot;put-together-the-perfect-slidedeck&quot;&gt;Put Together the Perfect Slidedeck&lt;&#x2F;h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Make the deck the sole focus of one team member.&lt;&#x2F;strong&gt; Although content is vital, good design is equally important. Spend some time with designers, whether they work for your company, or whether they are employed by an organization like SketchDeck. The right design will help to clarify and strengthen your message.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Spend time working on the pricing chart.&lt;&#x2F;strong&gt; Your pricing chart should be sufficiently detailed and include the relevant information, but the investors have to be able to understand it!&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Over the course of fundraising, your deck will evolve.&lt;&#x2F;strong&gt; Although you have spent weeks perfecting it and believe it to be a finished product by the time you go out onto the road, you will find that there’s more to add. As you speak to investors, issues are raised that you may not have addressed in sufficient detail, or questions are asked that you might not have considered. It will be necessary to add more slides as you learn more about investors’ interests, expectations, and concerns.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;If you have an unusual business model, discuss it in your slidedeck.&lt;&#x2F;strong&gt; Investors will ask lots of questions about it, so you want to give them as much information as possible, and ensure they see the advantages of your choice. When we were fundraising, some investors were concerned about our decision to be a remote-only company. Mid-way through fundraising, we wrote a presentation to provide them with information on why being a remote-only organization works so well for us.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Don’t include too many slides in the deck.&lt;&#x2F;strong&gt; There is no hard and fast rule, but &lt;a href=&quot;http:&#x2F;&#x2F;slidebean.com&#x2F;blog&#x2F;startups&#x2F;pitch-deck-presentation-complete-guide&#x2F;&quot;&gt;between 10 and 20 slides&lt;&#x2F;a&gt; will enable you to strike a balance between informing the investors and sharing an overwhelming level of detail. The pitch is your chance to tell investors everything they need to know about your organization, your product and customers, financials, and projections. It’s an opportunity to get them excited and allay any fears they may have.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;If you get useful feedback, use it.&lt;&#x2F;strong&gt; It doesn’t matter how late in the process you receive it, take the time to incorporate feedback into your fundraising strategy if you feel that it could make a real difference to the funding you secure.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Be prepared for the deck to change from series A to series B.&lt;&#x2F;strong&gt; In series B, there will need to be a lot of data relating to sales figures, as the investors will be very interested in this. You will need to share details of the funnel, and where the sales team is meeting its targets. In general there should be less strategy, as you should have consolidated your place in the market by the time you reach this stage.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;h2 id=&quot;preparing-for-meetings-and-follow-ups&quot;&gt;Preparing for Meetings and Follow Ups&lt;&#x2F;h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Turn on the TV!&lt;&#x2F;strong&gt; If you really want to know what life is like when you’re in the fundraising bubble, watch Silicon Valley! (But when it comes to the show’s portrayal of investors, just remember that it is a TV show and certain aspects may be amplified!)&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Check the time.&lt;&#x2F;strong&gt; When you are preparing for meetings and follow-ups, make sure you are always on time.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Dress code is not important.&lt;&#x2F;strong&gt; What matters is what you say during the meetings and follow-ups.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Don’t go hungry!&lt;&#x2F;strong&gt; Eat something before going into a meeting, especially if you know you don’t perform well when you’re hungry!&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Have some backup slides for your deck.&lt;&#x2F;strong&gt; We found it useful to create a slide that listed questions we did not yet have an answer for; after the meeting we could find the answer, then follow-up with the investor and add it to the slidedeck for future presentations if we felt it would be helpful. When you’re preparing your slidedeck, there will always be content that you’re not certain will be required, but could still be informative for the investor; these slides should go in the backup set. If and when you need the information, you can switch to that slide easily.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It can be hard to keep the meeting on track.&lt;&#x2F;strong&gt; The investors will start asking questions based on the content in your slidedeck. It is possible to skip ahead to the relevant slide, then go back to resume the presentation, but this can get confusing and you will lose the flow of the presentation. It is best to acknowledge the investor’s question and let them know that this will be dealt with later in the slidedeck.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;There should be someone on your team who is not presenting.&lt;&#x2F;strong&gt; Their role is to write down the questions, so you can follow up after the meeting. If possible or relevant, add this information to your presentation.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;Keep a list of when you last spoke to each investor.&lt;&#x2F;strong&gt; If they are silent for a few days, then it’s important to follow up to find out why. If they don’t respond to your first message, ask if they are still interested in potentially investing in your organization. There are generally three reasons behind this:
    &lt;ul&gt;
      &lt;li&gt;They are not interested&lt;&#x2F;li&gt;
      &lt;li&gt;They may have been too busy to reply, but are still interested&lt;&#x2F;li&gt;
      &lt;li&gt;They are keeping their options open. Whatever the reason, you need to find out so you know who you should focus your attention on.&lt;&#x2F;li&gt;
    &lt;&#x2F;ul&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;Ask permission from the venture capitalists to record one of your pitches.&lt;&#x2F;strong&gt; There is a lot of mystery surrounding what goes on in a pitch—this is your chance to help others.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;h2 id=&quot;familiarize-yourself-with-financial-terminology&quot;&gt;Familiarize Yourself with Financial Terminology&lt;&#x2F;h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Prorata rights.&lt;&#x2F;strong&gt; Prorata rights can be one of the most contentious aspects of investment, so make sure you understand it. Any lead investor will want a certain percentage of your company. For the A round it’s usually around 20%, for B round it’s 15%, and for C round it’s 10%. They need that much of the company to make it worth their time and effort investing.&lt;&#x2F;p&gt;

    &lt;p&gt;Prorata investment rights allow investors the right to keep their percentage of their share of the company the same when you start the next fundraising round. During the second (or third) fundraising round, all existing shareholders get diluted; these investors can invest more money so they maintain the same percentage. This is what it means when you hear about investors ‘doing their prorata’. Super prorata is what happens if the investors want to increase their ownership percentage in the next round. If you would like to learn more on prorata, &lt;a href=&quot;https:&#x2F;&#x2F;bothsidesofthetable.com&#x2F;what-all-entrepreneurs-need-to-know-about-prorata-rights-e5883fd21f80#.66fpdinl3&quot;&gt;this post&lt;&#x2F;a&gt; is helpful.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Super prorata rights are not founder-friendly.&lt;&#x2F;strong&gt; Firstly, what do we mean by ‘founder-friendly’? These are terms that do not give too much leverage to the investors. Instead, the CEO will be given the freedom to make decisions. If an investor asks to use super prorata rights, they want to increase their percentage ownership in the next funding round. This is not founder-friendly because it might make it difficult for you to secure funding from new investors, as there isn’t a significant percentage of the company left for them to invest in.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;h2 id=&quot;how-to-find-the-right-investor-and--or-boardmember&quot;&gt;How to Find the Right Investor and &#x2F; or Boardmember&lt;&#x2F;h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Ask yourself whether a potential investor is the right fit for your board of directors.&lt;&#x2F;strong&gt; If someone is prepared to invest in your organization, that is extremely flattering, but it important to consider whether they believe in your vision and whether they can help you meet the challenges ahead.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;It isn’t easy to raise money in an economic climate where less investors are keen to invest.&lt;&#x2F;strong&gt; But, whatever the climate, you will be valued on more than 10 or 20 eighths of your sales - this is to your advantage, as it means that you can give clearly demonstrate your company’s success and potential. Market forces (such as what similar deals are being priced at, the competitors in your sector and how your company is different) will affect the valuation of your company. You can’t change this, but you can control how you present your own organization to investors.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Show investors that you have disrupted the market.&lt;&#x2F;strong&gt; Being the market leader is good, and certainly what you must aspire to be, but as a startup it is not always possible. You want to demonstrate to investors that you are innovative, you have the drive to make your organization the best, that you have a better strategy, and, ultimately, the best product.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;The right investor is more important for your company than the valuation.&lt;&#x2F;strong&gt; That’s not to say the valuation of your organization isn’t important, but it’s important that you don’t miss out on the best possible investor who great connections and a wealth of knowledge, for a relatively small sum of money.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Know what you’re looking for in a board member.&lt;&#x2F;strong&gt; As well as acquiring some funding for your company, another reason for fundraising is to find a great board member. You have to be able to work well with your board member because you will be working together for many years to come. They have to be intelligent, ethical, hardworking, and well connected in the industry. Many times, a board member will be used to close somebody who is considering joining the company. Their strategic outlook and understanding of your industry will give you confidence in their abilities to be a real asset to your organization.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Know the difference between what round A and round B investors are looking for.&lt;&#x2F;strong&gt; Round A investors will be looking at your prototype, traction, and management team. Their terms will be more founder-friendly, as they know that subsequent terms will be increasingly investor-friendly. In the B round of fundraising, investors will be scrutinizing your metrics, sales, and conversion rate will be scrutinized.&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;p&gt;A good series B investor will reach out to the existing board members. They will also want to know whether the A round investors will take advantage of their prorata. The terms of investment for the B round will not only have to be acceptable to the company, but also the investors, so make sure your current investors are happy with these.&lt;&#x2F;p&gt;

&lt;p&gt;If you have any insights on fundraising, share them with the GitLab community. Start the discussion below.&lt;&#x2F;p&gt;

&lt;!-- identifiers --&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;fundraising-tips-ceo.jpg&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12.6 released</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/12/gitlab-8-dot-12-dot-6-released/"/>
    <id>https://about.gitlab.com/2016/10/12/gitlab-8-dot-12-dot-6-released/</id>
    <published>2016-10-12T02:35:00+00:00</published>
    <updated>2016-10-12T02:35:00+00:00</updated>
    <author>
      <name>Stan Hu</name>
    </author>
    <content type="html">
&lt;p&gt;Today we are releasing version 8.12.6 for GitLab Community Edition (CE) and
Enterprise Edition (EE).&lt;&#x2F;p&gt;

&lt;p&gt;Version 8.12.6 contains a fix for the mail_room package not being included in
the package. This update is only necessary for users who use mail_room for
Reply by email.&lt;&#x2F;p&gt;

&lt;p&gt;Please read on for more details.&lt;&#x2F;p&gt;



&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Update mail_room to 0.8.1 in Gemfile.lock (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6814&quot;&gt;!6814&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This version has no migrations and should not require any downtime.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;To update, check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;Interested in GitLab Enterprise Edition? Check out the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;features exclusive to
EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself? Subscribers receive upgrade and installation
services.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>Automated Debian Package Build with GitLab CI</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/12/automated-debian-package-build-with-gitlab-ci/"/>
    <id>https://about.gitlab.com/2016/10/12/automated-debian-package-build-with-gitlab-ci/</id>
    <published>2016-10-12T00:00:00+00:00</published>
    <updated>2016-10-12T00:00:00+00:00</updated>
    <author>
      <name>Adfinis SyGroup</name>
    </author>
    <content type="html">
&lt;p class=&quot;note&quot;&gt;This post is a customer story by &lt;a href=&quot;https:&#x2F;&#x2F;www.adfinis-sygroup.ch&#x2F;&quot;&gt;Adfinis SyGroup&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;We&#x27;ve decided to use &lt;a href=&quot;&#x2F;gitlab-ci&#x2F;&quot;&gt;GitLab CI&lt;&#x2F;a&gt; to build Debian packages
automatically. GitLab CI allows users to execute tasks based
on definable events, such as Git tags.&lt;&#x2F;p&gt;

&lt;p&gt;We&#x27;ve created a generic Docker container which contains the base
package-building tools and is used by GitLab to build the package.
Updates can be easily installed in the build environment, since the
Docker container can be simply replaced with a new one.&lt;&#x2F;p&gt;

&lt;p&gt;The following shows the automated packaging of the &lt;a href=&quot;https:&#x2F;&#x2F;goaccess.io&#x2F;&quot;&gt;GoAccess&lt;&#x2F;a&gt; log
analysis tool. Many tools are not packaged in their latest version
and thus have to be created manually.&lt;&#x2F;p&gt;



&lt;h2 id=&quot;prepare-the-debian-package&quot;&gt;Prepare the Debian Package&lt;&#x2F;h2&gt;

&lt;p&gt;First, the files which control the building of the Debian package
are created. In the case of GoAccess, these are:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight shell&quot;&gt;&lt;code&gt;debian&#x2F;changelog &lt;span class=&quot;c&quot;&gt;# Changes to the package and software  &lt;&#x2F;span&gt;
debian&#x2F;compat    &lt;span class=&quot;c&quot;&gt;# Compatibility level for debhelper  &lt;&#x2F;span&gt;
debian&#x2F;control   &lt;span class=&quot;c&quot;&gt;# Package-specific information such as dependencies and description  &lt;&#x2F;span&gt;
debian&#x2F;rules     &lt;span class=&quot;c&quot;&gt;# Instructions for debhelper &lt;&#x2F;span&gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Debian themselves already offer &lt;a href=&quot;https:&#x2F;&#x2F;www.debian.org&#x2F;doc&#x2F;manuals&#x2F;maint-guide&#x2F;index.en.html&quot;&gt;detailed documentations&lt;&#x2F;a&gt;
to simplify the introduction to packaging.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;prepare-the-docker-container&quot;&gt;Prepare the Docker Container&lt;&#x2F;h2&gt;

&lt;p&gt;On a host system, a container must be prepared in which a package can
then be built. Start by creating a &lt;code&gt;Dockerfile&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight docker&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;FROM&lt;&#x2F;span&gt;&lt;span class=&quot;s&quot;&gt; debian:wheezy  &lt;&#x2F;span&gt;
&lt;span class=&quot;k&quot;&gt;ADD&lt;&#x2F;span&gt;&lt;span class=&quot;s&quot;&gt;  setup.sh &#x2F;opt&#x2F;  &lt;&#x2F;span&gt;
&lt;span class=&quot;k&quot;&gt;RUN  &lt;&#x2F;span&gt;&#x2F;bin&#x2F;bash &#x2F;opt&#x2F;setup.sh  
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;In the &lt;code&gt;Dockerfile&lt;&#x2F;code&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;docs.docker.com&#x2F;engine&#x2F;tutorials&#x2F;dockerimages&#x2F;#&#x2F;building-an-image-from-a-dockerfile&quot;&gt;official documentation&lt;&#x2F;a&gt;) is indicated
which base image is to be used. In this case, it&#x27;s Debian Wheezy. After
that, the &lt;code&gt;setup.sh&lt;&#x2F;code&gt; script is copied into the &lt;code&gt;&#x2F;opt&#x2F;&lt;&#x2F;code&gt; directory of the container. 
In &lt;code&gt;setup.sh&lt;&#x2F;code&gt;, the mirror which is going to be used is configured, and
the most basic dependencies are installed, which can be used in any build:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;#!&#x2F;bin&#x2F;sh&lt;&#x2F;span&gt;

&lt;span class=&quot;c&quot;&gt;# change to our own mirror&lt;&#x2F;span&gt;
&lt;span class=&quot;nb&quot;&gt;echo&lt;&#x2F;span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;deb http:&#x2F;&#x2F;pkg.adfinis-sygroup.ch&#x2F;debian&#x2F; wheezy main non-free contrib&quot;&lt;&#x2F;span&gt; &amp;gt; &#x2F;etc&#x2F;apt&#x2F;sources.list  
&lt;span class=&quot;nb&quot;&gt;echo&lt;&#x2F;span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;deb http:&#x2F;&#x2F;security.debian.org&#x2F; wheezy&#x2F;updates main&quot;&lt;&#x2F;span&gt; &amp;gt;&amp;gt; &#x2F;etc&#x2F;apt&#x2F;sources.list  
&lt;span class=&quot;nb&quot;&gt;echo&lt;&#x2F;span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;deb http:&#x2F;&#x2F;pkg.adfinis-sygroup.ch&#x2F;debian&#x2F; wheezy-updates main contrib non-free&quot;&lt;&#x2F;span&gt; &amp;gt;&amp;gt; &#x2F;etc&#x2F;apt&#x2F;sources.list

&lt;span class=&quot;c&quot;&gt;# requirements&lt;&#x2F;span&gt;
apt-get update  
apt-get -y install git dh-make build-essential autoconf autotools-dev  
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;As soon as these files have been prepared, we can build the Docker container:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight shell&quot;&gt;&lt;code&gt;docker build -t generic-package-build-runner:v1 
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The container is now created and ready for use.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;configure-gitlab-ci&quot;&gt;Configure GitLab CI&lt;&#x2F;h2&gt;

&lt;p&gt;Now, the prepared Docker container has to be &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ee&#x2F;ci&#x2F;docker&#x2F;using_docker_build.html&quot;&gt;registered for the
current project&lt;&#x2F;a&gt;, in which a package is to be built:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight shell&quot;&gt;&lt;code&gt;gitlab-ci-multi-runner register &lt;span class=&quot;se&quot;&gt;\&lt;&#x2F;span&gt;
--non-interactive &lt;span class=&quot;se&quot;&gt;\&lt;&#x2F;span&gt;
--url &lt;span class=&quot;s2&quot;&gt;&quot;&lt;&#x2F;span&gt;&lt;span class=&quot;k&quot;&gt;$(&lt;&#x2F;span&gt;GITLAB_URL&lt;span class=&quot;k&quot;&gt;)&lt;&#x2F;span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;&#x2F;span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;&#x2F;span&gt;
--registration-token &lt;span class=&quot;s2&quot;&gt;&quot;&lt;&#x2F;span&gt;&lt;span class=&quot;k&quot;&gt;$(&lt;&#x2F;span&gt;CI_TOKEN&lt;span class=&quot;k&quot;&gt;)&lt;&#x2F;span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;&#x2F;span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;&#x2F;span&gt;
--description &lt;span class=&quot;s2&quot;&gt;&quot;Generic debian wheezy package build runner&quot;&lt;&#x2F;span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;&#x2F;span&gt;
--executor &lt;span class=&quot;s2&quot;&gt;&quot;docker&quot;&lt;&#x2F;span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;&#x2F;span&gt;
--docker-image &lt;span class=&quot;s2&quot;&gt;&quot;generic-package-build-runner:v1&quot;&lt;&#x2F;span&gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The GitLab URL and the CI token can be found in the GitLab
project on the page &lt;strong&gt;Settings&lt;&#x2F;strong&gt; &amp;gt; &lt;strong&gt;Runners&lt;&#x2F;strong&gt;. Each project has its own CI token.&lt;&#x2F;p&gt;

&lt;p&gt;In order for GitLab CI to know which commands in the container
should be executed, &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ee&#x2F;ci&#x2F;quick_start&#x2F;README.html&quot;&gt;the file &lt;code&gt;.gitlab-ci.yml&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; is created within the repository.&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;# Is performed before the scripts in the stages step&lt;&#x2F;span&gt;
&lt;span class=&quot;na&quot;&gt;before_script&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;  
  &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;source &#x2F;etc&#x2F;profile&lt;&#x2F;span&gt;

&lt;span class=&quot;c1&quot;&gt;# Defines stages which are to be executed&lt;&#x2F;span&gt;
&lt;span class=&quot;na&quot;&gt;stages&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;  
  &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;build&lt;&#x2F;span&gt;

&lt;span class=&quot;c1&quot;&gt;# Stage &quot;build&quot;&lt;&#x2F;span&gt;
&lt;span class=&quot;na&quot;&gt;run-build&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;  
  &lt;span class=&quot;na&quot;&gt;stage&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;build&lt;&#x2F;span&gt;
  &lt;span class=&quot;na&quot;&gt;script&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;apt-get install -y libncurses5-dev libglib2.0-dev libgeoip-dev libtokyocabinet-dev zlib1g-dev libncursesw5-dev libbz2-dev&lt;&#x2F;span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;autoreconf -fvi&lt;&#x2F;span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;cp COPYING debian&#x2F;copyright&lt;&#x2F;span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;dpkg-buildpackage -us -uc&lt;&#x2F;span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;mkdir build&lt;&#x2F;span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;mv ..&#x2F;goaccess*.deb build&#x2F;&lt;&#x2F;span&gt;

  &lt;span class=&quot;c1&quot;&gt;# This stage is only executed for new tags&lt;&#x2F;span&gt;
  &lt;span class=&quot;na&quot;&gt;only&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;
    &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;tags&lt;&#x2F;span&gt;

  &lt;span class=&quot;c1&quot;&gt;# The files which are to be made available in GitLab&lt;&#x2F;span&gt;
  &lt;span class=&quot;na&quot;&gt;artifacts&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;
    &lt;span class=&quot;na&quot;&gt;paths&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;
      &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;build&#x2F;*&lt;&#x2F;span&gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The most important part of this file is the &lt;code&gt;run-build&lt;&#x2F;code&gt; stage.
This part defines which actions are executed, when they are
executed and the locations of the files created in the build.&lt;&#x2F;p&gt;

&lt;p&gt;Since a generic Docker container was created, the necessary
dependencies have to be installed in the first step.&lt;&#x2F;p&gt;

&lt;p&gt;After that, the building procedure is prepared with &lt;code&gt;autoreconf&lt;&#x2F;code&gt;.
Among other things, this results in the creation of the Makefile,
which is indispensable for the build. Since we&#x27;re using the copyright
from the package, we&#x27;ll copy it to &lt;code&gt;debian&#x2F;&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;The building process is then started with the command &lt;code&gt;dpkg-buildpackage&lt;&#x2F;code&gt;.
The package is compiled and the Debian package is created. These packages
are then moved to the &lt;code&gt;build&lt;&#x2F;code&gt; directory that was created and uploaded to GitLab.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;workflow&quot;&gt;Workflow&lt;&#x2F;h2&gt;

&lt;p&gt;As soon as we have a new release, a Git tag is created. This Git tag
starts a new build in GitLab, which builds the package using the latest version.
The package that is created will then be made available in the web
interface of GitLab, where it can be downloaded.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;automated-debian-package-build-with-gitlab-ci&#x2F;gitlab-ci-build.png&quot; alt=&quot;Build Debian Package with GitLab CI&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;outlook&quot;&gt;Outlook&lt;&#x2F;h2&gt;

&lt;p&gt;Ideally, the packages or artifacts built should be processed automatically,
for example by uploading them to a mirror. In our case, we&#x27;re using a
bot which, when instructed by a &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;web_hooks&#x2F;web_hooks.html&quot;&gt;GitLab Webhook&lt;&#x2F;a&gt;, downloads the artifacts
onto a target server, adds them to a Aptly repository and publishes the
repository, such that the process can be &lt;a href=&quot;&#x2F;2016&#x2F;08&#x2F;05&#x2F;continuous-integration-delivery-and-deployment-with-gitlab&#x2F;#continuous-deployment&quot; title=&quot;Continuous Deployment with GitLab&quot;&gt;fully automated from package
build to publication&lt;&#x2F;a&gt;. The final result can be freely viewed on our Aptly mirror.&lt;&#x2F;p&gt;

&lt;hr &#x2F;&gt;

&lt;p class=&quot;note&quot;&gt;This post was &lt;a href=&quot;https:&#x2F;&#x2F;blog.adfinis-sygroup.ch&#x2F;en&#x2F;automated-debian-packagebuild-gitlabci&#x2F;&quot;&gt;originally published&lt;&#x2F;a&gt; by &lt;a href=&quot;https:&#x2F;&#x2F;www.adfinis-sygroup.ch&#x2F;&quot;&gt;Adfinis SyGroup&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;!-- identifiers --&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;automated-debian-package-build-with-gitlab-ci&#x2F;adfinis-sygroup-cover.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12.5, 8.11.9, and 8.10.12 released</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/11/gitlab-8-dot-12-dot-5-released/"/>
    <id>https://about.gitlab.com/2016/10/11/gitlab-8-dot-12-dot-5-released/</id>
    <published>2016-10-11T18:20:00+00:00</published>
    <updated>2016-10-11T18:20:00+00:00</updated>
    <author>
      <name>Rémy Coutable</name>
    </author>
    <content type="html">
&lt;p&gt;Today we are releasing versions 8.12.5, 8.11.9, and 8.10.12 for GitLab Community Edition (CE) and
Enterprise Edition (EE).&lt;&#x2F;p&gt;

&lt;p&gt;Version 8.12.5 contains two security fixes for GitLab, plus fixes for minor
regressions. Versions 8.11.9 and 8.10.12 only contain the security fixes.&lt;&#x2F;p&gt;

&lt;p&gt;Please read on for more details.&lt;&#x2F;p&gt;



&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Switch from request to env in ::API::Helpers. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6615&quot;&gt;!6615&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Update the mail_room gem to 0.8.1 to fix a race condition with the mailbox watching thread. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6714&quot;&gt;!6714&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Improve issue load time performance by avoiding ORDER BY in find_by call. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6724&quot;&gt;!6724&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Add a new gitlab:users:clear_all_authentication_tokens task. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6745&quot;&gt;!6745&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Don&#x27;t send Private-Token (API authentication) headers to Sentry&lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Share projects via the API only with groups the authenticated user can access&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;Omnibus GitLab&lt;&#x2F;strong&gt; Update the storage directory helper to check permissions for symlink targets. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;omnibus-gitlab&#x2F;merge_requests&#x2F;1028&quot;&gt;!1028&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;private-tokens-sent-to-sentry&quot;&gt;Private tokens sent to Sentry&lt;&#x2F;h2&gt;

&lt;p&gt;&lt;em&gt;This vulnerability only affects GitLab instances that use Sentry exception
tracking. This feature is off by default in GitLab.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;

&lt;p&gt;As a GitLab administrator you have the option to integrate your GitLab instance
with Sentry, an external exception tracking system. When this feature is
enabled, you can see details of each error (&#x27;500 page&#x27;) that occurs on your
GitLab server. These details include HTTP headers of the request that
experienced the exception. Prior to GitLab 8.12.5, when an exception occured in
the GitLab API (a URL starting with &lt;code&gt;&#x2F;api&#x2F;v3&#x2F;&lt;&#x2F;code&gt;), GitLab would inadvertently send
the &lt;code&gt;Private-Token&lt;&#x2F;code&gt; header used to authenticate with the GitLab API in the error
report to Sentry. This meant that when you viewed a Sentry error report for an
exception that occurred during a GitLab API request you could see the Private
token of the user that performed the request. This also meant that if there is a
data breach at your Sentry server, GitLab user private tokens may be exposed.&lt;&#x2F;p&gt;

&lt;p&gt;The holder of the private token for a GitLab user can impersonate that user in
GitLab via the API. That includes writing comments, adding SSH keys, creating
repositories. The holder of the private token of a GitLab administrator is able
to do much more, for instance creating new user accounts. See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;22537&quot;&gt;#22537&lt;&#x2F;a&gt; for more
information.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;mitigation&quot;&gt;Mitigation&lt;&#x2F;h3&gt;

&lt;p&gt;Even though private tokens are not sent to Sentry starting with GitLab 8.12.5,
the tokens are valid forever as long as they are in the GitLab database.&lt;&#x2F;p&gt;

&lt;p&gt;That&#x27;s why we &lt;strong&gt;strongly&lt;&#x2F;strong&gt; advise you to invalidate all your users&#x27; Private
tokens with &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;raketasks&#x2F;user_management.html#clear-authentication-tokens-for-all-users.-important-data-loss&quot;&gt;the following Rake task&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight plaintext&quot;&gt;&lt;code&gt;# omnibus-gitlab
sudo gitlab-rake gitlab:users:clear_all_authentication_tokens

# installation from source
bundle exec rake gitlab:users:clear_all_authentication_tokens RAILS_ENV=production
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;New tokens will automatically be issued once users sign-in.&lt;&#x2F;p&gt;

&lt;p&gt;As a less secure alternative (or as an additional precaution), you can also
&lt;a href=&quot;https:&#x2F;&#x2F;docs.sentry.io&#x2F;learn&#x2F;sensitive-data&#x2F;#removing-data&quot;&gt;clear the exception history for your GitLab instance in Sentry&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Note: At any time, individual GitLab users can reset their private token on
their &lt;code&gt;Account&lt;&#x2F;code&gt; page (&lt;code&gt;&#x2F;profile&#x2F;account&lt;&#x2F;code&gt;).&lt;&#x2F;p&gt;

&lt;h2 id=&quot;information-disclosure-via-the-share-project-with-group-api-endpoint&quot;&gt;Information disclosure via the &quot;Share project with group&quot; API endpoint&lt;&#x2F;h2&gt;

&lt;p&gt;The new implementation of the &quot;Share project with group&quot; API endpoint allowed
projects to be shared with groups that the current user wasn&#x27;t allowed to see,
leaking the group name and the name of its owners. See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;23004&quot;&gt;#23004&lt;&#x2F;a&gt; for more
information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This version has no migrations and should not require any downtime.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;To update, check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;Interested in GitLab Enterprise Edition? Check out the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;features exclusive to
EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself? Subscribers receive upgrade and installation
services.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>To Wrap or Not to Wrap: One of Life's Greatest Questions</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/11/wrapping-text/"/>
    <id>https://about.gitlab.com/2016/10/11/wrapping-text/</id>
    <published>2016-10-11T00:00:00+00:00</published>
    <updated>2016-10-11T00:00:00+00:00</updated>
    <author>
      <name>Marcia Ramos</name>
    </author>
    <content type="html">
&lt;p&gt;Whether and how we should be making line breaks is currently a
controversial topic amongst the GitLab folks;
it&#x27;s an issue of style as well as ease of use.
In this post, we’re presenting the two current views held, and 
giving you the opportunity to speak your mind
(in the comments or &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;gitlab&quot;&gt;on Twitter&lt;&#x2F;a&gt;) about how we should
handle this in our &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;development&#x2F;doc_styleguide.html#text&quot;&gt;style guide&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;The current policy laid out in the style guide is that you should:&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;Split up long lines, this makes it much easier to review and edit.
Only double line breaks are shown as a full line break in
&lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;markdown.html&quot;&gt;GitLab markdown&lt;&#x2F;a&gt;. 80-100 characters is a good line length.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;



&lt;p&gt;The understanding is that you if you create a line break after
80 characters, the text becomes easier to review.&lt;&#x2F;p&gt;

&lt;p&gt;However, quite a few people feel that this isn&#x27;t helpful
and creates stylistic and&#x2F;or visual messiness when,
for example, edits are made which cause the line breaks to go amok.
Basically, there are two options if your line exceeds 80 characters:&lt;&#x2F;p&gt;

&lt;ol&gt;
  &lt;li&gt;Wrap the text as the author of the code.&lt;&#x2F;li&gt;
  &lt;li&gt;Rely on the reviewer to wrap the text with their
local editor, and insert a new line for every sentence.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;h2 id=&quot;dont-wrap-it&quot;&gt;DON&#x27;T WRAP IT.&lt;&#x2F;h2&gt;

&lt;p&gt;Some of us at GitLab are in the don’t-wrap camp, positioning
that it’s better to rely on the reviewer. If you modify text,
you don’t want to have to realign the rest of the text when
edits are made because the line breaks are uneven. Rewrapping
requires a feature that some editors (including GitLab)
don’t have. Some people might have it but not know they
have it, or not know where to find it in their editor.
If you do rewrap with your editor, the diff might get messy
and make it hard to work out what&#x27;s visually changed.
Plus, that 80- to 100-character limit is more of a guess
than an exact limit. It can be different depending on your
editor&#x2F;screen size.&lt;&#x2F;p&gt;

&lt;p&gt;This is how a paragraph looks like after a few reviews when
you choose to wrap the text. It&#x27;s odd, as it has long lines
and short lines distributed unevenly:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;wrapped-text-after-reviews.png&quot; alt=&quot;wrapped text - uneven view&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;However, when you don&#x27;t wrap it, a collaborator needs to
point to the portion of the text before explaining the change,
which can be very time consuming. For example, in the paragraph
below, the collaborator needs to identify the link first, and
repeat the section with the proposed changes:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;unwrapped-text-worse-to-review.png&quot; alt=&quot;change link - non-wrapped text&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;do-wrap-it&quot;&gt;DO WRAP IT.&lt;&#x2F;h2&gt;

&lt;p&gt;The company&#x27;s official position is of the &lt;em&gt;do-wrap variety&lt;&#x2F;em&gt;,
with the main reason that when people view and edit the text,
they can do so without scrolling horizontally &lt;em&gt;ad infinitum&lt;&#x2F;em&gt;,
which drives some people nuts. As a result, the comment 
box sometimes extends beyond the edge of the viewport, making
it difficult to use any of the buttons on the right-hand side.&lt;&#x2F;p&gt;

&lt;p&gt;To compare to the last example, the following screenshot
of a text already wrapped, it&#x27;s easy to comment inline directly,
without having to identify what you&#x27;re talking about first
and commenting afterwards.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;wrapped-text-easier-to-review.png&quot; alt=&quot;change link - wrapped text&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;comparing-similar-views&quot;&gt;Comparing Similar Views&lt;&#x2F;h2&gt;

&lt;p&gt;When editing a file in the GitLab UI, this is how wrapped text
looks like:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;gitlab-ui-wrapped-text.png&quot; alt=&quot;wrapped text, GitLab UI view&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;And this is how an unwrapped code looks like:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;gitlab-ui-non-wrapped-text.png&quot; alt=&quot;non-wrapped text, GitLab UI view&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Even when you&#x27;re reviewing locally, check how a wrapped
text looks like on Sublime:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;wrapped-text-easier-to-read.png&quot; alt=&quot;Sublime text view - wrapped&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;And how it looks when unwrapped:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;unwrapped-text-scroll-horizontally.png&quot; alt=&quot;Sublime text view - non-wrapped&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Clearly, wrapped text can be considered better for both reading
and reviewing through inline comments. But it can also be annoying
when writing and editing the file.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;going-forward&quot;&gt;Going forward&lt;&#x2F;h2&gt;

&lt;p&gt;Particularly, while I&#x27;m writing, I don&#x27;t wrap the text. I&#x27;ll
do that just when it&#x27;s ready for review. This way, I save myself
some time when writing and editing, but I still leave it wrapped
for facilitating the reviewers to add inline comments in my
merge request.&lt;&#x2F;p&gt;

&lt;p&gt;But yes, there are pros and cons for both cases, of course. The
question is, what can we do to make it less painful for everyone?&lt;&#x2F;p&gt;

&lt;p&gt;One of the possible actions we could take going forward is to set
a max-width both on the comment box container, and on the editor,
so that it remains in a usable state, regardless of code length.&lt;&#x2F;p&gt;

&lt;p&gt;Other ideas? We’re open to them. Let us know what you think, and
how you do that with your team.&lt;&#x2F;p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Note&lt;&#x2F;strong&gt;: Currently for blog post technical articles we follow the
Style Guide, but the &lt;a href=&quot;&#x2F;handbook&#x2F;marketing&#x2F;blog&#x2F;#styles-guidelines&quot;&gt;Blog Post Style Guide&lt;&#x2F;a&gt; is
an override or addendum to that. The consensus has been that wrapped
text facilitates review. We have a lot of guest writers and many
reviewers, and this seems to be their preference, so we’ve tried
to honor that.&lt;&#x2F;p&gt;

&lt;!-- identifiers --&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;wrapping-text&#x2F;wrap-not-to-wrap-text.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12 Release Webcast: Cycle Analytics &amp; Global Code Search</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/07/8-dot-12-cycle-analytics-webcast/"/>
    <id>https://about.gitlab.com/2016/10/07/8-dot-12-cycle-analytics-webcast/</id>
    <published>2016-10-07T00:00:00+00:00</published>
    <updated>2016-10-07T00:00:00+00:00</updated>
    <author>
      <name>Erica Lindberg</name>
    </author>
    <content type="html">
&lt;p&gt;In the &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;13&#x2F;gitlab-master-plan&#x2F;&quot;&gt;GitLab Master Plan&lt;&#x2F;a&gt;, we promised to ship the entire development lifecycle before the end of the year. &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;&quot;&gt;GitLab 8.12&lt;&#x2F;a&gt; is 
exciting because it brings us one step closer to realizing our &lt;a href=&quot;&#x2F;direction&#x2F;#vision&quot;&gt;vision&lt;&#x2F;a&gt; to be an integrated set of tools for the software development lifecycle.&lt;&#x2F;p&gt;

&lt;p&gt;In this release, we launched the first iteration of &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;21&#x2F;cycle-analytics-feature-highlight&#x2F;&quot;&gt;Cycle Analytics&lt;&#x2F;a&gt;. Cycle Analytics gives you 
feedback on your projects, measuring how long it takes your team to go from idea to production. Cycle Analytics helps you
reduce cycle time, an important competitive advantage in today&#x27;s development landscape. In fact, reducing cycle time to increase effectiveness is the
very first principle of &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;14&#x2F;gitlab-live-event-recap&#x2F;#convdev&quot;&gt;Conversational Development&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;We also launched &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;#global-code-search-ee&quot;&gt;Global Code Search&lt;&#x2F;a&gt; for GitLab Enterprise Edition (EE). If you&#x27;re running Elasticsearch on your 
GitLab EE instance, you can now search through all the code on your server.&lt;&#x2F;p&gt;

&lt;p&gt;In this webcast, we walk through our vision, and demo some of the key features from &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;&quot;&gt;GitLab 8.12&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;



&lt;h2 id=&quot;in-this-webcast&quot;&gt;In this webcast:&lt;&#x2F;h2&gt;

&lt;ul&gt;
  &lt;li&gt;Introduction to GitLab and our vision&lt;&#x2F;li&gt;
  &lt;li&gt;Why Cycle Analytics?&lt;&#x2F;li&gt;
  &lt;li&gt;Introduction to Cycle Analytics&lt;&#x2F;li&gt;
  &lt;li&gt;8.12 Feature Release Demo&lt;&#x2F;li&gt;
  &lt;li&gt;What’s next&lt;&#x2F;li&gt;
  &lt;li&gt;Q&amp;amp;A&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;recording--slides&quot;&gt;Recording &amp;amp; Slides&lt;&#x2F;h2&gt;

&lt;figure class=&quot;video_container&quot;&gt;
  &lt;iframe src=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;embed&#x2F;EhiZdlkcNLI&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;&#x2F;iframe&gt;
&lt;&#x2F;figure&gt;

&lt;p&gt;&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;presentation&#x2F;d&#x2F;1ghixhx1EyCtDbBgW5ejZkkamNhlKAenGfCRS_9DDKBE&#x2F;embed?start=false&amp;amp;loop=false&amp;amp;delayms=3000&quot; frameborder=&quot;0&quot; width=&quot;960&quot; height=&quot;569&quot; allowfullscreen=&quot;true&quot; mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot;&gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;figure&gt;

&lt;h2 id=&quot;key-takeaways&quot;&gt;Key Takeaways&lt;&#x2F;h2&gt;

&lt;p&gt;In case you don&#x27;t have time to watch the full video, here are the highlights.&lt;&#x2F;p&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;GitLab Built-in Integrations&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;GitLab has an integrated set of tools that supports the entire lifecycle of software development, including repository management, version control, 
code review, advanced issue tracker, Issue Board, built-in &lt;a href=&quot;&#x2F;2016&#x2F;08&#x2F;05&#x2F;continuous-integration-delivery-and-deployment-with-gitlab&#x2F;&quot;&gt;Continuous Integration, Continuous Deployment, Continuous Delivery&lt;&#x2F;a&gt;, and wiki, and now, &lt;strong&gt;Cycle Analytics&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-success&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Faster From Idea to Production&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Our goal is to help teams go &lt;a href=&quot;&#x2F;2016&#x2F;08&#x2F;05&#x2F;continuous-integration-delivery-and-deployment-with-gitlab&#x2F;#from-idea-to-production-with-gitlab&quot;&gt;faster from idea to production&lt;&#x2F;a&gt; by building a completely integrated toolset in a single UI.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-purple&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;10-Step lifecycle&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;We will ship this complete lifecycle in 2016.&lt;&#x2F;p&gt;

    &lt;ol&gt;
      &lt;li&gt;Chat conversation → &lt;a href=&quot;&#x2F;2015&#x2F;08&#x2F;18&#x2F;gitlab-loves-mattermost&#x2F;&quot;&gt;Mattermost ships with GitLab&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
      &lt;li&gt;Issue creation → &lt;a href=&quot;&#x2F;2016&#x2F;03&#x2F;03&#x2F;start-with-an-issue&#x2F;&quot;&gt;GitLab Issues&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
      &lt;li&gt;Planning board → &lt;a href=&quot;&#x2F;solutions&#x2F;issueboard&#x2F;&quot;&gt;GitLab Issue Board&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
      &lt;li&gt;IDE → &lt;a href=&quot;&#x2F;2016&#x2F;07&#x2F;26&#x2F;koding-and-gitlab-integrated&#x2F;&quot;&gt;Koding + GitLab&lt;&#x2F;a&gt; Integration&lt;&#x2F;li&gt;
      &lt;li&gt;Version control → GitLab Repositories&lt;&#x2F;li&gt;
      &lt;li&gt;Continuous Integration → &lt;a href=&quot;&#x2F;gitlab-ci&#x2F;&quot;&gt;GitLab CI&lt;&#x2F;a&gt; and &lt;a href=&quot;&#x2F;2016&#x2F;05&#x2F;23&#x2F;gitlab-container-registry&#x2F;&quot;&gt;GitLab Container Registry&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
      &lt;li&gt;Code review → GitLab Merge Requests&lt;&#x2F;li&gt;
      &lt;li&gt;Continuous Delivery → &lt;a href=&quot;&#x2F;2016&#x2F;08&#x2F;05&#x2F;continuous-integration-delivery-and-deployment-with-gitlab&#x2F;&quot;&gt;GitLab Deploy&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
      &lt;li&gt;Chatops → We&#x27;re planning to ship &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;omnibus-gitlab&#x2F;issues&#x2F;1412&quot;&gt;Cog&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
      &lt;li&gt;Feedback → &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;21&#x2F;cycle-analytics-feature-highlight&#x2F;&quot;&gt;Cycle Analytics&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
    &lt;&#x2F;ol&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-info&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;New features&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;21&#x2F;cycle-analytics-feature-highlight&#x2F;&quot;&gt;Cycle Analytics&lt;&#x2F;a&gt;, &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;#global-code-search-ee&quot;&gt;Global Code Search&lt;&#x2F;a&gt;, and &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;#merge-request-versions&quot;&gt;Merge Request Versions&lt;&#x2F;a&gt; are awesome features and you should really check them out.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;h2 id=&quot;amplify-your-code-at-gitlab-world-tour&quot;&gt;Amplify Your Code at GitLab World Tour&lt;&#x2F;h2&gt;

&lt;p&gt;Join us for the &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;28&#x2F;world-tour-amplify-your-code&#x2F;&quot;&gt;GitLab World Tour&lt;&#x2F;a&gt; to learn more about our product vision, talk about changes in software development, and meet
other GitLabbers in your area! We&#x27;ll be in three cities:&lt;&#x2F;p&gt;

&lt;p&gt;Register for an event near you:&lt;&#x2F;p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gitlabworldtourlondon.splashthat.com&#x2F;&quot;&gt;London&lt;&#x2F;a&gt; - October 19&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gitlabworldtournyc.splashthat.com&#x2F;&quot;&gt;NYC&lt;&#x2F;a&gt; - October 26&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gitlabworldtouramsterdam.splashthat.com&#x2F;&quot;&gt;Amsterdam&lt;&#x2F;a&gt; - November 3&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;!-- identifiers --&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;8-12-highlights.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12.4 released</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/05/gitlab-8-dot-12-dot-4-released/"/>
    <id>https://about.gitlab.com/2016/10/05/gitlab-8-dot-12-dot-4-released/</id>
    <published>2016-10-05T00:00:00+00:00</published>
    <updated>2016-10-05T00:00:00+00:00</updated>
    <author>
      <name>Rubén Dávila</name>
    </author>
    <content type="html">
&lt;p&gt;Today we are releasing version 8.12.4 for GitLab Community Edition (CE) and
Enterprise Edition (EE).&lt;&#x2F;p&gt;

&lt;p&gt;This version contains two security fixes for GitLab, plus fixes for minor regressions and bugs in the &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&quot;&gt;recent 8.12
release&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Please read on for more details.&lt;&#x2F;p&gt;



&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Indexer works with smaller batches of repositories to not exceed NOFILE limit. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;774&quot;&gt;!774&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix tooltip text when Copy to cliboard is clicked. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6294&quot;&gt;!6294&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix build sidebar build details padding. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6506&quot;&gt;!6506&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Changed compare dropdowns to dropdowns with search input. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6550&quot;&gt;!6550&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix race condition on LFS Token. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6592&quot;&gt;!6592&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix bug when trying to cache closed issues from external issue trackers. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6619&quot;&gt;!6619&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix lint-doc error. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6623&quot;&gt;!6623&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Skip wiki creation when GitHub project has wiki enabled. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6665&quot;&gt;!6665&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix issues importing services via Import&#x2F;Export. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6667&quot;&gt;!6667&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Restrict failed login attempts for users with 2FA. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6668&quot;&gt;!6668&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix project deletion when feature visibility is set to private. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6688&quot;&gt;!6688&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;further-improvements-for-security-of-importexport-projects&quot;&gt;Further improvements for security of Import&#x2F;Export projects.&lt;&#x2F;h2&gt;

&lt;p&gt;Prevented access to foreign entities using the Import&#x2F;Export functionality. This could be achieved altering the foreign key IDs in the project JSON of an exported GitLab project file. The foreign keys are now always being ignored at the time of importing a project. See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;20821&quot;&gt;#20821&lt;&#x2F;a&gt; for more information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;exported-projects-were-world-readable-in-the-filesystem&quot;&gt;Exported projects were world-readable in the filesystem&lt;&#x2F;h2&gt;

&lt;p&gt;Exported projects are no longer world-readable in the GitLab server filesystem as permissions are set to owner access only. See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;22757&quot;&gt;#22757&lt;&#x2F;a&gt; for more information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This version has no migrations and should not require any downtime.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;To update, check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;Interested in GitLab Enterprise Edition? Check out the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;features exclusive to
EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself? Subscribers receive upgrade and installation
services.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>YC application office hours</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/03/yc-application-office-hours/"/>
    <id>https://about.gitlab.com/2016/10/03/yc-application-office-hours/</id>
    <published>2016-10-03T00:00:00+00:00</published>
    <updated>2016-10-03T00:00:00+00:00</updated>
    <author>
      <name>Kirsten Abma</name>
    </author>
    <content type="html">
&lt;p&gt;Following our blog last Friday about &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2016&#x2F;09&#x2F;30&#x2F;what-founders-ask-founders-about-getting-into-yc&#x2F;&quot;&gt;What Founders Ask Founders About Getting Into Y Combinator&lt;&#x2F;a&gt; we got a lot of responses through &lt;a href=&quot;news.ycombinator.com&quot;&gt;HackerNews&lt;&#x2F;a&gt; to have Sid, our CEO, read through people&#x27;s application.
Sid figured talking in person would be way easier than leaving comments and we set up some office hours during the weekend and today to help founders applying with making their application as clear as possible.&lt;&#x2F;p&gt;



&lt;p&gt;With the blog post &lt;a href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12615723&quot;&gt;trending on the HackerNews homepage&lt;&#x2F;a&gt; last Friday, a lot of applicants wanted to know if their answers were clear and concise; like Sid advised in our blog.
During the office hours and a few one-on-one meetings Sid read and talked through the application form answers and asked questions and discussed what applicants could improve.&lt;&#x2F;p&gt;

&lt;p&gt;Below are a few examples of the calls Sid did over the weekend. We posted the recordings on our YouTube account
so everyone can have a look at the advice mentioned and hopefully adjust the last few details before &lt;a href=&quot;https:&#x2F;&#x2F;www.ycombinator.com&#x2F;apply&#x2F;&quot;&gt;sending in their own application&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;a href=&quot;http:&#x2F;&#x2F;www.colorsearch.io&#x2F;&quot;&gt;Color Search&lt;&#x2F;a&gt; lets you choose a paint color online, and &lt;a href=&quot;https:&#x2F;&#x2F;www.truejob.com&#x2F;&quot;&gt;TrueJob&lt;&#x2F;a&gt; is a data-driven startup job search. Both company founders have graciously agreed to let us post their call with Sid to help out other founders.&lt;&#x2F;p&gt;

&lt;p&gt;Below is the video of Sid&#x27;s call with Color Search and they also shared &lt;a href=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;document&#x2F;d&#x2F;10isDYk_fxBmyuRM2IiGdNOkX3TjWGfgx69_abkEaUbc&#x2F;edit&quot;&gt;their application form&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;figure class=&quot;video_container&quot;&gt;
  &lt;iframe src=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;embed&#x2F;XSEtlBHDe7Q&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;figure&gt;

&lt;p&gt;&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;TrueJob also sent us a link for &lt;a href=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;document&#x2F;d&#x2F;13t48qEpSDS23_U_TYXwtr_fuUTV_C0O3bKzP3IAQE3M&#x2F;edit&quot;&gt;their application form&lt;&#x2F;a&gt; and their call with Sid is below.&lt;&#x2F;p&gt;

&lt;figure class=&quot;video_container&quot;&gt;
  &lt;iframe src=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;embed&#x2F;rVEf4_WZDbM&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;figure&gt;

&lt;p&gt;&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Good luck to both company founders.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitPitch Slideshow Presentations for Developers on GitLab</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/10/03/gitpitch-slideshow-presentations-for-developers-on-gitlab/"/>
    <id>https://about.gitlab.com/2016/10/03/gitpitch-slideshow-presentations-for-developers-on-gitlab/</id>
    <published>2016-10-03T00:00:00+00:00</published>
    <updated>2016-10-03T00:00:00+00:00</updated>
    <author>
      <name>David Russell</name>
    </author>
    <content type="html">
&lt;p&gt;Today I would like to introduce &lt;a href=&quot;https:&#x2F;&#x2F;gitpitch.com&quot;&gt;GitPitch&lt;&#x2F;a&gt;, a slideshow presentation service for developers on &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&quot;&gt;GitLab&lt;&#x2F;a&gt;.
GitPitch supports building, sharing, and presenting online and offline slideshow presentations. Presentations powered entirely by Markdown and Git.&lt;&#x2F;p&gt;



&lt;p&gt;As developers and advocates, we often need to communicate with diverse audiences about our code.
We find ourselves needing to present everything from designs and best practices, to code snippets and complete frameworks.
Our audiences include colleagues, clients, customers, end-users, and sometimes meetups and conferences.&lt;&#x2F;p&gt;

&lt;p&gt;With GitPitch, we no longer need to turn to external toolsets like Keynote or Powerpoint to prepare for these kinds of presentations.
In fact, now the only tools we need are the tools we live in, our preferred code editor and a GitLab repo.
And with these tools we can quickly create compelling, responsive, online and offline slideshow presentations.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;gitpitch-slideshow-presentations-for-developers-on-gitlab&#x2F;slideshow-master.jpg&quot; alt=&quot;Slideshow-Master&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;how-gitpitch-works&quot;&gt;How GitPitch Works&lt;&#x2F;h2&gt;

&lt;p&gt;As GitLab users, we are already familiar with the convention of adding a &lt;strong&gt;README.md&lt;&#x2F;strong&gt; to our projects.
GitPitch introduces a new convention for GitLab users, called &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;As soon as we add a &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt; markdown file to the root directory of our GitLab.com project, GitPitch instantly creates an online slideshow presentation based on the content in that file.
That slideshow presentation is then automatically made available at its public URL:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight plaintext&quot;&gt;&lt;code&gt;https:&#x2F;&#x2F;gitpitch.com&#x2F;user&#x2F;project&#x2F;branch?grs=gitlab
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Here &lt;code&gt;user&lt;&#x2F;code&gt; and &lt;code&gt;project&lt;&#x2F;code&gt; matches our GitLab.com user and project names respectively and &lt;code&gt;branch&lt;&#x2F;code&gt; matches the repository branch where we commited our &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt; file.
Note, the &lt;code&gt;&#x2F;branch&lt;&#x2F;code&gt; can be omitted from the slideshow URL if we are referencing the &lt;code&gt;master&lt;&#x2F;code&gt; branch.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;gitpitch-in-60-seconds&quot;&gt;GitPitch In 60 Seconds&lt;&#x2F;h2&gt;

&lt;p&gt;To experience just how simple it is to create a GitPitch slideshow presentation follow along with this short tutorial.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;step-1-create-pitchmemd&quot;&gt;Step 1: Create &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt;&lt;&#x2F;h3&gt;

&lt;p&gt;Using the &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;help&#x2F;user&#x2F;project&#x2F;repository&#x2F;web_editor.md&quot;&gt;GitLab web editor&lt;&#x2F;a&gt;, or your preferred code editor, create a file called &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt; in the root directory of your repo, then add and save the following Markdown content:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight plaintext&quot;&gt;&lt;code&gt;# Flux

An application architecture for React

#HSLIDE

### Flux Design

- Dispatcher: Manages Data Flow
- Stores: Handle State &amp;amp; Logic
- Views: Render Data via React

#HSLIDE

![Flux Explained](https:&#x2F;&#x2F;facebook.github.io&#x2F;flux&#x2F;img&#x2F;flux-simple-f8-diagram-explained-1300w.png)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Before moving on to the next step it&#x27;s worthwhile to note the following:&lt;&#x2F;p&gt;

&lt;ol&gt;
  &lt;li&gt;The &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt; file name is case sensitive.&lt;&#x2F;li&gt;
  &lt;li&gt;The &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt; file content is &lt;a href=&quot;https:&#x2F;&#x2F;daringfireball.net&#x2F;projects&#x2F;markdown&#x2F;syntax&quot;&gt;standard Markdown&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
  &lt;li&gt;The &lt;code&gt;#HSLIDE&lt;&#x2F;code&gt; markdown fragment acts as a delimiter between slides.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;p&gt;Using &lt;code&gt;#HSLIDE&lt;&#x2F;code&gt; is another GitPitch convention, acting as a delimiter to denote the separation between content on different slides in your presentation.
You can use &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Custom-Slide-Delimiters&quot;&gt;custom delimiters&lt;&#x2F;a&gt; if you prefer.
For this example, when GitPitch processes the Markdown content it will result in a simple presentation with just three slides.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;step-2-commit-pitchmemd&quot;&gt;Step 2: Commit &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt;&lt;&#x2F;h3&gt;

&lt;p&gt;If you used the GitLab web editor in step 1 then go directly to step 3.
Otherwise, manually add this file to the root directory of your Git repo and push to GitLab:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight plaintext&quot;&gt;&lt;code&gt;git add PITCHME.md
git commit -m &quot;Added my first GitPitch slideshow content.&quot;
git push
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h3 id=&quot;step-3-done&quot;&gt;Step 3: Done!&lt;&#x2F;h3&gt;

&lt;p&gt;Your GitPitch slideshow presentation is now waiting for you to share or present at its public URL.
To see a live demonstration of this slideshow presentation &lt;a href=&quot;https:&#x2F;&#x2F;gitpitch.com&#x2F;gitpitch&#x2F;in-60-seconds?grs=gitlab&quot;&gt;click here&lt;&#x2F;a&gt;.
Your own presentation should look a lot like this:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;gitpitch-slideshow-presentations-for-developers-on-gitlab&#x2F;slideshow-in-60-seconds.jpg&quot; alt=&quot;Slideshow-In-60-Seconds&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Immediately you can &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Slideshow-Offline&quot;&gt;download&lt;&#x2F;a&gt; your slideshow for offline presentation, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Slideshow-Printing&quot;&gt;print&lt;&#x2F;a&gt; it as a PDF document, or &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Slideshow-Sharing&quot;&gt;share&lt;&#x2F;a&gt; it on social media.
But first, you might want to apply some personal touches using GitPitch customization, the topic we&#x27;ll look at next.&lt;&#x2F;p&gt;

&lt;p&gt;Note that beyond support for standard Markdown on presentation slides, GitPitch delivers a number of features tailored for developers, including support for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Code-Slides&quot;&gt;code blocks&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;GIST-Slides&quot;&gt;GitHub GIST&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Math-Notation-Slides&quot;&gt;math formulas&lt;&#x2F;a&gt; along with &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Image-Slides&quot;&gt;image&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Video-Slides&quot;&gt;video&lt;&#x2F;a&gt; support.
The full set of GitPitch features are documented on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&quot;&gt;GitPitch Wiki&lt;&#x2F;a&gt;.
To see a live slideshow demonstration of these features try out the GitPitch &lt;a href=&quot;https:&#x2F;&#x2F;gitpitch.com&#x2F;gitpitch&#x2F;kitchen-sink?grs=gitlab&quot;&gt;Kitchen Sink&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;gitpitch-customization&quot;&gt;GitPitch Customization&lt;&#x2F;h2&gt;

&lt;p&gt;As with any presentation, a GitPitch presentation not only needs to capture and render compelling content, it also needs to be able to reflect the style, image or brand of the associated project, product or organization.
To help us develop a strong visual identity for our slideshow presentations, GitPitch offers six distinct visual themes out-of-the-box.
See the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Theme-Setting&quot;&gt;GitPitch Themes&lt;&#x2F;a&gt; Wiki page to learn more.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;gitpitch-slideshow-presentations-for-developers-on-gitlab&#x2F;slideshow-night-theme.jpg&quot; alt=&quot;Slideshow-Night-Theme&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Building on these base themes we can further &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Slideshow-Settings&quot;&gt;customize the look and feel&lt;&#x2F;a&gt; of our slideshow presentations using background images, our own logo, and even custom CSS to bend the pixels to our needs.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;gitpitch-slideshow-presentations-for-developers-on-gitlab&#x2F;slideshow-custom-bg.jpg&quot; alt=&quot;Slideshow-Custom-Bg&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;gitpitch-and-gitlab-workflow&quot;&gt;GitPitch and GitLab Workflow&lt;&#x2F;h2&gt;

&lt;p&gt;The &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt; markdown for our slideshow presentation becomes just another file in our GitLab project repo.
Therefore all of the benefits we currently enjoy when working with GitLab Workflow apply equally when developing our slideshow presentations.&lt;&#x2F;p&gt;

&lt;p&gt;Given GitPitch can render a slideshow presentation for any branch within a public GitLab repo, using feature branches also offers an excellent way to customize a presentation&#x27;s content for different target audiences. For example:&lt;&#x2F;p&gt;

&lt;ol&gt;
  &lt;li&gt;Branch to tailor code snippets for a Scala rather than Java audience.&lt;&#x2F;li&gt;
  &lt;li&gt;Branch to adjust the presentation focus for a dev-ops audience.&lt;&#x2F;li&gt;
  &lt;li&gt;Branch to emphasize participation of a partner or customer for a specific conference.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;p&gt;Some common, in-person workflows are also greatly improved when working with GitPitch presentations.
For example, how often have you heard this simple request following a successful presentation:&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Can you please send me your slides?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;p&gt;If our presentation lives outside of our GitLab project it is very easy to misplace or forget to follow up.
With GitPitch, a simple answer is always at hand:&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The slideshow presentation is part of the project on GitLab, just click on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Slideshow-GitHub-Badge&quot;&gt;GitPitch Badge&lt;&#x2F;a&gt; found in the project &lt;strong&gt;README.md&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;going-faster-from-idea-to-presentation&quot;&gt;Going Faster from Idea to Presentation&lt;&#x2F;h2&gt;

&lt;p&gt;GitLab champions new, modern development tools and practices that foster collaboration and information sharing to help developers go &lt;a href=&quot;&#x2F;2016&#x2F;08&#x2F;22&#x2F;announcing-the-gitlab-issue-board&#x2F;#gitlab-from-idea-to-production&quot;&gt;faster from idea to production&lt;&#x2F;a&gt;.
GitPitch embraces and extends this approach by helping individuals, teams and organizations to promote, pitch and present their ideas and code to ever wider audiences.&lt;&#x2F;p&gt;

&lt;p&gt;Note, by default the GitPitch service on &lt;a href=&quot;https:&#x2F;&#x2F;gitpitch.com&quot;&gt;GitPitch.com&lt;&#x2F;a&gt; integrates with &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&quot;&gt;GitLab.com&lt;&#x2F;a&gt;.
If you are interested in using GitPitch with your own GitLab server see &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gitpitch&#x2F;gitpitch&#x2F;wiki&#x2F;Git-Repo-Services&quot;&gt;this note&lt;&#x2F;a&gt; on the GitPitch Wiki.&lt;&#x2F;p&gt;

&lt;p&gt;Like GitLab, GitPitch itself is an &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitpitch&#x2F;gitpitch&quot;&gt;open source project&lt;&#x2F;a&gt;, built on some wonderful open source software.
See the &lt;a href=&quot;https:&#x2F;&#x2F;gitpitch.com&#x2F;#gitpitch-about&quot;&gt;GitPitch website&lt;&#x2F;a&gt; for details. And remember, getting started couldn&#x27;t be easier.
GitPitch requires no sign-up. And no configuration. Just add &lt;strong&gt;PITCHME.md&lt;&#x2F;strong&gt; ;)&lt;&#x2F;p&gt;

&lt;h2 id=&quot;about-guest-author&quot;&gt;About Guest Author&lt;&#x2F;h2&gt;

&lt;p&gt;David Russell is a freelance developer, consultant for-hire, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;onetapbeyond&quot;&gt;open source contributor&lt;&#x2F;a&gt; and the creator of &lt;a href=&quot;https:&#x2F;&#x2F;gitpitch.com&quot;&gt;GitPitch&lt;&#x2F;a&gt;.
You can reach David on Twitter &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;gitpitch&quot;&gt;@gitpitch&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;gitpitch-slideshow-presentations-for-developers-on-gitlab&#x2F;cover.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>What Founders Ask Founders About Getting Into Y Combinator</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/30/what-founders-ask-founders-about-getting-into-yc/"/>
    <id>https://about.gitlab.com/2016/09/30/what-founders-ask-founders-about-getting-into-yc/</id>
    <published>2016-09-30T10:31:00+00:00</published>
    <updated>2016-09-30T10:31:00+00:00</updated>
    <author>
      <name>Kirsten Abma</name>
    </author>
    <content type="html">
&lt;p&gt;Update: There is a followup post about the &lt;a href=&quot;&#x2F;2016&#x2F;10&#x2F;03&#x2F;yc-application-office-hours&#x2F;&quot;&gt;YC application office hours&lt;&#x2F;a&gt; as a response to this post.&lt;&#x2F;p&gt;

&lt;p&gt;You’ve got a great idea and feel you can make a great company and product out of it. You’ve worked on a basic version and feel like you’re ready to enter the big leagues.&lt;&#x2F;p&gt;

&lt;p&gt;Maybe the accelerator program of Y Combinator is a good idea? But you’ve got so many questions.
When are you ready for the next step? How can Y Combinator help you? What are some tips or tricks to get in and what should you highlight in the application process?&lt;&#x2F;p&gt;

&lt;p class=&quot;alert alert-webcast&quot;&gt;The deadline to &lt;a href=&quot;https:&#x2F;&#x2F;www.ycombinator.com&#x2F;apply&#x2F;&quot;&gt;&lt;strong&gt;apply&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt; for the Y Combinator program is &lt;strong&gt;Tuesday October 4th 2016 by 8pm PT&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;



&lt;p&gt;In combination with the blog post we released &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;30&#x2F;gitlabs-application-for-y-combinator-winter-2015&#x2F;&quot;&gt;the application of GitLab to YC&lt;&#x2F;a&gt; as an example.
Below some questions that Reinder Visser from &lt;a href=&quot;https:&#x2F;&#x2F;www.placker.com&quot;&gt;Placker&lt;&#x2F;a&gt; asked Sid about applying at Y Combinator a few days ago.&lt;&#x2F;p&gt;

&lt;h4 class=&quot;gitlab-orange&quot; id=&quot;reinder-why-should-i-apply&quot;&gt;Reinder: Why should I apply?&lt;&#x2F;h4&gt;

&lt;p&gt;&lt;strong&gt;Sid:&lt;&#x2F;strong&gt; The reason we applied for Y Combinator with GitLab was that we had lost our first customer mid 2014. The customer explained that while they liked GitLab they were standardizing on an alternative solution.
Dmitriy and I figured every company would standardize on one solution to do &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2014&#x2F;09&#x2F;05&#x2F;innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization&#x2F;&quot;&gt;innersourcing&lt;&#x2F;a&gt; and we wanted that solution to be GitLab. The need to grow faster became the main reason to apply since there was a window of opportunity of a couple of years before people would standardize on one tool and be decided.&lt;&#x2F;p&gt;

&lt;p&gt;We feel that the time to apply for Y Combinator is when you have mainly outlined your product vision, you’re still working somewhat on the market, and are still trying to figure out how to sell it, and how to scale to accommodate your customers.
The Y Combinator program is ideal when you have a solid team of founders that have been working together for a while but you are ready to hire the rest of the team after you complete the Y Combinator program.&lt;&#x2F;p&gt;

&lt;h4 class=&quot;gitlab-orange&quot; id=&quot;reinder-so-why-choose-y-combinator-if-there-are-more-than-2000-accelerator-programs-in-the-world&quot;&gt;Reinder: So why choose Y Combinator if there are more than 2000 accelerator programs in the world?&lt;&#x2F;h4&gt;

&lt;p&gt;&lt;strong&gt;Sid:&lt;&#x2F;strong&gt; We feel that Y Combinator has the best network, the best partners, the best advice to give you because they see the most companies, and they are very strong at selecting them.
Going where the other strong applicants are, you will have a program where they have the largest set of data to offer you advice.
Investors have noticed the Y Combinator pattern which helps you raise funding under better terms with better investors. Our Y Combinator experience exceeded our high expectations.&lt;&#x2F;p&gt;

&lt;h4 class=&quot;gitlab-orange&quot; id=&quot;reinder-is-it-a-problem-that-im-a-single-founder&quot;&gt;Reinder: Is it a problem that I&#x27;m a single founder?&lt;&#x2F;h4&gt;

&lt;p&gt;Just last week Craig Cannon posted an article on &lt;a href=&quot;http:&#x2F;&#x2F;themacro.com&#x2F;articles&#x2F;2016&#x2F;09&#x2F;common-misconceptions-about-applying-to-yc&#x2F;&quot;&gt;the most common misconceptions about applying for Y Combinator&lt;&#x2F;a&gt;.
A concern people have sometimes is being a single founder, which is addressed in this article. While Y Combinator does &lt;a href=&quot;http:&#x2F;&#x2F;www.forbes.com&#x2F;sites&#x2F;bruceupbin&#x2F;2011&#x2F;10&#x2F;18&#x2F;paul-graham-dropbox-and-the-single-founder-exception&#x2F;#1f0fadfb1f77&quot;&gt;suggest having a cofounder&lt;&#x2F;a&gt; because startups are hard and cofounders definitely help, of the Summer 2016 batch, 8.5% had a solo founder.
Here’s how the rest breaks down: 2 Founders (61.3%), 3 Founders (20.8%), 4 Founders (7.5%), 5+ Founders (1.9%). It may feel like being a single founder would make it harder to get the same load of work done,
where it’s not so much that Y Combinator will be hard on your own, running a company on your own will be too.&lt;&#x2F;p&gt;

&lt;h4 class=&quot;gitlab-orange&quot; id=&quot;reinder-if-you-decide-to-apply-how-do-you-get-in&quot;&gt;Reinder: If you decide to apply, how do you get in?&lt;&#x2F;h4&gt;

&lt;p&gt;&lt;strong&gt;Sid:&lt;&#x2F;strong&gt; Take your time working on your answers for the application. Apply ahead of the deadline and don’t wait until the last minute if you can. But even last minute and late applications get a fair review so feel free to sleep on it.
Describe what your company does and why it’s unique. Be concise and opt for simple descriptions with the use mundane language, because a main reason why you get declined is that a reviewer doesn’t understand you business.
Have other people review your application. Then ask them “what does my company do”? and write down their answer. Take that answer they have given you and use it to improve your description.
Writing down what your company does is one of the hardest things, and if you don’t agree with their answer than your first answer wasn’t clear enough.&lt;&#x2F;p&gt;

&lt;p&gt;Everyone feels their product is is better, faster, easier, so get down to specifics why you feel that way but keep it simple. If people can’t recite back to you what it is you do and why you’re different, you have to change your answers.
There are a few question in the application that are of high importance to highlight you as a founder, one of them being: “Please tell us about the time you most successfully hacked some (non-computer) system to your advantage.”
Don’t gloss over any questions but this one in particular is important. Choose answers or situations that show you’re an independent thinker and are creative.
When you get invited to do a 10 minute interview after you’ve sent in your application make sure to prepare for the interview in detail.
They will ask you questions which are to be found on the internet so make sure to write down your answers and practice those. Your answers need to be concise and clear, when they are too long you will get cut off. I had someone ask me the questions over and over and interrupt me if my answer was longer than one breath.&lt;&#x2F;p&gt;

&lt;h4 class=&quot;gitlab-orange&quot; id=&quot;reinder-so-spill-the-beans-whats-it-like&quot;&gt;Reinder: So spill the beans; what’s it like?&lt;&#x2F;h4&gt;

&lt;p&gt;&lt;strong&gt;Sid:&lt;&#x2F;strong&gt; Y Combinator raises your ambition level; everyone is motivated by the feeling of progress, and that’s what fast growth gives you.
You’re in a batch with the best people in the world, it’s a form of healthy peer pressure that motivates you to work harder and set that high pace to keep developing your product.
The first thing they ask you to do is launch, in case you haven’t done that yet. Y Combinator teaches you not to want your feature or product to be a certain way before shipping.
Ship today, and make it better or nicer over time. As soon as it’s live you’ll have more information and data on what the real problems are.
Figuring out who your ideal customers are, how to reach them, how to raise your financing, how to hire people, these are questions that everyone in the program has.
The team of Y Combinator is really good at helping you to answer these questions, both during and after the 3 month prgram.
But the best part are the other founders, they are all interesting people and I&#x27;m very glad to call some of them my friends.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;what-fouders-ask-founders-about-getting-into-yc-cover.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab's Application for Y Combinator Winter 2015</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/30/gitlabs-application-for-y-combinator-winter-2015/"/>
    <id>https://about.gitlab.com/2016/09/30/gitlabs-application-for-y-combinator-winter-2015/</id>
    <published>2016-09-30T10:30:00+00:00</published>
    <updated>2016-09-30T10:30:00+00:00</updated>
    <author>
      <name>Sid Sijbrandij</name>
    </author>
    <content type="html">
&lt;p&gt;We released it together with out blog post &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;30&#x2F;what-founders-ask-founders-about-getting-into-yc&quot;&gt;What founders ask founders about getting into Y Combinator&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;



&lt;h2 id=&quot;company&quot;&gt;Company&lt;&#x2F;h2&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Company name:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;GitLab&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Company url, if any:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;&quot;&gt;https:&#x2F;&#x2F;about.gitlab.com&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;If you have an online demo, what&#x27;s the url?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;http:&#x2F;&#x2F;demo.gitlab.com&#x2F;users&#x2F;sign_in&lt;&#x2F;p&gt;

    &lt;p class=&quot;note red&quot;&gt;&lt;strong&gt;Note:&lt;&#x2F;strong&gt; this URL no longer works, in 2016 our sign up url is &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;users&#x2F;sign_in&quot;&gt;https:&#x2F;&#x2F;gitlab.com&#x2F;users&#x2F;sign_in&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;What is your company going to make?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;We’re making open source software to collaborate on code. It started as ‘run your own GitHub’ that most users deploy on their own server(s). GitLab allows you to version control code including pull&#x2F;merge requests, forking and public projects. It also includes project wiki’s and an issue tracker. Over 100k organizations use it including thousands of programmers at &amp;lt;Redacted&amp;gt;. We also offer GitLab CI that allows you to test your code with a distributed set of workers.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Where do you live now, and where would the company be based after YC?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;The Netherlands, Ukraine (with employees in San Francisco), we don&#x27;t know yet where will be based after YC&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;h2 id=&quot;founders&quot;&gt;Founders&lt;&#x2F;h2&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Please enter the url of a 1 minute unlisted (not private) YouTube video introducing the founders.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=KzvDHA5323o&quot;&gt;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=KzvDHA5323o&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Please tell us about an interesting project, preferably outside of class or work, that two or more of you created together. Include urls if possible.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;We created GitLab together (&lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;gitlab-ce&#x2F;&quot;&gt;https:&#x2F;&#x2F;about.gitlab.com&#x2F;gitlab-ce&#x2F;&lt;&#x2F;a&gt;) and now over 100.000 organizations are using it. We also created GitLab CI and GitLab CI Runner together &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;gitlab-ci&#x2F;&quot;&gt;https:&#x2F;&#x2F;about.gitlab.com&#x2F;gitlab-ci&#x2F;&lt;&#x2F;a&gt;. This pair of programs allow organizations to distribute their code testing over a number of workers.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;How long have the founders known one another and how did you meet? Have any of the founders not met in person?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;In 2011 Dmitriy started GitLab. We met in 2012 via email when Sytse started building GitLab.com. In 2013 we formally started a company together and went on team trips a few times since than.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;h2 id=&quot;progress&quot;&gt;Progress&lt;&#x2F;h2&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;How far along are you?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Over 100.000 organizations are using GitLab. &amp;lt;Redacted&amp;gt;, Qualcomm, NASA, Nasdaq OMX and Interpol are paying customers. Over 600 people have contributed to it. It is the most popular open source version control software. It has more installations than anything else (including GitHub Enterprise and Atlassian Stash).&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;If you&#x27;ve already started working on it, how long have you been working and how many lines of code (if applicable) have you written?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Since 2011, over 10,000 commits, see &lt;a href=&quot;http:&#x2F;&#x2F;contributors.gitlab.com&#x2F;&quot;&gt;http:&#x2F;&#x2F;contributors.gitlab.com&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Which of the following best describes your progress?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Launched&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;When will you have a prototype or beta? How many users do you have?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;We estimate more than 1M&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Do you have revenue?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Yes&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;How much revenue?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;$1m annual Revenue Run Rate&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;What is your monthly growth rate?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;About 60% in revenue each month.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;If you&#x27;ve applied previously with the same idea, how much progress have you made since the last time you applied? Anything change?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;No&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;If you have already participated or committed to participate in an incubator, &quot;accelerator&quot; or &quot;pre- accelerator&quot; program, please tell us about it.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;We have not applied to or participated any others.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;h2 id=&quot;idea&quot;&gt;Idea&lt;&#x2F;h2&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Why did you pick this idea to work on? Do you have domain expertise in this area? How do you know people need what you&#x27;re making?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Dmitriy wanted a solution he could use at his previous job. All employees except our account managers (8-2=6) are software developers. We listen closely to the community via direct customer feedback, pull&#x2F;merge requests, issues, twitter, mailinglists, chatrooms and the non GitLab B.V. employees on the GitLab core team.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;What&#x27;s new about what you&#x27;re making? What substitutes do people resort to because it doesn&#x27;t exist yet (or they don&#x27;t know about it)?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;We offer the a better way of collaborating on digital products ( the feature branch workflow) to organizations that prefer to work on open source tools. Open source is interesting for large companies because they can inspect and modify the code. They also can and do contribute back changes that are important to them. Substitutes are closed source alternatives (GitHub Enterprise, Atlassian Stash) or less functional open source alternatives (Gitorious, Gogs). GitHub currently has a lot of mind-share but they are under- serving the on-premises (behind the firewall) market. We can see us grow into the leading solution for those installations (which is currently the majority of the market). In the long run most software will live on some (hybrid-)cloud and we think there are many ways to differentiate our offering (open source&#x2F;distributed&#x2F;integrated). In the short term we are emulating the Netflix strategy, shipping DVD’s (focus on the on-premise installations) when the competitors focus on the video-on-demand (SaaS) offering.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Who are your competitors, and who might become competitors? Who do you fear most?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;GitHub Enterprise and Atlassian Stash are our primary competitors. We fear Atlassian Stash most since the GitHub Enterprise offering is weak (black box VM that doesn’t scale or cluster) and overpriced (4x more expensive than Stash or our standard subscription). We compete with Stash on usability, integration (no need to install Jira and Confluence separately), flexibility (you can inspect and adapt the source) and price.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;What do you understand about your business that other companies in it just don&#x27;t get?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;An open source development process allows you to market your product for free. It also allows a good product market fit at a low cost. We believe that version control is infrastructure software and that open source is the natural model for this kind of software . But to create and grow a competitive open source offering you need to have a proprietary commercial version to generate scalable revenue, support income alone is not enough.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;How do or will you make money? How much could you make?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Mostly by selling subscriptions that entitle our customers to support and our proprietary GitLab Enterprise Edition. Our most sold subscription by revenue costs $49 per user per year. Most or our revenue comes from organizations with more than 100 paying users. Every company with a substantial number of developers needs software like ours. We already declined an acquisition offer from a competitor for $10M because we want to grow this into a large company.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;How will you get users? If your idea is the type that faces a chicken-and-egg problem in the sense that it won&#x27;t be attractive to users till it has a lot of users (e.g. a marketplace, a dating site, an ad network), how will you overcome that?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Currently we get users through word of mouth (amplified by twitter). During our time at YC we would like to grow our marketing, our continuous integration product GitLab CI and our SaaS (GitLab.com). GitLab.com currently has only 15k monthly active users but we see a lot of possibilities to grow and differentiate it.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;h2 id=&quot;others&quot;&gt;Others&lt;&#x2F;h2&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;If you had any other ideas you considered applying with, please list them. One may be something we&#x27;ve been waiting for. Often when we fund people it&#x27;s to do something they list here and not in the main application.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;N&#x2F;A&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Please tell us something surprising or amusing that one of you has discovered.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;Before GitLab Sytse has build recreational manned submarines from scratch, the company he started is currently the largest producer of them in the world and is called U-Boat Worx &lt;a href=&quot;http:&#x2F;&#x2F;www.uboatworx.com&#x2F;&quot;&gt;http:&#x2F;&#x2F;www.uboatworx.com&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;style&gt;
	.red {
		color: red !important;
	}
&lt;&#x2F;style&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;gitlabs-application-for-y-combinator-winter-2015-cover.jpg&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12.3, 8.11.8, 8.10.11 and 8.9.11 released</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/29/gitlab-8-12-3-released/"/>
    <id>https://about.gitlab.com/2016/09/29/gitlab-8-12-3-released/</id>
    <published>2016-09-29T00:00:00+00:00</published>
    <updated>2016-09-29T00:00:00+00:00</updated>
    <author>
      <name>Rubén Dávila</name>
    </author>
    <content type="html">
&lt;p&gt;Today we are releasing versions 8.12.3, 8.11.8, 8.10.11 and 8.9.11 for GitLab Community
Edition (CE) and Enterprise Edition (EE).&lt;&#x2F;p&gt;

&lt;p&gt;Version 8.12.3 contains some security fixes for GitLab, plus fixes for minor
regressions. Version 8.11.8, 8.10.11, and 8.9.11 only contain the security fixes.&lt;&#x2F;p&gt;

&lt;p&gt;If you&#x27;re wondering what happened to 8.12.2, good eye! That version was accidentally packaged without including some fixes for the CE version.&lt;&#x2F;p&gt;

&lt;p&gt;Please read on for more details.&lt;&#x2F;p&gt;



&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Enforce the &lt;code&gt;fork_project&lt;&#x2F;code&gt; permission in &lt;code&gt;Projects::CreateService&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Set a restrictive CORS policy for the API.&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; API: Disable Rails session auth for non-GET&#x2F;HEAD requests.&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Escape HTML nodes in builds commands in CI linter.&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Send ajax request for label update only if they are changed. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;5071&quot;&gt;!5071&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Pass the full project path for resolve buttons. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6129&quot;&gt;!6129&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix list issues not loading with spaces in filtered values. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6258&quot;&gt;!6258&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix LDAP omniauth regression (Closes: #22357). (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6462&quot;&gt;!6462&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix awards dropdown search text from repeating. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6498&quot;&gt;!6498&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix issue with rails reserved keyword type exporting&#x2F;importing services. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6499&quot;&gt;!6499&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix snippets pagination. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6500&quot;&gt;!6500&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Wrap &lt;code&gt;List-Unsubscribe&lt;&#x2F;code&gt; link in angle brackets. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6511&quot;&gt;!6511&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix the &quot;Commits&quot; section of the cycle analytics summary. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6513&quot;&gt;!6513&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix Import&#x2F;Export milestone and 1to1 models issue. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6521&quot;&gt;!6521&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Bump Gitlab Shell to support low IO priority for storage moves. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6525&quot;&gt;!6525&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Add &lt;code&gt;v-cloak&lt;&#x2F;code&gt; to resolve disc button. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6528&quot;&gt;!6528&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Be nice to Docker Clients talking to JWT&#x2F;auth. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6536&quot;&gt;!6536&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix &lt;code&gt;IssuesController#show&lt;&#x2F;code&gt; degradation including project on loaded notes. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6540&quot;&gt;!6540&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix pipelines table headers. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6542&quot;&gt;!6542&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Do not regenerate the &lt;code&gt;lfs_token&lt;&#x2F;code&gt; every time &lt;code&gt;git-lfs-authenticate&lt;&#x2F;code&gt; is called. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6551&quot;&gt;!6551&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Change the &lt;code&gt;v-cloak&lt;&#x2F;code&gt; attr to hash rocket and string &#x27;true&#x27;. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6553&quot;&gt;!6553&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix duplicate master entries in the merge request versions dropdown. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6567&quot;&gt;!6567&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; ES: Fix internal data exposure. (8.12.2 only)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Add missing URL param to ajax call. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;760&quot;&gt;!760&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Ignore unknown project ID in RepositoryUpdateMirrorWorker. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;754&quot;&gt;!754&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Fix prevent_secrets checkbox on admin view. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;761&quot;&gt;!761&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;Omnibus GitLab&lt;&#x2F;strong&gt; Update openssl to 1.0.2j to get the latest security fixes. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;omnibus-gitlab&#x2F;merge_requests&#x2F;1006&quot;&gt;!1006&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;Omnibus GitLab&lt;&#x2F;strong&gt; Update to latest cacerts file. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;omnibus-gitlab&#x2F;merge_requests&#x2F;1007&quot;&gt;!1007&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;information-disclosure-through-global-code-search&quot;&gt;Information disclosure through Global Code Search&lt;&#x2F;h2&gt;

&lt;p&gt;The new Global Code Search feature introduced in &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;&quot;&gt;GitLab 8.12.0&lt;&#x2F;a&gt; was returning titles of projects,
milestones, issues, and merge requests from internal projects to anonymous. See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;issues&#x2F;1046&quot;&gt;#1046&lt;&#x2F;a&gt; for more information.&lt;&#x2F;p&gt;

&lt;p&gt;Thanks to &lt;strong&gt;Christian Bönning&lt;&#x2F;strong&gt; for reporthing this issue.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;api-restrictive-cors-policy&quot;&gt;API: Restrictive CORS policy&lt;&#x2F;h2&gt;

&lt;p&gt;Previous versions set &lt;code&gt;Access-Control-Allow-Credentials: true&lt;&#x2F;code&gt; for all origins in their CORS policy.
Combined with &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;18302&quot;&gt;#18302&lt;&#x2F;a&gt;, this resulted in a JavaScript request spoofing vulnerability. See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;22450&quot;&gt;#22450&lt;&#x2F;a&gt; for more information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;api-csrf-protection&quot;&gt;API: CSRF protection&lt;&#x2F;h2&gt;

&lt;p&gt;Issue &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;18302&quot;&gt;#18302&lt;&#x2F;a&gt; also introduced a vulnerability allowing third-party websites to spoof API requests using forms,
which is mitigated in these releases. See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;22435&quot;&gt;#22435&lt;&#x2F;a&gt; for more information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;wrong-permission-enforcement-in-forkservice&quot;&gt;Wrong permission enforcement in ForkService&lt;&#x2F;h2&gt;

&lt;p&gt;A user with the &quot;Guest&quot; role could fork a project, and therefore gain access to the code,
even though this was restricted to the &quot;Reporter&quot; level and above.
See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;18028&quot;&gt;#18028&lt;&#x2F;a&gt; for more information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This version has no migrations and should not require any downtime.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;To update, check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;sign-up-for-security-notices&quot;&gt;Sign up for security notices&lt;&#x2F;h2&gt;

&lt;p&gt;Want to be alerted to new security patches as soon as they&#x27;re available? Sign up
for our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;contact&#x2F;&quot;&gt;Security Newsletter&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;Interested in GitLab Enterprise Edition? Check out the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;features exclusive to
EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself? Subscribers receive upgrade and installation
services.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab World Tour: Amplify Your Code</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/28/world-tour-amplify-your-code/"/>
    <id>https://about.gitlab.com/2016/09/28/world-tour-amplify-your-code/</id>
    <published>2016-09-28T00:00:00+00:00</published>
    <updated>2016-09-28T00:00:00+00:00</updated>
    <author>
      <name>Emily Kyle</name>
    </author>
    <content type="html">

&lt;p class=&quot;alert alert-webcast&quot;&gt;&lt;i class=&quot;fa fa-gitlab&quot; style=&quot;color:rgb(107,79,187); font-size:.85em&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;i&gt;  
GitLab World Tour - London, Oct 19th - &lt;a href=&quot;https:&#x2F;&#x2F;gitlabworldtourlondon.splashthat.com&#x2F;&quot; title=&quot;GitLab World Tour: London&quot;&gt;Register here&lt;&#x2F;a&gt;!
  &lt;i class=&quot;fa fa-gitlab&quot; style=&quot;color:rgb(107,79,187); font-size:.85em&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Even the sharpest teams face minor setbacks when their code falls flat, or their team is just not in tune. 
O-boe-y, nobody wants that. Luckily, GitLab is here to pitch you an idea to help you boost your act.&lt;&#x2F;p&gt;

&lt;p&gt;We&#x27;re kicking off the GitLab World Tour to help harmonize your development process because code is our forte.
At this free event, we will explore how teams are using Git and other modern software development practices
to work together and build amazing products. Software development is changing and with it, the way developers work. 
Today’s rapid pace of communication and innovation fosters creativity, collaboration, and information sharing; 
bringing ideas to life—faster. The GitLab World Tour is an interactive discussion on what&#x27;s next for software development.&lt;&#x2F;p&gt;



&lt;h2 id=&quot;what-to-expect&quot;&gt;What to Expect&lt;&#x2F;h2&gt;

&lt;p&gt;From ideation and planning to committing, testing, deploying, and getting feedback, 
we are building a toolset that takes an all-inclusive approach to the development process.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;idea-to-production-10-steps.png&quot; alt=&quot;FROM IDEA TO PRODUCTION IN 10 STEPS&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;We introduced our &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;14&#x2F;gitlab-live-event-recap&#x2F;&quot;&gt;Master Plan&lt;&#x2F;a&gt; and now we need feedback from our rock star community as we think about how we can
build the best toolset to help modern developers move faster from idea to production. 
On Tour, you&#x27;ll hear from GitLab CEO &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;sytses&quot;&gt;Sid Sijbrandij&lt;&#x2F;a&gt; on the GitLab Master Plan, 
have the opportunity to ask our developers questions, give feedback about our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;direction&#x2F;&quot;&gt;product direction&lt;&#x2F;a&gt;, 
and share your ideas and projects.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;inspiration&quot;&gt;Inspiration&lt;&#x2F;h3&gt;

&lt;div class=&quot;panel panel-gitlab-orange&quot;&gt;
  &lt;p class=&quot;panel-heading&quot; id=&quot;convdev&quot;&gt;&lt;strong&gt;Conversational Development&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;&lt;strong&gt;Conversational Development (ConvDev)&lt;&#x2F;strong&gt; is a natural evolution of software
development that carries a conversation across functional groups throughout
the development process, enabling developers to track the full path of
development in a cohesive and intuitive way. ConvDev accelerates the
development lifecycle by fostering collaboration and knowledge sharing
from idea to production.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;p&gt;It&#x27;s an exciting time to be a developer. There is a steady rise of new tools, languages, and practices. 
We&#x27;ll take a look at some incredible community projects and share information that you can take back to your teams
including information on Conversational Development and the modern development lifecycle, Continuous Integration, and 
trends in open source.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;conversation&quot;&gt;Conversation&lt;&#x2F;h3&gt;

&lt;p&gt;We value our community and are eager to trade ideas with you. We&#x27;ve planned our sessions to be interactive so there will be
plenty of time for you to ask questions and share feedback.&lt;&#x2F;p&gt;

&lt;div class=&quot;panel panel-gitlab-purple&quot;&gt;
  &lt;p class=&quot;panel-heading&quot; id=&quot;vision&quot;&gt;&lt;strong&gt;GitLab Vision&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;The vision of GitLab is to allow everyone to collaborate on all digital content
so people can cooperate effectively and achieve better results, faster.
We can do this by providing an integrated set of tools that allows you to go faster
&lt;a href=&quot;&#x2F;2016&#x2F;08&#x2F;05&#x2F;continuous-integration-delivery-and-deployment-with-gitlab&#x2F;#from-idea-to-production-with-gitlab&quot;&gt;from idea to production&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;h4 id=&quot;project-amplifyyourcode&quot;&gt;Project #AmplifyYourCode&lt;&#x2F;h4&gt;

&lt;p&gt;At GitLab, we owe our success to our community and the thousands of contributors who help make GitLab.com great. 
Thanks to you, we can ship faster to deliver the best toolset for the modern developer. Now, it&#x27;s your turn to take the spotlight.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;goo.gl&#x2F;forms&#x2F;7HZYUNTxLFVzNeZN2&quot;&gt;Submit your best GitLab project&lt;&#x2F;a&gt; to amplify your code and to have your project showcased in front of hundreds of developers 
during the GitLab World Tour and promoted on the GitLab blog and social channels.   What are you waiting for? Make your voice heard! Who knows, it could be your greatest hit.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;swag&quot;&gt;Swag&lt;&#x2F;h3&gt;

&lt;p&gt;It&#x27;s not a tour without some commemorative item that says, &quot;I was here.&quot; Every stop on this tour will have their own city-specific GitLab swag.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;world-tour-amplify-your-code-ping-pong.jpg&quot; alt=&quot;GITLAB SWAG&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;are-you-ready-to-amplify-your-code&quot;&gt;Are you ready to amplify your code?&lt;&#x2F;h2&gt;

&lt;p&gt;The World Tour will make stops in &lt;strong&gt;London&lt;&#x2F;strong&gt;, &lt;strong&gt;New York City&lt;&#x2F;strong&gt;, and &lt;strong&gt;Amsterdam&lt;&#x2F;strong&gt; before ending on a high note
in &lt;strong&gt;San Francisco&lt;&#x2F;strong&gt; at our user conference early next year. The GitLab Team will travel city to city,
working in concert with git users like yourself, gathering feedback and stories to help make your git
workflow even more seamless. We would also like to trumpet about some major developments features in GitLab.&lt;&#x2F;p&gt;

&lt;p&gt;Here is a list of some of the topics we will be covering:&lt;&#x2F;p&gt;

&lt;ol&gt;
  &lt;li&gt;Modern Software Development&lt;&#x2F;li&gt;
  &lt;li&gt;Conversational Development (ConvDev)&lt;&#x2F;li&gt;
  &lt;li&gt;Continuous Integration&lt;&#x2F;li&gt;
  &lt;li&gt;Continuous Delivery &amp;amp; Continuous Deployment&lt;&#x2F;li&gt;
  &lt;li&gt;The Open Source Community&lt;&#x2F;li&gt;
  &lt;li&gt;Innersourcing, Microservices, and Version Control&lt;&#x2F;li&gt;
  &lt;li&gt;GitLab Direction&lt;&#x2F;li&gt;
  &lt;li&gt;GitLab Community Edition, Enterprise Edition, and GitLab.com&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;

&lt;p&gt;We hope that some of those themes will strike a cord with you and your team. Come, share your ideas and amplify your code at a stop near you.&lt;&#x2F;p&gt;

&lt;p class=&quot;alert alert-webcast&quot;&gt;🇬🇧   Take a minute to register for our opening act in &lt;a href=&quot;https:&#x2F;&#x2F;gitlabworldtourlondon.splashthat.com&#x2F;&quot; title=&quot;GitLab World Tour: London&quot;&gt;London&lt;&#x2F;a&gt; on Oct 19th!   🇬🇧
&lt;br &#x2F;&gt;🇺🇸   &lt;a href=&quot;https:&#x2F;&#x2F;gitlabworldtournyc.splashthat.com&#x2F;&quot;&gt;New York City&lt;&#x2F;a&gt; on October 26th!   🇺🇸
&lt;br &#x2F;&gt;🇳🇱   &lt;a href=&quot;https:&#x2F;&#x2F;gitlabworldtouramsterdam.splashthat.com&#x2F;&quot;&gt;Amsterdam&lt;&#x2F;a&gt; on November 3rd!   🇳🇱&lt;&#x2F;p&gt;

&lt;p&gt;Can&#x27;t wait to rock out with you!&lt;&#x2F;p&gt;

&lt;!-- identifiers --&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;world-tour-amplify-your-code-cover.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab Infrastructure Update</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/26/infrastructure-update/"/>
    <id>https://about.gitlab.com/2016/09/26/infrastructure-update/</id>
    <published>2016-09-26T00:00:00+00:00</published>
    <updated>2016-09-26T00:00:00+00:00</updated>
    <author>
      <name>Pablo Carranza</name>
    </author>
    <content type="html">

&lt;p&gt;As Infrastructure Lead, my job is to make &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;&quot;&gt;GitLab.com&lt;&#x2F;a&gt; fast and highly available.&lt;&#x2F;p&gt;

&lt;p&gt;Lately, it&#x27;s been a challenge. Why? We are hitting our threshold where scale starts to matter. For example, over 2,000 new repos
are being created during peak hours, and CI runners are requesting new builds 3,000,000 times per hour.
It&#x27;s an interesting problem to have. We have to store this information somewhere and make sure that 
while we&#x27;re gaining data and users, GitLab.com keeps working fine.&lt;&#x2F;p&gt;

&lt;p&gt;A large part of the issue we&#x27;re running into as we scale is that there is little or no documentation 
on how to tackle this kind of problem. While there are companies that have written high-level posts, almost none of them
have shared &lt;strong&gt;how&lt;&#x2F;strong&gt; they arrived at their solutions.&lt;&#x2F;p&gt;

&lt;p&gt;One of our main issues in the past six months has been around storage. We built a CephFS cluster to tackle both the capacity and
performance issues of using NFS appliances. Another more recent issue is around PostgreSQL vacuuming and how it affects performance locking up the database
given the right kind of load.&lt;&#x2F;p&gt;

&lt;p&gt;As &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;handbook&#x2F;#values&quot;&gt;outlined in our values&lt;&#x2F;a&gt;, we believe we have a 
responsibility to document this so other companies know what to do when they reach this point.
Last Thursday, I gave a GitLab.com infrastructure status report during our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;handbook&#x2F;#team-call&quot;&gt;daily team call&lt;&#x2F;a&gt;. 
Watch the recording or download the slides to see how we&#x27;re working through our challenges with scaling.&lt;&#x2F;p&gt;



&lt;h2 id=&quot;recording--slides&quot;&gt;Recording &amp;amp; Slides&lt;&#x2F;h2&gt;

&lt;h3 id=&quot;recording&quot;&gt;Recording&lt;&#x2F;h3&gt;

&lt;figure class=&quot;video_container&quot;&gt;
  &lt;iframe src=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;embed&#x2F;kN-HcObb9zo&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;figure&gt;

&lt;p&gt;&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h3 id=&quot;slides&quot;&gt;Slides&lt;&#x2F;h3&gt;

&lt;figure class=&quot;video_container&quot;&gt;
  &lt;iframe src=&quot;https:&#x2F;&#x2F;docs.google.com&#x2F;presentation&#x2F;d&#x2F;11rCsJM41WAETPWqtWgfIxgfPRBQB4m037aZpgsGpzkk&#x2F;embed?start=false&amp;amp;loop=false&amp;amp;delayms=5000&quot; frameborder=&quot;0&quot; width=&quot;1280&quot; height=&quot;749&quot; allowfullscreen=&quot;true&quot; mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot;&gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;figure&gt;

&lt;p&gt;&lt;br &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;!-- identifiers --&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;infrastructure.jpeg&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12.1 released</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/23/gitlab-8-dot-12-dot-1-released/"/>
    <id>https://about.gitlab.com/2016/09/23/gitlab-8-dot-12-dot-1-released/</id>
    <published>2016-09-23T00:00:00+00:00</published>
    <updated>2016-09-23T00:00:00+00:00</updated>
    <author>
      <name>Rubén Dávila</name>
    </author>
    <content type="html">
&lt;p&gt;Today we are releasing version 8.12.1 for GitLab Community Edition (CE) and
Enterprise Edition (EE).&lt;&#x2F;p&gt;

&lt;p&gt;This version resolves a number of regressions and bugs in the &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&quot;&gt;recent 8.12
release&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Please read on for more details.&lt;&#x2F;p&gt;



&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Prevent secrets being pushed into repository. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;731&quot;&gt;!731&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Fix typo in protected_branches usage data. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;758&quot;&gt;!758&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fixed search dropdown labels not displaying.(&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6277&quot;&gt;!6277&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix a memory leak in HTML::Pipeline::SanitizationFilter::WHITELIST. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6456&quot;&gt;!6456&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Makes Cycle analytics mobile friendly. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6482&quot;&gt;!6482&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Fix Cycle Analytics landing widget state and improve state management in Vue. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6492&quot;&gt;!6492&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Add link to broadcast messages docs. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6495&quot;&gt;!6495&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;Omnibus:&lt;&#x2F;strong&gt; Fix backslash issues in sv&#x2F;gitlab-workhorse&#x2F;run. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;omnibus-gitlab&#x2F;merge_requests&#x2F;1005&quot;&gt;!1005&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This version has no migrations and should not require any downtime.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;To update, check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;Interested in GitLab Enterprise Edition? Check out the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;features exclusive to
EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself? Subscribers receive upgrade and installation
services.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.12 Released with Cycle Analytics and Global Code Search</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/22/gitlab-8-12-released/"/>
    <id>https://about.gitlab.com/2016/09/22/gitlab-8-12-released/</id>
    <published>2016-09-22T00:00:00+00:00</published>
    <updated>2016-09-22T00:00:00+00:00</updated>
    <author>
      <name>Job van der Voort</name>
    </author>
    <content type="html">
&lt;p&gt;Whether you&#x27;re working on a small or a large project, your tools should get out of your way and give you actionable feedback. This month, we&#x27;re making sure GitLab does both better than ever.&lt;&#x2F;p&gt;

&lt;p&gt;GitLab 8.12 gives you feedback on how efficiently you actually work, helps you find code across the entire instance, makes your workflow much safer with a single click, and much more.&lt;&#x2F;p&gt;

&lt;p&gt;This month&#x27;s Most Valuable Person (&lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;mvp&#x2F;&quot;&gt;MVP&lt;&#x2F;a&gt;) is
James Munnelly for contributing the
&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;30&quot;&gt;Kubernetes executor in the GitLab CI runner&lt;&#x2F;a&gt;.
This feature allows users to run CI tests in a Kubernetes cluster easily.
James created this merge request over a year ago and showed great patience
and persistence in the review process to see it to completion.
Thanks, James!&lt;&#x2F;p&gt;



&lt;h2 id=&quot;cycle-analytics&quot;&gt;Cycle Analytics&lt;&#x2F;h2&gt;

&lt;p&gt;Reducing cycle time, the time it takes you to go from idea all the way to
production, is the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2016&#x2F;09&#x2F;14&#x2F;gitlab-live-event-recap&#x2F;#convdev&quot;&gt;first principle of conversational development&lt;&#x2F;a&gt;.
The shorter the cycle time, the higher the efficiency of your team.&lt;&#x2F;p&gt;

&lt;p&gt;In order to make it possible to actually see what your cycle time is, we&#x27;re
introducing &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;21&#x2F;cycle-analytics-feature-highlight&#x2F;&quot;&gt;Cycle Analytics&lt;&#x2F;a&gt; with GitLab 8.12.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;cycle_analytics.png&quot; alt=&quot;Cycle Analytics in GitLab 8.12&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Cycle Analytics tells you what your cycle time is and breaks it down into
several steps, so you can quickly see where to improve and accurately predict
when you&#x27;re shipping something.&lt;&#x2F;p&gt;

&lt;p&gt;Find Cycle Analytics under Pipelines in all your projects.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Read more in the &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;project&#x2F;cycle_analytics.html&quot;&gt;documentation for Cycle Analytics&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;global-code-search-ee&quot;&gt;Global Code Search (EE)&lt;&#x2F;h2&gt;

&lt;p&gt;If you&#x27;re running Elasticsearch on your GitLab Enterprise Edition instance,
you will now be able to search through &lt;em&gt;all&lt;&#x2F;em&gt; code on the server!&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;search.gif&quot; alt=&quot;Global code search in GitLab EE 8.12&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Just use the search as before and GitLab will show you matching code from each
project you have access to.&lt;&#x2F;p&gt;

&lt;p&gt;Note that this change requires that you rebuild your Elasticsearch index.
See the upgrade barometer below for more information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;merge-request-versions&quot;&gt;Merge Request Versions&lt;&#x2F;h2&gt;

&lt;p&gt;When you&#x27;re pushing more than a single commit to a merge request,
it can be hard to view what changed between versions and the target branch.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;mr_versions.png&quot; alt=&quot;Merge Request Versions in GitLab 8.12&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;With merge request versions you can view previous states of a merge request: compare between a previous commit and the target branch or even between versions, showing you what has changed between certain commits.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Read more in the &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;project&#x2F;merge_requests&#x2F;versions.html&quot;&gt;documentation for Merge request revisions&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;preventing-secrets-in-your-repositories-ee&quot;&gt;Preventing Secrets in your repositories (EE)&lt;&#x2F;h2&gt;

&lt;p&gt;It&#x27;s a bad idea to commit secrets (such as keys and certificates) to your repositories: they&#x27;ll be cloned to the machines of anyone that has access to the repository, only one of which has to be insecure for the information to be compromised.&lt;&#x2F;p&gt;

&lt;p&gt;Yet it happens quite easily. You write &lt;code&gt;git commit -am &#x27;quickfix&#x27; &amp;amp;&amp;amp; git push&lt;&#x2F;code&gt; and suddenly you&#x27;ve committed files that were meant to stay local!&lt;&#x2F;p&gt;

&lt;p&gt;GitLab now has a new push rule that will prevent commits with secrets from entering the repository. Just check the checkbox and GitLab will prevent common unsafe files such as &lt;code&gt;.pem&lt;&#x2F;code&gt; and &lt;code&gt;.key&lt;&#x2F;code&gt; from being committed.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;secrets.png&quot; alt=&quot;Prevent secrets in your repo in GitLab EE 8.12&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;GitLab Enterprise Edition already had a feature that allows you to block files based on a regular expression, which you can leverage to block anything that we didn&#x27;t think of. We also welcome suggestions and contributions to make this push rule even better.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Read more in the &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ee&#x2F;push_rules&#x2F;push_rules.html#prevent-pushing-secrets-to-the-repository&quot;&gt;documentation on Push rules&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;review-apps-experimental&quot;&gt;Review Apps (Experimental)&lt;&#x2F;h2&gt;

&lt;p&gt;We&#x27;ve made several additions to CI that, when combined, make some magic.&lt;&#x2F;p&gt;

&lt;p&gt;You can now use predefined CI variables as a name for environments. In addition, you can specify a URL for the environment configuration in your &lt;code&gt;.gitlab-ci.yml&lt;&#x2F;code&gt; file. Together, these features bring the first iteration of Review Apps.&lt;&#x2F;p&gt;

&lt;p&gt;Review apps are automatically-created environments that run your code for each branch. That means merge requests can be reviewed in a live-running environment. This was inspired by &lt;a href=&quot;https:&#x2F;&#x2F;devcenter.heroku.com&#x2F;articles&#x2F;github-integration-review-apps&quot;&gt;Heroku&#x27;s Review Apps&lt;&#x2F;a&gt; which itself was inspired by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rainforestapp&#x2F;fourchette&quot;&gt;Fourchette&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;These are small changes, but will make a huge impact on your development flow.
Reviewing anything from performance to interface changes becomes much easier
with a live environment.&lt;&#x2F;p&gt;

&lt;p&gt;Right now, Review Apps are labelled experimental, as the environments are not automatically destroyed when no longer necessary.&lt;&#x2F;p&gt;

&lt;p&gt;We&#x27;re &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-com&#x2F;blog-posts&#x2F;issues&#x2F;275&quot;&gt;working on a blog post&lt;&#x2F;a&gt; that will have an example.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;ssh-authentication-for-lfs&quot;&gt;SSH Authentication for LFS&lt;&#x2F;h2&gt;

&lt;p&gt;If you&#x27;re used to using SSH for your Git pushes, it was frustrating to
still have to enter credentials whenever using LFS.&lt;&#x2F;p&gt;

&lt;p&gt;GitLab will now leverage your SSH key when using LFS, meaning that if you&#x27;re
using LFS while connecting through SSH, you no longer have to manually
enter your credentials!&lt;&#x2F;p&gt;

&lt;p&gt;File transfers of LFS still happen over HTTP.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;toggle-lfs&quot;&gt;Toggle LFS&lt;&#x2F;h2&gt;

&lt;p&gt;Git LFS (Large File Storage) is great, but as the name implies, it can have
significant impact on your disk capacity. To make you feel a bit more secure about the LFS usage on your instance, you can now toggle LFS on instance, group, and project levels.&lt;&#x2F;p&gt;

&lt;p&gt;For instance, as a GitLab administrator, you can decide to turn off LFS for the entire instance, yet enable it for only a single group or project.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;limit-project-size-ee&quot;&gt;Limit Project Size (EE)&lt;&#x2F;h2&gt;

&lt;p&gt;As an alternative to restricting LFS, you might just want to prevent projects
from growing too large. You can now limit project size. This will take into account all repository data and LFS objects and stop any commits that will surpass that limit.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;repo_size.png&quot; alt=&quot;Limit project size in GitLab EE 8.12&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;You can set a global project limit and override that on group and project level, as an admin. This way, you can give particular projects extra space if necessary.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Read mote in the &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ee&#x2F;user&#x2F;admin_area&#x2F;settings&#x2F;account_and_limit_settings.html#repository-size-limit&quot;&gt;documentation about limiting the repository size&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;ldapactive-directory-improvements&quot;&gt;LDAP&#x2F;Active Directory Improvements&lt;&#x2F;h2&gt;

&lt;p&gt;This release contains several improvements to LDAP&#x2F;Active Directory support
for GitLab CE and EE:&lt;&#x2F;p&gt;

&lt;ul&gt;
  &lt;li&gt;CE&#x2F;EE - Request only the LDAP user&#x2F;group attributes that GitLab requires (CE &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6187&quot;&gt;!6187&lt;&#x2F;a&gt; and EE &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;712&quot;&gt;!712&lt;&#x2F;a&gt;), reducing the amount of data across the wire between GitLab and the LDAP&#x2F;Active Directory server. This also decreases the object memory footprint within GitLab.&lt;&#x2F;li&gt;
  &lt;li&gt;EE - Faster Active Directory nested group and ranged member (large group) retrieval (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;719&quot;&gt;!719&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;EE - Add &#x27;Sync now&#x27; option to group membership page when LDAP group links are present (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;704&quot;&gt;!704&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;recover-2fa-tokens-through-ssh&quot;&gt;Recover 2FA tokens through SSH&lt;&#x2F;h2&gt;

&lt;p&gt;You can now recover your 2FA security codes using SSH. This should make it
easier to recover your account, while still maintaining a level of security.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Read more in the &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;account&#x2F;&#x2F;two_factor_authentication.html#generate-new-recovery-codes-using-ssh&quot;&gt;documentation about recovering 2FA via SSH&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;filter-tags-by-name&quot;&gt;Filter Tags by Name&lt;&#x2F;h2&gt;

&lt;p&gt;Want to quickly find a tag? That&#x27;s much easier now with a handy little filter on top:&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;tag_filter.png&quot; alt=&quot;Filter tags by name in GitLab 8.12&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;api-additions&quot;&gt;API additions&lt;&#x2F;h2&gt;

&lt;p&gt;We&#x27;ve expanded our API on several points with GitLab 8.12:&lt;&#x2F;p&gt;

&lt;ul&gt;
  &lt;li&gt;Allow to set &lt;code&gt;request_access_enabled&lt;&#x2F;code&gt; for groups and projects using API&lt;&#x2F;li&gt;
  &lt;li&gt;Add &lt;code&gt;notification_settings&lt;&#x2F;code&gt; API calls&lt;&#x2F;li&gt;
  &lt;li&gt;Add a &lt;code&gt;BroadcastMessage&lt;&#x2F;code&gt; API&lt;&#x2F;li&gt;
  &lt;li&gt;You can now fork to a specific namespace through the API&lt;&#x2F;li&gt;
  &lt;li&gt;Allow to set enable&#x2F;disable access request for groups and projects.&lt;&#x2F;li&gt;
  &lt;li&gt;Add &lt;code&gt;web_url&lt;&#x2F;code&gt; field to issue, merge request, and snippet objects.  (community contribution)&lt;&#x2F;li&gt;
  &lt;li&gt;Expose &lt;code&gt;sha&lt;&#x2F;code&gt; and &lt;code&gt;merge_commit_sha&lt;&#x2F;code&gt; in merge request API.  (community contribution)&lt;&#x2F;li&gt;
  &lt;li&gt;Expose issue confidentiality flag.  (community contribution)&lt;&#x2F;li&gt;
  &lt;li&gt;Added &lt;code&gt;only_allow_merge_if_build_succeeds&lt;&#x2F;code&gt; project setting.  (community contribution)&lt;&#x2F;li&gt;
  &lt;li&gt;Add endpoint to lint your &lt;code&gt;.gitlab-ci.yml&lt;&#x2F;code&gt; file.  (community contribution)&lt;&#x2F;li&gt;
  &lt;li&gt;Add an API to list manual actions on Environments and Deployments&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;improved-github-importer&quot;&gt;Improved GitHub Importer&lt;&#x2F;h2&gt;

&lt;p&gt;Our GitHub importer keeps getting better, making it easier to migrate to
GitLab. With GitLab 8.12, the importer will also copy release notes over to
GitLab and now lets you choose the namespace you want your imported projects
to go into.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;gh_namespace.png&quot; alt=&quot;Improved GitHub importer in GitLab 8.12&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;This should make it easier to migrate if you already have existing projects
or prefer something different than GitLab&#x27;s way of importing your projects.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Read more in the &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;workflow&#x2F;importing&#x2F;import_projects_from_github.html&quot;&gt;documentation about importing your repositories from GitHub&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;bulk-update-merge-requests&quot;&gt;Bulk update Merge Requests&lt;&#x2F;h2&gt;

&lt;p&gt;You can now bulk update merge requests. This means you can set the status, assignee, milestone, label or subscription to multiple merge requests at once.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;bulk.gif&quot; alt=&quot;Bulk update Merge Requests in GitLab 8.12&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Managing merge-request-heavy project should be a lot easier with this!&lt;&#x2F;p&gt;

&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6226&quot;&gt;!6226&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;build-grouping&quot;&gt;Build Grouping&lt;&#x2F;h2&gt;

&lt;p&gt;If you have many similar builds, your pipeline graph becomes very long. We&#x27;ve made a small change to improve this: similar builds will now automatically group together.&lt;&#x2F;p&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;8_12&#x2F;build_grouping.png&quot; alt=&quot;Build grouping in GitLab 8.12&quot; class=&quot;shadow&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;h2 id=&quot;expanded-syntax-highlighting&quot;&gt;Expanded syntax highlighting&lt;&#x2F;h2&gt;

&lt;p&gt;By upgrading to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jneen&#x2F;rouge&quot;&gt;rouge&lt;&#x2F;a&gt; 2.0.6, we&#x27;ve added syntax highlighting for JSX, Prometheus, mxml, 1c, turtle&#x2F;trig, vhdl, and improved highlighting for Swift 3.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;sentry-integration-of-workhorse&quot;&gt;Sentry integration of Workhorse&lt;&#x2F;h2&gt;

&lt;p&gt;GitLab-Workhorse can now report application errors to Sentry.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-workhorse&#x2F;blob&#x2F;master&#x2F;README.md#error-tracking&quot;&gt;Read more in the GitLab-Workhorse docs&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h2 id=&quot;gitlab-runner-16&quot;&gt;GitLab Runner 1.6&lt;&#x2F;h2&gt;

&lt;p&gt;We are also releasing GitLab Runner 1.6 today. Some highlights:&lt;&#x2F;p&gt;

&lt;ul&gt;
  &lt;li&gt;Kubernetes executor (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;30&quot;&gt;!30&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;277&quot;&gt;!277&lt;&#x2F;a&gt;), this allows Kubernetes to automatically scale the number of CI runners. All your builds will be processed immediately without having idle machines running when it&#x27;s not busy.&lt;&#x2F;li&gt;
  &lt;li&gt;Autocompletion of &lt;em&gt;&#x2F;ci&lt;&#x2F;em&gt; in GitLab URL while registering the Runner (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;289&quot;&gt;!289&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;Configuration options for specifying scripts executed before clone&#x2F;fetch is done and before build script is executed (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;106&quot;&gt;!106&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;Improvements in passing CA certificates to builds (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;299&quot;&gt;!299&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;Improvement in disabling recursive submodules fetching&#x2F;cloning (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;314&quot;&gt;!314&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;Improve docker machine logging (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;234&quot;&gt;!234&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;Add possibility to specify a list of volumes to inherit from another container (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;236&quot;&gt;!236&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;Generate a &lt;code&gt;BuildError&lt;&#x2F;code&gt; instead of &lt;code&gt;SystemError&lt;&#x2F;code&gt; when Docker&#x2F;Kubernetes image is missing (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;merge_requests&#x2F;295&quot;&gt;!295&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;p&gt;To see the full list of all changes please read &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ci-multi-runner&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md&quot;&gt;the Runner&#x27;s CHANGELOG file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;gitlab-mattermost-34&quot;&gt;GitLab Mattermost 3.4&lt;&#x2F;h2&gt;

&lt;p&gt;GitLab 8.12 includes &lt;a href=&quot;https:&#x2F;&#x2F;about.mattermost.com&#x2F;mattermost-3-4&#x2F;&quot;&gt;Mattermost 3.4&lt;&#x2F;a&gt;,
an &lt;a href=&quot;https:&#x2F;&#x2F;about.mattermost.com&quot;&gt;open source Slack-alternative&lt;&#x2F;a&gt; whose newest
release offers 700 integrations with full Markdown support via Zapier,
simplified bot and 3rd party authentication via OAuth2, and community
integrations with Gitter, Heroku, Pivotal Tracker, Chef, Ansible and Yunohost.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;performance-improvements&quot;&gt;Performance Improvements&lt;&#x2F;h2&gt;

&lt;ul&gt;
  &lt;li&gt;Sidekiq processes now use a connection pool when using Rails&#x27; caching
mechanism: &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6429&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;The &lt;code&gt;oj&lt;&#x2F;code&gt; Gem is now used for faster JSON processing: &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6395&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;The column &lt;code&gt;projects.last_activity_at&lt;&#x2F;code&gt; is only updated once an hour to reduce
database load: &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6391&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;The column &lt;code&gt;projects.pushes_since_gc&lt;&#x2F;code&gt; has been moved from the database to
Redis to reduce database load: &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6326&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;Protected branch checks are not performed when no branch name is known,
reducing time spent in this process: &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6317&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;Checking if one can resolve a note is only done when notes can be resolved in
the first place: &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6298&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;The &lt;code&gt;ci_runners&lt;&#x2F;code&gt; table is now updated less frequently to reduce database load:
&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6126&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;The number of database queries used for the &quot;Builds&quot; tab for
commits&#x2F;merge requests has been reduced: &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;5957&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
  &lt;li&gt;The payload size for the contributions calendar has been reduced:
&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;5784&quot;&gt;merge request&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;build-permissions-changes&quot;&gt;Build permissions changes&lt;&#x2F;h2&gt;

&lt;p&gt;GitLab 8.12 brings very important changes to build permissions.&lt;&#x2F;p&gt;

&lt;p&gt;We decided that build permissions should be tightly integrated with the
permissions of the user triggering a build for the following reasons:&lt;&#x2F;p&gt;

&lt;ul&gt;
  &lt;li&gt;We already have a permission system in place: group and project membership of
users.&lt;&#x2F;li&gt;
  &lt;li&gt;We already know who is triggering a build (using git push, using web,
executing triggers).&lt;&#x2F;li&gt;
  &lt;li&gt;We already know what that user is allowed to do.&lt;&#x2F;li&gt;
  &lt;li&gt;We use the user&#x27;s permissions for builds that are triggered by pusher.&lt;&#x2F;li&gt;
  &lt;li&gt;It is simple and convenient that your build can access everything that you
have access to.&lt;&#x2F;li&gt;
  &lt;li&gt;We can issue a short-lived unique tokens, granting access for the duration of
the build.&lt;&#x2F;li&gt;
  &lt;li&gt;It fits very well into our philosophy of having everything integrated.&lt;&#x2F;li&gt;
  &lt;li&gt;This provides a lot of possibilities to further enforce user permissions, such
as allowing only specific users to access runners, secure variables and
environments.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;p&gt;Now, any build that was triggered by the user is also signed with his
permissions. When a user does &lt;code&gt;git push&lt;&#x2F;code&gt; or modifies files through the UI (&lt;strong&gt;the
pusher&lt;&#x2F;strong&gt;), we will create a new Pipeline. The Pipeline will be owned by the
pusher. So builds created in this pipeline will have the permissions of &lt;strong&gt;the
pusher&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;This allows us to make it easy to evaluate access for all dependent projects and
container images that the pusher would have access too. The permission is
granted only for the duration of the build. The access is revoked after the
build is finished.&lt;&#x2F;p&gt;

&lt;p&gt;For detailed information about the build permissions and the changes it brings
please see &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;permissions.html#build-permissions&quot;&gt;our documentation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;For the history and reasoning behind this change, you can read the full
discussion in &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;18994&quot;&gt;the issue&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;submodules-in-ci&quot;&gt;Submodules in CI&lt;&#x2F;h2&gt;

&lt;p&gt;Submodules were one of the reasons we redesigned the build permissions.
Now using Submodules in your CI builds is easy.&lt;&#x2F;p&gt;

&lt;p&gt;To use submodules you have to use a &lt;code&gt;.gitmodules&lt;&#x2F;code&gt; file, which looks something
like this:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight ini&quot;&gt;&lt;code&gt;&lt;span class=&quot;nn&quot;&gt;[submodule &quot;tools&quot;]&lt;&#x2F;span&gt;
    &lt;span class=&quot;py&quot;&gt;path&lt;&#x2F;span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;tools&lt;&#x2F;span&gt;
    &lt;span class=&quot;py&quot;&gt;url&lt;&#x2F;span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;git@gitlab.com&#x2F;group&#x2F;tools.git&lt;&#x2F;span&gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;To use the new build permissions for your submodules you have to convert your
URLs to be relative:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight ini&quot;&gt;&lt;code&gt;&lt;span class=&quot;nn&quot;&gt;[submodule &quot;tools&quot;]&lt;&#x2F;span&gt;
    &lt;span class=&quot;py&quot;&gt;path&lt;&#x2F;span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;tools&lt;&#x2F;span&gt;
    &lt;span class=&quot;py&quot;&gt;url&lt;&#x2F;span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;..&#x2F;..&#x2F;group&#x2F;tools.git&lt;&#x2F;span&gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This will instruct Git to use the same credentials as it would for checking out
your project sources.&lt;&#x2F;p&gt;

&lt;p&gt;The last step is to tell GitLab CI to fetch submodules:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;before_script&lt;&#x2F;span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;&#x2F;span&gt;
  &lt;span class=&quot;pi&quot;&gt;-&lt;&#x2F;span&gt; &lt;span class=&quot;s&quot;&gt;git submodule update --init --recursive&lt;&#x2F;span&gt;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;You can read more about support for submodules in our &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;project&#x2F;new_ci_build_permissions_model.html#git-submodules&quot;&gt;documentation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;other-changes&quot;&gt;Other changes&lt;&#x2F;h2&gt;

&lt;p&gt;This release has more improvements, including security fixes. Please check out
&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md&quot;&gt;the Changelog&lt;&#x2F;a&gt;
to see the all named changes.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This release requires downtime due to foreign keys being added, column types
being changed, and various columns being removed from some tables. The whole
migration process could take up to 30 minutes for large instances. Smaller instances should expect a downtime of about 10-15 minutes.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;ee-only-elasticsearch-re-indexing&quot;&gt;(EE Only) Elasticsearch re-indexing&lt;&#x2F;h3&gt;

&lt;p&gt;We changed the structure of Elasticsearch index for repositories, making use of Parent Child relationships. This requires a total rebuild of the ES index. Also
Elasticsearch 2.3.x contains a bug that causes to fail all queries that use highlight feature and Parent Child relationship at once, so we recommend to use the version 2.4 and newer. After upgrading to GitLab 8.12, you will need to remove the old index and rebuild new index:&lt;&#x2F;p&gt;

&lt;p&gt;To remove the old index, call to Elasticsearch:&lt;&#x2F;p&gt;

&lt;pre class=&quot;highlight plaintext&quot;&gt;&lt;code&gt;curl -XDELETE &#x27;http:&#x2F;&#x2F;localhost:9200&#x2F;gitlab-production&#x2F;&#x27;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Then rebuild new indexes as described in &lt;a href=&quot;http:&#x2F;&#x2F;docs.gitlab.com&#x2F;ee&#x2F;integration&#x2F;elasticsearch.html#add-gitlabs-data-to-the-elasticsearch-index&quot;&gt;Elasticsearch integration&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;

&lt;h3 id=&quot;ruby-update&quot;&gt;Ruby Update&lt;&#x2F;h3&gt;

&lt;p&gt;In our last release blog post we mentioned we&#x27;d be dropping Ruby 2.1.x support in GitLab 8.13, we no longer plan to stop supporting Ruby 2.1.x in
the near future.&lt;&#x2F;p&gt;

&lt;p&gt;We still recommend you upgrade to Ruby 2.3 if you&#x27;re running a source
installation, as this is the same version that ships with our Omnibus package
now.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;expanded-usage-data-ping-ee&quot;&gt;Expanded usage data ping (EE)&lt;&#x2F;h3&gt;

&lt;p&gt;In order to better understand the usage of GitLab by our customers,
GitLab 8.12 EE now sends additional data along with its usage ping.&lt;&#x2F;p&gt;

&lt;p&gt;No information about the nature of the data, such as project names, comments or
other content is transmitted. You can view the exact data that is sent in
the admin settings, where this feature can also be disabled entirely.&lt;&#x2F;p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;735&quot;&gt;See also the implementation in the merge request&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;

&lt;h3 id=&quot;gitlab-workhorse-secret-key&quot;&gt;GitLab-Workhorse Secret Key&lt;&#x2F;h3&gt;

&lt;p&gt;GitLab-Workhorse now uses a secret key to sign certain messages sent
to the GitLab Rails application. For now this is mostly a
configuration sanity check; in future releases we want to add features
to GitLab-Workhorse that require this secret key to establish trust.&lt;&#x2F;p&gt;

&lt;p&gt;If you use our Omnibus packages, or if you installed GitLab from
source with our official init.d script, then this secret key will be
generated and picked up automatically for you. If you use a custom
init.d script or if you use packages not created by GitLab Inc. then
you may have to set the &lt;code&gt;-secretPath&lt;&#x2F;code&gt; option on GitLab-Workhorse.&lt;&#x2F;p&gt;

&lt;h3 id=&quot;note&quot;&gt;Note&lt;&#x2F;h3&gt;

&lt;p&gt;We assume you are upgrading from the latest version. If not, then also consult the upgrade barometers of any intermediate versions you are skipping.
If you are upgrading from a GitLab version prior to 8.0 &lt;em&gt;and&lt;&#x2F;em&gt; you have CI enabled, you have to upgrade to GitLab 8.0 &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2015&#x2F;09&#x2F;22&#x2F;gitlab-8-0-released&#x2F;&quot;&gt;first&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;hr &#x2F;&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;&#x2F;h2&gt;

&lt;p&gt;If you are setting up a new GitLab installation please see the
&lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;installation&#x2F;&quot;&gt;download GitLab page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;Check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;The mentioned EE only features and things like LDAP group support can be found in GitLab Enterprise Edition.
For a complete overview please have a look at the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;feature list of GitLab EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a
&lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself?
A subscription also entitles you to our upgrade and installation services.&lt;&#x2F;p&gt;

&lt;hr &#x2F;&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;8_12&#x2F;header.jpg&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>Feature Highlight: Cycle Analytics</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/21/cycle-analytics-feature-highlight/"/>
    <id>https://about.gitlab.com/2016/09/21/cycle-analytics-feature-highlight/</id>
    <published>2016-09-21T10:00:00+00:00</published>
    <updated>2016-09-21T10:00:00+00:00</updated>
    <author>
      <name>Amara Nwaigwe</name>
    </author>
    <content type="html">
&lt;p&gt;On September 22nd, we will release &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;&quot;&gt;GitLab 8.12&lt;&#x2F;a&gt; with &lt;a href=&quot;&#x2F;solutions&#x2F;cycle-analytics&#x2F;&quot;&gt;Cycle Analytics&lt;&#x2F;a&gt;. Cycle Analytics tells you how long
it takes your team to go &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2016&#x2F;08&#x2F;05&#x2F;continuous-integration-delivery-and-deployment-with-gitlab&#x2F;#from-idea-to-production-with-gitlab&quot;&gt;from idea to production&lt;&#x2F;a&gt; on each of their projects.&lt;&#x2F;p&gt;

&lt;p&gt;Few teams can answer how long
their software projects take and fewer can answer how long each stage in the process takes. Without this information,
you do your best to estimate the time or level of effort that it will take to get from an idea to customer-ready code.&lt;&#x2F;p&gt;

&lt;p&gt;Unfortunately, most teams are flying blind on their estimates using past experiences and best
guesses to offer a semblance of how long it’ll take to complete a project. It’s no wonder
&lt;a href=&quot;http:&#x2F;&#x2F;www.innoarchitech.com&#x2F;why-software-development-time-estimation-does-not-work-alternative-approaches&#x2F;&quot;&gt;why estimates are often incorrect&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;We built Cycle Analytics to stop blind estimation and instead show you
real data on your team’s velocity. You&#x27;ll see how long the total process takes as well as how much time you spend in each stage.&lt;&#x2F;p&gt;



&lt;h2 id=&quot;why-cycle-analytics-recap&quot;&gt;Why Cycle Analytics Recap&lt;&#x2F;h2&gt;

&lt;p&gt;Last week, we wrote a &quot;feature preview&quot; on &lt;a href=&quot;&#x2F;2016&#x2F;09&#x2F;16&#x2F;feature-preview-introducing-cycle-analytics&#x2F;&quot;&gt;what Cycle Analytics is and how it can help your team&lt;&#x2F;a&gt;. The TL;DR takeaway from
that post was: &lt;strong&gt;reducing cycle time is a competitive advantage&lt;&#x2F;strong&gt;. Cycle Analytics helps you uncover how long it actually takes to complete your development process.
A shared view of the team&#x27;s velocity is the first stage to improving it.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;measuring-the-modern-development-lifecycle&quot;&gt;Measuring the Modern Development Lifecycle&lt;&#x2F;h2&gt;

&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;blogimages&#x2F;idea-to-production-10-steps.png&quot; alt=&quot;FROM IDEA TO PRODUCTION IN 10 STEPS&quot; &#x2F;&gt;&lt;&#x2F;p&gt;

&lt;p&gt;Cycle Analytics tracks the &lt;a href=&quot;https:&#x2F;&#x2F;www.mathsisfun.com&#x2F;definitions&#x2F;median.html&quot;&gt;median&lt;&#x2F;a&gt; time it takes your team to complete every stage in the modern development process.&lt;&#x2F;p&gt;

&lt;div class=&quot;panel panel-gitlab-purple&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Cycle Analytics Stages&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;p&gt;- &lt;strong&gt;Issue&lt;&#x2F;strong&gt; (Tracker)
  - Median time from creating an issue to assigning the issue to a milestone or adding the issue to a list on your Issue Board&lt;&#x2F;p&gt;

    &lt;p&gt;- &lt;strong&gt;Plan&lt;&#x2F;strong&gt; (Board)
  - Median time from giving an issue a milestone or adding it to an Issue Board list to the pushing first commit&lt;&#x2F;p&gt;

    &lt;p&gt;- &lt;strong&gt;Code&lt;&#x2F;strong&gt; (IDE)
  - Median time from the first commit to creating the merge request&lt;&#x2F;p&gt;

    &lt;p&gt;- &lt;strong&gt;Test&lt;&#x2F;strong&gt; (CI)
  - Median of the time CI takes to run every build for the related merge request&lt;&#x2F;p&gt;

    &lt;p&gt;- &lt;strong&gt;Review&lt;&#x2F;strong&gt; (Merge Request)
  - Median time from creating the merge request to merging it&lt;&#x2F;p&gt;

    &lt;p&gt;- &lt;strong&gt;Staging&lt;&#x2F;strong&gt; (Continuous Deployment)
  - Median time from MR merge until deploy to production&lt;&#x2F;p&gt;

    &lt;p&gt;- &lt;strong&gt;Production&lt;&#x2F;strong&gt; (Total)
  - The time it takes between creating an issue and deploying the code to production&lt;&#x2F;p&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Note:&lt;&#x2F;strong&gt; This the first iteration of Cycle Analytics. As you know, we ship the smallest thing to provide initial value and then we learn from your feedback and continue to improve the feature over time. We have ideas about what we will build next for Cycle Analytics but we&#x27;d love to hear your thoughts. You can follow and contribute to the discussion on &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;20975&quot;&gt;this issue&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;cycle-analytics-follows-gitlab-flow&quot;&gt;Cycle Analytics Follows GitLab Flow&lt;&#x2F;h2&gt;

&lt;p&gt;In recent months, we&#x27;ve talked a lot about &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;direction&#x2F;#vision&quot;&gt;our vision&lt;&#x2F;a&gt; of being an integrated set of tools for the full software development lifecycle. Cycle Analytics is another testament to the benefits of having an integrated toolset.
The reason we are able to measure cycle time is because GitLab stores all of the data around your development efforts, and the associated metrics, in one central data store. Now, we&#x27;re able to surface that data through Cycle Analytics.
However, it&#x27;s important to note that Cycle Analytics tracks cycle time based on the &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;ee&#x2F;workflow&#x2F;gitlab_flow.html&quot;&gt;GitLab Flow&lt;&#x2F;a&gt;. Therefore, there are some noteworthy dependencies.&lt;&#x2F;p&gt;

&lt;div class=&quot;panel panel-gitlab&quot;&gt;
  &lt;p class=&quot;panel-heading&quot;&gt;&lt;strong&gt;Cycle Analytics &amp;amp; GitLab Flow&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
  &lt;div class=&quot;panel-body&quot;&gt;
    &lt;ul&gt;
      &lt;li&gt;Cycle Analytics is a measure of how long it takes the team to complete the cycle. Therefore, we only track cycle time on issues that have been &lt;strong&gt;deployed to production.&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
      &lt;li&gt;Cycle Analytics uses your GitLab CI configuration file to understand which &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ee&#x2F;ci&#x2F;environments.html#sts=Introduction&quot;&gt;&lt;code&gt;environment&lt;&#x2F;code&gt; is set to &lt;code&gt;production&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;. For Cycle Analytics to track your cycle time, you&#x27;ll need to &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;ci&#x2F;quick_start&#x2F;README.html&quot;&gt;configure GitLab CI&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
      &lt;li&gt;The &lt;strong&gt;Plan&lt;&#x2F;strong&gt; stage measures the time from assigning an issue to a milestone or moving it to a list on the Issue Board to pushing the first commit. For Cycle Analytics to track this time, your commit message must include the &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;project&#x2F;issues&#x2F;automatic_issue_closing.html&quot;&gt;issue closing pattern&lt;&#x2F;a&gt; like &lt;code&gt;Closes #xxx&lt;&#x2F;code&gt;, where &lt;code&gt;xxx&lt;&#x2F;code&gt; is the issue number related to this commit.&lt;&#x2F;li&gt;
      &lt;li&gt;The &lt;strong&gt;Code&lt;&#x2F;strong&gt; stage measures the time between pushing the first commit and creating a merge request (MR) related to that commit. For Cycle Analytics to track this, you’ll need to add an &lt;a href=&quot;https:&#x2F;&#x2F;docs.gitlab.com&#x2F;ce&#x2F;user&#x2F;project&#x2F;issues&#x2F;automatic_issue_closing.html&quot;&gt;issue closing pattern&lt;&#x2F;a&gt; like &lt;code&gt;Closes #xxx&lt;&#x2F;code&gt; to the description of the MR.&lt;&#x2F;li&gt;
    &lt;&#x2F;ul&gt;
  &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;

&lt;p&gt;We recognize that every team does not follow the same flow. And while GitLab is a flexible product, we are also building an opinionated product that’s aimed at helping you move faster from idea to production. Our CEO, Sid Sijbrandij, shared his thoughts on &lt;a href=&quot;&#x2F;2016&#x2F;07&#x2F;27&#x2F;the-11-rules-of-gitlab-flow&#x2F;&quot;&gt;GitLab Workflow best practices&lt;&#x2F;a&gt;. We hope that they help simplify your workflow within GitLab.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;getting-started&quot;&gt;Getting Started&lt;&#x2F;h2&gt;

&lt;p&gt;On September 22nd, &lt;a href=&quot;&#x2F;solutions&#x2F;cycle-analytics&#x2F;&quot;&gt;Cycle Analytics&lt;&#x2F;a&gt; will be available in GitLab.com, GitLab Community Edition, and GitLab Enterprise Edition. Getting started is the same in all three products. All you have to do is navigate to your Project’s &lt;strong&gt;Pipelines&lt;&#x2F;strong&gt; tab and then select &lt;strong&gt;Cycle Analytics&lt;&#x2F;strong&gt; to see your project&#x27;s dashboard.&lt;&#x2F;p&gt;

&lt;p&gt;Keep in mind that if you&#x27;re working in a new project and you haven&#x27;t deployed anything to production then you won&#x27;t see any data on your Cycle Analytics dashboard.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;join-our-release-webcast&quot;&gt;Join Our Release Webcast&lt;&#x2F;h2&gt;

&lt;p&gt;Join us on September 29th for our Cycle Analytics and &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;2016&#x2F;09&#x2F;22&#x2F;gitlab-8-12-released&#x2F;&quot;&gt;GitLab 8.12&lt;&#x2F;a&gt; Release Webcast. We&#x27;ll demo some exciting new features and hold a Q&amp;amp;A. &lt;a href=&quot;https:&#x2F;&#x2F;Page.gitlab.com&#x2F;20160922_CycleAnalyticsWebcast.html&quot;&gt;Register here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;!-- identifiers --&gt;

&lt;!-- custom styles --&gt;

&lt;style&gt;
.panel-gitlab {
  border-color: rgba(252,163,38,.3);
}
.panel-gitlab &gt; .panel-heading {
  color: rgb(226,67,41);
  background-color: rgba(252,163,38,.3);
  border-color: rgba(252,163,38,.3);
}
.panel-gitlab-purple {
  border-color: rgba(107,79,187,.3);
}
.panel-gitlab-purple &gt; .panel-heading {
  color: rgb(107,79,187);
  background-color: rgba(107,79,187,.3);
  border-color: rgba(107,79,187,.3);
}
&lt;&#x2F;style&gt;

&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;blogimages&#x2F;cycle-analytics-feature-highlight-cover.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
  <entry>
    <title>GitLab 8.11.7, 8.10.10 and 8.9.10 released</title>
    <link rel="alternate" href="https://about.gitlab.com/2016/09/21/gitlab-8-11-7-released/"/>
    <id>https://about.gitlab.com/2016/09/21/gitlab-8-11-7-released/</id>
    <published>2016-09-21T09:30:00+00:00</published>
    <updated>2016-09-21T09:30:00+00:00</updated>
    <author>
      <name>Rémy Coutable</name>
    </author>
    <content type="html">
&lt;p&gt;Today we are releasing versions 8.11.7, 8.10.10 and 8.9.10 for GitLab Community
Edition (CE) and Enterprise Edition (EE).&lt;&#x2F;p&gt;

&lt;p&gt;Version 8.11.7 contains a security fix for GitLab, plus fixes for minor
regressions. Version 8.10.10 and 8.9.10 only contain the security fix.&lt;&#x2F;p&gt;

&lt;p&gt;Please read on for more details.&lt;&#x2F;p&gt;



&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Avoid conflict with admin labels when importing GitHub labels. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6158&quot;&gt;!6158&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Restores &lt;code&gt;fieldName&lt;&#x2F;code&gt; to allow only string values in &lt;code&gt;gl_dropdown.js&lt;&#x2F;code&gt;. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;merge_requests&#x2F;6234&quot;&gt;!6234&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CE&#x2F;EE:&lt;&#x2F;strong&gt; Allow the Rails cookie to be used for API authentication. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;18302&quot;&gt;#18302&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
  &lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Refactor Protected Branches dropdown. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;687&quot;&gt;!687&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
  &lt;li&gt;&lt;strong&gt;EE:&lt;&#x2F;strong&gt; Fix mirrored projects allowing empty import urls. (&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ee&#x2F;merge_requests&#x2F;700&quot;&gt;!700&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;

&lt;h2 id=&quot;information-disclosure-through-gonprivatetoken-javascript-variable&quot;&gt;Information disclosure through &lt;code&gt;gon.private_token&lt;&#x2F;code&gt; JavaScript variable&lt;&#x2F;h2&gt;

&lt;p&gt;The private user token was available through the &lt;code&gt;gon.private_token&lt;&#x2F;code&gt; JavaScript
variable, leading to a potential security risk since it could be stolen through
XSS or other attacks.
See &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-ce&#x2F;issues&#x2F;18302&quot;&gt;the issue&lt;&#x2F;a&gt; for more information.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;upgrade-barometer&quot;&gt;Upgrade barometer&lt;&#x2F;h2&gt;

&lt;p&gt;This version has no migrations and should not require any downtime.&lt;&#x2F;p&gt;

&lt;p&gt;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 &lt;a href=&quot;http:&#x2F;&#x2F;doc.gitlab.com&#x2F;omnibus&#x2F;update&#x2F;README.html&quot;&gt;&lt;code&gt;&#x2F;etc&#x2F;gitlab&#x2F;skip-auto-migrations&lt;&#x2F;code&gt;
file&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;updating&quot;&gt;Updating&lt;&#x2F;h2&gt;

&lt;p&gt;To update, check out our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;update&#x2F;&quot;&gt;update page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;sign-up-for-security-notices&quot;&gt;Sign up for security notices&lt;&#x2F;h2&gt;

&lt;p&gt;Want to be alerted to new security patches as soon as they&#x27;re available? Sign up
for our &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;contact&#x2F;&quot;&gt;Security Newsletter&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;h2 id=&quot;enterprise-edition&quot;&gt;Enterprise Edition&lt;&#x2F;h2&gt;

&lt;p&gt;Interested in GitLab Enterprise Edition? Check out the &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;features&#x2F;#enterprise&quot;&gt;features exclusive to
EE&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;

&lt;p&gt;Access to GitLab Enterprise Edition is included with a &lt;a href=&quot;https:&#x2F;&#x2F;about.gitlab.com&#x2F;pricing&#x2F;&quot;&gt;subscription&lt;&#x2F;a&gt;.
No time to upgrade GitLab yourself? Subscribers receive upgrade and installation
services.&lt;&#x2F;p&gt;
&lt;img src=&#x27;https:&#x2F;&#x2F;about.gitlab.com&#x2F;images&#x2F;default-blog-image.png&#x27; class=&#x27;webfeedsFeaturedVisual&#x27; style=&#x27;display: none;&#x27; &#x2F;&gt;    </content>
  </entry>
</feed>
