summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2018-04-04 16:43:50 +0900
committerShinya Maeda <shinya@gitlab.com>2018-04-04 16:43:50 +0900
commit367bf4087f487cabe2018d2738d8116c9b664fbd (patch)
tree243ef780270831be531baee0fa2f79f25736245f
parent19af0df9409f02e8b324ece537a00e9494e2864b (diff)
downloadgitlab-ce-feature/sm/4607-live-trace-ce.tar.gz
-rw-r--r--spec/fixtures/trace/sample_trace1244
-rw-r--r--spec/fixtures/trace/sample_trace_with_byte63
-rw-r--r--spec/support/chunked_io/chunked_io_helpers.rb2
3 files changed, 1247 insertions, 62 deletions
diff --git a/spec/fixtures/trace/sample_trace b/spec/fixtures/trace/sample_trace
index c78d2d671e4..55fcb9d2756 100644
--- a/spec/fixtures/trace/sample_trace
+++ b/spec/fixtures/trace/sample_trace
@@ -1,63 +1,1185 @@
-Running with gitlab-runner 10.0.2 (a9a76a50)
- on ShinyaMaedas-MacBook-Pro.local (e1e5600d)
-Using Docker executor with image ruby:2.1 ...
-Using docker image sha256:35c04f14f9926d1c8c68927cb43f69435fda36ecbaa3ca6f92218205363a2b99 for predefined container...
-Pulling docker image ruby:2.1 ...
-Using docker image ruby:2.1 ID=sha256:223d1eaa9523fa64e78f5a92b701c9c11cbc507f0ff62246dbbacdae395ffea3 for build container...
-Running on runner-e1e5600d-project-64-concurrent-0 via ShinyaMaedasMBP...
-Fetching changes...
-Removing index.html
-HEAD is now at 59a8e85 Update .gitlab-ci.yml
-Checking out 59a8e85d as master...
+Running with gitlab-runner 10.4.0 (857480b6)
+ on docker-auto-scale-com (9a6801bd)
+Using Docker executor with image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.6-golang-1.9-git-2.14-chrome-63.0-node-8.x-yarn-1.2-postgresql-9.6 ...
+Starting service postgres:9.2 ...
+Pulling docker image postgres:9.2 ...
+Using docker image postgres:9.2 ID=sha256:18cdbca56093c841d28e629eb8acd4224afe0aa4c57c839351fc181888b8a470 for postgres service...
+Starting service redis:alpine ...
+Pulling docker image redis:alpine ...
+Using docker image redis:alpine ID=sha256:cb1ec54b370d4a91dff57d00f91fd880dc710160a58440adaa133e0f84ae999d for redis service...
+Waiting for services to be up and running...
+Using docker image sha256:3006a02a5a6f0a116358a13bbc46ee46fb2471175efd5b7f9b1c22345ec2a8e9 for predefined container...
+Pulling docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.6-golang-1.9-git-2.14-chrome-63.0-node-8.x-yarn-1.2-postgresql-9.6 ...
+Using docker image dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.6-golang-1.9-git-2.14-chrome-63.0-node-8.x-yarn-1.2-postgresql-9.6 ID=sha256:1f59be408f12738509ffe4177d65e9de6391f32461de83d9d45f58517b30af99 for build container...
+section_start:1517486886:prepare_script
+Running on runner-9a6801bd-project-13083-concurrent-0 via runner-9a6801bd-gsrm-1517484168-a8449153...
+section_end:1517486887:prepare_script
+section_start:1517486887:get_sources
+Fetching changes for 42624-gitaly-bundle-isolation-not-working-in-ci with git depth set to 20...
+Removing .gitlab_shell_secret
+Removing .gitlab_workhorse_secret
+Removing .yarn-cache/
+Removing config/database.yml
+Removing config/gitlab.yml
+Removing config/redis.cache.yml
+Removing config/redis.queues.yml
+Removing config/redis.shared_state.yml
+Removing config/resque.yml
+Removing config/secrets.yml
+Removing coverage/
+Removing knapsack/
+Removing log/api_json.log
+Removing log/application.log
+Removing log/gitaly-test.log
+Removing log/githost.log
+Removing log/grpc.log
+Removing log/test_json.log
+Removing node_modules/
+Removing public/assets/
+Removing rspec_flaky/
+Removing shared/tmp/
+Removing tmp/tests/
+Removing vendor/ruby/
+HEAD is now at 4cea24f Converted todos.js to axios
+From https://gitlab.com/gitlab-org/gitlab-ce
+ * [new branch] 42624-gitaly-bundle-isolation-not-working-in-ci -> origin/42624-gitaly-bundle-isolation-not-working-in-ci
+Checking out f42a5e24 as 42624-gitaly-bundle-isolation-not-working-in-ci...
Skipping Git submodules setup
-$ wget https://about.gitlab.com/
-converted 'https://about.gitlab.com/' (ANSI_X3.4-1968) -> 'https://about.gitlab.com/' (UTF-8)
---2018-04-03 06:46:12-- https://about.gitlab.com/
-Resolving about.gitlab.com (about.gitlab.com)... 40.79.82.214
-Connecting to about.gitlab.com (about.gitlab.com)|40.79.82.214|:443... connected.
-HTTP request sent, awaiting response... 200 OK
-Length: 69778 (68K) [text/html]
-Saving to: 'index.html'
-
- 0K .......... .......... .......... .......... .......... 73% 195K 0s
- 50K .......... ........ 100% 37.5M=0.3s
-
-2018-04-03 06:46:14 (265 KB/s) - 'index.html' saved [69778/69778]
-
-$ cat index.html
-<!DOCTYPE html> <html class=html--no-js lang=en> <head> <meta charset=UTF-8 /> <meta content='width=device-width, initial-scale=1.0' name=viewport /> <script>document.documentElement.className = 'html--js'</script> <script src='https://cdn.optimizely.com/js/7718922374.js'></script> <script type='application/ld+json'>{"@context":"http://schema.org","@type":"Organization","name":"GitLab","legalName":"GitLab Inc.","url":"http://about.gitlab.com","logo":"https://gitlab.com/gitlab-com/gitlab-artwork/raw/master/logo/logo.png","foundingDate":"2011","founders":[{"@type":"Person","name":"Sid Sijbrandij"},{"@type":"Person","name":"Dmitriy Zaporozhets"}],"address":{"@type":"PostalAddress","streetAddress":"1233 Howard St 2F","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94103","addressCountry":"USA"},"sameAs":["https://www.facebook.com/gitlab","https://twitter.com/gitlab","https://www.linkedin.com/company/gitlab-com","https://plus.google.com/107491817347842790515/","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg"]}</script> <title> The only single product for the complete DevOps lifecycle - GitLab | GitLab </title> <meta content='“GitLab is the leading integrated product for modern software development. Connecting issue management, version control, code review, CI, CD, and monitoring into a single, easy-to-install application, we help teams go faster from planning to monitoring.”' name=description /> <meta content='“GitLab is the leading integrated product for modern software development. Connecting issue management, version control, code review, CI, CD, and monitoring into a single, easy-to-install application, we help teams go faster from planning to monitoring.”' name='twitter:description'/> <meta content='“GitLab is the leading integrated product for modern software development. Connecting issue management, version control, code review, CI, CD, and monitoring into a single, easy-to-install application, we help teams go faster from planning to monitoring.”' name='og:description'/> <meta content=GitLab property='og:site_name'/> <meta content='The only single product for the complete DevOps lifecycle - GitLab' property='og:title'/> <meta content=article property='og:type'/> <meta content='https://about.gitlab.com/' property='og:url'/> <meta content='https://about.gitlab.com/images/blogimages/gitlab-blog-cover.png' property='og:image'/> <meta content='https://about.gitlab.com/images/blogimages/gitlab-blog-cover.png' name='twitter:image'/> <meta content=summary_large_image name='twitter:card'/> <meta content='@GitLab' name='twitter:site'/> <meta content='The only single product for the complete DevOps lifecycle - GitLab' name='twitter:title'/> <meta content='@GitLab' name='twitter:creator'/> <link href='/atom.xml' rel=alternate title=Blog type='application/atom+xml'/> <link href='/ico/favicon.ico' rel='shortcut icon'/> <link href='/ico/apple-touch-icon-57x57.png' rel=apple-touch-icon sizes=57x57 /> <link href='/ico/apple-touch-icon-114x114.png' rel=apple-touch-icon sizes=114x114 /> <link href='/ico/apple-touch-icon-72x72.png' rel=apple-touch-icon sizes=72x72 /> <link href='/ico/apple-touch-icon-144x144.png' rel=apple-touch-icon sizes=144x144 /> <link href='/ico/apple-touch-icon-60x60.png' rel=apple-touch-icon sizes=60x60 /> <link href='/ico/apple-touch-icon-120x120.png' rel=apple-touch-icon sizes=120x120 /> <link href='/ico/apple-touch-icon-76x76.png' rel=apple-touch-icon sizes=76x76 /> <link href='/ico/apple-touch-icon-152x152.png' rel=apple-touch-icon sizes=152x152 /> <link href='/ico/apple-touch-icon-180x180.png' rel=apple-touch-icon sizes=180x180 /> <link href='/ico/favicon-192x192.png' rel=icon sizes=192x192 type='image/png'/> <link href='/ico/favicon-160x160.png' rel=icon sizes=160x160 type='image/png'/> <link href='/ico/favicon-96x96.png' rel=icon sizes=96x96 type='image/png'/> <link href='/ico/favicon-16x16.png' rel=icon sizes=16x16 type='image/png'/> <link href='/ico/favicon-32x32.png' rel=icon sizes=32x32 type='image/png'/> <meta content='#554488' name=msapplication-TileColor /> <meta content='/ico/mstile-144x144.png' name=msapplication-TileImage /> <meta content='/ico/browserconfig.xml' name=msapplication-config /> <link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600' rel=stylesheet /> <link href='//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css' rel=stylesheet /> <link href="/stylesheets/styles.css" rel=stylesheet /><link href="/stylesheets/highlight.css" rel=stylesheet /> <link href="/stylesheets/home.css" rel=stylesheet /> </head> <body data-offset=90 data-spy=scroll data-target='.qnav'> <noscript> <iframe height=0 src='//www.googletagmanager.com/ns.html?id=GTM-NJXWQL' style='display:none;visibility:hidden' width=0></iframe> </noscript> <script>
- //<![CDATA[
- (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-NJXWQL')
- //]]>
-</script> <header> <nav class='navbar navbar-fixed-top navbar-default' role=navigation> <div class=container> <div class=navbar-header> <button class=navbar-toggle data-target='#main-gl-nav' data-toggle=collapse type=button> <span class=sr-only> Toggle Navigation </span> <span class=icon-bar></span> <span class=icon-bar></span> <span class=icon-bar></span> </button> <button aria-label=Search class='search-icon search-icon-mobile js-search-toggle visible-xs-block visible-sm-block pull-right' type=button> <i class='fa fa-search'></i> </button> <a class='navbar-brand animated' href='/'> <svg width=140 height=44 viewBox="0 0 1231 342" xmlns="http://www.w3.org/2000/svg" class=nav-logo> <g fill=none fill-rule=evenodd> <g fill="#8C929D" class=wordmark> <path d="M764.367 94.13h-20.803l.066 154.74h84.155v-19.136h-63.352l-.066-135.603zM907.917 221.7c-5.2 5.434-13.946 10.87-25.766 10.87-15.838 0-22.22-7.797-22.22-17.957 0-15.354 10.637-22.678 33.332-22.678 4.255 0 11.11.472 14.655 1.18v28.586zm-21.51-93.787c-16.8 0-32.208 5.952-44.23 15.858l7.352 12.73c8.51-4.962 18.91-9.924 33.802-9.924 17.02 0 24.585 8.742 24.585 23.39v7.56c-3.31-.71-10.164-1.184-14.42-1.184-36.404 0-54.842 12.757-54.842 39.454 0 23.86 14.656 35.908 36.876 35.908 14.97 0 29.314-6.852 34.278-17.954l3.782 15.118h14.657v-79.14c0-25.04-10.874-41.815-41.84-41.815zM995.368 233.277c-7.802 0-14.657-.945-19.858-3.308v-71.58c7.093-5.908 15.84-10.16 26.95-10.16 20.092 0 27.893 14.174 27.893 37.09 0 32.6-12.53 47.957-34.985 47.957m8.742-105.364c-18.592 0-28.6 12.64-28.6 12.64V120.59l-.066-26.458H955.116l.066 150.957c10.164 4.25 24.11 6.613 39.24 6.613 38.768 0 57.442-24.804 57.442-67.564 0-33.783-17.26-56.227-47.754-56.227M538.238 110.904c18.438 0 30.258 6.142 38.06 12.285l8.938-15.477c-12.184-10.678-28.573-16.417-46.053-16.417-44.204 0-75.17 26.932-75.17 81.267 0 56.935 33.407 79.14 71.624 79.14 19.148 0 35.46-4.488 46.096-8.976l-.435-60.832V162.76h-56.734v19.135h36.167l.437 46.184c-4.727 2.362-13 4.252-24.11 4.252-30.73 0-51.297-19.32-51.297-60.006 0-41.34 21.275-61.422 52.478-61.422M684.534 94.13h-20.33l.066 25.988v89.771c0 25.04 10.874 41.814 41.84 41.814 4.28 0 8.465-.39 12.53-1.126v-18.245c-2.943.45-6.083.707-9.455.707-17.02 0-24.585-8.74-24.585-23.387v-61.895h34.04v-17.01H684.6l-.066-36.617zM612.62 248.87h20.33V130.747h-20.33v118.12zM612.62 114.448h20.33V94.13h-20.33v20.318z"/> </g> <path d="M185.398 341.13l68.013-209.322H117.39L185.4 341.13z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M185.398 341.13l-68.013-209.322h-95.32L185.4 341.128z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M22.066 131.808l-20.67 63.61c-1.884 5.803.18 12.16 5.117 15.744L185.398 341.13 22.066 131.807z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M22.066 131.808h95.32L76.42 5.735c-2.107-6.487-11.284-6.487-13.39 0L22.065 131.808z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M185.398 341.13l68.013-209.322h95.32L185.4 341.128z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M348.73 131.808l20.67 63.61c1.884 5.803-.18 12.16-5.117 15.744L185.398 341.13 348.73 131.807z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M348.73 131.808h-95.32L294.376 5.735c2.108-6.487 11.285-6.487 13.392 0l40.963 126.073z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> </g> </svg> </a> </div> <div class='search-box js-search-box'> <i class='fa fa-search search-box-icon'></i> <input class='search-input js-search' placeholder='Search...'/> <button aria-label='Close search' class='search-close js-search-toggle' type=button> <i class='fa fa-times'></i> </button> </div> <div class='collapse navbar-collapse' id=main-gl-nav> <ul class='nav navbar-nav animated'> <li> <a href='/features'> Features </a> </li> <li> <a href='/products'> Pricing </a> </li> <li> <a href='/installation'> Install </a> </li> <li> <a href='/community'> Community </a> </li> <li> <a href='/blog'> Blog </a> </li> <li> <a href='/contact'> Contact </a> </li> <li class='hidden-xs hidden-sm'> <button aria-label=Search class='search-icon js-search-toggle' type=button> <i class='fa fa-search'></i> </button> </li> <li> <a class=sign-in-up-btn href='https://gitlab.com/explore'> Explore GitLab.com </a> </li> <li> <a class='sign-in-up-btn is-last' href='https://gitlab.com/users/sign_in'> Sign In/Register </a> </li> </ul> </div> </div> </nav> </header> <div class='gitlab-promo-banner animated'> <a href='/2018/03/22/gitlab-10-6-released/'>GitLab 10.6 released with CI/CD for GitHub, deeper Kubernetes integration, group issue board in Core and Free, and lots more!</a> </div> <section class=home-splash> <div class=container> <header class=text-center> <h1 class=jumbo-heading> Concurrent DevOps </h1> <h2 class=page-subtitle> A single application built from the ground up for the complete DevOps lifecycle. </h2> <a class='btn cta-btn accent' href='/products/'> Try GitLab for Free </a> </header> <div class=home-lifecycle-diagram> <article class='lifecycle-diagram-phase plan' data-title=Plan> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=55 height=55 viewBox="0 0 55 55"><defs><style>.plan-cls-1{fill:#fff}</style></defs><title>Plan</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=plan-cls-1 d="M46.32 15.93H7.24a.72.72 0 0 0 0 1.45h39.08a.72.72 0 1 0 0-1.45zm-2.89 8.68a4.35 4.35 0 0 0-4.28 3.61h-7.38a4.34 4.34 0 0 0-8.55 0h-7.36a4.34 4.34 0 1 0 0 1.45h7.36a4.34 4.34 0 0 0 8.56 0h7.37a4.34 4.34 0 1 0 4.28-5.06zm-31.85 7.24A2.89 2.89 0 1 1 14.47 29a2.9 2.9 0 0 1-2.89 2.85zm15.92 0A2.89 2.89 0 1 1 30.39 29a2.9 2.9 0 0 1-2.89 2.85zm15.93 0A2.89 2.89 0 1 1 46.32 29a2.9 2.9 0 0 1-2.89 2.85zM39.15 42.7h-7.37a4.34 4.34 0 0 0-8.55 0h-7.37a4.34 4.34 0 1 0 0 1.45h7.37a4.34 4.34 0 0 0 8.55 0h7.38a4.34 4.34 0 1 0 0-1.45zm-27.57 3.62a2.89 2.89 0 1 1 2.89-2.89 2.9 2.9 0 0 1-2.89 2.89zm15.92 0a2.89 2.89 0 1 1 2.89-2.89 2.9 2.9 0 0 1-2.89 2.89zm18.82-2.89a2.89 2.89 0 1 1-2.89-2.89 2.9 2.9 0 0 1 2.89 2.89z"/><path class=plan-cls-1 d="M51.4 4.34H37.63a.72.72 0 0 0 0 1.45H51.4a2.15 2.15 0 0 1 2.15 2.15V51.4a2.15 2.15 0 0 1-2.15 2.15H3.6a2.15 2.15 0 0 1-2.15-2.15V7.94A2.15 2.15 0 0 1 3.6 5.79h19.62a5.07 5.07 0 1 0 0-1.45H3.6A3.6 3.6 0 0 0 0 7.94V51.4A3.6 3.6 0 0 0 3.6 55h47.8a3.6 3.6 0 0 0 3.6-3.6V7.94a3.6 3.6 0 0 0-3.6-3.6zM28.22 1.45a3.62 3.62 0 1 1-3.62 3.62 3.62 3.62 0 0 1 3.62-3.62z"/></g></g></svg> Plan: Get your best ideas into development. </h3> <div class=description>Whether you use Waterfall, Agile, or Conversational Development, GitLab streamlines your collaborative workflows. Visualize, prioritize, coordinate, and track your progress your way with GitLab’s flexible project management tools.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#plan'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/plan-screenshot.jpg" alt="GitLab Issue Boards" srcset="/images/home/plan-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase create' data-title=Create> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=49 height="54.76" viewBox="0 0 49 54.76"><defs><style>.create-cls-1{fill:#fff}</style></defs><title>Create</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=create-cls-1 d="M45.9 7.21H41a7.93 7.93 0 1 0 0 1.44h4.9a1.62 1.62 0 0 1 1.66 1.59v41.5a1.62 1.62 0 0 1-1.66 1.59H3.1a1.62 1.62 0 0 1-1.66-1.59V10.23A1.62 1.62 0 0 1 3.1 8.65H14a.72.72 0 1 0 0-1.44H3.1a3.07 3.07 0 0 0-3.1 3v41.53a3.07 3.07 0 0 0 3.1 3h42.8a3.07 3.07 0 0 0 3.1-3V10.23a3.07 3.07 0 0 0-3.1-3.02zm-12.75 7.2a6.49 6.49 0 1 1 6.49-6.49 6.49 6.49 0 0 1-6.49 6.49z"/><path class=create-cls-1 d="M12.46 21.11a.72.72 0 0 0 0 1l9.35 9.35-9.35 9.35a.72.72 0 1 0 1 1L23.34 32a.72.72 0 0 0 0-1l-9.86-9.86a.72.72 0 0 0-1.02-.03zM36 42.51a.72.72 0 1 0 0-1.44h-8.62a.72.72 0 0 0 0 1.44z"/></g></g></svg> Create: Securely write and manage code and project data. </h3> <div class=description>Consolidate source code into a single DVCS that’s easily managed and controlled without disrupting your workflow. GitLab’s git repositories come complete with branching tools and access controls, providing a scalable, single source of truth for collaborating on projects and code.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#create'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/create-screenshotb.jpg" alt="GitLab Project Repository" srcset="/images/home/create-screenshotb_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase verify' data-title=Verify> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <?xml version="1.0"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76" enable-background="new 0 0 76 76"> <path d="m14.267 7.32l-4.896 5.277-1.702-1.533c-.409-.369-1.043-.338-1.412.074-.369.41-.337 1.042.074 1.412l2.434 2.192c.064.058.139.091.212.13.035.018.065.048.101.062.114.044.235.066.356.066.135 0 .27-.028.396-.082.044-.019.077-.058.118-.084.076-.047.155-.086.219-.154l5.566-6c.375-.404.352-1.037-.054-1.413-.405-.377-1.036-.353-1.412.053"/> <path d="m31 9h44c.553 0 1-.447 1-1s-.447-1-1-1h-44c-.553 0-1 .447-1 1s.447 1 1 1"/> <path d="m31 15h24c.553 0 1-.447 1-1s-.447-1-1-1h-24c-.553 0-1 .447-1 1s.447 1 1 1"/> <path d="m11 0c-6.07 0-11 4.935-11 11s4.935 11 11 11 11-4.935 11-11-4.935-11-11-11m0 20c-4.963 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9"/> <path d="m14.267 34.32l-4.896 5.277-1.702-1.533c-.409-.368-1.043-.338-1.412.074-.369.41-.337 1.042.074 1.412l2.434 2.192c.064.058.139.091.212.13.035.018.065.048.101.062.114.044.235.066.356.066.135 0 .27-.028.396-.082.044-.019.077-.058.118-.084.076-.047.155-.086.219-.154l5.566-6c.375-.404.352-1.037-.054-1.413-.405-.377-1.036-.353-1.412.053"/> <path d="m75 34h-44c-.553 0-1 .447-1 1s.447 1 1 1h44c.553 0 1-.447 1-1s-.447-1-1-1"/> <path d="m31 42h24c.553 0 1-.447 1-1s-.447-1-1-1h-24c-.553 0-1 .447-1 1s.447 1 1 1"/> <path d="m11 27c-6.07 0-11 4.935-11 11s4.935 11 11 11 11-4.935 11-11-4.935-11-11-11m0 20c-4.963 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9"/> <path d="m14.267 61.32l-4.896 5.277-1.702-1.533c-.409-.368-1.043-.338-1.412.074-.369.41-.337 1.042.074 1.412l2.434 2.192c.064.058.139.091.212.13.035.018.065.048.101.062.114.044.235.066.356.066.135 0 .27-.028.396-.082.044-.019.077-.058.118-.084.076-.047.155-.086.219-.154l5.566-6c.375-.404.352-1.037-.054-1.413-.405-.377-1.036-.353-1.412.053"/> <path d="m11 54c-6.07 0-11 4.935-11 11s4.935 11 11 11 11-4.935 11-11-4.935-11-11-11m0 20c-4.963 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9"/> <path d="m75 61h-44c-.553 0-1 .447-1 1s.447 1 1 1h44c.553 0 1-.447 1-1s-.447-1-1-1"/> <path d="m55 67h-24c-.553 0-1 .447-1 1s.447 1 1 1h24c.553 0 1-.447 1-1s-.447-1-1-1"/> </svg> Verify: Ship better software, faster. </h3> <div class=description>Spot errors sooner and shorten feedback cycles with built-in code review, code testing, code quality, and review apps. Customize your approval workflow controls, automatically test the quality of your code, and spin up a staging environment for every code change. GitLab Continuous Integration is the most popular next generation testing system that auto scales to run your tests faster.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#verify'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/verify-screenshot.jpg" alt="GitLab Code Quality" srcset="/images/home/verify-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase package' data-title=Package> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=54 height=54 viewBox="0 0 54 54"><defs><style>.review-cls-1{fill:#fff}</style></defs><title>Review</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=review-cls-1 d="M52 16.87a.71.71 0 1 0-1.32.53A25.61 25.61 0 1 1 41.9 6.21a4.29 4.29 0 1 0 1-1.05A26.94 26.94 0 1 0 52 16.87zM43.46 6.52a2.84 2.84 0 1 1 4 4 2.91 2.91 0 0 1-4 0 2.84 2.84 0 0 1 0-4z"/><path class=review-cls-1 d="M19.32 21.44a.71.71 0 0 0-1-.26l-9 5.21a.71.71 0 0 0 0 1.23l9 5.21a.7.7 0 0 0 .36.1.71.71 0 0 0 .36-1.33L11.13 27l7.93-4.59a.71.71 0 0 0 .26-.97zm15.36 11.12a.71.71 0 0 0 .62.35.7.7 0 0 0 .36-.1l9-5.21a.71.71 0 0 0 0-1.23l-9-5.21a.71.71 0 1 0-.71 1.23L42.87 27l-7.93 4.59a.71.71 0 0 0-.26.97zM30.35 15l-8 23.61a.71.71 0 0 0 .44.9.7.7 0 0 0 .23 0 .71.71 0 0 0 .67-.48l8-23.61a.71.71 0 1 0-1.34-.42z"/></g></g></svg> Package: Manage custom container images with ease. </h3> <div class=description>GitLab Container Registry gives you the enhanced security and access controls of custom Docker images without 3rd party add-ons. Easily upload and download images from GitLab CI with full Git repository management integration.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#package'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/package-screenshot.jpg" alt="GitLab Container Registry" srcset="/images/home/package-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase release' data-title=Release> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=54 height="53.98" viewBox="0 0 54 53.98"><defs><style>.measure-cls-1{fill:#fff}</style></defs><title>Measure</title><g id=Layer_2 data-name="Layer 2"><path class=measure-cls-1 d="M48.32 47.58A5.62 5.62 0 0 0 45 48.69a9.22 9.22 0 0 0-13.38-2.92L30 34.8h.87l2.72 5.43a1.46 1.46 0 0 0 1.22.73h2a1.47 1.47 0 0 0 .94-.42 1.34 1.34 0 0 0 .37-.63l2.44-9.34a1.52 1.52 0 0 0-.32-1.25l-5.25-5.87c.16-2 .25-3.82.27-5.43 0-7.47-2-12.41-7.22-17.63a1.46 1.46 0 0 0-2 0c-4 4-5.9 7.34-6.71 11.7a4.23 4.23 0 1 0 1.44 0c.78-3.93 2.58-7 6.27-10.76C31.87 6.3 33.78 11 33.79 18c0 1.65-.11 3.48-.29 5.62a.71.71 0 0 0 .18.53l5.44 6.09-2.41 9.29H34.8l-2.9-5.79a.71.71 0 0 0-.64-.39h-8.53a.71.71 0 0 0-.64.39l-2.87 5.77H17.3l-2.43-9.29 5.45-6.1a.71.71 0 0 0-1.06-.95l-5.47 6.13a1.52 1.52 0 0 0-.29 1.27l2.43 9.29A1.45 1.45 0 0 0 17.28 41h1.94a1.41 1.41 0 0 0 1-.42 1.23 1.23 0 0 0 .25-.34l2.7-5.4H24l-1.62 11A9.22 9.22 0 0 0 9 48.68a5.68 5.68 0 0 0-9 4.59.71.71 0 0 0 .71.73h52.58a.71.71 0 0 0 .71-.71 5.69 5.69 0 0 0-5.68-5.71zM21.9 14.31a2.84 2.84 0 0 1 0 4 2.91 2.91 0 0 1-4 0 2.84 2.84 0 1 1 4-4zM1.48 52.56A4.27 4.27 0 0 1 5.68 49a4.23 4.23 0 0 1 3.06 1.3.71.71 0 0 0 1.16-.21 7.8 7.8 0 0 1 12.54-2.48.71.71 0 0 0 1.19-.41l1.84-12.42h3l1.84 12.42a.71.71 0 0 0 1.19.41 7.8 7.8 0 0 1 12.59 2.49.71.71 0 0 0 1.16.21A4.23 4.23 0 0 1 48.31 49a4.27 4.27 0 0 1 4.2 3.55z" id=Layer_1-2 data-name="Layer 1"/></g></svg> Release: Minimize complexity with built-in Continuous Delivery. </h3> <div class=description>Spend less time configuring your tools, and more time creating. Whether you’re deploying to one server or thousands, build, test, and release your code confidently and securely with GitLab’s built-in continuous delivery and deployment.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#release'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/release-screenshot.jpg" alt="GitLab Pipelines" srcset="/images/home/release-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase configure' data-title=Configure> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76" enable-background="new 0 0 76 76"><path d="m56.991 49.18c-1.509-.581-3.151-.54-4.625.116-1.476.655-2.608 1.845-3.188 3.352s-.539 3.149.116 4.624c.654 1.477 1.845 2.608 3.352 3.188.706.272 1.44.407 2.175.407.833 0 1.665-.175 2.449-.522 1.477-.654 2.608-1.845 3.188-3.352.581-1.507.54-3.149-.115-4.625s-1.846-2.608-3.352-3.188m1.601 7.094c-.388 1.01-1.146 1.804-2.133 2.242-.988.439-2.086.466-3.095.077-1.01-.388-1.804-1.146-2.242-2.134-.438-.986-.466-2.085-.078-3.094.389-1.01 1.146-1.804 2.134-2.242.524-.233 1.082-.351 1.64-.351.491 0 .982.091 1.455.272 1.01.389 1.804 1.146 2.242 2.133.438.99.465 2.089.077 3.097"/><path d="m75.48 58.38l-.154-.087-3.138-1.702c-.341-.187-.41-.4-.431-.548-.001-.008-.023-.161-.024-.169.035-.929.012-1.895-.07-2.872-.003-.045.005-.085.005-.104l.033-.226c.054-.201.172-.35.383-.479.479-.297.962-.59 1.444-.882l1.755-1.068c.392-.238.57-.712.435-1.149-.635-2.052-1.506-4.01-2.589-5.814-.029-.05-.063-.096-.103-.138-.045-.063-.097-.122-.156-.175-.258-.228-.612-.306-.946-.21l-1.013.298c-.817.239-1.634.479-2.449.726-.493.149-.749.017-.975-.226-.632-.681-1.333-1.347-2.083-1.979-.255-.217-.297-.413-.303-.502.001-.095.007-.164.021-.228.256-1.12.534-2.234.812-3.35l.038-.149c.027-.106.041-.213.041-.317.087-.433-.121-.874-.515-1.081-1.903-1-3.905-1.771-5.95-2.285-.432-.109-.884.082-1.108.468l-1.804 3.307c-.229.416-.465.48-.749.461-1-.026-2.01-.003-2.986.074-.331.034-.553-.089-.739-.383-.604-.957-1.187-1.925-1.771-2.895l-.109-.182c-.316-.531-.895-.735-1.467-.519l-.795.292c-.568.207-1.138.415-1.7.643-.926.374-1.862.845-2.957 1.486-.277.168-.432.371-.516.565-.12.22-.158.482-.091.738l.313 1.07c.252.85.505 1.698.753 2.549.022.077.027.152.03.154.006.201-.03.425-.335.698-.616.553-1.224 1.19-1.909 2.01-.255.304-.507.386-.906.291l-3.627-.876c-.443-.112-.905.101-1.119.505-.104.197-.192.4-.279.604-.05.114-.099.229-.153.343-.004.008-.048.093-.051.101-.026.052-.049.106-.079.183-.786 1.684-1.352 3.224-1.728 4.709-.046.182-.034.369.023.543.072.314.277.583.58.744l3.114 1.685c.453.244.536.511.522.862-.038.971-.015 1.915.071 2.801.004.044-.003.085-.01.181-.023.237-.132.406-.355.548-.466.299-.941.586-1.416.872l-1.82 1.109c-.287.175-.463.501-.477.836-.01.074-.012.148-.005.223.007.069.023.163.044.229.05.161.11.317.173.474.034.085.069.17.11.292.003.011.037.112.04.123.02.055.042.108.08.198.618 1.733 1.307 3.234 2.106 4.588.222.376.689.71 1.35.506l1.029-.306c.816-.243 1.634-.485 2.451-.72.428-.123.643.026.8.189.697.726 1.441 1.432 2.211 2.099.166.144.243.297.249.466 0 .101-.011.195-.033.287l-.872 3.597c-.069.292.006.603.184.841.181.293.459.444.627.536l.145.076c1.227.618 2.498 1.142 3.778 1.554.383.123.77.232 1.156.341l.382.108c.132.038.256.056.372.056.486 0 .831-.302.994-.607.432-.801.867-1.598 1.302-2.396l.416-.763c.195-.355.41-.509.796-.479 1.033.028 1.98.006 2.902-.075.37-.025.608.091.816.426.229.365.452.733.676 1.102l1.274 2.085c.239.39.713.565 1.146.434 2.053-.632 4.01-1.5 5.83-2.582.386-.229.57-.688.454-1.12-.006-.082-.019-.162-.04-.231-.257-.853-.51-1.707-.763-2.561l-.261-.881c-.026-.09-.042-.182-.046-.239-.004-.21.059-.361.212-.508.698-.674 1.389-1.396 2.053-2.147l.574-.407c.095-.009.198.001.306.026.41.095.82.194 1.23.295l2.409.583c.447.104.903-.102 1.117-.505 1-1.895 1.775-3.893 2.293-5.939.115-.439-.095-.904-.485-1.126m-9.465 13.802l.034.008-.145.031.111-.039m-30.808-10.937l.17-.09.015.024-.185.066m37.05 2.572l-1.637-.396c-.417-.102-.835-.204-1.253-.301-.476-.108-.945-.106-1.401.01-.119.03-.231.082-.332.153l-.851.604c-.063.045-.121.097-.172.155-.652.742-1.33 1.454-2.02 2.114-.555.532-.84 1.22-.823 2.027.015.251.056.488.126.728l.261.882c.198.669.396 1.338.595 1.999-1.272.706-2.616 1.301-4.01 1.777l-.858-1.406c-.229-.377-.458-.754-.689-1.123-.605-.972-1.562-1.451-2.685-1.358-.846.072-1.721.096-2.672.067-1.17-.036-2.057.508-2.61 1.522l-.415.762c-.329.602-.657 1.203-.984 1.807-.285-.081-.571-.163-.854-.255-1.075-.346-2.144-.776-3.239-1.312l.708-2.916c.061-.249.09-.497.089-.792-.025-.762-.35-1.435-.938-1.944-.725-.628-1.424-1.291-2.079-1.973-.741-.772-1.736-1.03-2.792-.727-.825.236-1.648.481-2.472.726l-.414.123c-.598-1.093-1.13-2.299-1.615-3.663-.02-.055-.042-.108-.079-.195l-.644.228c.051-.038.097-.08.138-.126l.46-.242c-.008-.022-.016-.045-.023-.066l1.152-.701c.488-.295.979-.591 1.457-.897.737-.47 1.188-1.195 1.277-2.136.011-.148.019-.297.003-.465-.078-.814-.1-1.644-.064-2.537.047-1.172-.513-2.132-1.574-2.702l-2.546-1.377c.338-1.162.807-2.378 1.423-3.697l.061-.146c.002-.003.059-.115.061-.118.027-.059.055-.117.081-.177l2.829.684c1.127.269 2.16-.067 2.901-.949.624-.743 1.169-1.316 1.713-1.805.681-.609 1.025-1.388.994-2.322-.021-.189-.047-.38-.104-.578-.249-.854-.503-1.707-.756-2.561l-.109-.367c.792-.444 1.498-.788 2.191-1.068.541-.219 1.089-.418 1.637-.618l.193-.071c.518.858 1.037 1.715 1.57 2.561.575.915 1.513 1.386 2.588 1.312.907-.072 1.839-.095 2.775-.068 1.09.003 2.01-.502 2.557-1.497l1.416-2.6c1.397.399 2.771.928 4.097 1.578-.25 1.01-.499 2.01-.729 3.02-.048.207-.07.417-.071.72.04.771.389 1.457 1.01 1.984.689.581 1.332 1.191 1.91 1.813.792.85 1.863 1.128 3.02.777.81-.244 1.622-.482 2.435-.721l.278-.082c.72 1.282 1.328 2.642 1.813 4.056l-1.075.654c-.487.295-.975.591-1.46.892-.64.396-1.076.971-1.282 1.755l-.054.318c-.004.022-.011.093-.014.116-.016.159-.025.317-.011.488.074.896.096 1.78.064 2.634-.006.147.009.282.039.493.119.873.637 1.601 1.455 2.049l2.601 1.412c-.4 1.383-.926 2.744-1.57 4.056"/><path d="m16.991 16.824c-1.163 1.119-1.822 2.624-1.854 4.238-.032 1.615.567 3.146 1.687 4.31 1.185 1.232 2.771 1.853 4.358 1.853 1.508 0 3.02-.56 4.189-1.685 2.402-2.311 2.479-6.146.168-8.549-2.311-2.404-6.145-2.476-8.548-.167m6.994 7.275c-1.608 1.546-4.174 1.495-5.72-.113-.749-.778-1.149-1.803-1.128-2.883.021-1.081.461-2.088 1.24-2.837.783-.753 1.794-1.127 2.803-1.127 1.063 0 2.125.414 2.918 1.239 1.547 1.608 1.496 4.175-.113 5.721"/><path d="m35.32 36.917c.056-.045.11-.091.156-.135.538-.499 1.036-1.032 1.456-1.488l.102-.103c.067-.067.135-.135.197-.203.055-.062.108-.126.19-.226.066-.076.137-.147.206-.22.124-.129.247-.258.361-.397.29-.354.303-.858.032-1.227l-2.163-2.938c-.23-.315-.253-.569-.079-.906.475-.923.82-1.714 1.09-2.489.129-.373.313-.487.442-.538.067-.021.134-.044.208-.053.825-.095 1.651-.187 2.477-.277l1.177-.134c.312-.039.579-.22.733-.478.108-.145.199-.337.233-.592.16-1.198.232-2.252.221-3.224-.008-.593-.036-1.186-.064-1.778l-.037-.827c-.024-.611-.434-1.062-1.039-1.147l-.114-.016c-1.127-.163-2.253-.325-3.376-.51-.326-.054-.508-.206-.607-.508-.305-.922-.663-1.838-1.064-2.723-.1-.22-.152-.473.131-.83.484-.611.972-1.22 1.459-1.829l.83-1.04c.28-.356.285-.856.014-1.219-1.242-1.654-2.694-3.169-4.318-4.502-.347-.285-.838-.304-1.202-.051-.077.033-.16.08-.246.144-.941.707-1.883 1.414-2.841 2.102-.051.037-.114.071-.146.087-.143.05-.325.084-.608-.06-.878-.446-1.721-.815-2.576-1.127-.306-.112-.506-.281-.559-.774-.088-.847-.183-1.692-.277-2.537l-.105-.933c-.004-.054-.022-.147-.034-.199-.073-.315-.326-.557-.626-.68-.017-.008-.034-.014-.052-.02-.071-.028-.146-.048-.225-.06-2.042-.29-4.14-.33-6.231-.124-.455.045-.821.394-.89.846l-.289 1.923c-.085.568-.169 1.137-.258 1.702-.034.213-.11.364-.245.484l-.171.113c-.005.003-.139.074-.145.077-.918.3-1.8.646-2.614 1.026-.048.021-.096.029-.177.05-.151.034-.355.048-.637-.178l-2.874-2.3c-.351-.265-.836-.273-1.196-.014-.004.003-.012.009-.02.017-.051.033-.098.07-.142.112-1.605 1.229-3.068 2.647-4.349 4.213-.289.354-.301.858-.031 1.225l1.419 1.927c.251.34.502.68.752 1.026.063.087.109.174.139.265l-.142.647c-.424.88-.813 1.776-1.158 2.666-.046.119-.105.207-.185.274-.02.011-.038.021-.052.031-.04.026-.083.049-.105.058-.088.032-.174.052-.266.062l-.769.086c-.908.102-1.817.203-2.72.3-.069.007-.143.023-.215.047-.443.061-.793.408-.855.852-.289 2.05-.33 4.151-.123 6.245.045.455.393.821.845.89l2.411.364c.401.06.802.119 1.205.185.372.06.56.216.67.557.278.866.616 1.733 1.033 2.652.125.273.15.527-.13.878l-.454.568c-.58.729-1.16 1.456-1.747 2.184-.277.348-.419.913.02 1.462l.27.337c.237.298.474.596.722.885.86 1 1.814 1.951 2.822 2.81.052.045.1.085.135.112.148.116.349.275.619.346.313.115.669.071.944-.132l2.913-2.152c.077-.057.157-.103.224-.131.182-.069.339-.059.531.035.906.446 1.825.849 2.73 1.197.209.08.409.212.459.63.102.854.194 1.709.287 2.564l.105.969c.068.681.557.984.986 1.042 1 .136 2.06.203 3.197.203.501 0 1.019-.013 1.554-.039h.123c.086.003.171.001.266-.004l.287-.024c.075-.006.151-.006.228-.008.139-.002.278-.006.517-.034l-.005-.023c.033-.006.07-.014.107-.022l.005.019c.083-.022.162-.056.235-.099.298-.141.511-.422.561-.754l.306-2.02c.081-.552.162-1.104.257-1.655.042-.242.145-.398.313-.495.064-.035.126-.074.202-.099.846-.265 1.707-.603 2.562-1 .303-.141.567-.17.952.142l2.691 2.163c.214.176.468.266.726.266.002 0 .003 0 .005 0 .236.019.477-.048.679-.199.62-.469 1.185-.98 1.73-1.476.002-.003.093-.082.094-.083m2.321-27.414l.013.011-.015-.009.002-.002m-3.588 25.867l-.168.146c-.355.322-.698.632-1.049.926l-2.183-1.754c-.925-.748-2.01-.889-3.058-.396-.774.362-1.552.667-2.311.905-.206.063-.383.153-.576.259-.705.401-1.172 1.078-1.313 1.904-.098.566-.182 1.135-.266 1.704l-.187 1.243c-.022.002-.043.004-.046.004l-.273.013c-.081-.001-.159-.001-.239.003-1.358.067-2.584.043-3.724-.07l-.035-.323c-.094-.861-.188-1.724-.289-2.584-.129-1.079-.742-1.882-1.727-2.261-.851-.326-1.714-.705-2.565-1.124-.695-.344-1.436-.38-2.163-.096-.239.1-.456.223-.664.377l-2.339 1.729c-.856-.748-1.659-1.557-2.389-2.405-.185-.217-.363-.438-.541-.661.442-.552.883-1.104 1.324-1.657l.452-.567c.712-.892.85-1.94.388-2.954-.384-.847-.694-1.644-.949-2.438-.343-1.059-1.145-1.74-2.257-1.918-.408-.066-.818-.127-1.228-.188l-1.623-.247c-.096-1.426-.067-2.85.085-4.251.708-.077 1.416-.157 2.124-.236l.767-.085c.245-.027.488-.083.747-.177.182-.071.354-.16.434-.219.047-.023.116-.064.158-.095.413-.298.721-.702.914-1.201.339-.874.724-1.756 1.145-2.621.034-.071.061-.147.078-.225l.212-.973c.024-.114.029-.232.014-.349-.064-.47-.245-.911-.532-1.306-.252-.35-.508-.696-.765-1.043l-.95-1.285c.928-1.063 1.948-2.045 3.047-2.93l2.24 1.795c.696.557 1.532.756 2.411.542.161-.041.319-.086.489-.164.747-.349 1.553-.665 2.395-.94.141-.046.263-.105.383-.17.023-.013.113-.061.136-.075l.318-.204c.031-.021.062-.042.091-.065.532-.434.874-1.037.987-1.748.09-.572.175-1.146.261-1.721l.17-1.137c1.442-.098 2.878-.066 4.291.091l.024.221c.095.841.189 1.681.277 2.523.125 1.182.785 2.049 1.859 2.443.781.285 1.552.622 2.356 1.032.718.364 1.478.419 2.252.135.219-.094.408-.199.578-.322.815-.586 1.62-1.186 2.423-1.787 1.075.938 2.061 1.965 2.943 3.064l-.333.416c-.489.611-.979 1.224-1.466 1.837-.695.879-.832 1.907-.385 2.897.373.821.705 1.671.988 2.525.331 1 1.126 1.679 2.181 1.853.96.158 1.923.301 2.886.439l.009.183c.026.57.054 1.141.062 1.71.009.719-.034 1.496-.133 2.362l-.451.05c-.828.092-1.657.184-2.486.279-.21.024-.398.074-.637.151-.8.304-1.379.916-1.674 1.771-.237.685-.549 1.393-.979 2.23-.519 1.01-.433 2.074.244 3l1.677 2.278c-.001.002-.003.004-.005.006-.006.007-.06.071-.065.079l-.107.126c-.037.041-.076.079-.115.118l-.162.165c-.399.434-.864.933-1.413 1.437"/></svg> Configure: Automate configuration management </h3> <div class=description>Automate your entire workflow from build to deploy and monitoring with GitLab Auto Devops. Best practice templates get you started with minimal to zero configuration. Then customize everything from buildpacks to CI/CD.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#configure'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/configure-screenshot.jpg" alt="GitLab Auto DevOps" srcset="/images/home/configure-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase monitor' data-title=Monitor> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=47 height="54.12" viewBox="0 0 47 54.12"><defs><style>.release-cls-1{fill:#fff}</style></defs><title>Release</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=release-cls-1 d="M40.59 3.56H29.13a4.27 4.27 0 1 0 0 1.42h11.46a5 5 0 0 1 5 5v34.17a5 5 0 0 1-5 5h-7.9L35 46.79a.71.71 0 0 0-1-1l-3.56 3.56a.71.71 0 0 0 0 1L34 53.91a.71.71 0 0 0 1-1l-2.34-2.35h7.9A6.42 6.42 0 0 0 47 44.15V10a6.42 6.42 0 0 0-6.41-6.44zM24.92 7.12a2.85 2.85 0 1 1 2.85-2.85 2.85 2.85 0 0 1-2.85 2.85zm-2.84 38.46a4.28 4.28 0 0 0-4.21 3.56H6.41a5 5 0 0 1-5-5V10a5 5 0 0 1 5-5h7.9L12 7.33a.71.71 0 1 0 1 1l3.56-3.56a.71.71 0 0 0 0-1L13 .21a.71.71 0 1 0-1 1l2.35 2.35H6.41A6.42 6.42 0 0 0 0 10v34.15a6.42 6.42 0 0 0 6.41 6.41h11.46a4.27 4.27 0 1 0 4.21-5zm0 7.12a2.85 2.85 0 1 1 2.85-2.85 2.85 2.85 0 0 1-2.85 2.85z"/><path class=release-cls-1 d="M38.45 28.86a.71.71 0 0 0-.71-.71h-7.36L26.8 17.53a.71.71 0 0 0-.65-.48.69.69 0 0 0-.68.44l-7 17.2-3.76-6.19a.71.71 0 0 0-.61-.34H9.26a.71.71 0 1 0 0 1.42h4.47L18 36.64a.71.71 0 0 0 .61.34h.06a.71.71 0 0 0 .6-.44l6.79-16.74 3.13 9.29a.71.71 0 0 0 .67.48h7.87a.71.71 0 0 0 .72-.71z"/></g></g></svg> Monitor: Analyze shipping velocity and monitor application performance. </h3> <div class=description>Measure how long it takes to go from planning to monitoring and ensure your applications are always responsive and available. GitLab collects and displays performance metrics for deployed apps using Prometheus so you can know in an instant how code changes impact your production environment.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#monitor'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/measure-screenshot.jpg" alt="GitLab Cycle Analytics" srcset="/images/home/measure-screenshot_2x.jpg 2x"/> </div> </div> </article> </div> </div> </section> <section class=open-core> <div class=container> <div class=row> <article class='col-sm-12 col-lg-4 col-lg-push-8'> <h2 class=main-heading>Open core and continuously improved</h2> <p>With major product releases every 22nd of the month, GitLab’s high-velocity pace of innovation is possible because of the collaboration of the GitLab community, delivering the leading modern software development product, built for today’s modern software developer.</p> </article> <aside class='col-sm-12 col-md-10 col-lg-7 col-lg-pull-4'> <div class='top-30-callout js-all-clickable'> <div> <a href='/2017/07/06/gitlab-top-30-highest-velocity-open-source/'> <img src="/images/home/cloud-native-computing-foundation-logo.png" alt="Cloud Native Computing Foundation Logo"/> </a> </div> <p> <span>among the</span> <em>top</em> <strong>30</strong> <span>highest velocity</span> <span>open source projects</span> </p> </div> <div class=contributors-callout> <p> <strong>1,900+</strong> <span>contributors</span> </p> </div> </aside> </div> </div> </section> <section class=forrester-wave-section> <div class=container> <div class='row flex-row'> <div class='col-md-5 forrester-wave-body'> <h2 class=main-heading>GitLab named a Leader in the Forrester Wave™</h2> <p class=promo-text>Receiving the highest score in Forrester’s Current Offering evaluation, GitLab was named as a Leader in Continuous Integration in The Forrester Wave™: Continuous Integration Tools, Q3 2017 report. According to the report, “GitLab delivers ease of use, scalability, integration, and innovation.”</p> <div class=btn-group> <a class='btn cta-btn ghost' href='https://about.gitlab.com/2017/09/27/gitlab-leader-continuous-integration-forrester-wave/'> Read the Report </a> </div> </div> <div class='col-md-7 col-md-offset-1 forrester-wave-media'> <img src="/images/home/forrester-report-diagram.png" alt="GitLab is in the Leader’s arc"/> </div> </div> </div> </section> <section class=enterprise-edition> <div class=container> <div class='row flex-row text-center'> <div class='col-md-8 col-md-offset-2'> <h3 class=sub-heading> Try GitLab Enterprise Edition free for 30 days. </h3> <p> <a href='/gitlab-ee/'>GitLab Enterprise Edition</a> is built on the open core of GitLab Community Edition to include additional authentication, user management, and workflow features designed for larger development teams. </p> <p> <strong>No credit card required.</strong> </p> <a class='btn cta-btn accent' href='/free-trial/'> Start your free trial </a> <a class='btn cta-btn ghost-accent' href='/eep-demo/'> Join a live demo </a> </div> </div> </div> </section> <div class=logo-divider> <div class=container> <div class=logo-divider-body> <svg width=65 height=60 viewBox="0 0 210 194" class=footer-logo> <path d="M105.0614,193.655 L105.0614,193.655 L143.7014,74.734 L66.4214,74.734 L105.0614,193.655 L105.0614,193.655 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L66.4214,74.7338 L12.2684,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M12.2685,74.7341 L12.2685,74.7341 L0.5265,110.8731 C-0.5445,114.1691 0.6285,117.7801 3.4325,119.8171 L105.0615,193.6551 L12.2685,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M12.2685,74.7342 L66.4215,74.7342 L43.1485,3.1092 C41.9515,-0.5768 36.7375,-0.5758 35.5405,3.1092 L12.2685,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L143.7014,74.7338 L197.8544,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M197.8544,74.7341 L197.8544,74.7341 L209.5964,110.8731 C210.6674,114.1691 209.4944,117.7801 206.6904,119.8171 L105.0614,193.6551 L197.8544,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M197.8544,74.7342 L143.7014,74.7342 L166.9744,3.1092 C168.1714,-0.5768 173.3854,-0.5758 174.5824,3.1092 L197.8544,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> </svg> </div> </div> </div> <section class=value-pillar-section> <div class=container> <h2 class='main-heading text-center'>Concurrent DevOps</h2> <div class=value-pillar-group> <div class=value-pillar> <div class='value-pillar-media hidden-xs'> <svg xmlns="http://www.w3.org/2000/svg" width="77.11" height="79.48" viewBox="0 0 77.11 79.48"><defs><style>.pillar-create-cls-1{fill:#6b4fbb;}</style></defs><title>create</title><g id=Layer_2 data-name="Layer 2"><g id=icons><path class=pillar-create-cls-1 d="M44.08,79.48C30.47,79,21.7,75.08,14.76,66.21a2.92,2.92,0,0,1-.21-3.3c3.26-5.48,3-9.94-.9-14.91a29.48,29.48,0,0,1-3.78-6l-.24-.5-.55.12a7.5,7.5,0,1,1,3.4-1.76l-.38.35.24.51,0,.06a26.42,26.42,0,0,0,3.46,5.51c4.55,5.8,5,11.43,1.29,17.72l-.24.41.3.38c6.29,7.9,13.88,11.37,26.18,12l1,.05-.34-1a7.22,7.22,0,0,1-.36-1.47A4.36,4.36,0,0,1,45.27,70a5.22,5.22,0,0,1,3.23-1.19,4.78,4.78,0,0,1,1.05.12c1.85.42,5.49,1.14,7.16,1.44a7.4,7.4,0,0,0,1.33.12,4.35,4.35,0,0,0,2.61-.74,2.68,2.68,0,0,0,1.19-3,19.42,19.42,0,0,1-.09-4.91,4.47,4.47,0,0,1,2.36-3.74l.59-.31-.27-.6a1.4,1.4,0,0,1,1.1-2,4.39,4.39,0,0,0,.56-.1l.88-.22-.44-.79a2.62,2.62,0,0,1-.33-1.65,2.89,2.89,0,0,1,1.31-2,6.85,6.85,0,0,1,4-1,2.86,2.86,0,0,0,2.59-1.29c.32-.65.2-1.11-.47-1.69a30.75,30.75,0,0,1-8.83-14.29,5.69,5.69,0,0,1,.37-4.85,3.53,3.53,0,0,0,.33-3C62.37,11.29,51,2.79,36.51,2.79A26.58,26.58,0,0,0,12.77,17.37a1.4,1.4,0,0,1-1.25.76,1.36,1.36,0,0,1-.63-.16,1.4,1.4,0,0,1-.61-1.88A29.36,29.36,0,0,1,36.51,0c15.8,0,28.27,9.34,31.76,23.79a6.25,6.25,0,0,1-.54,4.85,3,3,0,0,0-.21,2.78,27.64,27.64,0,0,0,8,13,4,4,0,0,1,1.13,5,5.59,5.59,0,0,1-5.1,2.85,7,7,0,0,0-1.68.15l-.84.21.39.78A2.75,2.75,0,0,1,69,56.6a4.1,4.1,0,0,1-1.15.86l-.33.17,0,.37c0,.07,0,.14,0,.22a3.07,3.07,0,0,1-1.79,2.18,1.87,1.87,0,0,0-1.1,1.74,16.28,16.28,0,0,0,.06,4.17A5.41,5.41,0,0,1,62.33,72,7.1,7.1,0,0,1,58,73.33a10.23,10.23,0,0,1-1.83-.17c-1.73-.31-5.37-1-7.28-1.47a1.81,1.81,0,0,0-.42,0,2.53,2.53,0,0,0-1.52.58c-.41.33-.66.75-.53,1.77a5,5,0,0,0,.41,1.38,2.93,2.93,0,0,1-2.69,4.11ZM7.47,29.5a4.8,4.8,0,1,0,4.8,4.8A4.81,4.81,0,0,0,7.47,29.5Z"/><path class=pillar-create-cls-1 d="M34.11,53.86a1,1,0,0,1-.39-.08,1.05,1.05,0,0,1-.64-1.16l2.68-14.85L27.33,39h-.15a1,1,0,0,1-.88-1.63L42.5,13a1,1,0,0,1,.88-.47,1,1,0,0,1,.39.08,1.05,1.05,0,0,1,.64,1.16L41.73,28.63l8.42-1.2h.15a1,1,0,0,1,.87,1.63L35,53.39A1,1,0,0,1,34.11,53.86ZM37,35.48a1,1,0,0,1,1,1.24l-1.44,8,1.27.51L48.12,29.84l-7.54,1.07h-.15a1.05,1.05,0,0,1-1-1.24l1.44-8-1.27-.51L29.36,36.57l7.54-1.07Z"/></g></g></svg> </div> <div class=value-pillar-body> <h3 class=pillar-title>Visible</h3> <p class=pillar-description> Real time view across the entire lifecycle </p> <ul> <li>See everything that matters</li> <li>Stay in your flow</li> <li>Don’t wait on syncing</li> <li>Manage projects, not tools</li> <li>Improve cycle time.</li> </ul> </div> </div> <div class=value-pillar> <div class='value-pillar-media hidden-xs'> <svg xmlns="http://www.w3.org/2000/svg" width="84.47" height="75.53" viewBox="0 0 84.47 75.53"><defs><style>.pillar-speed-cls-1{fill:#6b4fbb;}</style></defs><title>Speed</title><g id=Layer_2 data-name="Layer 2"><g id=icons><path class=pillar-speed-cls-1 d="M50.35,75.53A33.93,33.93,0,0,1,31.69,70l-.45-.29-.4.35A8,8,0,1,1,33,67l-.22.54.49.31a31.51,31.51,0,1,0-6.67-47.15l-1,1.16H36.89v2.6H10.94v-2.6H22.39l.21-.29A34,34,0,0,1,48.39,7.35l.66,0V2.6H45.58V0h9.54V2.6H51.65V7.32l.66,0A33.94,33.94,0,0,1,70,13.58l.48.34L74,10.42,71.8,8.18l1.84-1.84,6.3,6.3-1.84,1.84-2.23-2.23-3.29,3.29.55.49A34.1,34.1,0,0,1,50.35,75.53Zm-24.81-17A5.43,5.43,0,1,0,31,64,5.44,5.44,0,0,0,25.54,58.58Z"/><path class=pillar-speed-cls-1 d="M40.81,49.11l3.91-3.91-.26-.46a6.76,6.76,0,0,1,9.21-9.21l.46.26,13-13L69,24.59l-13,13,.26.46A6.76,6.76,0,0,1,47,47.3L46.56,47,42.65,51Zm9.54-11.87a4.17,4.17,0,1,0,4.17,4.17A4.17,4.17,0,0,0,50.35,37.24Z"/><path class=pillar-speed-cls-1 d="M0,39.06v-2.6H16.6l.1-.59a34.2,34.2,0,0,1,1.95-7.09l2.4,1a31.33,31.33,0,0,0-1.68,5.83l-.15.83h6.74v2.6Z"/><path class=pillar-speed-cls-1 d="M7.29,51.83v-2.6h9.84L17,48.38A34.6,34.6,0,0,1,16.33,44l2.6-.14a31.84,31.84,0,0,0,.76,4.83l.13.54H31.42v2.6Z"/></g></g></svg> </div> <div class=value-pillar-body> <h3 class=pillar-title>Efficient</h3> <p class=pillar-description> Collaborate without waiting </p> <ul> <li>Start immediately</li> <li>Work concurrently</li> <li>No more handoffs</li> </ul> </div> </div> <div class=value-pillar> <div class='value-pillar-media hidden-xs'> <svg xmlns="http://www.w3.org/2000/svg" width="72.48" height="92.93" viewBox="0 0 72.48 92.93"><defs><style>.pillar-scale-cls-1{fill:#6b4fbb;}</style></defs><title>Scale</title><g id=Layer_2 data-name="Layer 2"><g id=icons><path class=pillar-scale-cls-1 d="M49.49,92.93a6.77,6.77,0,0,1-2-13.23l.42-.13V57.72H41.77a1.24,1.24,0,0,1-.93-2.07L55.58,39.07a1.3,1.3,0,0,1,1.86,0L72.17,55.65a1.24,1.24,0,0,1-.93,2.07H65.12V74.3H62.63V56.48a1.24,1.24,0,0,1,1.24-1.24h4.6l-12-13.47-12,13.47h4.6a1.24,1.24,0,0,1,1.24,1.24v23l.48.1a6.77,6.77,0,0,1-1.37,13.4Zm0-11.05a4.28,4.28,0,1,0,4.28,4.28A4.29,4.29,0,0,0,49.49,81.87Z"/><path class=pillar-scale-cls-1 d="M46.05,33.77V15.95a1.24,1.24,0,0,1,1.24-1.24h4.63L41.77,3.1,31.61,14.71h4.63a1.24,1.24,0,0,1,1.24,1.24v6.77H35V17.19H28.87a1.24,1.24,0,0,1-.93-2.06L40.83.4A1.3,1.3,0,0,1,42.7.4L55.6,15.13a1.24,1.24,0,0,1-.93,2.06H48.54V33.77Z"/><rect class=pillar-scale-cls-1 x="23.95" y="53.39" width="2.48" height="13.54"/><rect class=pillar-scale-cls-1 x="23.95" y="71.81" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="23.95" y="79.18" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="60.79" y="9.18" width="2.48" height="11.69"/><rect class=pillar-scale-cls-1 x="60.79" y="25.76" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="60.79" y="33.13" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="16.58" y="66.29" width="2.48" height="13.54"/><rect class=pillar-scale-cls-1 x="16.58" y="84.71" width="2.48" height="2.48"/><path class=pillar-scale-cls-1 d="M31.32,59.56V41.74a1.24,1.24,0,0,1,1.24-1.24h8.23L23.31,21.43,4.24,40.5h9.9a1.24,1.24,0,0,1,1.24,1.24V59.56H12.89V43H1.24a1.24,1.24,0,0,1-.88-2.12l22.1-22.1a1.31,1.31,0,0,1,.92-.36,1.24,1.24,0,0,1,.87.4L44.53,40.9A1.24,1.24,0,0,1,43.61,43H33.8V59.56Z"/></g></g></svg> </div> <div class=value-pillar-body> <h3 class=pillar-title>Governed</h3> <p class=pillar-description> Develop and operate with confidence </p> <ul> <li>Security and compliance already built-in</li> <li>Simplify user management</li> <li>Expedite auditing</li> <li>Act with certainty</li> </ul> </div> </div> </div> </div> </section> <section class=ten-oh-announcement> <div class=container> <div class=row> <div class='col-sm-11 col-lg-6 ten-oh-label'> <span>10.6</span> </div> <div class='col-sm-11 col-lg-6 ten-oh-description'> <div class=ten-oh-description-body> <h2 class=main-heading>New features every month</h2> <p>In this month’s release of GitLab 10.6, we've added CI/CD for GitHub, improved Kubernetes integration, and much more.</p> <div class=btn-group> <a class='btn cta-btn ghost' href='/2018/03/22/gitlab-10-6-released/'> See what’s new </a> </div> </div> </div> </div> </div> </section> <section class=customers> <div class=container> <h2 class='main-heading text-center'> <a href='/customers'>Used by more than 100,000 organizations around the globe</a> </h2> <ul class=customer-group> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="187.09" height="32.63" viewBox="0 0 187.09 32.63"><defs><style>.sony-cls-1{fill:#aaafb9;fill-rule:evenodd}</style></defs><title>sony</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=sony-cls-1 d="M184.24 26.35a2.85 2.85 0 1 0 2.84 2.84 2.85 2.85 0 0 0-2.84-2.84zm0 5.36a2.51 2.51 0 1 1 2.5-2.52 2.51 2.51 0 0 1-2.5 2.52z"/><path class=sony-cls-1 d="M185.71 28.45a.78.78 0 0 0-.36-.69 1.47 1.47 0 0 0-.78-.16h-1.39v3.19h.39v-1.47h.72l.91 1.47h.46l-1-1.47c.57 0 1-.25 1-.87zm-1.54.57h-.6v-1.13h.91c.4 0 .83.06.83.55 0 .65-.69.57-1.14.57zM167.53 13l5.83-6.22a2 2 0 0 0 .51-1.05c0-.46-.39-.64-1.63-.64h-1.47v-3.9h15.92v3.93h-2.09c-2.42 0-2.87.37-6.24 4.61l-9.22 10v6.08c0 1.55.79 2.1 3 2.1h3.48v3.79h-22.3v-3.82h3.48c2.25 0 3-.55 3-2.1V19.7L149 7.68c-1.8-2.1-1.55-2.56-6.55-2.56V1.19h20.17v3.93h-1.44c-1.46 0-2.08.27-2.08.82s.45.82.73 1.19l5.5 6a1.34 1.34 0 0 0 2.19-.08zM32.21 1.19h4.86v11h-4.49c-.4-2.19-1.77-3-3-4.2-2.26-2.07-7.14-3.8-11.26-3.8-5.32-.03-9.8 1.62-9.8 4.04 0 6.72 30.34 1.37 30.34 14.07 0 6.63-6.5 10.33-18.17 10.33a34.22 34.22 0 0 1-13.76-3.17c-1.13-.65-1.61.62-1.82 2.21h-5V20.34h4.52C5.62 23.21 7 23.81 8.26 25c2.19 2 7.4 3.47 12.17 3.43 7.2-.07 9.68-1.64 9.68-3.93s-2.45-2.83-10.34-4.07l-6.7-1.1C5.5 18.14 0 16.45 0 10.42 0 4.16 7 .23 18 .23c4.61 0 8.5.62 12.22 2.77 1 .67 2 .75 2-1.77zm94.94 18.36l.1-12.19c0-1.6-.83-2.15-3.21-2.15h-2.79V1.42H139v3.79h-2.3c-2.38 0-3.21.55-3.21 2.15V31.9l-7-.05L104 10.52V26c0 1.55.83 2.15 3.21 2.15h3.09v3.75H91.86v-3.75h3.06c2.38 0 3.21-.59 3.21-2.15V7.36c0-1.6-.83-2.15-3.21-2.15h-3.06V1.42h16l19.34 18.13zM67.63 0c-14.16 0-23 6.26-23 16.31 0 9.87 8.74 16.08 22.6 16.08 14.71 0 23.27-6.12 23.27-16.59C90.47 6.4 81.24 0 67.63 0zm-.32 28.42C59.47 28.42 55 23.9 55 16.08c0-7.63 4.67-12.15 12.7-12.15 7.71 0 12.21 4.62 12.21 12.47 0 7.68-4.57 12-12.61 12z"/></g></g></svg> <figcaption class=sr-only>Sony</figcaption> </figure> </li> <li class=align-top> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="186.25" height="65.63" viewBox="0 0 186.25 65.63"><defs><style>.comcast-cls-1{fill:#aaafb9;fill-rule:evenodd}</style></defs><title>comcast</title><g id=Layer_2 data-name="Layer 2"><path class=comcast-cls-1 d="M85.71.33A5.23 5.23 0 0 1 92 3.15a6 6 0 0 1 .31 3.46l-2.7 16.47c-2.47-5.2-4.73-10.5-7.12-15.74a5.19 5.19 0 0 1 3.19-7zm11.2.12a5.25 5.25 0 0 1 6.89 2.84 6.32 6.32 0 0 1-.64 5.32c-2.16 4.84-4.32 9.69-6.46 14.55l-2.35-14a8.34 8.34 0 0 1-.11-1.42c.21-1.17 1.58-1.46 2.1-2.42-.88 0-1.76 0-2.64-.05A5.41 5.41 0 0 1 96.91.45zm-23.2 8.22a5.24 5.24 0 0 1 7.36-.23 8.65 8.65 0 0 1 1.87 3.18c2 4.48 4 9 6 13.43a18.71 18.71 0 0 1 .68 1.78c-5.14-3.54-10.29-7.07-15.41-10.63a5.14 5.14 0 0 1-.55-7.54zM104 10a5.18 5.18 0 0 1 4.85-3 5.09 5.09 0 0 1 5.06 5.06 5 5 0 0 1-2.38 4.49c-4.94 3.37-9.81 6.83-14.81 10.1a17.35 17.35 0 0 1 .61-1.63c2.23-5 4.44-10 6.67-15zM68.82 22A5.23 5.23 0 0 1 74 18.67c2-.06 3.48 1.47 5 2.48 3.68 2.63 7.5 5.07 11.08 7.83H74.26a5.53 5.53 0 0 1-3.68-1 5.27 5.27 0 0 1-1.79-6zm40.48-2.28a5.38 5.38 0 0 1 6.41 0 5.13 5.13 0 0 1 2 5 5.05 5.05 0 0 1-5.06 4.28H96.16c4.27-3.23 8.79-6.14 13.14-9.26zM7.66 39.45a13.78 13.78 0 0 1 16.05 2.77c1 1.11-.55 2.78-1.78 2a13.56 13.56 0 0 0-4.35-2.79 11 11 0 1 0-5.24 21.23 10.85 10.85 0 0 0 9.18-3.09l.58-.38c.69.58 1.28 1.26 1.92 1.89A13.81 13.81 0 0 1 2.74 60a13.8 13.8 0 0 1 4.92-20.55zm31.76-1.2A13.8 13.8 0 1 1 31.35 43a13.82 13.82 0 0 1 8.07-4.79zm.32 2.8a11 11 0 0 1 11.84 5.36 10.85 10.85 0 0 1 .57 9.64 11 11 0 0 1-19.76 1.05 10.86 10.86 0 0 1-.39-9.86A11.11 11.11 0 0 1 39.75 41zm24.19-1.32c.11-.63.24-1.44 1-1.65a1.4 1.4 0 0 1 1.76 1.07c2.64 6.45 5.28 12.91 7.86 19.39 2.69-6.45 5.25-13 7.92-19.42.21-.64.83-1.29 1.57-1.1s1 1 1.14 1.69c1.59 8.57 3.13 17.15 4.7 25.73h-2.61l-4-21.61c-2.56 6.14-5 12.33-7.54 18.46a1.29 1.29 0 0 1-2.43.05c-2.57-6.15-5-12.36-7.56-18.51-1.31 7-2.52 14-3.88 20.93-.32 1.39-2.69.92-2.43-.49 1.42-8.19 3-16.36 4.46-24.54zm38.38-.89a13.87 13.87 0 0 1 14.55 3.23 1.41 1.41 0 0 1-.32 2.16 1.61 1.61 0 0 1-2-.46 11 11 0 0 0-9.48-2.77 11.09 11.09 0 0 0-8.82 8.77 11 11 0 0 0 12.65 12.89 11.36 11.36 0 0 0 6.4-3.52c.68.64 1.33 1.3 2 2a13.81 13.81 0 1 1-15-22.26zm29.05.22a1.35 1.35 0 0 1 1.67-1c.59.15.81.78 1 1.28q5.32 13 10.61 26.1h-2.75c-1.36-3.38-2.75-6.76-4.11-10.14h-10.34q-1.89 4.8-3.88 9.55a1.25 1.25 0 0 1-2.14.26c-.49-.5-.2-1.22 0-1.78 3.31-8.09 6.56-16.21 9.89-24.3zm1.28 3.58c1.36 3.29 2.69 6.6 4 9.89h-8.05c1.32-3.31 2.7-6.6 4-9.91zm21.67-4.35a11.64 11.64 0 0 1 8.8 1.64 1.42 1.42 0 0 1-.82 2.46 17.31 17.31 0 0 1-2.79-1.08 7 7 0 0 0-6.38.55A3.83 3.83 0 0 0 152 46.6a5.94 5.94 0 0 0 2.57 2.18c2.06 1.08 4.13 2.12 6.19 3.2a7.89 7.89 0 0 1 3.81 4.13 6.85 6.85 0 0 1-1.66 7.16 8.28 8.28 0 0 1-6.23 2.35 12.68 12.68 0 0 1-8.59-4.08q1-.91 2-1.86c2.22 2.09 5.33 3.71 8.44 2.94 2.37-.5 4.28-3.12 3.37-5.52-.82-2.23-3.29-2.95-5.17-4-2.17-1.22-4.67-2-6.38-3.93a6.61 6.61 0 0 1-1.12-6.76 7 7 0 0 1 5.06-4.11zm14.97 2.61c-1.43-.1-1.49-2.44-.12-2.7 5.26-.07 10.52 0 15.78 0a1.38 1.38 0 0 1 .82 2.43c-.38.4-1 .29-1.46.32h-5.82v24.51h-2.6V40.92h-6.61z" id=Layer_1-2 data-name="Layer 1"/></g></svg> <figcaption class=sr-only>Comcast</figcaption> </figure> </li> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width=108 height=90 viewBox="0 0 108 90"><defs><style>.nasa-cls-1{fill:#aaafb9;fill-rule:evenodd}</style></defs><title>nasa</title><g id=Layer_2 data-name="Layer 2"><path class=nasa-cls-1 d="m75.7 47.4h4.4l-2.3-6.2c0 0-.4 1.5-1 3.1h-2.2 2.2c-.5 1.5-1.1 3.1-1.1 3.1"/><path class=nasa-cls-1 d="m38.3 47.4h4.4l-2.3-6.2c0 0-.4 1.5-1 3.1h-2.2 2.2c-.7 1.5-1.1 3.1-1.1 3.1"/><path class=nasa-cls-1 d="m108 4.4l-.6.7c.1-.3.3-.6.4-.9-4 6.2-12.3 12.6-19.8 17.2-7.9-12.8-22-21.4-37.8-21.4-24.7 0-44.8 20.3-44.8 45.1 0 3.6.4 6.8 1.2 10.1l-.1-.3c-2.4 1.1-4.6 2.3-6.5 3.5l1.2.4c1.6-1 3.5-2.1 5.6-3 2.1 8.5 6.6 15.9 12.6 21.8-2.2 1.9-4.5 4-6.9 6.2l-.1 1.5c2.1-2.2 4.7-4.6 7.8-7.1 7.8 7.4 18.4 11.8 29.8 11.8 24.5.1 44.6-20.2 44.6-44.9 0-6.2-1.3-12.3-3.7-17.8 8-7 14.3-14.5 17.1-22.9m-32.1 32.4c-.3.1-.6.4-.9.6-.1-.1-.3-.3-.4-.4v-.1c.4-.1.8-.1 1.3-.1m-17.2-28.2c0-.1.1-.3.4-.4l.2-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1.2.1c0 .1-.1.3-.4.4l-.1 1.2-.1-1.2c-.1 0-.4-.1-.4-.4l-1.2-.1 1.1-.1m1 10.2c0 .3-.1.4-.4.4s-.4-.1-.4-.4.1-.4.4-.4.4.1.4.4m-7-9.6c.3 0 .4.1.4.4s-.1.4-.4.4-.4-.1-.4-.4c-.1-.1.2-.4.4-.4m.4 5.8c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.2-.2.3 0 .3.3m-2.8-11.3c.1 0 .3.1.3.3 0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3-.1 0 .2-.3.3-.3m-1.4 8.8c.1 0 .3.1.3.3s-.2.2-.3.2c-.1 0-.3-.1-.3-.3 0-.1.1-.2.3-.2m-1.4-3.9c.3 0 .5.1.5.4 0 .3-.1.4-.4.4s-.5-.1-.5-.4c0-.3.3-.4.4-.4m-3.6 5.2c.1 0 .3.1.3.3 0 .1-.1.3-.3.3s-.3-.1-.3-.3c0-.2.1-.3.3-.3m-1.1-.8c.1 0 .3.1.3.3 0 .1-.1.3-.3.3s-.3-.1-.3-.3c-.1-.1.2-.3.3-.3m-.1 2.6c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3 0 0 .3.1.3.3m-.9-3.3c.1 0 .3.1.3.3 0 .1-.1.3-.3.3s-.3-.1-.3-.3c-.1-.1 0-.3.3-.3m-24 53.7c-.1 0-.3-.1-.3-.3s.1-.3.3-.3.3.1.3.3-.2.3-.3.3m-1.2-15.6c0 1.2.6 1.6 1.6 2.7-.3 0-1.5 0-5.4 0 2.1-1 1.8-2.4 1.8-2.5 0-5 0-9.2 0-12 0-.4 0-.4-1.5-2.1l.1-.1c7.6 0 6.9 0 7 .1.1 0 6.2 10.4 6.2 10.5 0 0 0-3.7 0-8.5 0-.6-1.5-2.1-1.5-2.1 2.2 0 5 0 5 0-1 1.3-1.3 1.2-1.3 1.9 0 2.5 0 7.1 0 12.3 0 .7.6 1 1.5 2.4h-7c-2.3-3.9-6.5-11-6.5-11 0 .3-.2 4.7 0 8.4m13.3 16.9c0 .1-.1.3-.3.3s-.3-.1-.3-.3.1-.3.3-.3.3.2.3.3m-5.7 1.8c0 .3-.1.4-.4.4-.3 0-.4-.1-.4-.4s.1-.4.4-.4c.1-.1.4.2.4.4m-2-3.9c0-.3.1-.4.4-.4s.4.1.4.4-.1.4-.4.4-.4-.2-.4-.4m.1 2.6c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.2-.2.3 0 .3.3m11.9-12.9c-.1 0-.3-.1-.3-.3s.1-.3.3-.3.3.1.3.3c0 .1-.2.3-.3.3m.6 8.1c0 .3-.1.4-.4.4-.3 0-.4-.1-.4-.4s.1-.4.4-.4c.1 0 .4.1.4.4m-1.8 9.7c0 .1-.1.3-.3.3s-.3-.1-.3-.3.1-.3.3-.3.3.1.3.3m1.5 5.4c0 .1-.1.3-.4.4l-.1 1.2-.1-1.2c-.1 0-.4-.1-.4-.4l-1.4-.1 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1 .1m2.2-8.7c0-.3.1-.4.4-.4s.4.1.4.4-.1.4-.4.4-.4-.3-.4-.4m1 4.6c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3s.3.1.3.3c.2.1 0 .3-.3.3m10-1.1c-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.1 0 .3.1.3.3.1.2-.2.3-.3.3m3.7-8.6c-1.5 1.3-4.5-2.7-6.2-4.9.4-.3.7-.6 1.2-.9 2.8 2.9 6.7 4.4 5 5.8m3.3-15.4c.4.4.9.7 1.3 1-.4.3-.9.4-1.2.7l-.1-1.7m1.6 20.9c-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.1 0 .3.1.3.3.2.2-.1.3-.3.3m-1.4-15.2v-1.6c1-.7 2.1-1.3 3.1-2.1 2.9 1 5.3-.1 5.4-.6.4-1 0-1.5-1.3-2.1 1.8-1.2 3.4-2.2 5.1-3.4 2.6 2.5 2.8 5.6-1.6 8-4.1 2.1-8.8.1-8.8.1.1 0-1.3 1.1-1.9 1.7m14.4 8c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.1 0 .3.1.3.3.1.1 0 .3-.3.3m.4 4.7c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.2-.1.3 0 .3.3m1.3 10.1c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.1 0 .3.1.3.3s-.1.3-.3.3m7.1-20.2c0-.1.1-.3.3-.3.1 0 .3.1.3.3 0 .1-.1.3-.3.3-.2.2-.3 0-.3-.3m1.1 2.7c-.3 0-.4-.1-.4-.4s.1-.4.4-.4.4.1.4.4-.1.4-.4.4m.3 7c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.2-.2.3.1.3.3m1.1 2.2c0 .1-.1.3-.4.4l-.2 1.2-.1-1.2c-.1 0-.3-.1-.4-.4l-1.2-.1 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1.1.1m1.9.3c-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.1 0 .3.1.3.3.1 0 0 .3-.3.3m.7-5.9c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.1 0 .3.1.3.3.1 0 0 .3-.3.3m.9-3.9l-.1 1.2-.1-1.2c-.1 0-.4-.1-.4-.4l-1.3-.2 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1.2.1c.1.4 0 .5-.3.5m1.4 3c-.3 0-.4-.1-.4-.4s.1-.4.4-.4c.3 0 .4.1.4.4s-.2.4-.4.4m-2.6-25.8c1.2 2.8 3.7 10.5 5.6 15.3.4 1.2 1.3 1.5 1.3 1.5-3.5 0-10 0-10 0 1.8-1.6 1.5-1.6.7-3.9h-5.4c-1.2 2.7.3 3.9.6 3.9-.6 0-1.9 0-3.1 0 .9 2.7 1.9 6.5 1.9 9.9 0 5.9-2.9 10.5-14.2 5.6l-.1-.3c14.2 5.9 16-3.7 11.7-15.4-.9 0-1.5 0-1.5 0 .4-.3.9-.6 1.2-.9-1-2.5-2.3-5.2-3.8-7.9 0 0 0-.1-.1-.1-.1-.3-.4-.7-.6-1 0-.1-.1-.1-.1-.3-.4-.6-.7-1.2-1.2-1.8-.6-.7-1-1.6-1.6-2.4-4-1-6.5 1.8-2.1 3.3 1.5.4 2.6 1 3.7 1.6-1.9 1.3-3.8 2.4-5.7 3.6-.6-.3-1.3-.4-2.1-.7-5.3-2.1-4.7-11 4.4-10.1-4-5-8.2-9.3-11.7-12.3-1-.9-2.1-1.6-2.9-2.4-15.8-11.8-25.5-4.7-14.3 18.2 1 2.1 2.1 3.9 3.1 5.5.1-.6.3-1.2.4-1.6.6-2.2 1.2-4.3 1.5-5.6 0-.3-.4-1-1.3-1.8v-.1c4.1 0 8.4 0 8.4 0 1.2 2.8 3.7 10.5 5.6 15.3.1.4.4.7.7 1-.1.1-.4.3-.6.4-3.5 0-8.7 0-8.5 0 1.8-1.6 1.5-1.6.7-3.9h-4.3c2.2 3 4.3 5.5 6.2 7.9-.3.1-.6.4-1 .6-2.2-2.7-4.3-5.3-6.3-8.5-1.2 2.7.3 3.9.6 3.9-1.2 0-5.4 0-5.4 0 2.3-1.6 2.2-2.1 2.2-2.1.4-1.3.7-2.7 1.2-4.2-1-1.6-2.2-3.4-3.2-5.5-8.5-15.4-7.3-31.3 8.1-24.5 8.2 3.7 16.3 11.6 22.3 19.7 3.4.6 2.6.7 4-.4 0 0-.1 1 0 4.3-.7-.6-1.5-1-2.2-1.3.7 1.2 1.5 2.2 2.2 3.4.3.4.4.7.7 1.2.4.9 1 1.6 1.5 2.5.6 1 1.2 2.1 1.6 3.1.1.4.4.9.6 1.3.1.3.3.6.4.9.4-.4.3-.6.3-.6.6-2.2 1.3-4.7 2.1-7 .6-2.1 1-3.9 1.3-5.2 1.2-.7 2.2-1.6 3.4-2.4 1.5.3 3.1.3 3.1.3m-10.1 25.6c.3 0 .4.1.4.4s-.1.4-.4.4-.4-.1-.4-.4.1-.4.4-.4m-.5-2.6c0-.3.1-.4.4-.4s.4.1.4.4-.1.4-.4.4-.4-.2-.4-.4m-32.2-37.6l-1.2.1c0 .1-.1.3-.4.4l-.2 1.3v-1.2c-.1 0-.4-.1-.4-.4l-1.2-.1 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4h1.2m-4.3 1.2c0 .1-.1.3-.3.3s-.3-.1-.3-.3.1-.3.3-.3.3.2.3.3m-1.6-1.9c0 .1-.1.3-.3.3s-.4 0-.4-.3c0-.1.1-.3.3-.3.2 0 .4.2.4.3"/></g></svg> <figcaption class=sr-only>NASA</figcaption> </figure> </li> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="108.14" height="108.14" viewBox="0 0 108.14 108.14"><defs><style>.bayar-cls-1,.bayar-cls-2{fill:#aaafb9;stroke:#aaafb9}.bayar-cls-1{stroke-width:.91px}.bayar-cls-2{stroke-width:.54px}</style></defs><title>bayer</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><g id=B1><path class=bayar-cls-1 d="M54.07.45a53.62 53.62 0 1 0 53.62 53.62A53.63 53.63 0 0 0 54.07.45zm0 101.15a47.53 47.53 0 1 1 47.53-47.53 47.52 47.52 0 0 1-47.53 47.53z"/><path class=bayar-cls-2 d="M59.17 46.73h4l-7.27 9.36v5h-3.43v-5l-7.27-9.36h4l4.95 6.66zm19.26 0v2.93H68.8v2.74H78v2.82h-9.2v2.93h9.63v3h-13V46.73zm-17.78 18v2.93H51v2.74h9.25v2.82H51v2.93h9.63v2.93h-13V64.73h13zm28.96-9.1h-2.74v5.48h-3.35V46.73h8.71a4.45 4.45 0 0 1 1.26 8.71l4.22 5.63h-4zm2.32-6h-5.06v3.12h5.06a1.59 1.59 0 0 0 1.56-1.56 1.62 1.62 0 0 0-1.56-1.53zM58.52 87.71a1.6 1.6 0 0 0-1.52-1.6h-5.9v3.16H57a1.62 1.62 0 0 0 1.52-1.56zm-10.84 9.86V83.22h9.59a4.44 4.44 0 0 1 1.64 8.56l4.3 5.78h-4l-4.11-5.47H51v5.48zm-1.49-36.5h-3.61L41.4 58.6h-8.11l-1.18 2.47h-3.57l7.15-14.35H39zm-8.82-10.92l-2.85 5.67h5.63zM63 42.81h-3.6l-1.18-2.47h-8.11l-1.18 2.47h-3.57l7.15-14.35h3.31zm-8.83-11l-2.85 5.67H57zM14.72 52.43h6.09A1.42 1.42 0 0 0 22.18 51a1.4 1.4 0 0 0-1.37-1.41h-6.09zm0 5.82h6.35a1.64 1.64 0 0 0 1.64-1.56 1.73 1.73 0 0 0-1.64-1.64h-6.35zm9.7-4.64a4.19 4.19 0 0 1 1.52 3.12 4.42 4.42 0 0 1-4.64 4.38h-9.89V46.73h9.82a4.19 4.19 0 0 1 3.2 6.89zM51 16.59h6.05a1.41 1.41 0 0 0 1.37-1.37 1.4 1.4 0 0 0-1.37-1.41H51zm0 5.78h6.35A1.64 1.64 0 0 0 59 20.81a1.73 1.73 0 0 0-1.64-1.64h-6.3v3.2zm9.67-4.6a4.19 4.19 0 0 1 1.52 3.12 4.42 4.42 0 0 1-4.64 4.38h-9.91V10.88h9.82a4.17 4.17 0 0 1 4.19 4.19 3.8 3.8 0 0 1-.96 2.7z"/></g></g></g></svg> <figcaption class=sr-only>Bayer</figcaption> </figure> </li> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="214.62" height="61.05" viewBox="0 0 214.62 61.05"><defs><style>.nasdaq-cls-1{fill:#aaafb9}</style></defs><title>nasdaq</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=nasdaq-cls-1 d="M70.37 0H53.1l-16 44a2.9 2.9 0 0 1-2.62 1.83h-.3 17.53A2.83 2.83 0 0 0 54.35 44z"/><path class=nasdaq-cls-1 d="M36 15.21a3 3 0 0 0-2.77 1.93l-5.66 15.62 4 11.12a3 3 0 0 0 2.77 2 2.88 2.88 0 0 0 2.78-1.94l5.71-15.66-4-11.09A2.94 2.94 0 0 0 36 15.21z"/><path class=nasdaq-cls-1 d="M0 61h17.27l16-44a3 3 0 0 1 2.62-1.83h.3-17.53A2.83 2.83 0 0 0 16 17zm94.49-44l-.06 23.22L81.08 17H75l-.07 29h4.36l.06-23 13.21 23h6.22l.07-29zm21.95 7a70 70 0 0 0-11.89.51v3.93a45.38 45.38 0 0 1 10.32-.74c2 .37 2.74 1.44 2.73 3.12v1.64c-2.73-.07-5.09-.09-7.4 0-3.81.26-7.16 2.55-7.17 6.66s1.52 6.49 5.81 7.09a54.87 54.87 0 0 0 13.49-.16V31c.18-4.25-1.88-6.5-5.89-7zm1.32 19.17c-1 .05-2.88 0-3.93 0-3.85-.1-6.13-.61-6.14-4 0-2.73 2.93-3.27 4.19-3.27h6zm66.74-19a70 70 0 0 0-11.89.51v3.92a45.38 45.38 0 0 1 10.32-.74c2 .37 2.74 1.44 2.73 3.12v1.64c-2.73-.07-5.09-.09-7.4 0-3.81.26-7.16 2.55-7.17 6.66s1.52 6.49 5.81 7.09a54.87 54.87 0 0 0 13.49-.16V31.14c.18-4.23-1.88-6.47-5.89-6.97zm1.32 19.17c-1 .05-2.88 0-3.93 0-3.85-.1-6.13-.61-6.14-4 0-2.73 2.93-3.27 4.19-3.27h6zm-59.13-1.69v4.11c5 1.05 9.3 1.16 12.86 0 6-2 6.59-10.1 0-12.05l-5.93-1.53c-2.95-.71-3.24-3.68 0-4.32 2.59-.49 5.67-.1 9.13.44v-3.83c-4.59-1-8.42-.94-11.56 0-5.73 1.53-6.11 8.28-2.18 10.72 2 1.41 6 1.9 8 2.44 3.21.95 2.67 4.19 0 4.71a21.6 21.6 0 0 1-10.32-.69zm35.7-26.08v8.62a40.63 40.63 0 0 0-5.64-.17c-5.61.48-9.83 4.47-9.85 11 0 7.38 4.1 11.1 10 11.63a39.87 39.87 0 0 0 10.1-.49l.07-30.58zm-.07 27.66h-2.91c-4.22 0-7.33-2.24-7.62-8 0-5.92 3.7-7.8 8.1-7.49l2.46.29zm52.3 10.44V24.26a39.66 39.66 0 0 0-10.09-.38c-5.71.52-10 3.56-10 11.3 0 7.11 3.92 10.83 9.53 11.32 2.41.17 5.61.13 5.61.13V56zm-5-11.09l-2.46.28c-4.13.27-7.81-1.86-7.81-7.33 0-6 3.42-7.93 7.64-7.93h2.91z"/></g></g></svg> <figcaption class=sr-only>Nasdaq</figcaption> </figure> </li> </ul> <blockquote class=customer-quote> <div class=quote-media> <img src="/images/home/roger-meier-headshot.jpg" alt="Roger Meier"/> </div> <div class=quote-body> <p class=quote-text> We decided to use an Open Source based platform so we can participate in the development and contribute to the features and concepts we need such as file size statistics, OpenID Connect, GPG, and Docker Registry. GitLab's built-in Continuous Integration and independent CI Runners allows our developers to integrate very specific environments, boosting productivity and increasing developer satisfaction. </p> <cite class=quote-attribution> Roger Meier, Social Coding Platform, Siemens </cite> </div> </blockquote> <div class=text-center> <div class=btn-group> <a class='btn cta-btn accent' href='/customers/'>View more customers</a> </div> </div> </div> </section> <section class=feature-group> <div class=container> <div class='row flex-row'> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/feature-thumb-gitlab-com.png" alt="GitLab.com screenshot"/> </div> <div class=feature-body> <h3 class=feature-label>GitLab.com</h3> <h2 class=feature-title>Host and explore projects</h2> <p class=feature-description></p> <a class=feature-more href='/gitlab-com/'>Sign up</a> </div> </div> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/feature-thumb-blog.png" alt="GitLab Navigation screenshot" srcset="/images/home/feature-thumb-blog_2x.png 2x"/> </div> <div class=feature-body> <h3 class=feature-label>Blog</h3> <h2 class=feature-title>Global Developer Report: 2018 is the year for open source and DevOps</h2> <p class=feature-description></p> <a class=feature-more href='/2018/03/07/2018-global-developer-report/'>Read more</a> </div> </div> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/ibm-think-logo.png" alt="IBM Think Logo"/> </div> <div class=feature-body> <h3 class=feature-label>Event</h3> <h2 class=feature-title>Join us at IBM Think March 19—22</h2> <p class=feature-description></p> <a class=feature-more href='https://about.gitlab.com/events/'>View all events</a> </div> </div> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/feature-thumb-enterprise-demo.png" alt="GitLab Enterprise screenshot" srcset="/images/home/feature-thumb-enterprise-demo_2x.png 2x"/> </div> <div class=feature-body> <h3 class=feature-label>Demo</h3> <h2 class=feature-title>Inside GitLab Enterprise</h2> <p class=feature-description></p> <a class=feature-more href='/eep-demo/'>Register now</a> </div> </div> </div> </div> </section> <footer class=footer> <svg width=65 height=60 viewBox="0 0 210 194" class=footer-logo> <path d="M105.0614,193.655 L105.0614,193.655 L143.7014,74.734 L66.4214,74.734 L105.0614,193.655 L105.0614,193.655 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L66.4214,74.7338 L12.2684,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M12.2685,74.7341 L12.2685,74.7341 L0.5265,110.8731 C-0.5445,114.1691 0.6285,117.7801 3.4325,119.8171 L105.0615,193.6551 L12.2685,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M12.2685,74.7342 L66.4215,74.7342 L43.1485,3.1092 C41.9515,-0.5768 36.7375,-0.5758 35.5405,3.1092 L12.2685,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L143.7014,74.7338 L197.8544,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M197.8544,74.7341 L197.8544,74.7341 L209.5964,110.8731 C210.6674,114.1691 209.4944,117.7801 206.6904,119.8171 L105.0614,193.6551 L197.8544,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M197.8544,74.7342 L143.7014,74.7342 L166.9744,3.1092 C168.1714,-0.5768 173.3854,-0.5758 174.5824,3.1092 L197.8544,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> </svg> <div class='animated container'> <ul class='text-center footer-social'> <li> <a href="https://twitter.com/gitlab"><i class='fa fa-twitter'></i> <span class=sr-only>Twitter</span> </a></li> <li> <a href="https://www.facebook.com/gitlab"><i class='fa fa-facebook'></i> <span class=sr-only>Facebook</span> </a></li> <li> <a href="https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg"><i class='fa fa-youtube'></i> <span class=sr-only>YouTube</span> </a></li> <li> <a href="https://www.linkedin.com/company/gitlab-com"><i class='fa fa-linkedin'></i> <span class=sr-only>LinkedIn</span> </a></li> </ul> <div class=row> <div class='col-sm-6 col-md-3 col-lg-2 col-lg-offset-2 footer-link-holder'> <h3 class=footer-link-title>Products</h3> <ul class='animated footer-links'> <li><a href="/features">Features</a></li> <li><a href="/installation">Installation</a></li> <li><a href="/gitlab-com/">GitLab.com</a></li> <li><a href="/pricing">Pricing</a></li> <li><a href="/releases">Releases</a></li> </ul> </div> <div class='col-sm-6 col-md-3 col-lg-2 footer-link-holder'> <h3 class=footer-link-title>Services</h3> <ul class='animated footer-links'> <li><a href="/resellers/">Resellers</a></li> <li><a href="/services/">Services</a></li> </ul> </div> <div class='col-sm-6 col-md-3 col-lg-2 footer-link-holder'> <h3 class=footer-link-title>Community</h3> <ul class='animated footer-links'> <li><a href="/events/">Events</a></li> <li><a href="/core-team/">Core Team</a></li> <li><a href="http://contributors.gitlab.com/">Contributors</a></li> <li><a href="/find-a-speaker/">Find a Speaker</a></li> <li><a href="https://docs.gitlab.com/">Documentation</a></li> <li><a href="/getting-help/">Getting Help</a></li> <li><a href="/contributing/">Contributing</a></li> <li><a href="/applications/">Applications</a></li> <li><a href="/mvp/">Hall of Fame</a></li> </ul> </div> <div class='col-sm-6 col-md-3 col-lg-2 footer-link-holder'> <h3 class=footer-link-title>Company</h3> <ul class='animated footer-links'> <li><a href="https://gitlab.com/groups/gitlab-org">Source Code</a></li> <li><a href="/blog/">Blog</a></li> <li><a href="/customers/">Customers</a></li> <li><a href="/press/">Press and Logos</a></li> <li><a href="https://shop.gitlab.com">Shop</a></li> <li><a href="/about/">About Us</a></li> <li><a href="/team/">Team</a></li> <li><a href="/direction/">Direction</a></li> <li><a href="/handbook/">Handbook</a></li> <li><a href="/jobs/">Jobs</a></li> <li><a href="/terms/">Terms</a></li> <li><a href="/contact/">Contact Us</a></li> </ul> </div> </div> </div> </footer> <div class='animated text-center source-link'> Edit <a href="https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/source/index.html.haml" class=external-source-link>this page</a> &mdash; please <a href="https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/CONTRIBUTING.md" class=external-source-link>contribute</a>. <a href='https://creativecommons.org/licenses/by-sa/4.0/' rel=license> <img src="/images/by-sa.svg" alt="Creative Commons License"/> </a> </div> <script src="/javascripts/libs/jquery.min.js"></script> <script src="/javascripts/libs/bootstrap.min.js"></script> <script src="/javascripts/libs/jqBootstrapValidation.js"></script> <script src="/javascripts/scripts.js"></script> <script src="/javascripts/libs/slick.min.js"></script> <script src="/javascripts/home.js"></script> <script src="/javascripts/all-clickable.js"></script> <script>
- //<![CDATA[
- $.ajax({
- url: '//munchkin.marketo.net/munchkin.js',
- dataType: 'script',
- cache: true,
- success: function() {
- Munchkin.init('194-VVC-221');
- }
- });
- //]]>
-</script> <script>
- //<![CDATA[
- var google_conversion_id = 968513482;
- var google_conversion_label = "a-CXCPqluQUQlqi33AM";
- var google_custom_params = window.google_tag_params;
- var google_remarketing_only = true;
- //]]>
-</script> <script src='//www.googleadservices.com/pagead/conversion.js'>
-<![CDATA[
-]]>
-</script> <noscript> <div style='display:inline;'> <img alt='' height=1 src='//googleads.g.doubleclick.net/pagead/viewthroughconversion/968513482/?value=0&amp;guid=ON&amp;script=0' style='border-style:none;' width=1 /> </div> </noscript> <script>
- //<![CDATA[
- (function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
- (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
- e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
- })(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');
-
- _st('install','Z4n7msKyctXXfJs66EKx','2.0.0');
- //]]>
-</script> </body> </html>Job succeeded
+section_end:1517486896:get_sources
+section_start:1517486896:restore_cache
+Checking cache for ruby-2.3.6-with-yarn...
+Downloading cache.zip from http://runners-cache-5-internal.gitlab.com:444/runner/project/13083/ruby-2.3.6-with-yarn
+Successfully extracted cache
+section_end:1517486919:restore_cache
+section_start:1517486919:download_artifacts
+Downloading artifacts for retrieve-tests-metadata (50551658)...
+Downloading artifacts from coordinator... ok  id=50551658 responseStatus=200 OK token=HhF7y_1X
+Downloading artifacts for compile-assets (50551659)...
+Downloading artifacts from coordinator... ok  id=50551659 responseStatus=200 OK token=wTz6JrCP
+Downloading artifacts for setup-test-env (50551660)...
+Downloading artifacts from coordinator... ok  id=50551660 responseStatus=200 OK token=DTGgeVF5
+WARNING: tmp/tests/gitlab-shell/.gitlab_shell_secret: chmod tmp/tests/gitlab-shell/.gitlab_shell_secret: no such file or directory (suppressing repeats)
+section_end:1517486934:download_artifacts
+section_start:1517486934:build_script
+$ bundle --version
+Bundler version 1.16.1
+$ source scripts/utils.sh
+$ source scripts/prepare_build.sh
+The Gemfile's dependencies are satisfied
+Successfully installed knapsack-1.15.0
+1 gem installed
+NOTICE: database "gitlabhq_test" does not exist, skipping
+DROP DATABASE
+CREATE DATABASE
+CREATE ROLE
+GRANT
+-- enable_extension("plpgsql")
+ -> 0.0156s
+-- enable_extension("pg_trgm")
+ -> 0.0156s
+-- create_table("abuse_reports", {:force=>:cascade})
+ -> 0.0119s
+-- create_table("appearances", {:force=>:cascade})
+ -> 0.0065s
+-- create_table("application_settings", {:force=>:cascade})
+ -> 0.0382s
+-- create_table("audit_events", {:force=>:cascade})
+ -> 0.0056s
+-- add_index("audit_events", ["entity_id", "entity_type"], {:name=>"index_audit_events_on_entity_id_and_entity_type", :using=>:btree})
+ -> 0.0040s
+-- create_table("award_emoji", {:force=>:cascade})
+ -> 0.0058s
+-- add_index("award_emoji", ["awardable_type", "awardable_id"], {:name=>"index_award_emoji_on_awardable_type_and_awardable_id", :using=>:btree})
+ -> 0.0068s
+-- add_index("award_emoji", ["user_id", "name"], {:name=>"index_award_emoji_on_user_id_and_name", :using=>:btree})
+ -> 0.0043s
+-- create_table("boards", {:force=>:cascade})
+ -> 0.0049s
+-- add_index("boards", ["project_id"], {:name=>"index_boards_on_project_id", :using=>:btree})
+ -> 0.0056s
+-- create_table("broadcast_messages", {:force=>:cascade})
+ -> 0.0056s
+-- add_index("broadcast_messages", ["starts_at", "ends_at", "id"], {:name=>"index_broadcast_messages_on_starts_at_and_ends_at_and_id", :using=>:btree})
+ -> 0.0041s
+-- create_table("chat_names", {:force=>:cascade})
+ -> 0.0056s
+-- add_index("chat_names", ["service_id", "team_id", "chat_id"], {:name=>"index_chat_names_on_service_id_and_team_id_and_chat_id", :unique=>true, :using=>:btree})
+ -> 0.0039s
+-- add_index("chat_names", ["user_id", "service_id"], {:name=>"index_chat_names_on_user_id_and_service_id", :unique=>true, :using=>:btree})
+ -> 0.0036s
+-- create_table("chat_teams", {:force=>:cascade})
+ -> 0.0068s
+-- add_index("chat_teams", ["namespace_id"], {:name=>"index_chat_teams_on_namespace_id", :unique=>true, :using=>:btree})
+ -> 0.0098s
+-- create_table("ci_build_trace_section_names", {:force=>:cascade})
+ -> 0.0048s
+-- add_index("ci_build_trace_section_names", ["project_id", "name"], {:name=>"index_ci_build_trace_section_names_on_project_id_and_name", :unique=>true, :using=>:btree})
+ -> 0.0035s
+-- create_table("ci_build_trace_sections", {:force=>:cascade})
+ -> 0.0040s
+-- add_index("ci_build_trace_sections", ["build_id", "section_name_id"], {:name=>"index_ci_build_trace_sections_on_build_id_and_section_name_id", :unique=>true, :using=>:btree})
+ -> 0.0035s
+-- add_index("ci_build_trace_sections", ["project_id"], {:name=>"index_ci_build_trace_sections_on_project_id", :using=>:btree})
+ -> 0.0033s
+-- create_table("ci_builds", {:force=>:cascade})
+ -> 0.0062s
+-- add_index("ci_builds", ["auto_canceled_by_id"], {:name=>"index_ci_builds_on_auto_canceled_by_id", :using=>:btree})
+ -> 0.0035s
+-- add_index("ci_builds", ["commit_id", "stage_idx", "created_at"], {:name=>"index_ci_builds_on_commit_id_and_stage_idx_and_created_at", :using=>:btree})
+ -> 0.0032s
+-- add_index("ci_builds", ["commit_id", "status", "type"], {:name=>"index_ci_builds_on_commit_id_and_status_and_type", :using=>:btree})
+ -> 0.0032s
+-- add_index("ci_builds", ["commit_id", "type", "name", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_name_and_ref", :using=>:btree})
+ -> 0.0035s
+-- add_index("ci_builds", ["commit_id", "type", "ref"], {:name=>"index_ci_builds_on_commit_id_and_type_and_ref", :using=>:btree})
+ -> 0.0042s
+-- add_index("ci_builds", ["project_id", "id"], {:name=>"index_ci_builds_on_project_id_and_id", :using=>:btree})
+ -> 0.0031s
+-- add_index("ci_builds", ["protected"], {:name=>"index_ci_builds_on_protected", :using=>:btree})
+ -> 0.0031s
+-- add_index("ci_builds", ["runner_id"], {:name=>"index_ci_builds_on_runner_id", :using=>:btree})
+ -> 0.0033s
+-- add_index("ci_builds", ["stage_id"], {:name=>"index_ci_builds_on_stage_id", :using=>:btree})
+ -> 0.0035s
+-- add_index("ci_builds", ["status", "type", "runner_id"], {:name=>"index_ci_builds_on_status_and_type_and_runner_id", :using=>:btree})
+ -> 0.0031s
+-- add_index("ci_builds", ["status"], {:name=>"index_ci_builds_on_status", :using=>:btree})
+ -> 0.0032s
+-- add_index("ci_builds", ["token"], {:name=>"index_ci_builds_on_token", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- add_index("ci_builds", ["updated_at"], {:name=>"index_ci_builds_on_updated_at", :using=>:btree})
+ -> 0.0047s
+-- add_index("ci_builds", ["user_id"], {:name=>"index_ci_builds_on_user_id", :using=>:btree})
+ -> 0.0029s
+-- create_table("ci_group_variables", {:force=>:cascade})
+ -> 0.0055s
+-- add_index("ci_group_variables", ["group_id", "key"], {:name=>"index_ci_group_variables_on_group_id_and_key", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- create_table("ci_job_artifacts", {:force=>:cascade})
+ -> 0.0048s
+-- add_index("ci_job_artifacts", ["job_id", "file_type"], {:name=>"index_ci_job_artifacts_on_job_id_and_file_type", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- add_index("ci_job_artifacts", ["project_id"], {:name=>"index_ci_job_artifacts_on_project_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("ci_pipeline_schedule_variables", {:force=>:cascade})
+ -> 0.0044s
+-- add_index("ci_pipeline_schedule_variables", ["pipeline_schedule_id", "key"], {:name=>"index_ci_pipeline_schedule_variables_on_schedule_id_and_key", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- create_table("ci_pipeline_schedules", {:force=>:cascade})
+ -> 0.0047s
+-- add_index("ci_pipeline_schedules", ["next_run_at", "active"], {:name=>"index_ci_pipeline_schedules_on_next_run_at_and_active", :using=>:btree})
+ -> 0.0029s
+-- add_index("ci_pipeline_schedules", ["project_id"], {:name=>"index_ci_pipeline_schedules_on_project_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("ci_pipeline_variables", {:force=>:cascade})
+ -> 0.0045s
+-- add_index("ci_pipeline_variables", ["pipeline_id", "key"], {:name=>"index_ci_pipeline_variables_on_pipeline_id_and_key", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- create_table("ci_pipelines", {:force=>:cascade})
+ -> 0.0057s
+-- add_index("ci_pipelines", ["auto_canceled_by_id"], {:name=>"index_ci_pipelines_on_auto_canceled_by_id", :using=>:btree})
+ -> 0.0030s
+-- add_index("ci_pipelines", ["pipeline_schedule_id"], {:name=>"index_ci_pipelines_on_pipeline_schedule_id", :using=>:btree})
+ -> 0.0031s
+-- add_index("ci_pipelines", ["project_id", "ref", "status", "id"], {:name=>"index_ci_pipelines_on_project_id_and_ref_and_status_and_id", :using=>:btree})
+ -> 0.0032s
+-- add_index("ci_pipelines", ["project_id", "sha"], {:name=>"index_ci_pipelines_on_project_id_and_sha", :using=>:btree})
+ -> 0.0032s
+-- add_index("ci_pipelines", ["project_id"], {:name=>"index_ci_pipelines_on_project_id", :using=>:btree})
+ -> 0.0035s
+-- add_index("ci_pipelines", ["status"], {:name=>"index_ci_pipelines_on_status", :using=>:btree})
+ -> 0.0032s
+-- add_index("ci_pipelines", ["user_id"], {:name=>"index_ci_pipelines_on_user_id", :using=>:btree})
+ -> 0.0029s
+-- create_table("ci_runner_projects", {:force=>:cascade})
+ -> 0.0035s
+-- add_index("ci_runner_projects", ["project_id"], {:name=>"index_ci_runner_projects_on_project_id", :using=>:btree})
+ -> 0.0029s
+-- add_index("ci_runner_projects", ["runner_id"], {:name=>"index_ci_runner_projects_on_runner_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("ci_runners", {:force=>:cascade})
+ -> 0.0059s
+-- add_index("ci_runners", ["contacted_at"], {:name=>"index_ci_runners_on_contacted_at", :using=>:btree})
+ -> 0.0030s
+-- add_index("ci_runners", ["is_shared"], {:name=>"index_ci_runners_on_is_shared", :using=>:btree})
+ -> 0.0030s
+-- add_index("ci_runners", ["locked"], {:name=>"index_ci_runners_on_locked", :using=>:btree})
+ -> 0.0030s
+-- add_index("ci_runners", ["token"], {:name=>"index_ci_runners_on_token", :using=>:btree})
+ -> 0.0029s
+-- create_table("ci_stages", {:force=>:cascade})
+ -> 0.0046s
+-- add_index("ci_stages", ["pipeline_id", "name"], {:name=>"index_ci_stages_on_pipeline_id_and_name", :using=>:btree})
+ -> 0.0031s
+-- add_index("ci_stages", ["pipeline_id"], {:name=>"index_ci_stages_on_pipeline_id", :using=>:btree})
+ -> 0.0030s
+-- add_index("ci_stages", ["project_id"], {:name=>"index_ci_stages_on_project_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("ci_trigger_requests", {:force=>:cascade})
+ -> 0.0058s
+-- add_index("ci_trigger_requests", ["commit_id"], {:name=>"index_ci_trigger_requests_on_commit_id", :using=>:btree})
+ -> 0.0031s
+-- create_table("ci_triggers", {:force=>:cascade})
+ -> 0.0043s
+-- add_index("ci_triggers", ["project_id"], {:name=>"index_ci_triggers_on_project_id", :using=>:btree})
+ -> 0.0033s
+-- create_table("ci_variables", {:force=>:cascade})
+ -> 0.0059s
+-- add_index("ci_variables", ["project_id", "key", "environment_scope"], {:name=>"index_ci_variables_on_project_id_and_key_and_environment_scope", :unique=>true, :using=>:btree})
+ -> 0.0031s
+-- create_table("cluster_platforms_kubernetes", {:force=>:cascade})
+ -> 0.0053s
+-- add_index("cluster_platforms_kubernetes", ["cluster_id"], {:name=>"index_cluster_platforms_kubernetes_on_cluster_id", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- create_table("cluster_projects", {:force=>:cascade})
+ -> 0.0032s
+-- add_index("cluster_projects", ["cluster_id"], {:name=>"index_cluster_projects_on_cluster_id", :using=>:btree})
+ -> 0.0035s
+-- add_index("cluster_projects", ["project_id"], {:name=>"index_cluster_projects_on_project_id", :using=>:btree})
+ -> 0.0030s
+-- create_table("cluster_providers_gcp", {:force=>:cascade})
+ -> 0.0051s
+-- add_index("cluster_providers_gcp", ["cluster_id"], {:name=>"index_cluster_providers_gcp_on_cluster_id", :unique=>true, :using=>:btree})
+ -> 0.0034s
+-- create_table("clusters", {:force=>:cascade})
+ -> 0.0052s
+-- add_index("clusters", ["enabled"], {:name=>"index_clusters_on_enabled", :using=>:btree})
+ -> 0.0031s
+-- add_index("clusters", ["user_id"], {:name=>"index_clusters_on_user_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("clusters_applications_helm", {:force=>:cascade})
+ -> 0.0045s
+-- create_table("clusters_applications_ingress", {:force=>:cascade})
+ -> 0.0044s
+-- create_table("clusters_applications_prometheus", {:force=>:cascade})
+ -> 0.0047s
+-- create_table("container_repositories", {:force=>:cascade})
+ -> 0.0050s
+-- add_index("container_repositories", ["project_id", "name"], {:name=>"index_container_repositories_on_project_id_and_name", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- add_index("container_repositories", ["project_id"], {:name=>"index_container_repositories_on_project_id", :using=>:btree})
+ -> 0.0032s
+-- create_table("conversational_development_index_metrics", {:force=>:cascade})
+ -> 0.0076s
+-- create_table("deploy_keys_projects", {:force=>:cascade})
+ -> 0.0037s
+-- add_index("deploy_keys_projects", ["project_id"], {:name=>"index_deploy_keys_projects_on_project_id", :using=>:btree})
+ -> 0.0032s
+-- create_table("deployments", {:force=>:cascade})
+ -> 0.0049s
+-- add_index("deployments", ["created_at"], {:name=>"index_deployments_on_created_at", :using=>:btree})
+ -> 0.0034s
+-- add_index("deployments", ["environment_id", "id"], {:name=>"index_deployments_on_environment_id_and_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("deployments", ["environment_id", "iid", "project_id"], {:name=>"index_deployments_on_environment_id_and_iid_and_project_id", :using=>:btree})
+ -> 0.0029s
+-- add_index("deployments", ["project_id", "iid"], {:name=>"index_deployments_on_project_id_and_iid", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- create_table("emails", {:force=>:cascade})
+ -> 0.0046s
+-- add_index("emails", ["confirmation_token"], {:name=>"index_emails_on_confirmation_token", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- add_index("emails", ["email"], {:name=>"index_emails_on_email", :unique=>true, :using=>:btree})
+ -> 0.0035s
+-- add_index("emails", ["user_id"], {:name=>"index_emails_on_user_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("environments", {:force=>:cascade})
+ -> 0.0052s
+-- add_index("environments", ["project_id", "name"], {:name=>"index_environments_on_project_id_and_name", :unique=>true, :using=>:btree})
+ -> 0.0031s
+-- add_index("environments", ["project_id", "slug"], {:name=>"index_environments_on_project_id_and_slug", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- create_table("events", {:force=>:cascade})
+ -> 0.0046s
+-- add_index("events", ["action"], {:name=>"index_events_on_action", :using=>:btree})
+ -> 0.0032s
+-- add_index("events", ["author_id"], {:name=>"index_events_on_author_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("events", ["project_id", "id"], {:name=>"index_events_on_project_id_and_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("events", ["target_type", "target_id"], {:name=>"index_events_on_target_type_and_target_id", :using=>:btree})
+ -> 0.0027s
+-- create_table("feature_gates", {:force=>:cascade})
+ -> 0.0046s
+-- add_index("feature_gates", ["feature_key", "key", "value"], {:name=>"index_feature_gates_on_feature_key_and_key_and_value", :unique=>true, :using=>:btree})
+ -> 0.0031s
+-- create_table("features", {:force=>:cascade})
+ -> 0.0041s
+-- add_index("features", ["key"], {:name=>"index_features_on_key", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- create_table("fork_network_members", {:force=>:cascade})
+ -> 0.0033s
+-- add_index("fork_network_members", ["fork_network_id"], {:name=>"index_fork_network_members_on_fork_network_id", :using=>:btree})
+ -> 0.0033s
+-- add_index("fork_network_members", ["project_id"], {:name=>"index_fork_network_members_on_project_id", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("fork_networks", {:force=>:cascade})
+ -> 0.0049s
+-- add_index("fork_networks", ["root_project_id"], {:name=>"index_fork_networks_on_root_project_id", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("forked_project_links", {:force=>:cascade})
+ -> 0.0032s
+-- add_index("forked_project_links", ["forked_to_project_id"], {:name=>"index_forked_project_links_on_forked_to_project_id", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- create_table("gcp_clusters", {:force=>:cascade})
+ -> 0.0074s
+-- add_index("gcp_clusters", ["project_id"], {:name=>"index_gcp_clusters_on_project_id", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- create_table("gpg_key_subkeys", {:force=>:cascade})
+ -> 0.0042s
+-- add_index("gpg_key_subkeys", ["fingerprint"], {:name=>"index_gpg_key_subkeys_on_fingerprint", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- add_index("gpg_key_subkeys", ["gpg_key_id"], {:name=>"index_gpg_key_subkeys_on_gpg_key_id", :using=>:btree})
+ -> 0.0032s
+-- add_index("gpg_key_subkeys", ["keyid"], {:name=>"index_gpg_key_subkeys_on_keyid", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- create_table("gpg_keys", {:force=>:cascade})
+ -> 0.0042s
+-- add_index("gpg_keys", ["fingerprint"], {:name=>"index_gpg_keys_on_fingerprint", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- add_index("gpg_keys", ["primary_keyid"], {:name=>"index_gpg_keys_on_primary_keyid", :unique=>true, :using=>:btree})
+ -> 0.0026s
+-- add_index("gpg_keys", ["user_id"], {:name=>"index_gpg_keys_on_user_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("gpg_signatures", {:force=>:cascade})
+ -> 0.0054s
+-- add_index("gpg_signatures", ["commit_sha"], {:name=>"index_gpg_signatures_on_commit_sha", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- add_index("gpg_signatures", ["gpg_key_id"], {:name=>"index_gpg_signatures_on_gpg_key_id", :using=>:btree})
+ -> 0.0026s
+-- add_index("gpg_signatures", ["gpg_key_primary_keyid"], {:name=>"index_gpg_signatures_on_gpg_key_primary_keyid", :using=>:btree})
+ -> 0.0029s
+-- add_index("gpg_signatures", ["gpg_key_subkey_id"], {:name=>"index_gpg_signatures_on_gpg_key_subkey_id", :using=>:btree})
+ -> 0.0032s
+-- add_index("gpg_signatures", ["project_id"], {:name=>"index_gpg_signatures_on_project_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("group_custom_attributes", {:force=>:cascade})
+ -> 0.0044s
+-- add_index("group_custom_attributes", ["group_id", "key"], {:name=>"index_group_custom_attributes_on_group_id_and_key", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- add_index("group_custom_attributes", ["key", "value"], {:name=>"index_group_custom_attributes_on_key_and_value", :using=>:btree})
+ -> 0.0028s
+-- create_table("identities", {:force=>:cascade})
+ -> 0.0043s
+-- add_index("identities", ["user_id"], {:name=>"index_identities_on_user_id", :using=>:btree})
+ -> 0.0034s
+-- create_table("issue_assignees", {:id=>false, :force=>:cascade})
+ -> 0.0013s
+-- add_index("issue_assignees", ["issue_id", "user_id"], {:name=>"index_issue_assignees_on_issue_id_and_user_id", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- add_index("issue_assignees", ["user_id"], {:name=>"index_issue_assignees_on_user_id", :using=>:btree})
+ -> 0.0029s
+-- create_table("issue_metrics", {:force=>:cascade})
+ -> 0.0032s
+-- add_index("issue_metrics", ["issue_id"], {:name=>"index_issue_metrics", :using=>:btree})
+ -> 0.0029s
+-- create_table("issues", {:force=>:cascade})
+ -> 0.0051s
+-- add_index("issues", ["author_id"], {:name=>"index_issues_on_author_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("issues", ["confidential"], {:name=>"index_issues_on_confidential", :using=>:btree})
+ -> 0.0029s
+-- add_index("issues", ["description"], {:name=>"index_issues_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})
+ -> 0.0022s
+-- add_index("issues", ["milestone_id"], {:name=>"index_issues_on_milestone_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("issues", ["moved_to_id"], {:name=>"index_issues_on_moved_to_id", :where=>"(moved_to_id IS NOT NULL)", :using=>:btree})
+ -> 0.0030s
+-- add_index("issues", ["project_id", "created_at", "id", "state"], {:name=>"index_issues_on_project_id_and_created_at_and_id_and_state", :using=>:btree})
+ -> 0.0039s
+-- add_index("issues", ["project_id", "due_date", "id", "state"], {:name=>"idx_issues_on_project_id_and_due_date_and_id_and_state_partial", :where=>"(due_date IS NOT NULL)", :using=>:btree})
+ -> 0.0031s
+-- add_index("issues", ["project_id", "iid"], {:name=>"index_issues_on_project_id_and_iid", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- add_index("issues", ["project_id", "updated_at", "id", "state"], {:name=>"index_issues_on_project_id_and_updated_at_and_id_and_state", :using=>:btree})
+ -> 0.0035s
+-- add_index("issues", ["relative_position"], {:name=>"index_issues_on_relative_position", :using=>:btree})
+ -> 0.0030s
+-- add_index("issues", ["state"], {:name=>"index_issues_on_state", :using=>:btree})
+ -> 0.0027s
+-- add_index("issues", ["title"], {:name=>"index_issues_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})
+ -> 0.0021s
+-- add_index("issues", ["updated_at"], {:name=>"index_issues_on_updated_at", :using=>:btree})
+ -> 0.0030s
+-- add_index("issues", ["updated_by_id"], {:name=>"index_issues_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})
+ -> 0.0028s
+-- create_table("keys", {:force=>:cascade})
+ -> 0.0048s
+-- add_index("keys", ["fingerprint"], {:name=>"index_keys_on_fingerprint", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- add_index("keys", ["user_id"], {:name=>"index_keys_on_user_id", :using=>:btree})
+ -> 0.0029s
+-- create_table("label_links", {:force=>:cascade})
+ -> 0.0041s
+-- add_index("label_links", ["label_id"], {:name=>"index_label_links_on_label_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("label_links", ["target_id", "target_type"], {:name=>"index_label_links_on_target_id_and_target_type", :using=>:btree})
+ -> 0.0028s
+-- create_table("label_priorities", {:force=>:cascade})
+ -> 0.0031s
+-- add_index("label_priorities", ["priority"], {:name=>"index_label_priorities_on_priority", :using=>:btree})
+ -> 0.0028s
+-- add_index("label_priorities", ["project_id", "label_id"], {:name=>"index_label_priorities_on_project_id_and_label_id", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- create_table("labels", {:force=>:cascade})
+ -> 0.0046s
+-- add_index("labels", ["group_id", "project_id", "title"], {:name=>"index_labels_on_group_id_and_project_id_and_title", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- add_index("labels", ["project_id"], {:name=>"index_labels_on_project_id", :using=>:btree})
+ -> 0.0032s
+-- add_index("labels", ["template"], {:name=>"index_labels_on_template", :where=>"template", :using=>:btree})
+ -> 0.0027s
+-- add_index("labels", ["title"], {:name=>"index_labels_on_title", :using=>:btree})
+ -> 0.0030s
+-- add_index("labels", ["type", "project_id"], {:name=>"index_labels_on_type_and_project_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("lfs_objects", {:force=>:cascade})
+ -> 0.0040s
+-- add_index("lfs_objects", ["oid"], {:name=>"index_lfs_objects_on_oid", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- create_table("lfs_objects_projects", {:force=>:cascade})
+ -> 0.0035s
+-- add_index("lfs_objects_projects", ["project_id"], {:name=>"index_lfs_objects_projects_on_project_id", :using=>:btree})
+ -> 0.0025s
+-- create_table("lists", {:force=>:cascade})
+ -> 0.0033s
+-- add_index("lists", ["board_id", "label_id"], {:name=>"index_lists_on_board_id_and_label_id", :unique=>true, :using=>:btree})
+ -> 0.0026s
+-- add_index("lists", ["label_id"], {:name=>"index_lists_on_label_id", :using=>:btree})
+ -> 0.0026s
+-- create_table("members", {:force=>:cascade})
+ -> 0.0046s
+-- add_index("members", ["access_level"], {:name=>"index_members_on_access_level", :using=>:btree})
+ -> 0.0028s
+-- add_index("members", ["invite_token"], {:name=>"index_members_on_invite_token", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- add_index("members", ["requested_at"], {:name=>"index_members_on_requested_at", :using=>:btree})
+ -> 0.0025s
+-- add_index("members", ["source_id", "source_type"], {:name=>"index_members_on_source_id_and_source_type", :using=>:btree})
+ -> 0.0027s
+-- add_index("members", ["user_id"], {:name=>"index_members_on_user_id", :using=>:btree})
+ -> 0.0026s
+-- create_table("merge_request_diff_commits", {:id=>false, :force=>:cascade})
+ -> 0.0027s
+-- add_index("merge_request_diff_commits", ["merge_request_diff_id", "relative_order"], {:name=>"index_merge_request_diff_commits_on_mr_diff_id_and_order", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- add_index("merge_request_diff_commits", ["sha"], {:name=>"index_merge_request_diff_commits_on_sha", :using=>:btree})
+ -> 0.0029s
+-- create_table("merge_request_diff_files", {:id=>false, :force=>:cascade})
+ -> 0.0027s
+-- add_index("merge_request_diff_files", ["merge_request_diff_id", "relative_order"], {:name=>"index_merge_request_diff_files_on_mr_diff_id_and_order", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- create_table("merge_request_diffs", {:force=>:cascade})
+ -> 0.0042s
+-- add_index("merge_request_diffs", ["merge_request_id", "id"], {:name=>"index_merge_request_diffs_on_merge_request_id_and_id", :using=>:btree})
+ -> 0.0030s
+-- create_table("merge_request_metrics", {:force=>:cascade})
+ -> 0.0034s
+-- add_index("merge_request_metrics", ["first_deployed_to_production_at"], {:name=>"index_merge_request_metrics_on_first_deployed_to_production_at", :using=>:btree})
+ -> 0.0028s
+-- add_index("merge_request_metrics", ["merge_request_id"], {:name=>"index_merge_request_metrics", :using=>:btree})
+ -> 0.0025s
+-- add_index("merge_request_metrics", ["pipeline_id"], {:name=>"index_merge_request_metrics_on_pipeline_id", :using=>:btree})
+ -> 0.0026s
+-- create_table("merge_requests", {:force=>:cascade})
+ -> 0.0066s
+-- add_index("merge_requests", ["assignee_id"], {:name=>"index_merge_requests_on_assignee_id", :using=>:btree})
+ -> 0.0029s
+-- add_index("merge_requests", ["author_id"], {:name=>"index_merge_requests_on_author_id", :using=>:btree})
+ -> 0.0026s
+-- add_index("merge_requests", ["created_at"], {:name=>"index_merge_requests_on_created_at", :using=>:btree})
+ -> 0.0026s
+-- add_index("merge_requests", ["description"], {:name=>"index_merge_requests_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})
+ -> 0.0020s
+-- add_index("merge_requests", ["head_pipeline_id"], {:name=>"index_merge_requests_on_head_pipeline_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("merge_requests", ["latest_merge_request_diff_id"], {:name=>"index_merge_requests_on_latest_merge_request_diff_id", :using=>:btree})
+ -> 0.0025s
+-- add_index("merge_requests", ["merge_user_id"], {:name=>"index_merge_requests_on_merge_user_id", :where=>"(merge_user_id IS NOT NULL)", :using=>:btree})
+ -> 0.0029s
+-- add_index("merge_requests", ["milestone_id"], {:name=>"index_merge_requests_on_milestone_id", :using=>:btree})
+ -> 0.0030s
+-- add_index("merge_requests", ["source_branch"], {:name=>"index_merge_requests_on_source_branch", :using=>:btree})
+ -> 0.0026s
+-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_and_branch_state_opened", :where=>"((state)::text = 'opened'::text)", :using=>:btree})
+ -> 0.0029s
+-- add_index("merge_requests", ["source_project_id", "source_branch"], {:name=>"index_merge_requests_on_source_project_id_and_source_branch", :using=>:btree})
+ -> 0.0031s
+-- add_index("merge_requests", ["target_branch"], {:name=>"index_merge_requests_on_target_branch", :using=>:btree})
+ -> 0.0028s
+-- add_index("merge_requests", ["target_project_id", "iid"], {:name=>"index_merge_requests_on_target_project_id_and_iid", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- add_index("merge_requests", ["target_project_id", "merge_commit_sha", "id"], {:name=>"index_merge_requests_on_tp_id_and_merge_commit_sha_and_id", :using=>:btree})
+ -> 0.0029s
+-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title", :using=>:btree})
+ -> 0.0026s
+-- add_index("merge_requests", ["title"], {:name=>"index_merge_requests_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})
+ -> 0.0020s
+-- add_index("merge_requests", ["updated_by_id"], {:name=>"index_merge_requests_on_updated_by_id", :where=>"(updated_by_id IS NOT NULL)", :using=>:btree})
+ -> 0.0029s
+-- create_table("merge_requests_closing_issues", {:force=>:cascade})
+ -> 0.0031s
+-- add_index("merge_requests_closing_issues", ["issue_id"], {:name=>"index_merge_requests_closing_issues_on_issue_id", :using=>:btree})
+ -> 0.0026s
+-- add_index("merge_requests_closing_issues", ["merge_request_id"], {:name=>"index_merge_requests_closing_issues_on_merge_request_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("milestones", {:force=>:cascade})
+ -> 0.0044s
+-- add_index("milestones", ["description"], {:name=>"index_milestones_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})
+ -> 0.0022s
+-- add_index("milestones", ["due_date"], {:name=>"index_milestones_on_due_date", :using=>:btree})
+ -> 0.0033s
+-- add_index("milestones", ["group_id"], {:name=>"index_milestones_on_group_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("milestones", ["project_id", "iid"], {:name=>"index_milestones_on_project_id_and_iid", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title", :using=>:btree})
+ -> 0.0026s
+-- add_index("milestones", ["title"], {:name=>"index_milestones_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})
+ -> 0.0021s
+-- create_table("namespaces", {:force=>:cascade})
+ -> 0.0068s
+-- add_index("namespaces", ["created_at"], {:name=>"index_namespaces_on_created_at", :using=>:btree})
+ -> 0.0030s
+-- add_index("namespaces", ["name", "parent_id"], {:name=>"index_namespaces_on_name_and_parent_id", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- add_index("namespaces", ["name"], {:name=>"index_namespaces_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})
+ -> 0.0020s
+-- add_index("namespaces", ["owner_id"], {:name=>"index_namespaces_on_owner_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("namespaces", ["parent_id", "id"], {:name=>"index_namespaces_on_parent_id_and_id", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path", :using=>:btree})
+ -> 0.0031s
+-- add_index("namespaces", ["path"], {:name=>"index_namespaces_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})
+ -> 0.0019s
+-- add_index("namespaces", ["require_two_factor_authentication"], {:name=>"index_namespaces_on_require_two_factor_authentication", :using=>:btree})
+ -> 0.0029s
+-- add_index("namespaces", ["type"], {:name=>"index_namespaces_on_type", :using=>:btree})
+ -> 0.0032s
+-- create_table("notes", {:force=>:cascade})
+ -> 0.0055s
+-- add_index("notes", ["author_id"], {:name=>"index_notes_on_author_id", :using=>:btree})
+ -> 0.0029s
+-- add_index("notes", ["commit_id"], {:name=>"index_notes_on_commit_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("notes", ["created_at"], {:name=>"index_notes_on_created_at", :using=>:btree})
+ -> 0.0029s
+-- add_index("notes", ["discussion_id"], {:name=>"index_notes_on_discussion_id", :using=>:btree})
+ -> 0.0029s
+-- add_index("notes", ["line_code"], {:name=>"index_notes_on_line_code", :using=>:btree})
+ -> 0.0029s
+-- add_index("notes", ["note"], {:name=>"index_notes_on_note_trigram", :using=>:gin, :opclasses=>{"note"=>"gin_trgm_ops"}})
+ -> 0.0024s
+-- add_index("notes", ["noteable_id", "noteable_type"], {:name=>"index_notes_on_noteable_id_and_noteable_type", :using=>:btree})
+ -> 0.0029s
+-- add_index("notes", ["noteable_type"], {:name=>"index_notes_on_noteable_type", :using=>:btree})
+ -> 0.0030s
+-- add_index("notes", ["project_id", "noteable_type"], {:name=>"index_notes_on_project_id_and_noteable_type", :using=>:btree})
+ -> 0.0027s
+-- add_index("notes", ["updated_at"], {:name=>"index_notes_on_updated_at", :using=>:btree})
+ -> 0.0026s
+-- create_table("notification_settings", {:force=>:cascade})
+ -> 0.0053s
+-- add_index("notification_settings", ["source_id", "source_type"], {:name=>"index_notification_settings_on_source_id_and_source_type", :using=>:btree})
+ -> 0.0028s
+-- add_index("notification_settings", ["user_id", "source_id", "source_type"], {:name=>"index_notifications_on_user_id_and_source_id_and_source_type", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- add_index("notification_settings", ["user_id"], {:name=>"index_notification_settings_on_user_id", :using=>:btree})
+ -> 0.0031s
+-- create_table("oauth_access_grants", {:force=>:cascade})
+ -> 0.0042s
+-- add_index("oauth_access_grants", ["token"], {:name=>"index_oauth_access_grants_on_token", :unique=>true, :using=>:btree})
+ -> 0.0031s
+-- create_table("oauth_access_tokens", {:force=>:cascade})
+ -> 0.0051s
+-- add_index("oauth_access_tokens", ["refresh_token"], {:name=>"index_oauth_access_tokens_on_refresh_token", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- add_index("oauth_access_tokens", ["resource_owner_id"], {:name=>"index_oauth_access_tokens_on_resource_owner_id", :using=>:btree})
+ -> 0.0025s
+-- add_index("oauth_access_tokens", ["token"], {:name=>"index_oauth_access_tokens_on_token", :unique=>true, :using=>:btree})
+ -> 0.0026s
+-- create_table("oauth_applications", {:force=>:cascade})
+ -> 0.0049s
+-- add_index("oauth_applications", ["owner_id", "owner_type"], {:name=>"index_oauth_applications_on_owner_id_and_owner_type", :using=>:btree})
+ -> 0.0030s
+-- add_index("oauth_applications", ["uid"], {:name=>"index_oauth_applications_on_uid", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- create_table("oauth_openid_requests", {:force=>:cascade})
+ -> 0.0048s
+-- create_table("pages_domains", {:force=>:cascade})
+ -> 0.0052s
+-- add_index("pages_domains", ["domain"], {:name=>"index_pages_domains_on_domain", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- add_index("pages_domains", ["project_id"], {:name=>"index_pages_domains_on_project_id", :using=>:btree})
+ -> 0.0030s
+-- create_table("personal_access_tokens", {:force=>:cascade})
+ -> 0.0056s
+-- add_index("personal_access_tokens", ["token"], {:name=>"index_personal_access_tokens_on_token", :unique=>true, :using=>:btree})
+ -> 0.0032s
+-- add_index("personal_access_tokens", ["user_id"], {:name=>"index_personal_access_tokens_on_user_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("project_authorizations", {:id=>false, :force=>:cascade})
+ -> 0.0018s
+-- add_index("project_authorizations", ["project_id"], {:name=>"index_project_authorizations_on_project_id", :using=>:btree})
+ -> 0.0033s
+-- add_index("project_authorizations", ["user_id", "project_id", "access_level"], {:name=>"index_project_authorizations_on_user_id_project_id_access_level", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("project_auto_devops", {:force=>:cascade})
+ -> 0.0043s
+-- add_index("project_auto_devops", ["project_id"], {:name=>"index_project_auto_devops_on_project_id", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("project_custom_attributes", {:force=>:cascade})
+ -> 0.0047s
+-- add_index("project_custom_attributes", ["key", "value"], {:name=>"index_project_custom_attributes_on_key_and_value", :using=>:btree})
+ -> 0.0030s
+-- add_index("project_custom_attributes", ["project_id", "key"], {:name=>"index_project_custom_attributes_on_project_id_and_key", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- create_table("project_features", {:force=>:cascade})
+ -> 0.0038s
+-- add_index("project_features", ["project_id"], {:name=>"index_project_features_on_project_id", :using=>:btree})
+ -> 0.0029s
+-- create_table("project_group_links", {:force=>:cascade})
+ -> 0.0036s
+-- add_index("project_group_links", ["group_id"], {:name=>"index_project_group_links_on_group_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("project_group_links", ["project_id"], {:name=>"index_project_group_links_on_project_id", :using=>:btree})
+ -> 0.0030s
+-- create_table("project_import_data", {:force=>:cascade})
+ -> 0.0049s
+-- add_index("project_import_data", ["project_id"], {:name=>"index_project_import_data_on_project_id", :using=>:btree})
+ -> 0.0027s
+-- create_table("project_statistics", {:force=>:cascade})
+ -> 0.0046s
+-- add_index("project_statistics", ["namespace_id"], {:name=>"index_project_statistics_on_namespace_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("project_statistics", ["project_id"], {:name=>"index_project_statistics_on_project_id", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("projects", {:force=>:cascade})
+ -> 0.0090s
+-- add_index("projects", ["ci_id"], {:name=>"index_projects_on_ci_id", :using=>:btree})
+ -> 0.0033s
+-- add_index("projects", ["created_at"], {:name=>"index_projects_on_created_at", :using=>:btree})
+ -> 0.0030s
+-- add_index("projects", ["creator_id"], {:name=>"index_projects_on_creator_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("projects", ["description"], {:name=>"index_projects_on_description_trigram", :using=>:gin, :opclasses=>{"description"=>"gin_trgm_ops"}})
+ -> 0.0022s
+-- add_index("projects", ["last_activity_at"], {:name=>"index_projects_on_last_activity_at", :using=>:btree})
+ -> 0.0032s
+-- add_index("projects", ["last_repository_check_failed"], {:name=>"index_projects_on_last_repository_check_failed", :using=>:btree})
+ -> 0.0030s
+-- add_index("projects", ["last_repository_updated_at"], {:name=>"index_projects_on_last_repository_updated_at", :using=>:btree})
+ -> 0.0031s
+-- add_index("projects", ["name"], {:name=>"index_projects_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})
+ -> 0.0022s
+-- add_index("projects", ["namespace_id"], {:name=>"index_projects_on_namespace_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("projects", ["path"], {:name=>"index_projects_on_path", :using=>:btree})
+ -> 0.0028s
+-- add_index("projects", ["path"], {:name=>"index_projects_on_path_trigram", :using=>:gin, :opclasses=>{"path"=>"gin_trgm_ops"}})
+ -> 0.0023s
+-- add_index("projects", ["pending_delete"], {:name=>"index_projects_on_pending_delete", :using=>:btree})
+ -> 0.0029s
+-- add_index("projects", ["repository_storage"], {:name=>"index_projects_on_repository_storage", :using=>:btree})
+ -> 0.0026s
+-- add_index("projects", ["runners_token"], {:name=>"index_projects_on_runners_token", :using=>:btree})
+ -> 0.0034s
+-- add_index("projects", ["star_count"], {:name=>"index_projects_on_star_count", :using=>:btree})
+ -> 0.0028s
+-- add_index("projects", ["visibility_level"], {:name=>"index_projects_on_visibility_level", :using=>:btree})
+ -> 0.0027s
+-- create_table("protected_branch_merge_access_levels", {:force=>:cascade})
+ -> 0.0042s
+-- add_index("protected_branch_merge_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_merge_access", :using=>:btree})
+ -> 0.0029s
+-- create_table("protected_branch_push_access_levels", {:force=>:cascade})
+ -> 0.0037s
+-- add_index("protected_branch_push_access_levels", ["protected_branch_id"], {:name=>"index_protected_branch_push_access", :using=>:btree})
+ -> 0.0030s
+-- create_table("protected_branches", {:force=>:cascade})
+ -> 0.0048s
+-- add_index("protected_branches", ["project_id"], {:name=>"index_protected_branches_on_project_id", :using=>:btree})
+ -> 0.0030s
+-- create_table("protected_tag_create_access_levels", {:force=>:cascade})
+ -> 0.0037s
+-- add_index("protected_tag_create_access_levels", ["protected_tag_id"], {:name=>"index_protected_tag_create_access", :using=>:btree})
+ -> 0.0029s
+-- add_index("protected_tag_create_access_levels", ["user_id"], {:name=>"index_protected_tag_create_access_levels_on_user_id", :using=>:btree})
+ -> 0.0029s
+-- create_table("protected_tags", {:force=>:cascade})
+ -> 0.0051s
+-- add_index("protected_tags", ["project_id"], {:name=>"index_protected_tags_on_project_id", :using=>:btree})
+ -> 0.0034s
+-- create_table("push_event_payloads", {:id=>false, :force=>:cascade})
+ -> 0.0030s
+-- add_index("push_event_payloads", ["event_id"], {:name=>"index_push_event_payloads_on_event_id", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("redirect_routes", {:force=>:cascade})
+ -> 0.0049s
+-- add_index("redirect_routes", ["path"], {:name=>"index_redirect_routes_on_path", :unique=>true, :using=>:btree})
+ -> 0.0031s
+-- add_index("redirect_routes", ["source_type", "source_id"], {:name=>"index_redirect_routes_on_source_type_and_source_id", :using=>:btree})
+ -> 0.0034s
+-- create_table("releases", {:force=>:cascade})
+ -> 0.0043s
+-- add_index("releases", ["project_id", "tag"], {:name=>"index_releases_on_project_id_and_tag", :using=>:btree})
+ -> 0.0032s
+-- add_index("releases", ["project_id"], {:name=>"index_releases_on_project_id", :using=>:btree})
+ -> 0.0030s
+-- create_table("routes", {:force=>:cascade})
+ -> 0.0055s
+-- add_index("routes", ["path"], {:name=>"index_routes_on_path", :unique=>true, :using=>:btree})
+ -> 0.0028s
+-- add_index("routes", ["path"], {:name=>"index_routes_on_path_text_pattern_ops", :using=>:btree, :opclasses=>{"path"=>"varchar_pattern_ops"}})
+ -> 0.0026s
+-- add_index("routes", ["source_type", "source_id"], {:name=>"index_routes_on_source_type_and_source_id", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("sent_notifications", {:force=>:cascade})
+ -> 0.0048s
+-- add_index("sent_notifications", ["reply_key"], {:name=>"index_sent_notifications_on_reply_key", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("services", {:force=>:cascade})
+ -> 0.0091s
+-- add_index("services", ["project_id"], {:name=>"index_services_on_project_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("services", ["template"], {:name=>"index_services_on_template", :using=>:btree})
+ -> 0.0031s
+-- create_table("snippets", {:force=>:cascade})
+ -> 0.0050s
+-- add_index("snippets", ["author_id"], {:name=>"index_snippets_on_author_id", :using=>:btree})
+ -> 0.0030s
+-- add_index("snippets", ["file_name"], {:name=>"index_snippets_on_file_name_trigram", :using=>:gin, :opclasses=>{"file_name"=>"gin_trgm_ops"}})
+ -> 0.0020s
+-- add_index("snippets", ["project_id"], {:name=>"index_snippets_on_project_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("snippets", ["title"], {:name=>"index_snippets_on_title_trigram", :using=>:gin, :opclasses=>{"title"=>"gin_trgm_ops"}})
+ -> 0.0020s
+-- add_index("snippets", ["updated_at"], {:name=>"index_snippets_on_updated_at", :using=>:btree})
+ -> 0.0026s
+-- add_index("snippets", ["visibility_level"], {:name=>"index_snippets_on_visibility_level", :using=>:btree})
+ -> 0.0026s
+-- create_table("spam_logs", {:force=>:cascade})
+ -> 0.0048s
+-- create_table("subscriptions", {:force=>:cascade})
+ -> 0.0041s
+-- add_index("subscriptions", ["subscribable_id", "subscribable_type", "user_id", "project_id"], {:name=>"index_subscriptions_on_subscribable_and_user_id_and_project_id", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- create_table("system_note_metadata", {:force=>:cascade})
+ -> 0.0040s
+-- add_index("system_note_metadata", ["note_id"], {:name=>"index_system_note_metadata_on_note_id", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- create_table("taggings", {:force=>:cascade})
+ -> 0.0047s
+-- add_index("taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], {:name=>"taggings_idx", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- add_index("taggings", ["taggable_id", "taggable_type", "context"], {:name=>"index_taggings_on_taggable_id_and_taggable_type_and_context", :using=>:btree})
+ -> 0.0025s
+-- create_table("tags", {:force=>:cascade})
+ -> 0.0044s
+-- add_index("tags", ["name"], {:name=>"index_tags_on_name", :unique=>true, :using=>:btree})
+ -> 0.0026s
+-- create_table("timelogs", {:force=>:cascade})
+ -> 0.0033s
+-- add_index("timelogs", ["issue_id"], {:name=>"index_timelogs_on_issue_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("timelogs", ["merge_request_id"], {:name=>"index_timelogs_on_merge_request_id", :using=>:btree})
+ -> 0.0033s
+-- add_index("timelogs", ["user_id"], {:name=>"index_timelogs_on_user_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("todos", {:force=>:cascade})
+ -> 0.0043s
+-- add_index("todos", ["author_id"], {:name=>"index_todos_on_author_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("todos", ["commit_id"], {:name=>"index_todos_on_commit_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("todos", ["note_id"], {:name=>"index_todos_on_note_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("todos", ["project_id"], {:name=>"index_todos_on_project_id", :using=>:btree})
+ -> 0.0027s
+-- add_index("todos", ["target_type", "target_id"], {:name=>"index_todos_on_target_type_and_target_id", :using=>:btree})
+ -> 0.0028s
+-- add_index("todos", ["user_id"], {:name=>"index_todos_on_user_id", :using=>:btree})
+ -> 0.0026s
+-- create_table("trending_projects", {:force=>:cascade})
+ -> 0.0030s
+-- add_index("trending_projects", ["project_id"], {:name=>"index_trending_projects_on_project_id", :using=>:btree})
+ -> 0.0027s
+-- create_table("u2f_registrations", {:force=>:cascade})
+ -> 0.0048s
+-- add_index("u2f_registrations", ["key_handle"], {:name=>"index_u2f_registrations_on_key_handle", :using=>:btree})
+ -> 0.0029s
+-- add_index("u2f_registrations", ["user_id"], {:name=>"index_u2f_registrations_on_user_id", :using=>:btree})
+ -> 0.0028s
+-- create_table("uploads", {:force=>:cascade})
+ -> 0.0044s
+-- add_index("uploads", ["checksum"], {:name=>"index_uploads_on_checksum", :using=>:btree})
+ -> 0.0028s
+-- add_index("uploads", ["model_id", "model_type"], {:name=>"index_uploads_on_model_id_and_model_type", :using=>:btree})
+ -> 0.0027s
+-- add_index("uploads", ["path"], {:name=>"index_uploads_on_path", :using=>:btree})
+ -> 0.0028s
+-- create_table("user_agent_details", {:force=>:cascade})
+ -> 0.0051s
+-- add_index("user_agent_details", ["subject_id", "subject_type"], {:name=>"index_user_agent_details_on_subject_id_and_subject_type", :using=>:btree})
+ -> 0.0028s
+-- create_table("user_custom_attributes", {:force=>:cascade})
+ -> 0.0044s
+-- add_index("user_custom_attributes", ["key", "value"], {:name=>"index_user_custom_attributes_on_key_and_value", :using=>:btree})
+ -> 0.0027s
+-- add_index("user_custom_attributes", ["user_id", "key"], {:name=>"index_user_custom_attributes_on_user_id_and_key", :unique=>true, :using=>:btree})
+ -> 0.0026s
+-- create_table("user_synced_attributes_metadata", {:force=>:cascade})
+ -> 0.0056s
+-- add_index("user_synced_attributes_metadata", ["user_id"], {:name=>"index_user_synced_attributes_metadata_on_user_id", :unique=>true, :using=>:btree})
+ -> 0.0027s
+-- create_table("users", {:force=>:cascade})
+ -> 0.0134s
+-- add_index("users", ["admin"], {:name=>"index_users_on_admin", :using=>:btree})
+ -> 0.0030s
+-- add_index("users", ["confirmation_token"], {:name=>"index_users_on_confirmation_token", :unique=>true, :using=>:btree})
+ -> 0.0029s
+-- add_index("users", ["created_at"], {:name=>"index_users_on_created_at", :using=>:btree})
+ -> 0.0034s
+-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true, :using=>:btree})
+ -> 0.0030s
+-- add_index("users", ["email"], {:name=>"index_users_on_email_trigram", :using=>:gin, :opclasses=>{"email"=>"gin_trgm_ops"}})
+ -> 0.0431s
+-- add_index("users", ["ghost"], {:name=>"index_users_on_ghost", :using=>:btree})
+ -> 0.0051s
+-- add_index("users", ["incoming_email_token"], {:name=>"index_users_on_incoming_email_token", :using=>:btree})
+ -> 0.0044s
+-- add_index("users", ["name"], {:name=>"index_users_on_name", :using=>:btree})
+ -> 0.0044s
+-- add_index("users", ["name"], {:name=>"index_users_on_name_trigram", :using=>:gin, :opclasses=>{"name"=>"gin_trgm_ops"}})
+ -> 0.0034s
+-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true, :using=>:btree})
+ -> 0.0044s
+-- add_index("users", ["rss_token"], {:name=>"index_users_on_rss_token", :using=>:btree})
+ -> 0.0046s
+-- add_index("users", ["state"], {:name=>"index_users_on_state", :using=>:btree})
+ -> 0.0040s
+-- add_index("users", ["username"], {:name=>"index_users_on_username", :using=>:btree})
+ -> 0.0046s
+-- add_index("users", ["username"], {:name=>"index_users_on_username_trigram", :using=>:gin, :opclasses=>{"username"=>"gin_trgm_ops"}})
+ -> 0.0044s
+-- create_table("users_star_projects", {:force=>:cascade})
+ -> 0.0055s
+-- add_index("users_star_projects", ["project_id"], {:name=>"index_users_star_projects_on_project_id", :using=>:btree})
+ -> 0.0037s
+-- add_index("users_star_projects", ["user_id", "project_id"], {:name=>"index_users_star_projects_on_user_id_and_project_id", :unique=>true, :using=>:btree})
+ -> 0.0044s
+-- create_table("web_hook_logs", {:force=>:cascade})
+ -> 0.0060s
+-- add_index("web_hook_logs", ["web_hook_id"], {:name=>"index_web_hook_logs_on_web_hook_id", :using=>:btree})
+ -> 0.0034s
+-- create_table("web_hooks", {:force=>:cascade})
+ -> 0.0120s
+-- add_index("web_hooks", ["project_id"], {:name=>"index_web_hooks_on_project_id", :using=>:btree})
+ -> 0.0038s
+-- add_index("web_hooks", ["type"], {:name=>"index_web_hooks_on_type", :using=>:btree})
+ -> 0.0036s
+-- add_foreign_key("boards", "projects", {:name=>"fk_f15266b5f9", :on_delete=>:cascade})
+ -> 0.0030s
+-- add_foreign_key("chat_teams", "namespaces", {:on_delete=>:cascade})
+ -> 0.0021s
+-- add_foreign_key("ci_build_trace_section_names", "projects", {:on_delete=>:cascade})
+ -> 0.0022s
+-- add_foreign_key("ci_build_trace_sections", "ci_build_trace_section_names", {:column=>"section_name_id", :name=>"fk_264e112c66", :on_delete=>:cascade})
+ -> 0.0018s
+-- add_foreign_key("ci_build_trace_sections", "ci_builds", {:column=>"build_id", :name=>"fk_4ebe41f502", :on_delete=>:cascade})
+ -> 0.0024s
+-- add_foreign_key("ci_build_trace_sections", "projects", {:on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("ci_builds", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_a2141b1522", :on_delete=>:nullify})
+ -> 0.0023s
+-- add_foreign_key("ci_builds", "ci_stages", {:column=>"stage_id", :name=>"fk_3a9eaa254d", :on_delete=>:cascade})
+ -> 0.0020s
+-- add_foreign_key("ci_builds", "projects", {:name=>"fk_befce0568a", :on_delete=>:cascade})
+ -> 0.0024s
+-- add_foreign_key("ci_group_variables", "namespaces", {:column=>"group_id", :name=>"fk_33ae4d58d8", :on_delete=>:cascade})
+ -> 0.0024s
+-- add_foreign_key("ci_job_artifacts", "ci_builds", {:column=>"job_id", :on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("ci_job_artifacts", "projects", {:on_delete=>:cascade})
+ -> 0.0020s
+-- add_foreign_key("ci_pipeline_schedule_variables", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_41c35fda51", :on_delete=>:cascade})
+ -> 0.0027s
+-- add_foreign_key("ci_pipeline_schedules", "projects", {:name=>"fk_8ead60fcc4", :on_delete=>:cascade})
+ -> 0.0022s
+-- add_foreign_key("ci_pipeline_schedules", "users", {:column=>"owner_id", :name=>"fk_9ea99f58d2", :on_delete=>:nullify})
+ -> 0.0025s
+-- add_foreign_key("ci_pipeline_variables", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_f29c5f4380", :on_delete=>:cascade})
+ -> 0.0018s
+-- add_foreign_key("ci_pipelines", "ci_pipeline_schedules", {:column=>"pipeline_schedule_id", :name=>"fk_3d34ab2e06", :on_delete=>:nullify})
+ -> 0.0019s
+-- add_foreign_key("ci_pipelines", "ci_pipelines", {:column=>"auto_canceled_by_id", :name=>"fk_262d4c2d19", :on_delete=>:nullify})
+ -> 0.0029s
+-- add_foreign_key("ci_pipelines", "projects", {:name=>"fk_86635dbd80", :on_delete=>:cascade})
+ -> 0.0023s
+-- add_foreign_key("ci_runner_projects", "projects", {:name=>"fk_4478a6f1e4", :on_delete=>:cascade})
+ -> 0.0036s
+-- add_foreign_key("ci_stages", "ci_pipelines", {:column=>"pipeline_id", :name=>"fk_fb57e6cc56", :on_delete=>:cascade})
+ -> 0.0017s
+-- add_foreign_key("ci_stages", "projects", {:name=>"fk_2360681d1d", :on_delete=>:cascade})
+ -> 0.0020s
+-- add_foreign_key("ci_trigger_requests", "ci_triggers", {:column=>"trigger_id", :name=>"fk_b8ec8b7245", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("ci_triggers", "projects", {:name=>"fk_e3e63f966e", :on_delete=>:cascade})
+ -> 0.0021s
+-- add_foreign_key("ci_triggers", "users", {:column=>"owner_id", :name=>"fk_e8e10d1964", :on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("ci_variables", "projects", {:name=>"fk_ada5eb64b3", :on_delete=>:cascade})
+ -> 0.0021s
+-- add_foreign_key("cluster_platforms_kubernetes", "clusters", {:on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("cluster_projects", "clusters", {:on_delete=>:cascade})
+ -> 0.0018s
+-- add_foreign_key("cluster_projects", "projects", {:on_delete=>:cascade})
+ -> 0.0020s
+-- add_foreign_key("cluster_providers_gcp", "clusters", {:on_delete=>:cascade})
+ -> 0.0017s
+-- add_foreign_key("clusters", "users", {:on_delete=>:nullify})
+ -> 0.0018s
+-- add_foreign_key("clusters_applications_helm", "clusters", {:on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("container_repositories", "projects")
+ -> 0.0020s
+-- add_foreign_key("deploy_keys_projects", "projects", {:name=>"fk_58a901ca7e", :on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("deployments", "projects", {:name=>"fk_b9a3851b82", :on_delete=>:cascade})
+ -> 0.0021s
+-- add_foreign_key("environments", "projects", {:name=>"fk_d1c8c1da6a", :on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("events", "projects", {:on_delete=>:cascade})
+ -> 0.0020s
+-- add_foreign_key("events", "users", {:column=>"author_id", :name=>"fk_edfd187b6f", :on_delete=>:cascade})
+ -> 0.0020s
+-- add_foreign_key("fork_network_members", "fork_networks", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("fork_network_members", "projects", {:column=>"forked_from_project_id", :name=>"fk_b01280dae4", :on_delete=>:nullify})
+ -> 0.0019s
+-- add_foreign_key("fork_network_members", "projects", {:on_delete=>:cascade})
+ -> 0.0018s
+-- add_foreign_key("fork_networks", "projects", {:column=>"root_project_id", :name=>"fk_e7b436b2b5", :on_delete=>:nullify})
+ -> 0.0018s
+-- add_foreign_key("forked_project_links", "projects", {:column=>"forked_to_project_id", :name=>"fk_434510edb0", :on_delete=>:cascade})
+ -> 0.0018s
+-- add_foreign_key("gcp_clusters", "projects", {:on_delete=>:cascade})
+ -> 0.0029s
+-- add_foreign_key("gcp_clusters", "services", {:on_delete=>:nullify})
+ -> 0.0022s
+-- add_foreign_key("gcp_clusters", "users", {:on_delete=>:nullify})
+ -> 0.0019s
+-- add_foreign_key("gpg_key_subkeys", "gpg_keys", {:on_delete=>:cascade})
+ -> 0.0017s
+-- add_foreign_key("gpg_keys", "users", {:on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("gpg_signatures", "gpg_key_subkeys", {:on_delete=>:nullify})
+ -> 0.0016s
+-- add_foreign_key("gpg_signatures", "gpg_keys", {:on_delete=>:nullify})
+ -> 0.0016s
+-- add_foreign_key("gpg_signatures", "projects", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("group_custom_attributes", "namespaces", {:column=>"group_id", :on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("issue_assignees", "issues", {:name=>"fk_b7d881734a", :on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("issue_assignees", "users", {:name=>"fk_5e0c8d9154", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("issue_metrics", "issues", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("issues", "issues", {:column=>"moved_to_id", :name=>"fk_a194299be1", :on_delete=>:nullify})
+ -> 0.0014s
+-- add_foreign_key("issues", "milestones", {:name=>"fk_96b1dd429c", :on_delete=>:nullify})
+ -> 0.0016s
+-- add_foreign_key("issues", "projects", {:name=>"fk_899c8f3231", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("issues", "users", {:column=>"author_id", :name=>"fk_05f1e72feb", :on_delete=>:nullify})
+ -> 0.0015s
+-- add_foreign_key("issues", "users", {:column=>"updated_by_id", :name=>"fk_ffed080f01", :on_delete=>:nullify})
+ -> 0.0017s
+-- add_foreign_key("label_priorities", "labels", {:on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("label_priorities", "projects", {:on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("labels", "namespaces", {:column=>"group_id", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("labels", "projects", {:name=>"fk_7de4989a69", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("lists", "boards", {:name=>"fk_0d3f677137", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("lists", "labels", {:name=>"fk_7a5553d60f", :on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("members", "users", {:name=>"fk_2e88fb7ce9", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("merge_request_diff_commits", "merge_request_diffs", {:on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("merge_request_diff_files", "merge_request_diffs", {:on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("merge_request_diffs", "merge_requests", {:name=>"fk_8483f3258f", :on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("merge_request_metrics", "ci_pipelines", {:column=>"pipeline_id", :on_delete=>:cascade})
+ -> 0.0017s
+-- add_foreign_key("merge_request_metrics", "merge_requests", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("merge_request_metrics", "users", {:column=>"latest_closed_by_id", :name=>"fk_ae440388cc", :on_delete=>:nullify})
+ -> 0.0015s
+-- add_foreign_key("merge_request_metrics", "users", {:column=>"merged_by_id", :name=>"fk_7f28d925f3", :on_delete=>:nullify})
+ -> 0.0015s
+-- add_foreign_key("merge_requests", "ci_pipelines", {:column=>"head_pipeline_id", :name=>"fk_fd82eae0b9", :on_delete=>:nullify})
+ -> 0.0014s
+-- add_foreign_key("merge_requests", "merge_request_diffs", {:column=>"latest_merge_request_diff_id", :name=>"fk_06067f5644", :on_delete=>:nullify})
+ -> 0.0014s
+-- add_foreign_key("merge_requests", "milestones", {:name=>"fk_6a5165a692", :on_delete=>:nullify})
+ -> 0.0015s
+-- add_foreign_key("merge_requests", "projects", {:column=>"source_project_id", :name=>"fk_3308fe130c", :on_delete=>:nullify})
+ -> 0.0017s
+-- add_foreign_key("merge_requests", "projects", {:column=>"target_project_id", :name=>"fk_a6963e8447", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("merge_requests", "users", {:column=>"assignee_id", :name=>"fk_6149611a04", :on_delete=>:nullify})
+ -> 0.0016s
+-- add_foreign_key("merge_requests", "users", {:column=>"author_id", :name=>"fk_e719a85f8a", :on_delete=>:nullify})
+ -> 0.0017s
+-- add_foreign_key("merge_requests", "users", {:column=>"merge_user_id", :name=>"fk_ad525e1f87", :on_delete=>:nullify})
+ -> 0.0018s
+-- add_foreign_key("merge_requests", "users", {:column=>"updated_by_id", :name=>"fk_641731faff", :on_delete=>:nullify})
+ -> 0.0017s
+-- add_foreign_key("merge_requests_closing_issues", "issues", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("merge_requests_closing_issues", "merge_requests", {:on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("milestones", "namespaces", {:column=>"group_id", :name=>"fk_95650a40d4", :on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("milestones", "projects", {:name=>"fk_9bd0a0c791", :on_delete=>:cascade})
+ -> 0.0017s
+-- add_foreign_key("notes", "projects", {:name=>"fk_99e097b079", :on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("oauth_openid_requests", "oauth_access_grants", {:column=>"access_grant_id", :name=>"fk_oauth_openid_requests_oauth_access_grants_access_grant_id"})
+ -> 0.0014s
+-- add_foreign_key("pages_domains", "projects", {:name=>"fk_ea2f6dfc6f", :on_delete=>:cascade})
+ -> 0.0021s
+-- add_foreign_key("personal_access_tokens", "users")
+ -> 0.0016s
+-- add_foreign_key("project_authorizations", "projects", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("project_authorizations", "users", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("project_auto_devops", "projects", {:on_delete=>:cascade})
+ -> 0.0026s
+-- add_foreign_key("project_custom_attributes", "projects", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("project_features", "projects", {:name=>"fk_18513d9b92", :on_delete=>:cascade})
+ -> 0.0020s
+-- add_foreign_key("project_group_links", "projects", {:name=>"fk_daa8cee94c", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("project_import_data", "projects", {:name=>"fk_ffb9ee3a10", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("project_statistics", "projects", {:on_delete=>:cascade})
+ -> 0.0021s
+-- add_foreign_key("protected_branch_merge_access_levels", "protected_branches", {:name=>"fk_8a3072ccb3", :on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("protected_branch_push_access_levels", "protected_branches", {:name=>"fk_9ffc86a3d9", :on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("protected_branches", "projects", {:name=>"fk_7a9c6d93e7", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("protected_tag_create_access_levels", "namespaces", {:column=>"group_id"})
+ -> 0.0016s
+-- add_foreign_key("protected_tag_create_access_levels", "protected_tags", {:name=>"fk_f7dfda8c51", :on_delete=>:cascade})
+ -> 0.0013s
+-- add_foreign_key("protected_tag_create_access_levels", "users")
+ -> 0.0018s
+-- add_foreign_key("protected_tags", "projects", {:name=>"fk_8e4af87648", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("push_event_payloads", "events", {:name=>"fk_36c74129da", :on_delete=>:cascade})
+ -> 0.0013s
+-- add_foreign_key("releases", "projects", {:name=>"fk_47fe2a0596", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("services", "projects", {:name=>"fk_71cce407f9", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("snippets", "projects", {:name=>"fk_be41fd4bb7", :on_delete=>:cascade})
+ -> 0.0017s
+-- add_foreign_key("subscriptions", "projects", {:on_delete=>:cascade})
+ -> 0.0018s
+-- add_foreign_key("system_note_metadata", "notes", {:name=>"fk_d83a918cb1", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("timelogs", "issues", {:name=>"fk_timelogs_issues_issue_id", :on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("timelogs", "merge_requests", {:name=>"fk_timelogs_merge_requests_merge_request_id", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("todos", "projects", {:name=>"fk_45054f9c45", :on_delete=>:cascade})
+ -> 0.0018s
+-- add_foreign_key("trending_projects", "projects", {:on_delete=>:cascade})
+ -> 0.0015s
+-- add_foreign_key("u2f_registrations", "users")
+ -> 0.0017s
+-- add_foreign_key("user_custom_attributes", "users", {:on_delete=>:cascade})
+ -> 0.0019s
+-- add_foreign_key("user_synced_attributes_metadata", "users", {:on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("users_star_projects", "projects", {:name=>"fk_22cd27ddfc", :on_delete=>:cascade})
+ -> 0.0016s
+-- add_foreign_key("web_hook_logs", "web_hooks", {:on_delete=>:cascade})
+ -> 0.0014s
+-- add_foreign_key("web_hooks", "projects", {:name=>"fk_0c8ca6d9d1", :on_delete=>:cascade})
+ -> 0.0017s
+-- initialize_schema_migrations_table()
+ -> 0.0112s
+$ JOB_NAME=( $CI_JOB_NAME )
+$ export CI_NODE_INDEX=${JOB_NAME[-2]}
+$ export CI_NODE_TOTAL=${JOB_NAME[-1]}
+$ export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
+$ export KNAPSACK_GENERATE_REPORT=true
+$ export CACHE_CLASSES=true
+$ cp ${KNAPSACK_SPINACH_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
+$ scripts/gitaly-test-spawn
+Gem.path: ["/root/.gem/ruby/2.3.0", "/usr/local/lib/ruby/gems/2.3.0", "/usr/local/bundle"]
+ENV['BUNDLE_GEMFILE']: nil
+ENV['RUBYOPT']: nil
+bundle config in /builds/gitlab-org/gitlab-ce
+scripts/gitaly-test-spawn:10:in `<main>': undefined local variable or method `gitaly_dir' for main:Object (NameError)
+Did you mean? gitaly_dir
+Settings are listed in order of priority. The top value will be used.
+retry
+Set for your local app (/usr/local/bundle/config): 3
+
+path
+Set for your local app (/usr/local/bundle/config): "vendor"
+Set via BUNDLE_PATH: "/usr/local/bundle"
+
+jobs
+Set for your local app (/usr/local/bundle/config): "2"
+
+clean
+Set for your local app (/usr/local/bundle/config): "true"
+
+without
+Set for your local app (/usr/local/bundle/config): [:production]
+
+silence_root_warning
+Set via BUNDLE_SILENCE_ROOT_WARNING: true
+
+app_config
+Set via BUNDLE_APP_CONFIG: "/usr/local/bundle"
+
+install_flags
+Set via BUNDLE_INSTALL_FLAGS: "--without=production --jobs=2 --path=vendor --retry=3 --quiet"
+
+bin
+Set via BUNDLE_BIN: "/usr/local/bundle/bin"
+
+gemfile
+Set via BUNDLE_GEMFILE: "/builds/gitlab-org/gitlab-ce/Gemfile"
+
+section_end:1517486961:build_script
+section_start:1517486961:after_script
+section_end:1517486962:after_script
+section_start:1517486962:upload_artifacts
+Uploading artifacts...
+WARNING: coverage/: no matching files 
+knapsack/: found 5 matching files 
+WARNING: tmp/capybara/: no matching files 
+Uploading artifacts to coordinator... ok  id=50551722 responseStatus=201 Created token=XkN753rp
+section_end:1517486963:upload_artifacts
+ERROR: Job failed: exit code 1
 \ No newline at end of file
diff --git a/spec/fixtures/trace/sample_trace_with_byte b/spec/fixtures/trace/sample_trace_with_byte
new file mode 100644
index 00000000000..c78d2d671e4
--- /dev/null
+++ b/spec/fixtures/trace/sample_trace_with_byte
@@ -0,0 +1,63 @@
+Running with gitlab-runner 10.0.2 (a9a76a50)
+ on ShinyaMaedas-MacBook-Pro.local (e1e5600d)
+Using Docker executor with image ruby:2.1 ...
+Using docker image sha256:35c04f14f9926d1c8c68927cb43f69435fda36ecbaa3ca6f92218205363a2b99 for predefined container...
+Pulling docker image ruby:2.1 ...
+Using docker image ruby:2.1 ID=sha256:223d1eaa9523fa64e78f5a92b701c9c11cbc507f0ff62246dbbacdae395ffea3 for build container...
+Running on runner-e1e5600d-project-64-concurrent-0 via ShinyaMaedasMBP...
+Fetching changes...
+Removing index.html
+HEAD is now at 59a8e85 Update .gitlab-ci.yml
+Checking out 59a8e85d as master...
+Skipping Git submodules setup
+$ wget https://about.gitlab.com/
+converted 'https://about.gitlab.com/' (ANSI_X3.4-1968) -> 'https://about.gitlab.com/' (UTF-8)
+--2018-04-03 06:46:12-- https://about.gitlab.com/
+Resolving about.gitlab.com (about.gitlab.com)... 40.79.82.214
+Connecting to about.gitlab.com (about.gitlab.com)|40.79.82.214|:443... connected.
+HTTP request sent, awaiting response... 200 OK
+Length: 69778 (68K) [text/html]
+Saving to: 'index.html'
+
+ 0K .......... .......... .......... .......... .......... 73% 195K 0s
+ 50K .......... ........ 100% 37.5M=0.3s
+
+2018-04-03 06:46:14 (265 KB/s) - 'index.html' saved [69778/69778]
+
+$ cat index.html
+<!DOCTYPE html> <html class=html--no-js lang=en> <head> <meta charset=UTF-8 /> <meta content='width=device-width, initial-scale=1.0' name=viewport /> <script>document.documentElement.className = 'html--js'</script> <script src='https://cdn.optimizely.com/js/7718922374.js'></script> <script type='application/ld+json'>{"@context":"http://schema.org","@type":"Organization","name":"GitLab","legalName":"GitLab Inc.","url":"http://about.gitlab.com","logo":"https://gitlab.com/gitlab-com/gitlab-artwork/raw/master/logo/logo.png","foundingDate":"2011","founders":[{"@type":"Person","name":"Sid Sijbrandij"},{"@type":"Person","name":"Dmitriy Zaporozhets"}],"address":{"@type":"PostalAddress","streetAddress":"1233 Howard St 2F","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94103","addressCountry":"USA"},"sameAs":["https://www.facebook.com/gitlab","https://twitter.com/gitlab","https://www.linkedin.com/company/gitlab-com","https://plus.google.com/107491817347842790515/","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg"]}</script> <title> The only single product for the complete DevOps lifecycle - GitLab | GitLab </title> <meta content='“GitLab is the leading integrated product for modern software development. Connecting issue management, version control, code review, CI, CD, and monitoring into a single, easy-to-install application, we help teams go faster from planning to monitoring.”' name=description /> <meta content='“GitLab is the leading integrated product for modern software development. Connecting issue management, version control, code review, CI, CD, and monitoring into a single, easy-to-install application, we help teams go faster from planning to monitoring.”' name='twitter:description'/> <meta content='“GitLab is the leading integrated product for modern software development. Connecting issue management, version control, code review, CI, CD, and monitoring into a single, easy-to-install application, we help teams go faster from planning to monitoring.”' name='og:description'/> <meta content=GitLab property='og:site_name'/> <meta content='The only single product for the complete DevOps lifecycle - GitLab' property='og:title'/> <meta content=article property='og:type'/> <meta content='https://about.gitlab.com/' property='og:url'/> <meta content='https://about.gitlab.com/images/blogimages/gitlab-blog-cover.png' property='og:image'/> <meta content='https://about.gitlab.com/images/blogimages/gitlab-blog-cover.png' name='twitter:image'/> <meta content=summary_large_image name='twitter:card'/> <meta content='@GitLab' name='twitter:site'/> <meta content='The only single product for the complete DevOps lifecycle - GitLab' name='twitter:title'/> <meta content='@GitLab' name='twitter:creator'/> <link href='/atom.xml' rel=alternate title=Blog type='application/atom+xml'/> <link href='/ico/favicon.ico' rel='shortcut icon'/> <link href='/ico/apple-touch-icon-57x57.png' rel=apple-touch-icon sizes=57x57 /> <link href='/ico/apple-touch-icon-114x114.png' rel=apple-touch-icon sizes=114x114 /> <link href='/ico/apple-touch-icon-72x72.png' rel=apple-touch-icon sizes=72x72 /> <link href='/ico/apple-touch-icon-144x144.png' rel=apple-touch-icon sizes=144x144 /> <link href='/ico/apple-touch-icon-60x60.png' rel=apple-touch-icon sizes=60x60 /> <link href='/ico/apple-touch-icon-120x120.png' rel=apple-touch-icon sizes=120x120 /> <link href='/ico/apple-touch-icon-76x76.png' rel=apple-touch-icon sizes=76x76 /> <link href='/ico/apple-touch-icon-152x152.png' rel=apple-touch-icon sizes=152x152 /> <link href='/ico/apple-touch-icon-180x180.png' rel=apple-touch-icon sizes=180x180 /> <link href='/ico/favicon-192x192.png' rel=icon sizes=192x192 type='image/png'/> <link href='/ico/favicon-160x160.png' rel=icon sizes=160x160 type='image/png'/> <link href='/ico/favicon-96x96.png' rel=icon sizes=96x96 type='image/png'/> <link href='/ico/favicon-16x16.png' rel=icon sizes=16x16 type='image/png'/> <link href='/ico/favicon-32x32.png' rel=icon sizes=32x32 type='image/png'/> <meta content='#554488' name=msapplication-TileColor /> <meta content='/ico/mstile-144x144.png' name=msapplication-TileImage /> <meta content='/ico/browserconfig.xml' name=msapplication-config /> <link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600' rel=stylesheet /> <link href='//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css' rel=stylesheet /> <link href="/stylesheets/styles.css" rel=stylesheet /><link href="/stylesheets/highlight.css" rel=stylesheet /> <link href="/stylesheets/home.css" rel=stylesheet /> </head> <body data-offset=90 data-spy=scroll data-target='.qnav'> <noscript> <iframe height=0 src='//www.googletagmanager.com/ns.html?id=GTM-NJXWQL' style='display:none;visibility:hidden' width=0></iframe> </noscript> <script>
+ //<![CDATA[
+ (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-NJXWQL')
+ //]]>
+</script> <header> <nav class='navbar navbar-fixed-top navbar-default' role=navigation> <div class=container> <div class=navbar-header> <button class=navbar-toggle data-target='#main-gl-nav' data-toggle=collapse type=button> <span class=sr-only> Toggle Navigation </span> <span class=icon-bar></span> <span class=icon-bar></span> <span class=icon-bar></span> </button> <button aria-label=Search class='search-icon search-icon-mobile js-search-toggle visible-xs-block visible-sm-block pull-right' type=button> <i class='fa fa-search'></i> </button> <a class='navbar-brand animated' href='/'> <svg width=140 height=44 viewBox="0 0 1231 342" xmlns="http://www.w3.org/2000/svg" class=nav-logo> <g fill=none fill-rule=evenodd> <g fill="#8C929D" class=wordmark> <path d="M764.367 94.13h-20.803l.066 154.74h84.155v-19.136h-63.352l-.066-135.603zM907.917 221.7c-5.2 5.434-13.946 10.87-25.766 10.87-15.838 0-22.22-7.797-22.22-17.957 0-15.354 10.637-22.678 33.332-22.678 4.255 0 11.11.472 14.655 1.18v28.586zm-21.51-93.787c-16.8 0-32.208 5.952-44.23 15.858l7.352 12.73c8.51-4.962 18.91-9.924 33.802-9.924 17.02 0 24.585 8.742 24.585 23.39v7.56c-3.31-.71-10.164-1.184-14.42-1.184-36.404 0-54.842 12.757-54.842 39.454 0 23.86 14.656 35.908 36.876 35.908 14.97 0 29.314-6.852 34.278-17.954l3.782 15.118h14.657v-79.14c0-25.04-10.874-41.815-41.84-41.815zM995.368 233.277c-7.802 0-14.657-.945-19.858-3.308v-71.58c7.093-5.908 15.84-10.16 26.95-10.16 20.092 0 27.893 14.174 27.893 37.09 0 32.6-12.53 47.957-34.985 47.957m8.742-105.364c-18.592 0-28.6 12.64-28.6 12.64V120.59l-.066-26.458H955.116l.066 150.957c10.164 4.25 24.11 6.613 39.24 6.613 38.768 0 57.442-24.804 57.442-67.564 0-33.783-17.26-56.227-47.754-56.227M538.238 110.904c18.438 0 30.258 6.142 38.06 12.285l8.938-15.477c-12.184-10.678-28.573-16.417-46.053-16.417-44.204 0-75.17 26.932-75.17 81.267 0 56.935 33.407 79.14 71.624 79.14 19.148 0 35.46-4.488 46.096-8.976l-.435-60.832V162.76h-56.734v19.135h36.167l.437 46.184c-4.727 2.362-13 4.252-24.11 4.252-30.73 0-51.297-19.32-51.297-60.006 0-41.34 21.275-61.422 52.478-61.422M684.534 94.13h-20.33l.066 25.988v89.771c0 25.04 10.874 41.814 41.84 41.814 4.28 0 8.465-.39 12.53-1.126v-18.245c-2.943.45-6.083.707-9.455.707-17.02 0-24.585-8.74-24.585-23.387v-61.895h34.04v-17.01H684.6l-.066-36.617zM612.62 248.87h20.33V130.747h-20.33v118.12zM612.62 114.448h20.33V94.13h-20.33v20.318z"/> </g> <path d="M185.398 341.13l68.013-209.322H117.39L185.4 341.13z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M185.398 341.13l-68.013-209.322h-95.32L185.4 341.128z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M22.066 131.808l-20.67 63.61c-1.884 5.803.18 12.16 5.117 15.744L185.398 341.13 22.066 131.807z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M22.066 131.808h95.32L76.42 5.735c-2.107-6.487-11.284-6.487-13.39 0L22.065 131.808z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M185.398 341.13l68.013-209.322h95.32L185.4 341.128z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M348.73 131.808l20.67 63.61c1.884 5.803-.18 12.16-5.117 15.744L185.398 341.13 348.73 131.807z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M348.73 131.808h-95.32L294.376 5.735c2.108-6.487 11.285-6.487 13.392 0l40.963 126.073z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> </g> </svg> </a> </div> <div class='search-box js-search-box'> <i class='fa fa-search search-box-icon'></i> <input class='search-input js-search' placeholder='Search...'/> <button aria-label='Close search' class='search-close js-search-toggle' type=button> <i class='fa fa-times'></i> </button> </div> <div class='collapse navbar-collapse' id=main-gl-nav> <ul class='nav navbar-nav animated'> <li> <a href='/features'> Features </a> </li> <li> <a href='/products'> Pricing </a> </li> <li> <a href='/installation'> Install </a> </li> <li> <a href='/community'> Community </a> </li> <li> <a href='/blog'> Blog </a> </li> <li> <a href='/contact'> Contact </a> </li> <li class='hidden-xs hidden-sm'> <button aria-label=Search class='search-icon js-search-toggle' type=button> <i class='fa fa-search'></i> </button> </li> <li> <a class=sign-in-up-btn href='https://gitlab.com/explore'> Explore GitLab.com </a> </li> <li> <a class='sign-in-up-btn is-last' href='https://gitlab.com/users/sign_in'> Sign In/Register </a> </li> </ul> </div> </div> </nav> </header> <div class='gitlab-promo-banner animated'> <a href='/2018/03/22/gitlab-10-6-released/'>GitLab 10.6 released with CI/CD for GitHub, deeper Kubernetes integration, group issue board in Core and Free, and lots more!</a> </div> <section class=home-splash> <div class=container> <header class=text-center> <h1 class=jumbo-heading> Concurrent DevOps </h1> <h2 class=page-subtitle> A single application built from the ground up for the complete DevOps lifecycle. </h2> <a class='btn cta-btn accent' href='/products/'> Try GitLab for Free </a> </header> <div class=home-lifecycle-diagram> <article class='lifecycle-diagram-phase plan' data-title=Plan> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=55 height=55 viewBox="0 0 55 55"><defs><style>.plan-cls-1{fill:#fff}</style></defs><title>Plan</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=plan-cls-1 d="M46.32 15.93H7.24a.72.72 0 0 0 0 1.45h39.08a.72.72 0 1 0 0-1.45zm-2.89 8.68a4.35 4.35 0 0 0-4.28 3.61h-7.38a4.34 4.34 0 0 0-8.55 0h-7.36a4.34 4.34 0 1 0 0 1.45h7.36a4.34 4.34 0 0 0 8.56 0h7.37a4.34 4.34 0 1 0 4.28-5.06zm-31.85 7.24A2.89 2.89 0 1 1 14.47 29a2.9 2.9 0 0 1-2.89 2.85zm15.92 0A2.89 2.89 0 1 1 30.39 29a2.9 2.9 0 0 1-2.89 2.85zm15.93 0A2.89 2.89 0 1 1 46.32 29a2.9 2.9 0 0 1-2.89 2.85zM39.15 42.7h-7.37a4.34 4.34 0 0 0-8.55 0h-7.37a4.34 4.34 0 1 0 0 1.45h7.37a4.34 4.34 0 0 0 8.55 0h7.38a4.34 4.34 0 1 0 0-1.45zm-27.57 3.62a2.89 2.89 0 1 1 2.89-2.89 2.9 2.9 0 0 1-2.89 2.89zm15.92 0a2.89 2.89 0 1 1 2.89-2.89 2.9 2.9 0 0 1-2.89 2.89zm18.82-2.89a2.89 2.89 0 1 1-2.89-2.89 2.9 2.9 0 0 1 2.89 2.89z"/><path class=plan-cls-1 d="M51.4 4.34H37.63a.72.72 0 0 0 0 1.45H51.4a2.15 2.15 0 0 1 2.15 2.15V51.4a2.15 2.15 0 0 1-2.15 2.15H3.6a2.15 2.15 0 0 1-2.15-2.15V7.94A2.15 2.15 0 0 1 3.6 5.79h19.62a5.07 5.07 0 1 0 0-1.45H3.6A3.6 3.6 0 0 0 0 7.94V51.4A3.6 3.6 0 0 0 3.6 55h47.8a3.6 3.6 0 0 0 3.6-3.6V7.94a3.6 3.6 0 0 0-3.6-3.6zM28.22 1.45a3.62 3.62 0 1 1-3.62 3.62 3.62 3.62 0 0 1 3.62-3.62z"/></g></g></svg> Plan: Get your best ideas into development. </h3> <div class=description>Whether you use Waterfall, Agile, or Conversational Development, GitLab streamlines your collaborative workflows. Visualize, prioritize, coordinate, and track your progress your way with GitLab’s flexible project management tools.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#plan'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/plan-screenshot.jpg" alt="GitLab Issue Boards" srcset="/images/home/plan-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase create' data-title=Create> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=49 height="54.76" viewBox="0 0 49 54.76"><defs><style>.create-cls-1{fill:#fff}</style></defs><title>Create</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=create-cls-1 d="M45.9 7.21H41a7.93 7.93 0 1 0 0 1.44h4.9a1.62 1.62 0 0 1 1.66 1.59v41.5a1.62 1.62 0 0 1-1.66 1.59H3.1a1.62 1.62 0 0 1-1.66-1.59V10.23A1.62 1.62 0 0 1 3.1 8.65H14a.72.72 0 1 0 0-1.44H3.1a3.07 3.07 0 0 0-3.1 3v41.53a3.07 3.07 0 0 0 3.1 3h42.8a3.07 3.07 0 0 0 3.1-3V10.23a3.07 3.07 0 0 0-3.1-3.02zm-12.75 7.2a6.49 6.49 0 1 1 6.49-6.49 6.49 6.49 0 0 1-6.49 6.49z"/><path class=create-cls-1 d="M12.46 21.11a.72.72 0 0 0 0 1l9.35 9.35-9.35 9.35a.72.72 0 1 0 1 1L23.34 32a.72.72 0 0 0 0-1l-9.86-9.86a.72.72 0 0 0-1.02-.03zM36 42.51a.72.72 0 1 0 0-1.44h-8.62a.72.72 0 0 0 0 1.44z"/></g></g></svg> Create: Securely write and manage code and project data. </h3> <div class=description>Consolidate source code into a single DVCS that’s easily managed and controlled without disrupting your workflow. GitLab’s git repositories come complete with branching tools and access controls, providing a scalable, single source of truth for collaborating on projects and code.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#create'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/create-screenshotb.jpg" alt="GitLab Project Repository" srcset="/images/home/create-screenshotb_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase verify' data-title=Verify> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <?xml version="1.0"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76" enable-background="new 0 0 76 76"> <path d="m14.267 7.32l-4.896 5.277-1.702-1.533c-.409-.369-1.043-.338-1.412.074-.369.41-.337 1.042.074 1.412l2.434 2.192c.064.058.139.091.212.13.035.018.065.048.101.062.114.044.235.066.356.066.135 0 .27-.028.396-.082.044-.019.077-.058.118-.084.076-.047.155-.086.219-.154l5.566-6c.375-.404.352-1.037-.054-1.413-.405-.377-1.036-.353-1.412.053"/> <path d="m31 9h44c.553 0 1-.447 1-1s-.447-1-1-1h-44c-.553 0-1 .447-1 1s.447 1 1 1"/> <path d="m31 15h24c.553 0 1-.447 1-1s-.447-1-1-1h-24c-.553 0-1 .447-1 1s.447 1 1 1"/> <path d="m11 0c-6.07 0-11 4.935-11 11s4.935 11 11 11 11-4.935 11-11-4.935-11-11-11m0 20c-4.963 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9"/> <path d="m14.267 34.32l-4.896 5.277-1.702-1.533c-.409-.368-1.043-.338-1.412.074-.369.41-.337 1.042.074 1.412l2.434 2.192c.064.058.139.091.212.13.035.018.065.048.101.062.114.044.235.066.356.066.135 0 .27-.028.396-.082.044-.019.077-.058.118-.084.076-.047.155-.086.219-.154l5.566-6c.375-.404.352-1.037-.054-1.413-.405-.377-1.036-.353-1.412.053"/> <path d="m75 34h-44c-.553 0-1 .447-1 1s.447 1 1 1h44c.553 0 1-.447 1-1s-.447-1-1-1"/> <path d="m31 42h24c.553 0 1-.447 1-1s-.447-1-1-1h-24c-.553 0-1 .447-1 1s.447 1 1 1"/> <path d="m11 27c-6.07 0-11 4.935-11 11s4.935 11 11 11 11-4.935 11-11-4.935-11-11-11m0 20c-4.963 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9"/> <path d="m14.267 61.32l-4.896 5.277-1.702-1.533c-.409-.368-1.043-.338-1.412.074-.369.41-.337 1.042.074 1.412l2.434 2.192c.064.058.139.091.212.13.035.018.065.048.101.062.114.044.235.066.356.066.135 0 .27-.028.396-.082.044-.019.077-.058.118-.084.076-.047.155-.086.219-.154l5.566-6c.375-.404.352-1.037-.054-1.413-.405-.377-1.036-.353-1.412.053"/> <path d="m11 54c-6.07 0-11 4.935-11 11s4.935 11 11 11 11-4.935 11-11-4.935-11-11-11m0 20c-4.963 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9"/> <path d="m75 61h-44c-.553 0-1 .447-1 1s.447 1 1 1h44c.553 0 1-.447 1-1s-.447-1-1-1"/> <path d="m55 67h-24c-.553 0-1 .447-1 1s.447 1 1 1h24c.553 0 1-.447 1-1s-.447-1-1-1"/> </svg> Verify: Ship better software, faster. </h3> <div class=description>Spot errors sooner and shorten feedback cycles with built-in code review, code testing, code quality, and review apps. Customize your approval workflow controls, automatically test the quality of your code, and spin up a staging environment for every code change. GitLab Continuous Integration is the most popular next generation testing system that auto scales to run your tests faster.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#verify'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/verify-screenshot.jpg" alt="GitLab Code Quality" srcset="/images/home/verify-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase package' data-title=Package> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=54 height=54 viewBox="0 0 54 54"><defs><style>.review-cls-1{fill:#fff}</style></defs><title>Review</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=review-cls-1 d="M52 16.87a.71.71 0 1 0-1.32.53A25.61 25.61 0 1 1 41.9 6.21a4.29 4.29 0 1 0 1-1.05A26.94 26.94 0 1 0 52 16.87zM43.46 6.52a2.84 2.84 0 1 1 4 4 2.91 2.91 0 0 1-4 0 2.84 2.84 0 0 1 0-4z"/><path class=review-cls-1 d="M19.32 21.44a.71.71 0 0 0-1-.26l-9 5.21a.71.71 0 0 0 0 1.23l9 5.21a.7.7 0 0 0 .36.1.71.71 0 0 0 .36-1.33L11.13 27l7.93-4.59a.71.71 0 0 0 .26-.97zm15.36 11.12a.71.71 0 0 0 .62.35.7.7 0 0 0 .36-.1l9-5.21a.71.71 0 0 0 0-1.23l-9-5.21a.71.71 0 1 0-.71 1.23L42.87 27l-7.93 4.59a.71.71 0 0 0-.26.97zM30.35 15l-8 23.61a.71.71 0 0 0 .44.9.7.7 0 0 0 .23 0 .71.71 0 0 0 .67-.48l8-23.61a.71.71 0 1 0-1.34-.42z"/></g></g></svg> Package: Manage custom container images with ease. </h3> <div class=description>GitLab Container Registry gives you the enhanced security and access controls of custom Docker images without 3rd party add-ons. Easily upload and download images from GitLab CI with full Git repository management integration.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#package'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/package-screenshot.jpg" alt="GitLab Container Registry" srcset="/images/home/package-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase release' data-title=Release> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=54 height="53.98" viewBox="0 0 54 53.98"><defs><style>.measure-cls-1{fill:#fff}</style></defs><title>Measure</title><g id=Layer_2 data-name="Layer 2"><path class=measure-cls-1 d="M48.32 47.58A5.62 5.62 0 0 0 45 48.69a9.22 9.22 0 0 0-13.38-2.92L30 34.8h.87l2.72 5.43a1.46 1.46 0 0 0 1.22.73h2a1.47 1.47 0 0 0 .94-.42 1.34 1.34 0 0 0 .37-.63l2.44-9.34a1.52 1.52 0 0 0-.32-1.25l-5.25-5.87c.16-2 .25-3.82.27-5.43 0-7.47-2-12.41-7.22-17.63a1.46 1.46 0 0 0-2 0c-4 4-5.9 7.34-6.71 11.7a4.23 4.23 0 1 0 1.44 0c.78-3.93 2.58-7 6.27-10.76C31.87 6.3 33.78 11 33.79 18c0 1.65-.11 3.48-.29 5.62a.71.71 0 0 0 .18.53l5.44 6.09-2.41 9.29H34.8l-2.9-5.79a.71.71 0 0 0-.64-.39h-8.53a.71.71 0 0 0-.64.39l-2.87 5.77H17.3l-2.43-9.29 5.45-6.1a.71.71 0 0 0-1.06-.95l-5.47 6.13a1.52 1.52 0 0 0-.29 1.27l2.43 9.29A1.45 1.45 0 0 0 17.28 41h1.94a1.41 1.41 0 0 0 1-.42 1.23 1.23 0 0 0 .25-.34l2.7-5.4H24l-1.62 11A9.22 9.22 0 0 0 9 48.68a5.68 5.68 0 0 0-9 4.59.71.71 0 0 0 .71.73h52.58a.71.71 0 0 0 .71-.71 5.69 5.69 0 0 0-5.68-5.71zM21.9 14.31a2.84 2.84 0 0 1 0 4 2.91 2.91 0 0 1-4 0 2.84 2.84 0 1 1 4-4zM1.48 52.56A4.27 4.27 0 0 1 5.68 49a4.23 4.23 0 0 1 3.06 1.3.71.71 0 0 0 1.16-.21 7.8 7.8 0 0 1 12.54-2.48.71.71 0 0 0 1.19-.41l1.84-12.42h3l1.84 12.42a.71.71 0 0 0 1.19.41 7.8 7.8 0 0 1 12.59 2.49.71.71 0 0 0 1.16.21A4.23 4.23 0 0 1 48.31 49a4.27 4.27 0 0 1 4.2 3.55z" id=Layer_1-2 data-name="Layer 1"/></g></svg> Release: Minimize complexity with built-in Continuous Delivery. </h3> <div class=description>Spend less time configuring your tools, and more time creating. Whether you’re deploying to one server or thousands, build, test, and release your code confidently and securely with GitLab’s built-in continuous delivery and deployment.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#release'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/release-screenshot.jpg" alt="GitLab Pipelines" srcset="/images/home/release-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase configure' data-title=Configure> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76 76" enable-background="new 0 0 76 76"><path d="m56.991 49.18c-1.509-.581-3.151-.54-4.625.116-1.476.655-2.608 1.845-3.188 3.352s-.539 3.149.116 4.624c.654 1.477 1.845 2.608 3.352 3.188.706.272 1.44.407 2.175.407.833 0 1.665-.175 2.449-.522 1.477-.654 2.608-1.845 3.188-3.352.581-1.507.54-3.149-.115-4.625s-1.846-2.608-3.352-3.188m1.601 7.094c-.388 1.01-1.146 1.804-2.133 2.242-.988.439-2.086.466-3.095.077-1.01-.388-1.804-1.146-2.242-2.134-.438-.986-.466-2.085-.078-3.094.389-1.01 1.146-1.804 2.134-2.242.524-.233 1.082-.351 1.64-.351.491 0 .982.091 1.455.272 1.01.389 1.804 1.146 2.242 2.133.438.99.465 2.089.077 3.097"/><path d="m75.48 58.38l-.154-.087-3.138-1.702c-.341-.187-.41-.4-.431-.548-.001-.008-.023-.161-.024-.169.035-.929.012-1.895-.07-2.872-.003-.045.005-.085.005-.104l.033-.226c.054-.201.172-.35.383-.479.479-.297.962-.59 1.444-.882l1.755-1.068c.392-.238.57-.712.435-1.149-.635-2.052-1.506-4.01-2.589-5.814-.029-.05-.063-.096-.103-.138-.045-.063-.097-.122-.156-.175-.258-.228-.612-.306-.946-.21l-1.013.298c-.817.239-1.634.479-2.449.726-.493.149-.749.017-.975-.226-.632-.681-1.333-1.347-2.083-1.979-.255-.217-.297-.413-.303-.502.001-.095.007-.164.021-.228.256-1.12.534-2.234.812-3.35l.038-.149c.027-.106.041-.213.041-.317.087-.433-.121-.874-.515-1.081-1.903-1-3.905-1.771-5.95-2.285-.432-.109-.884.082-1.108.468l-1.804 3.307c-.229.416-.465.48-.749.461-1-.026-2.01-.003-2.986.074-.331.034-.553-.089-.739-.383-.604-.957-1.187-1.925-1.771-2.895l-.109-.182c-.316-.531-.895-.735-1.467-.519l-.795.292c-.568.207-1.138.415-1.7.643-.926.374-1.862.845-2.957 1.486-.277.168-.432.371-.516.565-.12.22-.158.482-.091.738l.313 1.07c.252.85.505 1.698.753 2.549.022.077.027.152.03.154.006.201-.03.425-.335.698-.616.553-1.224 1.19-1.909 2.01-.255.304-.507.386-.906.291l-3.627-.876c-.443-.112-.905.101-1.119.505-.104.197-.192.4-.279.604-.05.114-.099.229-.153.343-.004.008-.048.093-.051.101-.026.052-.049.106-.079.183-.786 1.684-1.352 3.224-1.728 4.709-.046.182-.034.369.023.543.072.314.277.583.58.744l3.114 1.685c.453.244.536.511.522.862-.038.971-.015 1.915.071 2.801.004.044-.003.085-.01.181-.023.237-.132.406-.355.548-.466.299-.941.586-1.416.872l-1.82 1.109c-.287.175-.463.501-.477.836-.01.074-.012.148-.005.223.007.069.023.163.044.229.05.161.11.317.173.474.034.085.069.17.11.292.003.011.037.112.04.123.02.055.042.108.08.198.618 1.733 1.307 3.234 2.106 4.588.222.376.689.71 1.35.506l1.029-.306c.816-.243 1.634-.485 2.451-.72.428-.123.643.026.8.189.697.726 1.441 1.432 2.211 2.099.166.144.243.297.249.466 0 .101-.011.195-.033.287l-.872 3.597c-.069.292.006.603.184.841.181.293.459.444.627.536l.145.076c1.227.618 2.498 1.142 3.778 1.554.383.123.77.232 1.156.341l.382.108c.132.038.256.056.372.056.486 0 .831-.302.994-.607.432-.801.867-1.598 1.302-2.396l.416-.763c.195-.355.41-.509.796-.479 1.033.028 1.98.006 2.902-.075.37-.025.608.091.816.426.229.365.452.733.676 1.102l1.274 2.085c.239.39.713.565 1.146.434 2.053-.632 4.01-1.5 5.83-2.582.386-.229.57-.688.454-1.12-.006-.082-.019-.162-.04-.231-.257-.853-.51-1.707-.763-2.561l-.261-.881c-.026-.09-.042-.182-.046-.239-.004-.21.059-.361.212-.508.698-.674 1.389-1.396 2.053-2.147l.574-.407c.095-.009.198.001.306.026.41.095.82.194 1.23.295l2.409.583c.447.104.903-.102 1.117-.505 1-1.895 1.775-3.893 2.293-5.939.115-.439-.095-.904-.485-1.126m-9.465 13.802l.034.008-.145.031.111-.039m-30.808-10.937l.17-.09.015.024-.185.066m37.05 2.572l-1.637-.396c-.417-.102-.835-.204-1.253-.301-.476-.108-.945-.106-1.401.01-.119.03-.231.082-.332.153l-.851.604c-.063.045-.121.097-.172.155-.652.742-1.33 1.454-2.02 2.114-.555.532-.84 1.22-.823 2.027.015.251.056.488.126.728l.261.882c.198.669.396 1.338.595 1.999-1.272.706-2.616 1.301-4.01 1.777l-.858-1.406c-.229-.377-.458-.754-.689-1.123-.605-.972-1.562-1.451-2.685-1.358-.846.072-1.721.096-2.672.067-1.17-.036-2.057.508-2.61 1.522l-.415.762c-.329.602-.657 1.203-.984 1.807-.285-.081-.571-.163-.854-.255-1.075-.346-2.144-.776-3.239-1.312l.708-2.916c.061-.249.09-.497.089-.792-.025-.762-.35-1.435-.938-1.944-.725-.628-1.424-1.291-2.079-1.973-.741-.772-1.736-1.03-2.792-.727-.825.236-1.648.481-2.472.726l-.414.123c-.598-1.093-1.13-2.299-1.615-3.663-.02-.055-.042-.108-.079-.195l-.644.228c.051-.038.097-.08.138-.126l.46-.242c-.008-.022-.016-.045-.023-.066l1.152-.701c.488-.295.979-.591 1.457-.897.737-.47 1.188-1.195 1.277-2.136.011-.148.019-.297.003-.465-.078-.814-.1-1.644-.064-2.537.047-1.172-.513-2.132-1.574-2.702l-2.546-1.377c.338-1.162.807-2.378 1.423-3.697l.061-.146c.002-.003.059-.115.061-.118.027-.059.055-.117.081-.177l2.829.684c1.127.269 2.16-.067 2.901-.949.624-.743 1.169-1.316 1.713-1.805.681-.609 1.025-1.388.994-2.322-.021-.189-.047-.38-.104-.578-.249-.854-.503-1.707-.756-2.561l-.109-.367c.792-.444 1.498-.788 2.191-1.068.541-.219 1.089-.418 1.637-.618l.193-.071c.518.858 1.037 1.715 1.57 2.561.575.915 1.513 1.386 2.588 1.312.907-.072 1.839-.095 2.775-.068 1.09.003 2.01-.502 2.557-1.497l1.416-2.6c1.397.399 2.771.928 4.097 1.578-.25 1.01-.499 2.01-.729 3.02-.048.207-.07.417-.071.72.04.771.389 1.457 1.01 1.984.689.581 1.332 1.191 1.91 1.813.792.85 1.863 1.128 3.02.777.81-.244 1.622-.482 2.435-.721l.278-.082c.72 1.282 1.328 2.642 1.813 4.056l-1.075.654c-.487.295-.975.591-1.46.892-.64.396-1.076.971-1.282 1.755l-.054.318c-.004.022-.011.093-.014.116-.016.159-.025.317-.011.488.074.896.096 1.78.064 2.634-.006.147.009.282.039.493.119.873.637 1.601 1.455 2.049l2.601 1.412c-.4 1.383-.926 2.744-1.57 4.056"/><path d="m16.991 16.824c-1.163 1.119-1.822 2.624-1.854 4.238-.032 1.615.567 3.146 1.687 4.31 1.185 1.232 2.771 1.853 4.358 1.853 1.508 0 3.02-.56 4.189-1.685 2.402-2.311 2.479-6.146.168-8.549-2.311-2.404-6.145-2.476-8.548-.167m6.994 7.275c-1.608 1.546-4.174 1.495-5.72-.113-.749-.778-1.149-1.803-1.128-2.883.021-1.081.461-2.088 1.24-2.837.783-.753 1.794-1.127 2.803-1.127 1.063 0 2.125.414 2.918 1.239 1.547 1.608 1.496 4.175-.113 5.721"/><path d="m35.32 36.917c.056-.045.11-.091.156-.135.538-.499 1.036-1.032 1.456-1.488l.102-.103c.067-.067.135-.135.197-.203.055-.062.108-.126.19-.226.066-.076.137-.147.206-.22.124-.129.247-.258.361-.397.29-.354.303-.858.032-1.227l-2.163-2.938c-.23-.315-.253-.569-.079-.906.475-.923.82-1.714 1.09-2.489.129-.373.313-.487.442-.538.067-.021.134-.044.208-.053.825-.095 1.651-.187 2.477-.277l1.177-.134c.312-.039.579-.22.733-.478.108-.145.199-.337.233-.592.16-1.198.232-2.252.221-3.224-.008-.593-.036-1.186-.064-1.778l-.037-.827c-.024-.611-.434-1.062-1.039-1.147l-.114-.016c-1.127-.163-2.253-.325-3.376-.51-.326-.054-.508-.206-.607-.508-.305-.922-.663-1.838-1.064-2.723-.1-.22-.152-.473.131-.83.484-.611.972-1.22 1.459-1.829l.83-1.04c.28-.356.285-.856.014-1.219-1.242-1.654-2.694-3.169-4.318-4.502-.347-.285-.838-.304-1.202-.051-.077.033-.16.08-.246.144-.941.707-1.883 1.414-2.841 2.102-.051.037-.114.071-.146.087-.143.05-.325.084-.608-.06-.878-.446-1.721-.815-2.576-1.127-.306-.112-.506-.281-.559-.774-.088-.847-.183-1.692-.277-2.537l-.105-.933c-.004-.054-.022-.147-.034-.199-.073-.315-.326-.557-.626-.68-.017-.008-.034-.014-.052-.02-.071-.028-.146-.048-.225-.06-2.042-.29-4.14-.33-6.231-.124-.455.045-.821.394-.89.846l-.289 1.923c-.085.568-.169 1.137-.258 1.702-.034.213-.11.364-.245.484l-.171.113c-.005.003-.139.074-.145.077-.918.3-1.8.646-2.614 1.026-.048.021-.096.029-.177.05-.151.034-.355.048-.637-.178l-2.874-2.3c-.351-.265-.836-.273-1.196-.014-.004.003-.012.009-.02.017-.051.033-.098.07-.142.112-1.605 1.229-3.068 2.647-4.349 4.213-.289.354-.301.858-.031 1.225l1.419 1.927c.251.34.502.68.752 1.026.063.087.109.174.139.265l-.142.647c-.424.88-.813 1.776-1.158 2.666-.046.119-.105.207-.185.274-.02.011-.038.021-.052.031-.04.026-.083.049-.105.058-.088.032-.174.052-.266.062l-.769.086c-.908.102-1.817.203-2.72.3-.069.007-.143.023-.215.047-.443.061-.793.408-.855.852-.289 2.05-.33 4.151-.123 6.245.045.455.393.821.845.89l2.411.364c.401.06.802.119 1.205.185.372.06.56.216.67.557.278.866.616 1.733 1.033 2.652.125.273.15.527-.13.878l-.454.568c-.58.729-1.16 1.456-1.747 2.184-.277.348-.419.913.02 1.462l.27.337c.237.298.474.596.722.885.86 1 1.814 1.951 2.822 2.81.052.045.1.085.135.112.148.116.349.275.619.346.313.115.669.071.944-.132l2.913-2.152c.077-.057.157-.103.224-.131.182-.069.339-.059.531.035.906.446 1.825.849 2.73 1.197.209.08.409.212.459.63.102.854.194 1.709.287 2.564l.105.969c.068.681.557.984.986 1.042 1 .136 2.06.203 3.197.203.501 0 1.019-.013 1.554-.039h.123c.086.003.171.001.266-.004l.287-.024c.075-.006.151-.006.228-.008.139-.002.278-.006.517-.034l-.005-.023c.033-.006.07-.014.107-.022l.005.019c.083-.022.162-.056.235-.099.298-.141.511-.422.561-.754l.306-2.02c.081-.552.162-1.104.257-1.655.042-.242.145-.398.313-.495.064-.035.126-.074.202-.099.846-.265 1.707-.603 2.562-1 .303-.141.567-.17.952.142l2.691 2.163c.214.176.468.266.726.266.002 0 .003 0 .005 0 .236.019.477-.048.679-.199.62-.469 1.185-.98 1.73-1.476.002-.003.093-.082.094-.083m2.321-27.414l.013.011-.015-.009.002-.002m-3.588 25.867l-.168.146c-.355.322-.698.632-1.049.926l-2.183-1.754c-.925-.748-2.01-.889-3.058-.396-.774.362-1.552.667-2.311.905-.206.063-.383.153-.576.259-.705.401-1.172 1.078-1.313 1.904-.098.566-.182 1.135-.266 1.704l-.187 1.243c-.022.002-.043.004-.046.004l-.273.013c-.081-.001-.159-.001-.239.003-1.358.067-2.584.043-3.724-.07l-.035-.323c-.094-.861-.188-1.724-.289-2.584-.129-1.079-.742-1.882-1.727-2.261-.851-.326-1.714-.705-2.565-1.124-.695-.344-1.436-.38-2.163-.096-.239.1-.456.223-.664.377l-2.339 1.729c-.856-.748-1.659-1.557-2.389-2.405-.185-.217-.363-.438-.541-.661.442-.552.883-1.104 1.324-1.657l.452-.567c.712-.892.85-1.94.388-2.954-.384-.847-.694-1.644-.949-2.438-.343-1.059-1.145-1.74-2.257-1.918-.408-.066-.818-.127-1.228-.188l-1.623-.247c-.096-1.426-.067-2.85.085-4.251.708-.077 1.416-.157 2.124-.236l.767-.085c.245-.027.488-.083.747-.177.182-.071.354-.16.434-.219.047-.023.116-.064.158-.095.413-.298.721-.702.914-1.201.339-.874.724-1.756 1.145-2.621.034-.071.061-.147.078-.225l.212-.973c.024-.114.029-.232.014-.349-.064-.47-.245-.911-.532-1.306-.252-.35-.508-.696-.765-1.043l-.95-1.285c.928-1.063 1.948-2.045 3.047-2.93l2.24 1.795c.696.557 1.532.756 2.411.542.161-.041.319-.086.489-.164.747-.349 1.553-.665 2.395-.94.141-.046.263-.105.383-.17.023-.013.113-.061.136-.075l.318-.204c.031-.021.062-.042.091-.065.532-.434.874-1.037.987-1.748.09-.572.175-1.146.261-1.721l.17-1.137c1.442-.098 2.878-.066 4.291.091l.024.221c.095.841.189 1.681.277 2.523.125 1.182.785 2.049 1.859 2.443.781.285 1.552.622 2.356 1.032.718.364 1.478.419 2.252.135.219-.094.408-.199.578-.322.815-.586 1.62-1.186 2.423-1.787 1.075.938 2.061 1.965 2.943 3.064l-.333.416c-.489.611-.979 1.224-1.466 1.837-.695.879-.832 1.907-.385 2.897.373.821.705 1.671.988 2.525.331 1 1.126 1.679 2.181 1.853.96.158 1.923.301 2.886.439l.009.183c.026.57.054 1.141.062 1.71.009.719-.034 1.496-.133 2.362l-.451.05c-.828.092-1.657.184-2.486.279-.21.024-.398.074-.637.151-.8.304-1.379.916-1.674 1.771-.237.685-.549 1.393-.979 2.23-.519 1.01-.433 2.074.244 3l1.677 2.278c-.001.002-.003.004-.005.006-.006.007-.06.071-.065.079l-.107.126c-.037.041-.076.079-.115.118l-.162.165c-.399.434-.864.933-1.413 1.437"/></svg> Configure: Automate configuration management </h3> <div class=description>Automate your entire workflow from build to deploy and monitoring with GitLab Auto Devops. Best practice templates get you started with minimal to zero configuration. Then customize everything from buildpacks to CI/CD.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#configure'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/configure-screenshot.jpg" alt="GitLab Auto DevOps" srcset="/images/home/configure-screenshot_2x.jpg 2x"/> </div> </div> </article> <article class='lifecycle-diagram-phase monitor' data-title=Monitor> <div class=row> <div class='col-sm-12 col-md-4'> <h3 class=sub-heading> <svg xmlns="http://www.w3.org/2000/svg" width=47 height="54.12" viewBox="0 0 47 54.12"><defs><style>.release-cls-1{fill:#fff}</style></defs><title>Release</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=release-cls-1 d="M40.59 3.56H29.13a4.27 4.27 0 1 0 0 1.42h11.46a5 5 0 0 1 5 5v34.17a5 5 0 0 1-5 5h-7.9L35 46.79a.71.71 0 0 0-1-1l-3.56 3.56a.71.71 0 0 0 0 1L34 53.91a.71.71 0 0 0 1-1l-2.34-2.35h7.9A6.42 6.42 0 0 0 47 44.15V10a6.42 6.42 0 0 0-6.41-6.44zM24.92 7.12a2.85 2.85 0 1 1 2.85-2.85 2.85 2.85 0 0 1-2.85 2.85zm-2.84 38.46a4.28 4.28 0 0 0-4.21 3.56H6.41a5 5 0 0 1-5-5V10a5 5 0 0 1 5-5h7.9L12 7.33a.71.71 0 1 0 1 1l3.56-3.56a.71.71 0 0 0 0-1L13 .21a.71.71 0 1 0-1 1l2.35 2.35H6.41A6.42 6.42 0 0 0 0 10v34.15a6.42 6.42 0 0 0 6.41 6.41h11.46a4.27 4.27 0 1 0 4.21-5zm0 7.12a2.85 2.85 0 1 1 2.85-2.85 2.85 2.85 0 0 1-2.85 2.85z"/><path class=release-cls-1 d="M38.45 28.86a.71.71 0 0 0-.71-.71h-7.36L26.8 17.53a.71.71 0 0 0-.65-.48.69.69 0 0 0-.68.44l-7 17.2-3.76-6.19a.71.71 0 0 0-.61-.34H9.26a.71.71 0 1 0 0 1.42h4.47L18 36.64a.71.71 0 0 0 .61.34h.06a.71.71 0 0 0 .6-.44l6.79-16.74 3.13 9.29a.71.71 0 0 0 .67.48h7.87a.71.71 0 0 0 .72-.71z"/></g></g></svg> Monitor: Analyze shipping velocity and monitor application performance. </h3> <div class=description>Measure how long it takes to go from planning to monitoring and ensure your applications are always responsive and available. GitLab collects and displays performance metrics for deployed apps using Prometheus so you can know in an instant how code changes impact your production environment.</div> <div class=btn-group> <a class='btn cta-btn ghost' href='/features/#monitor'> Learn More </a> </div> </div> <div class='col-sm-12 col-md-7 col-md-offset-1 image-column hidden-xs'> <img src="/images/home/measure-screenshot.jpg" alt="GitLab Cycle Analytics" srcset="/images/home/measure-screenshot_2x.jpg 2x"/> </div> </div> </article> </div> </div> </section> <section class=open-core> <div class=container> <div class=row> <article class='col-sm-12 col-lg-4 col-lg-push-8'> <h2 class=main-heading>Open core and continuously improved</h2> <p>With major product releases every 22nd of the month, GitLab’s high-velocity pace of innovation is possible because of the collaboration of the GitLab community, delivering the leading modern software development product, built for today’s modern software developer.</p> </article> <aside class='col-sm-12 col-md-10 col-lg-7 col-lg-pull-4'> <div class='top-30-callout js-all-clickable'> <div> <a href='/2017/07/06/gitlab-top-30-highest-velocity-open-source/'> <img src="/images/home/cloud-native-computing-foundation-logo.png" alt="Cloud Native Computing Foundation Logo"/> </a> </div> <p> <span>among the</span> <em>top</em> <strong>30</strong> <span>highest velocity</span> <span>open source projects</span> </p> </div> <div class=contributors-callout> <p> <strong>1,900+</strong> <span>contributors</span> </p> </div> </aside> </div> </div> </section> <section class=forrester-wave-section> <div class=container> <div class='row flex-row'> <div class='col-md-5 forrester-wave-body'> <h2 class=main-heading>GitLab named a Leader in the Forrester Wave™</h2> <p class=promo-text>Receiving the highest score in Forrester’s Current Offering evaluation, GitLab was named as a Leader in Continuous Integration in The Forrester Wave™: Continuous Integration Tools, Q3 2017 report. According to the report, “GitLab delivers ease of use, scalability, integration, and innovation.”</p> <div class=btn-group> <a class='btn cta-btn ghost' href='https://about.gitlab.com/2017/09/27/gitlab-leader-continuous-integration-forrester-wave/'> Read the Report </a> </div> </div> <div class='col-md-7 col-md-offset-1 forrester-wave-media'> <img src="/images/home/forrester-report-diagram.png" alt="GitLab is in the Leader’s arc"/> </div> </div> </div> </section> <section class=enterprise-edition> <div class=container> <div class='row flex-row text-center'> <div class='col-md-8 col-md-offset-2'> <h3 class=sub-heading> Try GitLab Enterprise Edition free for 30 days. </h3> <p> <a href='/gitlab-ee/'>GitLab Enterprise Edition</a> is built on the open core of GitLab Community Edition to include additional authentication, user management, and workflow features designed for larger development teams. </p> <p> <strong>No credit card required.</strong> </p> <a class='btn cta-btn accent' href='/free-trial/'> Start your free trial </a> <a class='btn cta-btn ghost-accent' href='/eep-demo/'> Join a live demo </a> </div> </div> </div> </section> <div class=logo-divider> <div class=container> <div class=logo-divider-body> <svg width=65 height=60 viewBox="0 0 210 194" class=footer-logo> <path d="M105.0614,193.655 L105.0614,193.655 L143.7014,74.734 L66.4214,74.734 L105.0614,193.655 L105.0614,193.655 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L66.4214,74.7338 L12.2684,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M12.2685,74.7341 L12.2685,74.7341 L0.5265,110.8731 C-0.5445,114.1691 0.6285,117.7801 3.4325,119.8171 L105.0615,193.6551 L12.2685,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M12.2685,74.7342 L66.4215,74.7342 L43.1485,3.1092 C41.9515,-0.5768 36.7375,-0.5758 35.5405,3.1092 L12.2685,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L143.7014,74.7338 L197.8544,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M197.8544,74.7341 L197.8544,74.7341 L209.5964,110.8731 C210.6674,114.1691 209.4944,117.7801 206.6904,119.8171 L105.0614,193.6551 L197.8544,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M197.8544,74.7342 L143.7014,74.7342 L166.9744,3.1092 C168.1714,-0.5768 173.3854,-0.5758 174.5824,3.1092 L197.8544,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> </svg> </div> </div> </div> <section class=value-pillar-section> <div class=container> <h2 class='main-heading text-center'>Concurrent DevOps</h2> <div class=value-pillar-group> <div class=value-pillar> <div class='value-pillar-media hidden-xs'> <svg xmlns="http://www.w3.org/2000/svg" width="77.11" height="79.48" viewBox="0 0 77.11 79.48"><defs><style>.pillar-create-cls-1{fill:#6b4fbb;}</style></defs><title>create</title><g id=Layer_2 data-name="Layer 2"><g id=icons><path class=pillar-create-cls-1 d="M44.08,79.48C30.47,79,21.7,75.08,14.76,66.21a2.92,2.92,0,0,1-.21-3.3c3.26-5.48,3-9.94-.9-14.91a29.48,29.48,0,0,1-3.78-6l-.24-.5-.55.12a7.5,7.5,0,1,1,3.4-1.76l-.38.35.24.51,0,.06a26.42,26.42,0,0,0,3.46,5.51c4.55,5.8,5,11.43,1.29,17.72l-.24.41.3.38c6.29,7.9,13.88,11.37,26.18,12l1,.05-.34-1a7.22,7.22,0,0,1-.36-1.47A4.36,4.36,0,0,1,45.27,70a5.22,5.22,0,0,1,3.23-1.19,4.78,4.78,0,0,1,1.05.12c1.85.42,5.49,1.14,7.16,1.44a7.4,7.4,0,0,0,1.33.12,4.35,4.35,0,0,0,2.61-.74,2.68,2.68,0,0,0,1.19-3,19.42,19.42,0,0,1-.09-4.91,4.47,4.47,0,0,1,2.36-3.74l.59-.31-.27-.6a1.4,1.4,0,0,1,1.1-2,4.39,4.39,0,0,0,.56-.1l.88-.22-.44-.79a2.62,2.62,0,0,1-.33-1.65,2.89,2.89,0,0,1,1.31-2,6.85,6.85,0,0,1,4-1,2.86,2.86,0,0,0,2.59-1.29c.32-.65.2-1.11-.47-1.69a30.75,30.75,0,0,1-8.83-14.29,5.69,5.69,0,0,1,.37-4.85,3.53,3.53,0,0,0,.33-3C62.37,11.29,51,2.79,36.51,2.79A26.58,26.58,0,0,0,12.77,17.37a1.4,1.4,0,0,1-1.25.76,1.36,1.36,0,0,1-.63-.16,1.4,1.4,0,0,1-.61-1.88A29.36,29.36,0,0,1,36.51,0c15.8,0,28.27,9.34,31.76,23.79a6.25,6.25,0,0,1-.54,4.85,3,3,0,0,0-.21,2.78,27.64,27.64,0,0,0,8,13,4,4,0,0,1,1.13,5,5.59,5.59,0,0,1-5.1,2.85,7,7,0,0,0-1.68.15l-.84.21.39.78A2.75,2.75,0,0,1,69,56.6a4.1,4.1,0,0,1-1.15.86l-.33.17,0,.37c0,.07,0,.14,0,.22a3.07,3.07,0,0,1-1.79,2.18,1.87,1.87,0,0,0-1.1,1.74,16.28,16.28,0,0,0,.06,4.17A5.41,5.41,0,0,1,62.33,72,7.1,7.1,0,0,1,58,73.33a10.23,10.23,0,0,1-1.83-.17c-1.73-.31-5.37-1-7.28-1.47a1.81,1.81,0,0,0-.42,0,2.53,2.53,0,0,0-1.52.58c-.41.33-.66.75-.53,1.77a5,5,0,0,0,.41,1.38,2.93,2.93,0,0,1-2.69,4.11ZM7.47,29.5a4.8,4.8,0,1,0,4.8,4.8A4.81,4.81,0,0,0,7.47,29.5Z"/><path class=pillar-create-cls-1 d="M34.11,53.86a1,1,0,0,1-.39-.08,1.05,1.05,0,0,1-.64-1.16l2.68-14.85L27.33,39h-.15a1,1,0,0,1-.88-1.63L42.5,13a1,1,0,0,1,.88-.47,1,1,0,0,1,.39.08,1.05,1.05,0,0,1,.64,1.16L41.73,28.63l8.42-1.2h.15a1,1,0,0,1,.87,1.63L35,53.39A1,1,0,0,1,34.11,53.86ZM37,35.48a1,1,0,0,1,1,1.24l-1.44,8,1.27.51L48.12,29.84l-7.54,1.07h-.15a1.05,1.05,0,0,1-1-1.24l1.44-8-1.27-.51L29.36,36.57l7.54-1.07Z"/></g></g></svg> </div> <div class=value-pillar-body> <h3 class=pillar-title>Visible</h3> <p class=pillar-description> Real time view across the entire lifecycle </p> <ul> <li>See everything that matters</li> <li>Stay in your flow</li> <li>Don’t wait on syncing</li> <li>Manage projects, not tools</li> <li>Improve cycle time.</li> </ul> </div> </div> <div class=value-pillar> <div class='value-pillar-media hidden-xs'> <svg xmlns="http://www.w3.org/2000/svg" width="84.47" height="75.53" viewBox="0 0 84.47 75.53"><defs><style>.pillar-speed-cls-1{fill:#6b4fbb;}</style></defs><title>Speed</title><g id=Layer_2 data-name="Layer 2"><g id=icons><path class=pillar-speed-cls-1 d="M50.35,75.53A33.93,33.93,0,0,1,31.69,70l-.45-.29-.4.35A8,8,0,1,1,33,67l-.22.54.49.31a31.51,31.51,0,1,0-6.67-47.15l-1,1.16H36.89v2.6H10.94v-2.6H22.39l.21-.29A34,34,0,0,1,48.39,7.35l.66,0V2.6H45.58V0h9.54V2.6H51.65V7.32l.66,0A33.94,33.94,0,0,1,70,13.58l.48.34L74,10.42,71.8,8.18l1.84-1.84,6.3,6.3-1.84,1.84-2.23-2.23-3.29,3.29.55.49A34.1,34.1,0,0,1,50.35,75.53Zm-24.81-17A5.43,5.43,0,1,0,31,64,5.44,5.44,0,0,0,25.54,58.58Z"/><path class=pillar-speed-cls-1 d="M40.81,49.11l3.91-3.91-.26-.46a6.76,6.76,0,0,1,9.21-9.21l.46.26,13-13L69,24.59l-13,13,.26.46A6.76,6.76,0,0,1,47,47.3L46.56,47,42.65,51Zm9.54-11.87a4.17,4.17,0,1,0,4.17,4.17A4.17,4.17,0,0,0,50.35,37.24Z"/><path class=pillar-speed-cls-1 d="M0,39.06v-2.6H16.6l.1-.59a34.2,34.2,0,0,1,1.95-7.09l2.4,1a31.33,31.33,0,0,0-1.68,5.83l-.15.83h6.74v2.6Z"/><path class=pillar-speed-cls-1 d="M7.29,51.83v-2.6h9.84L17,48.38A34.6,34.6,0,0,1,16.33,44l2.6-.14a31.84,31.84,0,0,0,.76,4.83l.13.54H31.42v2.6Z"/></g></g></svg> </div> <div class=value-pillar-body> <h3 class=pillar-title>Efficient</h3> <p class=pillar-description> Collaborate without waiting </p> <ul> <li>Start immediately</li> <li>Work concurrently</li> <li>No more handoffs</li> </ul> </div> </div> <div class=value-pillar> <div class='value-pillar-media hidden-xs'> <svg xmlns="http://www.w3.org/2000/svg" width="72.48" height="92.93" viewBox="0 0 72.48 92.93"><defs><style>.pillar-scale-cls-1{fill:#6b4fbb;}</style></defs><title>Scale</title><g id=Layer_2 data-name="Layer 2"><g id=icons><path class=pillar-scale-cls-1 d="M49.49,92.93a6.77,6.77,0,0,1-2-13.23l.42-.13V57.72H41.77a1.24,1.24,0,0,1-.93-2.07L55.58,39.07a1.3,1.3,0,0,1,1.86,0L72.17,55.65a1.24,1.24,0,0,1-.93,2.07H65.12V74.3H62.63V56.48a1.24,1.24,0,0,1,1.24-1.24h4.6l-12-13.47-12,13.47h4.6a1.24,1.24,0,0,1,1.24,1.24v23l.48.1a6.77,6.77,0,0,1-1.37,13.4Zm0-11.05a4.28,4.28,0,1,0,4.28,4.28A4.29,4.29,0,0,0,49.49,81.87Z"/><path class=pillar-scale-cls-1 d="M46.05,33.77V15.95a1.24,1.24,0,0,1,1.24-1.24h4.63L41.77,3.1,31.61,14.71h4.63a1.24,1.24,0,0,1,1.24,1.24v6.77H35V17.19H28.87a1.24,1.24,0,0,1-.93-2.06L40.83.4A1.3,1.3,0,0,1,42.7.4L55.6,15.13a1.24,1.24,0,0,1-.93,2.06H48.54V33.77Z"/><rect class=pillar-scale-cls-1 x="23.95" y="53.39" width="2.48" height="13.54"/><rect class=pillar-scale-cls-1 x="23.95" y="71.81" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="23.95" y="79.18" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="60.79" y="9.18" width="2.48" height="11.69"/><rect class=pillar-scale-cls-1 x="60.79" y="25.76" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="60.79" y="33.13" width="2.48" height="2.48"/><rect class=pillar-scale-cls-1 x="16.58" y="66.29" width="2.48" height="13.54"/><rect class=pillar-scale-cls-1 x="16.58" y="84.71" width="2.48" height="2.48"/><path class=pillar-scale-cls-1 d="M31.32,59.56V41.74a1.24,1.24,0,0,1,1.24-1.24h8.23L23.31,21.43,4.24,40.5h9.9a1.24,1.24,0,0,1,1.24,1.24V59.56H12.89V43H1.24a1.24,1.24,0,0,1-.88-2.12l22.1-22.1a1.31,1.31,0,0,1,.92-.36,1.24,1.24,0,0,1,.87.4L44.53,40.9A1.24,1.24,0,0,1,43.61,43H33.8V59.56Z"/></g></g></svg> </div> <div class=value-pillar-body> <h3 class=pillar-title>Governed</h3> <p class=pillar-description> Develop and operate with confidence </p> <ul> <li>Security and compliance already built-in</li> <li>Simplify user management</li> <li>Expedite auditing</li> <li>Act with certainty</li> </ul> </div> </div> </div> </div> </section> <section class=ten-oh-announcement> <div class=container> <div class=row> <div class='col-sm-11 col-lg-6 ten-oh-label'> <span>10.6</span> </div> <div class='col-sm-11 col-lg-6 ten-oh-description'> <div class=ten-oh-description-body> <h2 class=main-heading>New features every month</h2> <p>In this month’s release of GitLab 10.6, we've added CI/CD for GitHub, improved Kubernetes integration, and much more.</p> <div class=btn-group> <a class='btn cta-btn ghost' href='/2018/03/22/gitlab-10-6-released/'> See what’s new </a> </div> </div> </div> </div> </div> </section> <section class=customers> <div class=container> <h2 class='main-heading text-center'> <a href='/customers'>Used by more than 100,000 organizations around the globe</a> </h2> <ul class=customer-group> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="187.09" height="32.63" viewBox="0 0 187.09 32.63"><defs><style>.sony-cls-1{fill:#aaafb9;fill-rule:evenodd}</style></defs><title>sony</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=sony-cls-1 d="M184.24 26.35a2.85 2.85 0 1 0 2.84 2.84 2.85 2.85 0 0 0-2.84-2.84zm0 5.36a2.51 2.51 0 1 1 2.5-2.52 2.51 2.51 0 0 1-2.5 2.52z"/><path class=sony-cls-1 d="M185.71 28.45a.78.78 0 0 0-.36-.69 1.47 1.47 0 0 0-.78-.16h-1.39v3.19h.39v-1.47h.72l.91 1.47h.46l-1-1.47c.57 0 1-.25 1-.87zm-1.54.57h-.6v-1.13h.91c.4 0 .83.06.83.55 0 .65-.69.57-1.14.57zM167.53 13l5.83-6.22a2 2 0 0 0 .51-1.05c0-.46-.39-.64-1.63-.64h-1.47v-3.9h15.92v3.93h-2.09c-2.42 0-2.87.37-6.24 4.61l-9.22 10v6.08c0 1.55.79 2.1 3 2.1h3.48v3.79h-22.3v-3.82h3.48c2.25 0 3-.55 3-2.1V19.7L149 7.68c-1.8-2.1-1.55-2.56-6.55-2.56V1.19h20.17v3.93h-1.44c-1.46 0-2.08.27-2.08.82s.45.82.73 1.19l5.5 6a1.34 1.34 0 0 0 2.19-.08zM32.21 1.19h4.86v11h-4.49c-.4-2.19-1.77-3-3-4.2-2.26-2.07-7.14-3.8-11.26-3.8-5.32-.03-9.8 1.62-9.8 4.04 0 6.72 30.34 1.37 30.34 14.07 0 6.63-6.5 10.33-18.17 10.33a34.22 34.22 0 0 1-13.76-3.17c-1.13-.65-1.61.62-1.82 2.21h-5V20.34h4.52C5.62 23.21 7 23.81 8.26 25c2.19 2 7.4 3.47 12.17 3.43 7.2-.07 9.68-1.64 9.68-3.93s-2.45-2.83-10.34-4.07l-6.7-1.1C5.5 18.14 0 16.45 0 10.42 0 4.16 7 .23 18 .23c4.61 0 8.5.62 12.22 2.77 1 .67 2 .75 2-1.77zm94.94 18.36l.1-12.19c0-1.6-.83-2.15-3.21-2.15h-2.79V1.42H139v3.79h-2.3c-2.38 0-3.21.55-3.21 2.15V31.9l-7-.05L104 10.52V26c0 1.55.83 2.15 3.21 2.15h3.09v3.75H91.86v-3.75h3.06c2.38 0 3.21-.59 3.21-2.15V7.36c0-1.6-.83-2.15-3.21-2.15h-3.06V1.42h16l19.34 18.13zM67.63 0c-14.16 0-23 6.26-23 16.31 0 9.87 8.74 16.08 22.6 16.08 14.71 0 23.27-6.12 23.27-16.59C90.47 6.4 81.24 0 67.63 0zm-.32 28.42C59.47 28.42 55 23.9 55 16.08c0-7.63 4.67-12.15 12.7-12.15 7.71 0 12.21 4.62 12.21 12.47 0 7.68-4.57 12-12.61 12z"/></g></g></svg> <figcaption class=sr-only>Sony</figcaption> </figure> </li> <li class=align-top> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="186.25" height="65.63" viewBox="0 0 186.25 65.63"><defs><style>.comcast-cls-1{fill:#aaafb9;fill-rule:evenodd}</style></defs><title>comcast</title><g id=Layer_2 data-name="Layer 2"><path class=comcast-cls-1 d="M85.71.33A5.23 5.23 0 0 1 92 3.15a6 6 0 0 1 .31 3.46l-2.7 16.47c-2.47-5.2-4.73-10.5-7.12-15.74a5.19 5.19 0 0 1 3.19-7zm11.2.12a5.25 5.25 0 0 1 6.89 2.84 6.32 6.32 0 0 1-.64 5.32c-2.16 4.84-4.32 9.69-6.46 14.55l-2.35-14a8.34 8.34 0 0 1-.11-1.42c.21-1.17 1.58-1.46 2.1-2.42-.88 0-1.76 0-2.64-.05A5.41 5.41 0 0 1 96.91.45zm-23.2 8.22a5.24 5.24 0 0 1 7.36-.23 8.65 8.65 0 0 1 1.87 3.18c2 4.48 4 9 6 13.43a18.71 18.71 0 0 1 .68 1.78c-5.14-3.54-10.29-7.07-15.41-10.63a5.14 5.14 0 0 1-.55-7.54zM104 10a5.18 5.18 0 0 1 4.85-3 5.09 5.09 0 0 1 5.06 5.06 5 5 0 0 1-2.38 4.49c-4.94 3.37-9.81 6.83-14.81 10.1a17.35 17.35 0 0 1 .61-1.63c2.23-5 4.44-10 6.67-15zM68.82 22A5.23 5.23 0 0 1 74 18.67c2-.06 3.48 1.47 5 2.48 3.68 2.63 7.5 5.07 11.08 7.83H74.26a5.53 5.53 0 0 1-3.68-1 5.27 5.27 0 0 1-1.79-6zm40.48-2.28a5.38 5.38 0 0 1 6.41 0 5.13 5.13 0 0 1 2 5 5.05 5.05 0 0 1-5.06 4.28H96.16c4.27-3.23 8.79-6.14 13.14-9.26zM7.66 39.45a13.78 13.78 0 0 1 16.05 2.77c1 1.11-.55 2.78-1.78 2a13.56 13.56 0 0 0-4.35-2.79 11 11 0 1 0-5.24 21.23 10.85 10.85 0 0 0 9.18-3.09l.58-.38c.69.58 1.28 1.26 1.92 1.89A13.81 13.81 0 0 1 2.74 60a13.8 13.8 0 0 1 4.92-20.55zm31.76-1.2A13.8 13.8 0 1 1 31.35 43a13.82 13.82 0 0 1 8.07-4.79zm.32 2.8a11 11 0 0 1 11.84 5.36 10.85 10.85 0 0 1 .57 9.64 11 11 0 0 1-19.76 1.05 10.86 10.86 0 0 1-.39-9.86A11.11 11.11 0 0 1 39.75 41zm24.19-1.32c.11-.63.24-1.44 1-1.65a1.4 1.4 0 0 1 1.76 1.07c2.64 6.45 5.28 12.91 7.86 19.39 2.69-6.45 5.25-13 7.92-19.42.21-.64.83-1.29 1.57-1.1s1 1 1.14 1.69c1.59 8.57 3.13 17.15 4.7 25.73h-2.61l-4-21.61c-2.56 6.14-5 12.33-7.54 18.46a1.29 1.29 0 0 1-2.43.05c-2.57-6.15-5-12.36-7.56-18.51-1.31 7-2.52 14-3.88 20.93-.32 1.39-2.69.92-2.43-.49 1.42-8.19 3-16.36 4.46-24.54zm38.38-.89a13.87 13.87 0 0 1 14.55 3.23 1.41 1.41 0 0 1-.32 2.16 1.61 1.61 0 0 1-2-.46 11 11 0 0 0-9.48-2.77 11.09 11.09 0 0 0-8.82 8.77 11 11 0 0 0 12.65 12.89 11.36 11.36 0 0 0 6.4-3.52c.68.64 1.33 1.3 2 2a13.81 13.81 0 1 1-15-22.26zm29.05.22a1.35 1.35 0 0 1 1.67-1c.59.15.81.78 1 1.28q5.32 13 10.61 26.1h-2.75c-1.36-3.38-2.75-6.76-4.11-10.14h-10.34q-1.89 4.8-3.88 9.55a1.25 1.25 0 0 1-2.14.26c-.49-.5-.2-1.22 0-1.78 3.31-8.09 6.56-16.21 9.89-24.3zm1.28 3.58c1.36 3.29 2.69 6.6 4 9.89h-8.05c1.32-3.31 2.7-6.6 4-9.91zm21.67-4.35a11.64 11.64 0 0 1 8.8 1.64 1.42 1.42 0 0 1-.82 2.46 17.31 17.31 0 0 1-2.79-1.08 7 7 0 0 0-6.38.55A3.83 3.83 0 0 0 152 46.6a5.94 5.94 0 0 0 2.57 2.18c2.06 1.08 4.13 2.12 6.19 3.2a7.89 7.89 0 0 1 3.81 4.13 6.85 6.85 0 0 1-1.66 7.16 8.28 8.28 0 0 1-6.23 2.35 12.68 12.68 0 0 1-8.59-4.08q1-.91 2-1.86c2.22 2.09 5.33 3.71 8.44 2.94 2.37-.5 4.28-3.12 3.37-5.52-.82-2.23-3.29-2.95-5.17-4-2.17-1.22-4.67-2-6.38-3.93a6.61 6.61 0 0 1-1.12-6.76 7 7 0 0 1 5.06-4.11zm14.97 2.61c-1.43-.1-1.49-2.44-.12-2.7 5.26-.07 10.52 0 15.78 0a1.38 1.38 0 0 1 .82 2.43c-.38.4-1 .29-1.46.32h-5.82v24.51h-2.6V40.92h-6.61z" id=Layer_1-2 data-name="Layer 1"/></g></svg> <figcaption class=sr-only>Comcast</figcaption> </figure> </li> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width=108 height=90 viewBox="0 0 108 90"><defs><style>.nasa-cls-1{fill:#aaafb9;fill-rule:evenodd}</style></defs><title>nasa</title><g id=Layer_2 data-name="Layer 2"><path class=nasa-cls-1 d="m75.7 47.4h4.4l-2.3-6.2c0 0-.4 1.5-1 3.1h-2.2 2.2c-.5 1.5-1.1 3.1-1.1 3.1"/><path class=nasa-cls-1 d="m38.3 47.4h4.4l-2.3-6.2c0 0-.4 1.5-1 3.1h-2.2 2.2c-.7 1.5-1.1 3.1-1.1 3.1"/><path class=nasa-cls-1 d="m108 4.4l-.6.7c.1-.3.3-.6.4-.9-4 6.2-12.3 12.6-19.8 17.2-7.9-12.8-22-21.4-37.8-21.4-24.7 0-44.8 20.3-44.8 45.1 0 3.6.4 6.8 1.2 10.1l-.1-.3c-2.4 1.1-4.6 2.3-6.5 3.5l1.2.4c1.6-1 3.5-2.1 5.6-3 2.1 8.5 6.6 15.9 12.6 21.8-2.2 1.9-4.5 4-6.9 6.2l-.1 1.5c2.1-2.2 4.7-4.6 7.8-7.1 7.8 7.4 18.4 11.8 29.8 11.8 24.5.1 44.6-20.2 44.6-44.9 0-6.2-1.3-12.3-3.7-17.8 8-7 14.3-14.5 17.1-22.9m-32.1 32.4c-.3.1-.6.4-.9.6-.1-.1-.3-.3-.4-.4v-.1c.4-.1.8-.1 1.3-.1m-17.2-28.2c0-.1.1-.3.4-.4l.2-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1.2.1c0 .1-.1.3-.4.4l-.1 1.2-.1-1.2c-.1 0-.4-.1-.4-.4l-1.2-.1 1.1-.1m1 10.2c0 .3-.1.4-.4.4s-.4-.1-.4-.4.1-.4.4-.4.4.1.4.4m-7-9.6c.3 0 .4.1.4.4s-.1.4-.4.4-.4-.1-.4-.4c-.1-.1.2-.4.4-.4m.4 5.8c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.2-.2.3 0 .3.3m-2.8-11.3c.1 0 .3.1.3.3 0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3-.1 0 .2-.3.3-.3m-1.4 8.8c.1 0 .3.1.3.3s-.2.2-.3.2c-.1 0-.3-.1-.3-.3 0-.1.1-.2.3-.2m-1.4-3.9c.3 0 .5.1.5.4 0 .3-.1.4-.4.4s-.5-.1-.5-.4c0-.3.3-.4.4-.4m-3.6 5.2c.1 0 .3.1.3.3 0 .1-.1.3-.3.3s-.3-.1-.3-.3c0-.2.1-.3.3-.3m-1.1-.8c.1 0 .3.1.3.3 0 .1-.1.3-.3.3s-.3-.1-.3-.3c-.1-.1.2-.3.3-.3m-.1 2.6c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3 0 0 .3.1.3.3m-.9-3.3c.1 0 .3.1.3.3 0 .1-.1.3-.3.3s-.3-.1-.3-.3c-.1-.1 0-.3.3-.3m-24 53.7c-.1 0-.3-.1-.3-.3s.1-.3.3-.3.3.1.3.3-.2.3-.3.3m-1.2-15.6c0 1.2.6 1.6 1.6 2.7-.3 0-1.5 0-5.4 0 2.1-1 1.8-2.4 1.8-2.5 0-5 0-9.2 0-12 0-.4 0-.4-1.5-2.1l.1-.1c7.6 0 6.9 0 7 .1.1 0 6.2 10.4 6.2 10.5 0 0 0-3.7 0-8.5 0-.6-1.5-2.1-1.5-2.1 2.2 0 5 0 5 0-1 1.3-1.3 1.2-1.3 1.9 0 2.5 0 7.1 0 12.3 0 .7.6 1 1.5 2.4h-7c-2.3-3.9-6.5-11-6.5-11 0 .3-.2 4.7 0 8.4m13.3 16.9c0 .1-.1.3-.3.3s-.3-.1-.3-.3.1-.3.3-.3.3.2.3.3m-5.7 1.8c0 .3-.1.4-.4.4-.3 0-.4-.1-.4-.4s.1-.4.4-.4c.1-.1.4.2.4.4m-2-3.9c0-.3.1-.4.4-.4s.4.1.4.4-.1.4-.4.4-.4-.2-.4-.4m.1 2.6c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.2-.2.3 0 .3.3m11.9-12.9c-.1 0-.3-.1-.3-.3s.1-.3.3-.3.3.1.3.3c0 .1-.2.3-.3.3m.6 8.1c0 .3-.1.4-.4.4-.3 0-.4-.1-.4-.4s.1-.4.4-.4c.1 0 .4.1.4.4m-1.8 9.7c0 .1-.1.3-.3.3s-.3-.1-.3-.3.1-.3.3-.3.3.1.3.3m1.5 5.4c0 .1-.1.3-.4.4l-.1 1.2-.1-1.2c-.1 0-.4-.1-.4-.4l-1.4-.1 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1 .1m2.2-8.7c0-.3.1-.4.4-.4s.4.1.4.4-.1.4-.4.4-.4-.3-.4-.4m1 4.6c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3s.3.1.3.3c.2.1 0 .3-.3.3m10-1.1c-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.1 0 .3.1.3.3.1.2-.2.3-.3.3m3.7-8.6c-1.5 1.3-4.5-2.7-6.2-4.9.4-.3.7-.6 1.2-.9 2.8 2.9 6.7 4.4 5 5.8m3.3-15.4c.4.4.9.7 1.3 1-.4.3-.9.4-1.2.7l-.1-1.7m1.6 20.9c-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.1 0 .3.1.3.3.2.2-.1.3-.3.3m-1.4-15.2v-1.6c1-.7 2.1-1.3 3.1-2.1 2.9 1 5.3-.1 5.4-.6.4-1 0-1.5-1.3-2.1 1.8-1.2 3.4-2.2 5.1-3.4 2.6 2.5 2.8 5.6-1.6 8-4.1 2.1-8.8.1-8.8.1.1 0-1.3 1.1-1.9 1.7m14.4 8c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.1 0 .3.1.3.3.1.1 0 .3-.3.3m.4 4.7c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.2-.1.3 0 .3.3m1.3 10.1c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.1 0 .3.1.3.3s-.1.3-.3.3m7.1-20.2c0-.1.1-.3.3-.3.1 0 .3.1.3.3 0 .1-.1.3-.3.3-.2.2-.3 0-.3-.3m1.1 2.7c-.3 0-.4-.1-.4-.4s.1-.4.4-.4.4.1.4.4-.1.4-.4.4m.3 7c0 .1-.1.3-.3.3-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.2-.2.3.1.3.3m1.1 2.2c0 .1-.1.3-.4.4l-.2 1.2-.1-1.2c-.1 0-.3-.1-.4-.4l-1.2-.1 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1.1.1m1.9.3c-.1 0-.3-.1-.3-.3s.1-.3.3-.3c.1 0 .3.1.3.3.1 0 0 .3-.3.3m.7-5.9c-.1 0-.3-.1-.3-.3 0-.1.1-.3.3-.3.1 0 .3.1.3.3.1 0 0 .3-.3.3m.9-3.9l-.1 1.2-.1-1.2c-.1 0-.4-.1-.4-.4l-1.3-.2 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4l1.2.1-1.2.1c.1.4 0 .5-.3.5m1.4 3c-.3 0-.4-.1-.4-.4s.1-.4.4-.4c.3 0 .4.1.4.4s-.2.4-.4.4m-2.6-25.8c1.2 2.8 3.7 10.5 5.6 15.3.4 1.2 1.3 1.5 1.3 1.5-3.5 0-10 0-10 0 1.8-1.6 1.5-1.6.7-3.9h-5.4c-1.2 2.7.3 3.9.6 3.9-.6 0-1.9 0-3.1 0 .9 2.7 1.9 6.5 1.9 9.9 0 5.9-2.9 10.5-14.2 5.6l-.1-.3c14.2 5.9 16-3.7 11.7-15.4-.9 0-1.5 0-1.5 0 .4-.3.9-.6 1.2-.9-1-2.5-2.3-5.2-3.8-7.9 0 0 0-.1-.1-.1-.1-.3-.4-.7-.6-1 0-.1-.1-.1-.1-.3-.4-.6-.7-1.2-1.2-1.8-.6-.7-1-1.6-1.6-2.4-4-1-6.5 1.8-2.1 3.3 1.5.4 2.6 1 3.7 1.6-1.9 1.3-3.8 2.4-5.7 3.6-.6-.3-1.3-.4-2.1-.7-5.3-2.1-4.7-11 4.4-10.1-4-5-8.2-9.3-11.7-12.3-1-.9-2.1-1.6-2.9-2.4-15.8-11.8-25.5-4.7-14.3 18.2 1 2.1 2.1 3.9 3.1 5.5.1-.6.3-1.2.4-1.6.6-2.2 1.2-4.3 1.5-5.6 0-.3-.4-1-1.3-1.8v-.1c4.1 0 8.4 0 8.4 0 1.2 2.8 3.7 10.5 5.6 15.3.1.4.4.7.7 1-.1.1-.4.3-.6.4-3.5 0-8.7 0-8.5 0 1.8-1.6 1.5-1.6.7-3.9h-4.3c2.2 3 4.3 5.5 6.2 7.9-.3.1-.6.4-1 .6-2.2-2.7-4.3-5.3-6.3-8.5-1.2 2.7.3 3.9.6 3.9-1.2 0-5.4 0-5.4 0 2.3-1.6 2.2-2.1 2.2-2.1.4-1.3.7-2.7 1.2-4.2-1-1.6-2.2-3.4-3.2-5.5-8.5-15.4-7.3-31.3 8.1-24.5 8.2 3.7 16.3 11.6 22.3 19.7 3.4.6 2.6.7 4-.4 0 0-.1 1 0 4.3-.7-.6-1.5-1-2.2-1.3.7 1.2 1.5 2.2 2.2 3.4.3.4.4.7.7 1.2.4.9 1 1.6 1.5 2.5.6 1 1.2 2.1 1.6 3.1.1.4.4.9.6 1.3.1.3.3.6.4.9.4-.4.3-.6.3-.6.6-2.2 1.3-4.7 2.1-7 .6-2.1 1-3.9 1.3-5.2 1.2-.7 2.2-1.6 3.4-2.4 1.5.3 3.1.3 3.1.3m-10.1 25.6c.3 0 .4.1.4.4s-.1.4-.4.4-.4-.1-.4-.4.1-.4.4-.4m-.5-2.6c0-.3.1-.4.4-.4s.4.1.4.4-.1.4-.4.4-.4-.2-.4-.4m-32.2-37.6l-1.2.1c0 .1-.1.3-.4.4l-.2 1.3v-1.2c-.1 0-.4-.1-.4-.4l-1.2-.1 1.2-.1c0-.1.1-.3.4-.4l.1-1.2.1 1.2c.1 0 .3.1.4.4h1.2m-4.3 1.2c0 .1-.1.3-.3.3s-.3-.1-.3-.3.1-.3.3-.3.3.2.3.3m-1.6-1.9c0 .1-.1.3-.3.3s-.4 0-.4-.3c0-.1.1-.3.3-.3.2 0 .4.2.4.3"/></g></svg> <figcaption class=sr-only>NASA</figcaption> </figure> </li> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="108.14" height="108.14" viewBox="0 0 108.14 108.14"><defs><style>.bayar-cls-1,.bayar-cls-2{fill:#aaafb9;stroke:#aaafb9}.bayar-cls-1{stroke-width:.91px}.bayar-cls-2{stroke-width:.54px}</style></defs><title>bayer</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><g id=B1><path class=bayar-cls-1 d="M54.07.45a53.62 53.62 0 1 0 53.62 53.62A53.63 53.63 0 0 0 54.07.45zm0 101.15a47.53 47.53 0 1 1 47.53-47.53 47.52 47.52 0 0 1-47.53 47.53z"/><path class=bayar-cls-2 d="M59.17 46.73h4l-7.27 9.36v5h-3.43v-5l-7.27-9.36h4l4.95 6.66zm19.26 0v2.93H68.8v2.74H78v2.82h-9.2v2.93h9.63v3h-13V46.73zm-17.78 18v2.93H51v2.74h9.25v2.82H51v2.93h9.63v2.93h-13V64.73h13zm28.96-9.1h-2.74v5.48h-3.35V46.73h8.71a4.45 4.45 0 0 1 1.26 8.71l4.22 5.63h-4zm2.32-6h-5.06v3.12h5.06a1.59 1.59 0 0 0 1.56-1.56 1.62 1.62 0 0 0-1.56-1.53zM58.52 87.71a1.6 1.6 0 0 0-1.52-1.6h-5.9v3.16H57a1.62 1.62 0 0 0 1.52-1.56zm-10.84 9.86V83.22h9.59a4.44 4.44 0 0 1 1.64 8.56l4.3 5.78h-4l-4.11-5.47H51v5.48zm-1.49-36.5h-3.61L41.4 58.6h-8.11l-1.18 2.47h-3.57l7.15-14.35H39zm-8.82-10.92l-2.85 5.67h5.63zM63 42.81h-3.6l-1.18-2.47h-8.11l-1.18 2.47h-3.57l7.15-14.35h3.31zm-8.83-11l-2.85 5.67H57zM14.72 52.43h6.09A1.42 1.42 0 0 0 22.18 51a1.4 1.4 0 0 0-1.37-1.41h-6.09zm0 5.82h6.35a1.64 1.64 0 0 0 1.64-1.56 1.73 1.73 0 0 0-1.64-1.64h-6.35zm9.7-4.64a4.19 4.19 0 0 1 1.52 3.12 4.42 4.42 0 0 1-4.64 4.38h-9.89V46.73h9.82a4.19 4.19 0 0 1 3.2 6.89zM51 16.59h6.05a1.41 1.41 0 0 0 1.37-1.37 1.4 1.4 0 0 0-1.37-1.41H51zm0 5.78h6.35A1.64 1.64 0 0 0 59 20.81a1.73 1.73 0 0 0-1.64-1.64h-6.3v3.2zm9.67-4.6a4.19 4.19 0 0 1 1.52 3.12 4.42 4.42 0 0 1-4.64 4.38h-9.91V10.88h9.82a4.17 4.17 0 0 1 4.19 4.19 3.8 3.8 0 0 1-.96 2.7z"/></g></g></g></svg> <figcaption class=sr-only>Bayer</figcaption> </figure> </li> <li> <figure> <svg xmlns="http://www.w3.org/2000/svg" width="214.62" height="61.05" viewBox="0 0 214.62 61.05"><defs><style>.nasdaq-cls-1{fill:#aaafb9}</style></defs><title>nasdaq</title><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path class=nasdaq-cls-1 d="M70.37 0H53.1l-16 44a2.9 2.9 0 0 1-2.62 1.83h-.3 17.53A2.83 2.83 0 0 0 54.35 44z"/><path class=nasdaq-cls-1 d="M36 15.21a3 3 0 0 0-2.77 1.93l-5.66 15.62 4 11.12a3 3 0 0 0 2.77 2 2.88 2.88 0 0 0 2.78-1.94l5.71-15.66-4-11.09A2.94 2.94 0 0 0 36 15.21z"/><path class=nasdaq-cls-1 d="M0 61h17.27l16-44a3 3 0 0 1 2.62-1.83h.3-17.53A2.83 2.83 0 0 0 16 17zm94.49-44l-.06 23.22L81.08 17H75l-.07 29h4.36l.06-23 13.21 23h6.22l.07-29zm21.95 7a70 70 0 0 0-11.89.51v3.93a45.38 45.38 0 0 1 10.32-.74c2 .37 2.74 1.44 2.73 3.12v1.64c-2.73-.07-5.09-.09-7.4 0-3.81.26-7.16 2.55-7.17 6.66s1.52 6.49 5.81 7.09a54.87 54.87 0 0 0 13.49-.16V31c.18-4.25-1.88-6.5-5.89-7zm1.32 19.17c-1 .05-2.88 0-3.93 0-3.85-.1-6.13-.61-6.14-4 0-2.73 2.93-3.27 4.19-3.27h6zm66.74-19a70 70 0 0 0-11.89.51v3.92a45.38 45.38 0 0 1 10.32-.74c2 .37 2.74 1.44 2.73 3.12v1.64c-2.73-.07-5.09-.09-7.4 0-3.81.26-7.16 2.55-7.17 6.66s1.52 6.49 5.81 7.09a54.87 54.87 0 0 0 13.49-.16V31.14c.18-4.23-1.88-6.47-5.89-6.97zm1.32 19.17c-1 .05-2.88 0-3.93 0-3.85-.1-6.13-.61-6.14-4 0-2.73 2.93-3.27 4.19-3.27h6zm-59.13-1.69v4.11c5 1.05 9.3 1.16 12.86 0 6-2 6.59-10.1 0-12.05l-5.93-1.53c-2.95-.71-3.24-3.68 0-4.32 2.59-.49 5.67-.1 9.13.44v-3.83c-4.59-1-8.42-.94-11.56 0-5.73 1.53-6.11 8.28-2.18 10.72 2 1.41 6 1.9 8 2.44 3.21.95 2.67 4.19 0 4.71a21.6 21.6 0 0 1-10.32-.69zm35.7-26.08v8.62a40.63 40.63 0 0 0-5.64-.17c-5.61.48-9.83 4.47-9.85 11 0 7.38 4.1 11.1 10 11.63a39.87 39.87 0 0 0 10.1-.49l.07-30.58zm-.07 27.66h-2.91c-4.22 0-7.33-2.24-7.62-8 0-5.92 3.7-7.8 8.1-7.49l2.46.29zm52.3 10.44V24.26a39.66 39.66 0 0 0-10.09-.38c-5.71.52-10 3.56-10 11.3 0 7.11 3.92 10.83 9.53 11.32 2.41.17 5.61.13 5.61.13V56zm-5-11.09l-2.46.28c-4.13.27-7.81-1.86-7.81-7.33 0-6 3.42-7.93 7.64-7.93h2.91z"/></g></g></svg> <figcaption class=sr-only>Nasdaq</figcaption> </figure> </li> </ul> <blockquote class=customer-quote> <div class=quote-media> <img src="/images/home/roger-meier-headshot.jpg" alt="Roger Meier"/> </div> <div class=quote-body> <p class=quote-text> We decided to use an Open Source based platform so we can participate in the development and contribute to the features and concepts we need such as file size statistics, OpenID Connect, GPG, and Docker Registry. GitLab's built-in Continuous Integration and independent CI Runners allows our developers to integrate very specific environments, boosting productivity and increasing developer satisfaction. </p> <cite class=quote-attribution> Roger Meier, Social Coding Platform, Siemens </cite> </div> </blockquote> <div class=text-center> <div class=btn-group> <a class='btn cta-btn accent' href='/customers/'>View more customers</a> </div> </div> </div> </section> <section class=feature-group> <div class=container> <div class='row flex-row'> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/feature-thumb-gitlab-com.png" alt="GitLab.com screenshot"/> </div> <div class=feature-body> <h3 class=feature-label>GitLab.com</h3> <h2 class=feature-title>Host and explore projects</h2> <p class=feature-description></p> <a class=feature-more href='/gitlab-com/'>Sign up</a> </div> </div> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/feature-thumb-blog.png" alt="GitLab Navigation screenshot" srcset="/images/home/feature-thumb-blog_2x.png 2x"/> </div> <div class=feature-body> <h3 class=feature-label>Blog</h3> <h2 class=feature-title>Global Developer Report: 2018 is the year for open source and DevOps</h2> <p class=feature-description></p> <a class=feature-more href='/2018/03/07/2018-global-developer-report/'>Read more</a> </div> </div> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/ibm-think-logo.png" alt="IBM Think Logo"/> </div> <div class=feature-body> <h3 class=feature-label>Event</h3> <h2 class=feature-title>Join us at IBM Think March 19—22</h2> <p class=feature-description></p> <a class=feature-more href='https://about.gitlab.com/events/'>View all events</a> </div> </div> <div class='col-sm-12 col-md-6 col-lg-3 feature js-all-clickable'> <div class=feature-media> <img src="/images/home/feature-thumb-enterprise-demo.png" alt="GitLab Enterprise screenshot" srcset="/images/home/feature-thumb-enterprise-demo_2x.png 2x"/> </div> <div class=feature-body> <h3 class=feature-label>Demo</h3> <h2 class=feature-title>Inside GitLab Enterprise</h2> <p class=feature-description></p> <a class=feature-more href='/eep-demo/'>Register now</a> </div> </div> </div> </div> </section> <footer class=footer> <svg width=65 height=60 viewBox="0 0 210 194" class=footer-logo> <path d="M105.0614,193.655 L105.0614,193.655 L143.7014,74.734 L66.4214,74.734 L105.0614,193.655 L105.0614,193.655 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L66.4214,74.7338 L12.2684,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M12.2685,74.7341 L12.2685,74.7341 L0.5265,110.8731 C-0.5445,114.1691 0.6285,117.7801 3.4325,119.8171 L105.0615,193.6551 L12.2685,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M12.2685,74.7342 L66.4215,74.7342 L43.1485,3.1092 C41.9515,-0.5768 36.7375,-0.5758 35.5405,3.1092 L12.2685,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> <path d="M105.0614,193.6548 L143.7014,74.7338 L197.8544,74.7338 L105.0614,193.6548 Z" fill="#FC6D26" class="logo-svg-shape logo-orange-shape"/> <path d="M197.8544,74.7341 L197.8544,74.7341 L209.5964,110.8731 C210.6674,114.1691 209.4944,117.7801 206.6904,119.8171 L105.0614,193.6551 L197.8544,74.7341 Z" fill="#FCA326" class="logo-svg-shape logo-light-orange-shape"/> <path d="M197.8544,74.7342 L143.7014,74.7342 L166.9744,3.1092 C168.1714,-0.5768 173.3854,-0.5758 174.5824,3.1092 L197.8544,74.7342 Z" fill="#E24329" class="logo-svg-shape logo-dark-orange-shape"/> </svg> <div class='animated container'> <ul class='text-center footer-social'> <li> <a href="https://twitter.com/gitlab"><i class='fa fa-twitter'></i> <span class=sr-only>Twitter</span> </a></li> <li> <a href="https://www.facebook.com/gitlab"><i class='fa fa-facebook'></i> <span class=sr-only>Facebook</span> </a></li> <li> <a href="https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg"><i class='fa fa-youtube'></i> <span class=sr-only>YouTube</span> </a></li> <li> <a href="https://www.linkedin.com/company/gitlab-com"><i class='fa fa-linkedin'></i> <span class=sr-only>LinkedIn</span> </a></li> </ul> <div class=row> <div class='col-sm-6 col-md-3 col-lg-2 col-lg-offset-2 footer-link-holder'> <h3 class=footer-link-title>Products</h3> <ul class='animated footer-links'> <li><a href="/features">Features</a></li> <li><a href="/installation">Installation</a></li> <li><a href="/gitlab-com/">GitLab.com</a></li> <li><a href="/pricing">Pricing</a></li> <li><a href="/releases">Releases</a></li> </ul> </div> <div class='col-sm-6 col-md-3 col-lg-2 footer-link-holder'> <h3 class=footer-link-title>Services</h3> <ul class='animated footer-links'> <li><a href="/resellers/">Resellers</a></li> <li><a href="/services/">Services</a></li> </ul> </div> <div class='col-sm-6 col-md-3 col-lg-2 footer-link-holder'> <h3 class=footer-link-title>Community</h3> <ul class='animated footer-links'> <li><a href="/events/">Events</a></li> <li><a href="/core-team/">Core Team</a></li> <li><a href="http://contributors.gitlab.com/">Contributors</a></li> <li><a href="/find-a-speaker/">Find a Speaker</a></li> <li><a href="https://docs.gitlab.com/">Documentation</a></li> <li><a href="/getting-help/">Getting Help</a></li> <li><a href="/contributing/">Contributing</a></li> <li><a href="/applications/">Applications</a></li> <li><a href="/mvp/">Hall of Fame</a></li> </ul> </div> <div class='col-sm-6 col-md-3 col-lg-2 footer-link-holder'> <h3 class=footer-link-title>Company</h3> <ul class='animated footer-links'> <li><a href="https://gitlab.com/groups/gitlab-org">Source Code</a></li> <li><a href="/blog/">Blog</a></li> <li><a href="/customers/">Customers</a></li> <li><a href="/press/">Press and Logos</a></li> <li><a href="https://shop.gitlab.com">Shop</a></li> <li><a href="/about/">About Us</a></li> <li><a href="/team/">Team</a></li> <li><a href="/direction/">Direction</a></li> <li><a href="/handbook/">Handbook</a></li> <li><a href="/jobs/">Jobs</a></li> <li><a href="/terms/">Terms</a></li> <li><a href="/contact/">Contact Us</a></li> </ul> </div> </div> </div> </footer> <div class='animated text-center source-link'> Edit <a href="https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/source/index.html.haml" class=external-source-link>this page</a> &mdash; please <a href="https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/CONTRIBUTING.md" class=external-source-link>contribute</a>. <a href='https://creativecommons.org/licenses/by-sa/4.0/' rel=license> <img src="/images/by-sa.svg" alt="Creative Commons License"/> </a> </div> <script src="/javascripts/libs/jquery.min.js"></script> <script src="/javascripts/libs/bootstrap.min.js"></script> <script src="/javascripts/libs/jqBootstrapValidation.js"></script> <script src="/javascripts/scripts.js"></script> <script src="/javascripts/libs/slick.min.js"></script> <script src="/javascripts/home.js"></script> <script src="/javascripts/all-clickable.js"></script> <script>
+ //<![CDATA[
+ $.ajax({
+ url: '//munchkin.marketo.net/munchkin.js',
+ dataType: 'script',
+ cache: true,
+ success: function() {
+ Munchkin.init('194-VVC-221');
+ }
+ });
+ //]]>
+</script> <script>
+ //<![CDATA[
+ var google_conversion_id = 968513482;
+ var google_conversion_label = "a-CXCPqluQUQlqi33AM";
+ var google_custom_params = window.google_tag_params;
+ var google_remarketing_only = true;
+ //]]>
+</script> <script src='//www.googleadservices.com/pagead/conversion.js'>
+<![CDATA[
+]]>
+</script> <noscript> <div style='display:inline;'> <img alt='' height=1 src='//googleads.g.doubleclick.net/pagead/viewthroughconversion/968513482/?value=0&amp;guid=ON&amp;script=0' style='border-style:none;' width=1 /> </div> </noscript> <script>
+ //<![CDATA[
+ (function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
+ (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
+ e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
+ })(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');
+
+ _st('install','Z4n7msKyctXXfJs66EKx','2.0.0');
+ //]]>
+</script> </body> </html>Job succeeded
+ \ No newline at end of file
diff --git a/spec/support/chunked_io/chunked_io_helpers.rb b/spec/support/chunked_io/chunked_io_helpers.rb
index e9dd2e77538..f0e020b4d6a 100644
--- a/spec/support/chunked_io/chunked_io_helpers.rb
+++ b/spec/support/chunked_io/chunked_io_helpers.rb
@@ -10,7 +10,7 @@ module ChunkedIOHelpers
if chunk_stores.first == Gitlab::Ci::Trace::ChunkedFile::ChunkStore::Database
'01234567' * 32 # 256 bytes
else
- File.read(expand_fixture_path('trace/sample_trace'))
+ File.read(expand_fixture_path('trace/sample_trace_with_byte'))
end
end