[{"data":1,"prerenderedAt":716},["ShallowReactive",2],{"/en-us/blog/gitlab-pages-setup/":3,"navigation-en-us":32,"banner-en-us":461,"footer-en-us":478,"Marcia Ramos":688,"next-steps-en-us":701},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":16,"config":22,"_id":25,"_type":26,"title":27,"_source":28,"_file":29,"_stem":30,"_extension":31},"/en-us/blog/gitlab-pages-setup","blog",false,"",{"title":9,"description":10,"ogTitle":9,"ogDescription":10,"noIndex":6,"ogImage":11,"ogUrl":12,"ogSiteName":13,"ogType":14,"canonicalUrls":12,"schema":15},"Hosting on GitLab.com with GitLab Pages","Learn how to host your website on GitLab.com with GitLab Pages","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671069/Blog/Hero%20Images/gitlab-pages-setup-cover.jpg","https://about.gitlab.com/blog/gitlab-pages-setup","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Hosting on GitLab.com with GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-04-07\",\n      }",{"title":9,"description":10,"authors":17,"heroImage":11,"date":19,"body":20,"category":21},[18],"Marcia Ramos","2016-04-07","In this article we provide you with detailed information about using [GitLab\nPages][pages] to\n\nhost your website for free on [GitLab.com][sign-up].\n\n\nWe've prepared a step-by-step tutorial on creating a new project for GitLab\nPages so you won't get lost in the process.\n\n\nGitLab Pages supports [static websites][wiki-static-websites] and builds\n**any** [Static Site Generator (SSG)][SSGs],\n\nsuch as [Jekyll], [Hugo], [Hexo], [Middleman] and [Pelican].\n\n\nWe are assuming that you are familiar with [Git][git] and with the web\ndevelopment process, from creation to publishing.\n\n\n\u003C!-- more -->\n\n\n----------\n\n\n### What's in this tutorial?\n\n{: .no_toc}\n\n\n- TOC\n\n{:toc}\n\n\n----\n\n\n## Getting Started\n\n\nThere are two ways of getting started with GitLab Pages: either you fork an\nexisting project, or you create a new one for yourself.\n\n\nOn the [GitLab Pages Quick Start Guide][pages], which is, by the way, a site\nbuilt with [Middleman],\n\nyou will find the steps for forking an existing project from a list of\nexamples prepared for you.\n\nThere are some popular SSGs, like Jekyll, Hugo, Hexo, Brunch, etc.\n\n\nHowever, if you want to understand the process of creating a new project\nfrom scratch, this post is for you.\n\n\nOn the official documentation you can learn about [GitLab\nPages][pages-work], but here we will focus on the **steps**\n\nfor creating your own project.\n\n\n**Note:** [GitLab Pages was introduced in GitLab EE 8.3][pages-introduced].\n\nIt is available for [GitLab.com][sign-up] and [GitLab Enterprise\nEdition][gitlab-ee] users.\n\nUpdate: [GitLab\n8.17](/releases/2017/02/22/gitlab-8-17-released/#gitlab-pages-in-community-edition)\n\nbrought GitLab Pages to GitLab Community Edition! Enjoy!\n\n{: .note}\n\n\n## Website Types\n\n\nIn general, you are allowed to create and host two sorts of websites with\nGitLab Pages:\n\n\n1. User/Group Websites - a single site per user or group\n\n1. Project Websites - as many sites you want\n\n\nYou can find out more about them on the [docs][pages-work].\n\n\n### A note regarding GitLab Groups and Namespaces\n\n{: #group-websites}\n\n\nCreating a [group][doc-groups] on GitLab is very useful when you have\nseveral projects with the same subject.\n\nA group has its own **namespace**, which is unique for each group (and for\neach user).\n\n\nThe important matter is, when you create your account on GitLab, it's better\nto choose a username for\n\nyourself as a person, not as a company. You can create your \"company\nusername\" later, as a group\n\nnamespace. For example, let's say your name is \"John Doe\" and your company\nis called \"Foo Main\".\n\nFirst, register yourself as `johndoe` and later create a group called Foo\nMain within the namespace of\n\n`foomain`. This will allow you to separate your personal projects from your\ncompany ones.\n\n\nIf you follow this tip, you will be able to access your personal site under\n`https://username.gitlab.io`\n\nand your company site under `https://groupname.gitlab.io`.\n\n\n## About GitLab CI for GitLab Pages\n\n{: #gitlab-ci}\n\n\nThe key to having everything up and running as expected is the [**GitLab\nCI** configuration file][doc-ciconfig], called `.gitlab-ci.yml`.\n\n\nThis file [configures][ee-yaml-ci] how your website will be built by a\n_[Runner][doc-config-runners]_.\n\nIt is written in [YAML], which has its own syntax, so we recommend you\n\nfollow this [quick start guide] before setting it up.\n\nIt needs to be placed at your root directory.\n\n\nThe most important fact is that with [GitLab\nCI](/solutions/continuous-integration/), **you** take control over your\nbuilds.\n\nThey won't be in an invisible black box where you don't know what is going\non!\n\nYou can actually **see** any build running live by navigating to your\nproject's **Pipelines > Builds > Build ID**.\n\nYou can also add any command to your script. This is far beyond useful as it\nallows you to do\n\npretty much anything you do on your local machine!\n\n\nFor example, you can add any [Jekyll Plugin] to your Jekyll site,\n\nyou can require any `gem` you need in your `Gemfile`, run `npm`, run\n`bundle` and much more.\n\nBottom line, it's as handy as having your own command line on your GitLab\nUI.\n\n\nAdditionally, you can have a distinct `.gitlab-ci.yml` for each repository -\neven for each branch.\n\nThis means you can test your script in parallel branches before pushing to\nyour `main` branch.\n\nIf the build succeeds, you merge. If it doesn't, you can make adjustments\nand try building\n\nagain without messing up your `main` branch.\n\n\nBefore you push any `.gitlab-ci.yml` to your project, you can\n\nvalidate its syntax with the tool called [CI Lint][ci-lint].\n\nYou need to be logged into your account to have access to this tool.\n\nIt's found by navigating to your project's **Pipelines**: there is a button\nat the top-right of your screen.\n\n\n![CI-Lint](https://about.gitlab.com/images/blogimages/gitlab-pages/gitlab-ci-lint.png)\n\n\nYou can read through the [full documentation for\n`.gitlab-ci.yml`][ee-yaml-ci] for more information.\n\n\n## Creating new GitLab Pages projects\n\n{: #creating-new-pages-projects}\n\n\nHere is an overview of the steps we'll take, assuming you already have your\nGitLab.com account:\n\n\n1. Create a new project\n\n1. Add the configuration file (`.gitlab-ci.yml`)\n\n1. Upload your website content\n\n1. Add your custom domain _(optional)_\n\n1. Done!\n\n\n## Step-by-step\n\n\nNow we will go through this process step-by-step. Update: watch the video\ntutorial on\n\n[How to Publish a Website with GitLab Pages on GitLab.com from a forked\nproject](https://youtu.be/TWqh9MtT4Bg)!\n\n\n### Step 1: Create a new project\n\n{: #creating-new-project}\n\n\nThis is as straight-forward as you can imagine:\n\n\n- On your **dashboard** you will see a big green button called **+ New\nProject**. Click on it.\n\n- Set the first things up:\n   - **Project path** - your project's name, accessed via `https://gitlab.com/namespace/projectname`\n   - **Privacy** - choose if you want your project to be visible and accessible just for you (`private`),\n   just for GitLab.com users (`internal`) or free to anyone to view, clone, fork and download it (`public`)\n\n**Note**: you can host your website on [GitLab.com][gitlab-com] even if it\nis stored in a private repository.\n\nIf you do so, you can have your project protected - only the static site\nwill be visible\n\nto the public - via \"Inspect Element\" or \"View-Source\" from their web\nbrowsers.\n\n{: .note}\n\n\n### Step 2: Add the configuration file: `.gitlab-ci.yml`\n\n{: #add-gitlab-ci}\n\n\nNow we can have some fun! Let's tell GitLab CI how to build the site.\n\nYou will see a few examples below (options A, B, and C) to understand how\nthey work.\n\n\n### Option A: GitLab CI for plain HTML websites\n\n{: .no_toc}\n\n\nIn order to build your [plain HTML site][pages-ci-html] with GitLab Pages,\n\nyour `.gitlab-ci.yml` file doesn't need much:\n\n\n```yaml\n\npages:\n  stage: deploy\n  script:\n  - mkdir .public\n  - cp -r * .public\n  - mv .public public\n  artifacts:\n    paths:\n    - public\n  only:\n  - main\n```\n\n\nWhat this code is doing is creating a _[job][doc-jobs]_ called\n_[pages][doc-contents-ciconfig]_\n\ntelling the _[Runner][doc-shared-runners]_ to _[deploy][doc-stages]_ the\nwebsite _[artifacts][doc-artifacts]_\n\nto a _[public path][doc-contents-ciconfig]_,\n\nwhenever a commit is pushed _[only][doc-only]_ to the `main` branch.\n\n\nAll pages are created after the build completes successfully\n\nand the artifacts for the pages job are uploaded to GitLab.\n\n\n### Option B: GitLab CI for Jekyll websites\n\n{: .no_toc}\n\n\nJekyll is so far the most popular [Static Site Generator (SSG)][SSGs]\navailable, that's why we'll use it as a first example\n\nfor configuring our GitLab CI. On the next section you'll find more\n[examples](#examples) for SSGs already tested with GitLab Pages.\n\n\nJekyll is written in [Ruby] and generates static blog-aware websites.\n\nBlog-aware means a website generator will create blog-style content, such as\nlists of\n\ncontent in reverse chronological order, archive lists, and\n\nother common blog-style features.\n\n\nWe can write dynamically with [Liquid], [Markdown] and [YAML] and\n\nJekyll builds the static site (HTML, CSS, JS) for us.\n\nYou will find the same functionality for every SSG,\n\nyet each of them uses its own environment, template system, markup language,\netc.\n\n\nIf you want GitLab Pages to [build your Jekyll website][pages-ci-jekyll],\n\nyou can start with the simple script below:\n\n\n```yaml\n\nimage: ruby:2.1\n\n\npages:\n  script:\n  - gem install jekyll\n  - jekyll build -d public/\n  artifacts:\n    paths:\n    - public\n  only:\n  - main\n```\n\n\nThis code requires the _[script][doc-script]_ to run on\n\nthe _[environment][doc-images]_ of [Ruby] 2.1.x,\n\ninstalls the Jekyll gem, and builds the site\n\nto the _[public path][doc-contents-ciconfig]_.\n\nThe result affects _[only][doc-only]_ the main branch.\n\nFor building a regular Jekyll site, you can just\n\ncopy this code and paste it into your `.gitlab-ci.yml`.\n\n\nIf you are familiar with Jekyll, you will probably want to use [Bundler] to\nbuild your Jekyll site.\n\nWe've prepared an [example][jekyll-proj] for that. Also, if you want to use\na specific Jekyll version, you can\n\nfind an [example][jekyll-253-example] in the [Jekyll\nThemes][jekyll-examples]\n\ngroup I set up for the purposes of this post.\n\nAnd of course, since you are the one who controls how GitLab CI builds your\nsite,\n\nyou are free to use any [Jekyll Plugins][Jekyll Plugin]. _Yep!_\n\n\n### Option C: GitLab CI for Hexo websites\n\n{: .no_toc}\n\n\nLet's see another example. [Hexo] is a powerful blog-aware framework built\nwith [NodeJS][node],\n\na server-side JavaScript environment based on [Google V8] high-performance\nengine.\n\n\nTo build our Hexo site, we can start with this `.gitlab-ci.yml`:\n\n\n```yaml\n\nimage: node:4.2.2\n\n\npages:\n  cache:\n    paths:\n    - node_modules/\n\n  script:\n  - npm install hexo-cli -g\n  - npm install\n  - hexo deploy\n  artifacts:\n    paths:\n    - public\n  only:\n    - main\n```\n\n\nNote that the [Docker image][node-422] we require is `node:4.2.2`.\n\nWe are archiving `npm` modules into the `cache`, installing `hexo-cli` and\ndeploying\n\nour `hexo` site to the default `public` directory, uploaded to GitLab as\n`artifacts`.\n\nThe `pages` job is `only` affecting the `main` branch.\n\n\nOn the [Pages][ci-examples] group you will find a default [Hexo\nsite][pages-hexo]\n\ndeployed with GitLab Pages, and on [this group][themes-templates], another\n[example][hexo-proj]\n\nwith a slightly different configuration.\n\n\n### Step 3: Upload your website content\n\n{: #upload-content}\n\n\nPush the content to your remote project and keep an eye on the build!\n\n\n**Don't forget:** when you are using GitLab Pages with a Static Site\nGenerator,\n\ndo not upload the directory which your SSG generated locally,\n\notherwise you'll have duplicated contents and you might face build errors.\n\nFor example, do not commit the `_site` directory ([Jekyll]) or the `build`\ndirectory\n\n([Middleman]) or the `public` directory ([Hexo]). You can do this\nautomatically by adding\n\nthem to a `.gitignore` file, placed at your project's root directory.\n\n\nE.g., if you are building a Jekyll site, your `.gitignore` will have this\nline:\n\n\n```\n\n_site\n\n```\n\n\nA `.gitignore` is very useful to avoid uploading to your remote repository\nany file or folder within your project.\n\nIf you want to know more about it, check the [`.gitignore` official\ndocs][git-docs-gitignore].\n\n\n### Step 4: Add your custom domain\n\n{: #custom-domains}\n\n\n**Note:** Custom CNAMEs with TLS support were introduced in [GitLab EE\n8.5][EE-85].\n\n{: .note}\n\n\nIf you want, you are free to [add your own domain(s)\nname][pages-custom-domain] to your website hosted by GitLab.com.\n\n\nIt's not required though, you can always use the standard\n\n[GitLab Pages default domain\nnames](https://docs.gitlab.com/ee/user/project/pages/getting_started_part_one.html#gitlab-pages-default-domain-names).\n\n\n_Features_\n\n\n- Besides including your own domain, you can add your custom **subdomain**\nto your GitLab Pages project (e.g., `subdomain.example.com`)\n\n- You can enter more than one domain alias **per project** (e.g.,\n`example.com`,\n\n`example.net` `my.example.org` and `another-example.com` pointing to your\nproject under `mynamespace.gitlab.io` or\n\n`mynamespace.gitlab.io/myproject`). A domain alias is like having multiple\nfront doors to one location.\n\n- If you want to enable an HTTPS secure connection to your domains, you can\naffix your own SSL/TLS digital\n\ncertificate to **each** custom domain or subdomain you've added to your\nprojects.\n\n\n_Steps to set up a custom domain_\n\n\n- From your project's dashboard, go to **Settings** (\u003Ci class=\"fas fa-cog\"\naria-hidden=\"true\">\u003C/i>) **> Pages > New Domain**\n\n- Add your domain to the first field: `mydomain.com`\n\n- If you have an SSL/TLS digital certificate and its key, add them to their\nrespective fields.\n\nIf you don't, just leave the fields blank.\n\n- Click on **Create New Domain**.\n\n- Finally, access your domain control panel and create a new [DNS `A`\nrecord][dns-A] pointing\n\nto the [IP of GitLab Pages server][pages-settings]:\n\n\n```\n\nmydomain.com A 35.185.44.232\n\n```\n\n\n**Note:** This GitLab Pages IP address for GitLab.com changed from\n`52.167.214.135` to `35.185.44.232` in August 2018.\n\n{:.note}\n\n\nAlternatively, a similar procedure can be applied for **custom subdomains**:\n\n\n- Add the subdomain to the first field: `subdomain.mydomain.com`\n\n\n- Then create a new [DNS `CNAME` record][dns-cname] pointing to\n`myusername.gitlab.io`:\n\n\n```\n\nsubdomain.mydomain.com CNAME myusername.gitlab.io\n\n```\n\n\nRepeat these steps for any additional domain aliases.\n\n\nNote that how you set up your DNS records will depend upon which company you\n\nused to register your domain name. Every company has its own methods for DNS\nZone Management.\n\nOn this link you can find an [overview for some\nproviders][dns-zone-examples],\n\nit might help you to follow through. Please contact your provider directly\nif you need some extra help.\n\n\nOrdinarily, DNS propagation needs some time to take effect, so don't worry\nif you can't access your\n\nwebsite under your custom domain instantaneously. Wait a few minutes and\ncheck it again.\n\n\n## Examples\n\n\nCheck out the [Pages][ci-examples] official group for a list of example\nprojects,\n\nwhere you can explore some good options for Static Site Generators for Ruby,\nNodeJS and Python environments.\n\nYou can also find more specific examples on the following groups, which I\nprepared for the purposes of this post:\n\n\n- [Jekyll Themes][jekyll-examples] (Ruby/Jekyll)\n\n- [Middleman Themes][middle-examples] (Ruby/Middleman)\n\n- [Themes and Templates][themes-templates] (Miscellaneous)\n\n- [HTML Themes][html-examples] (plain HTML)\n\n\n**Note:** these themes, templates and SSGs were casually chosen and listed\non this\n\npost to provide you with some distinct GitLab CI configurations.\n\n{: .note}\n\n\n## FAQ\n\n\n### Is all of this really free to use?\n\n{: .no_toc}\n\n\nYes, it is! On [GitLab.com][sign-up] you can create your free account\n\nand enjoy all its [features][gitlab-com], including unlimited private\nrepositories,\n\nprojects, websites, and contributors. Also, you'll have 10GB disk space per\nproject, [1GB per Pages artifacts][pages-settings],\n\nand unlimited total disk space. Awesome, isn't it? Why don't you take a peek\nat the [public projects][explore]?\n\n\n### Where is the `public` folder?\n\n{: .no_toc}\n\n\nWhen a build succeeds, you'll find your static site at your project's\n**Pipelines > Builds > Build ID > Browse**.\n\nYou can download the artifacts from the same screen.\n\n\n![Build Artifacts - Browse or\nDownload](https://about.gitlab.com/images/blogimages/gitlab-pages/gitlab-browse-download-artifacts.png)\n\n\n### Can I really use any Static Site Generator?\n\n{: .no_toc}\n\n\nYes, you can use any [Static Site Generator][SSGs] available.\n\n\n### Can I use free SSL/TLS digital certificates?\n\n{: .no_toc}\n\n\nYes, absolutely! Need a suggestion? Try [Let's Encrypt][lets-encrypt] or\n[Cloudflare].\n\n\n### Can I contribute to the themes?\n\n{: .no_toc}\n\n\nSure! You are very welcome to contribute to the groups mentioned above.\n\nTo do that, please set your website up and make sure it's working as you\nexpected.\n\nThen, add an issue to the [group](#examples) you're interested in. Don't\nforget to include a link to your project.\n\nAfter a brief evaluation, we'll be glad to fork your project and present\nyour theme to our community!\n\n\n### Can I use `.php` pages and connect databases with my sites?\n\n{: .no_toc}\n\n\nNo. GitLab Pages hosts static websites only (HTML, CSS and JS).\n\n\n## Getting Help\n\n\nIf you need some help regarding GitLab Pages on GitLab.com,\n\nfeel free to use one of [our channels][get-help]. You can also open an issue\non the [Pages][pages-issues] group.\n\n\n\u003Ca name=\"conclusions\">\u003C/a>\n\n\n## Conclusion\n\n{: #conclusions}\n\n\nHopefully now you understand how **[GitLab Pages][pages]** works and how to\ncreate your new site.\n\n\nFollow [@GitLab][twitter] on Twitter and stay tuned for updates!\n\n\nWe're looking forward to seeing your sites!\n\n\n**Note:** this post has been updated (June 17th, 2016) to match the new\nGitLab UI.\n\n{: .note}\n\n\n## About guest author Marcia Ramos\n\n{: .no_toc}\n\n\n[Marcia](https://gitlab.com/marcia) is a backend web developer specialized\nin WordPress and Jekyll sites at [Virtua Creative],\n\nthough she does some frontend too. Her daily work is based on\nversion-controlled systems for almost 15 years.\n\nShe is driven by her thirst for knowledge and her eagerness to continuously\nexpand her horizons.\n\nWhen she is not coding, she is writing articles, studying, teaching or\ncontributing to open source projects here and there.\n\nUpdate: she's joined the [GitLab Team] in May, 2016.\n\n\n[doc-artifacts]: http://doc.gitlab.com/ee/ci/yaml/README.html#artifacts\n\n[doc-ciconfig]:\nhttp://doc.gitlab.com/ee/ci/quick_start/README.html#creating-a-.gitlab-ci.yml-file\n\n[doc-config-runners]:\nhttp://doc.gitlab.com/ee/ci/quick_start/README.html#configuring-a-runner\n\n[doc-contents-ciconfig]:\nhttp://doc.gitlab.com/ee/pages/README.html#explore-the-contents-of-.gitlab-ci.yml\n\n[doc-groups]: http://doc.gitlab.com/ee/workflow/groups.html\n\n[doc-images]:\nhttp://doc.gitlab.com/ee/ci/yaml/README.html#image-and-services\n\n[doc-jobs]: http://doc.gitlab.com/ce/ci/yaml/README.html#jobs\n\n[doc-only]: http://doc.gitlab.com/ee/ci/yaml/README.html#only-and-except\n\n[doc-runners]: http://doc.gitlab.com/ee/ci/runners/README.html#sts=Runners\n\n[doc-script]: http://doc.gitlab.com/ee/ci/yaml/README.html#script\n\n[doc-shared-runners]:\nhttp://doc.gitlab.com/ee/ci/quick_start/README.html#shared-runners\n\n[doc-stages]: http://doc.gitlab.com/ce/ci/yaml/README.html#stages\n\n[ee-yaml-ci]: http://doc.gitlab.com/ee/ci/yaml/README.html\n\n[pages]: https://pages.gitlab.io\n\n[pages-ee]: http://doc.gitlab.com/ee/pages/README.html\n\n[pages-introduced]: /2016/04/04/gitlab-pages-get-started/\n\n[pages-issues]: https://gitlab.com/pages/pages.gitlab.io/issues\n\n[pages-work]:\nhttp://doc.gitlab.com/ee/pages/README.html#getting-started-with-gitlab-pages\n\n[pages-user]: http://doc.gitlab.com/ee/pages/README.html#user-or-group-pages\n\n[pages-project]: http://doc.gitlab.com/ee/pages/README.html#project-pages\n\n[pages-ci-html]:\nhttp://doc.gitlab.com/ee/pages/README.html#how-.gitlab-ci.yml-looks-like-when-the-static-content-is-in-your-repository\n\n[pages-ci-jekyll]:\nhttp://doc.gitlab.com/ee/pages/README.html#how-.gitlab-ci.yml-looks-like-when-using-a-static-generator\n\n[pages-custom-domain]:\nhttp://doc.gitlab.com/ee/pages/README.html#add-a-custom-domain-to-your-pages-website\n\n[pages-settings]: https://docs.gitlab.com/ee/user/gitlab_com/#gitlab-pages\n\n[quick start guide]: http://doc.gitlab.com/ee/ci/quick_start/README.html\n\n\n[about-gitlab-com]: /\n\n[ci-lint]: https://gitlab.com/ci/lint \"Try me!\"\n\n[cname-issue]: https://gitlab.com/gitlab-org/gitlab-ee/issues/134\n\n[ee-85]: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/173\n\n[explore]: https://gitlab.com/explore\n\n[get-help]: /get-help/\n\n[gitlab83]: /2015/12/22/gitlab-8-3-released\n\n[gitlab-com]: /pricing/\n\n[gitlab-ee]: /features/#enterprise\n\n[GitLab Team]: /company/team/#XMDRamos\n\n[sign-up]: https://gitlab.com/users/sign_in \"Sign Up, it's free!\"\n\n[twitter]: https://twitter.com/gitlab\n\n\n[Brunch]: http://brunch.io/\n\n[Bundler]: http://bundler.io/\n\n[Cloudflare]:\n/2017/02/07/setting-up-gitlab-pages-with-cloudflare-certificates/\n\n[Coffee Script]: http://coffeescript.org/\n\n[dns-A]: https://support.dnsimple.com/articles/a-record/\n\n[dns-cname]: https://en.wikipedia.org/wiki/CNAME_record\n\n[dns-zone-examples]:\nhttp://docs.businesscatalyst.com/user-manual/site-settings/site-domains/updating-dns-records-with-a-domain-registrar-external-dns\n\n[git]: https://git-scm.com/about\n\n[git-docs-gitignore]: https://git-scm.com/docs/gitignore\n\n[go]: https://golang.org/\n\n[Google V8]: https://developers.google.com/v8/\n\n[Harp]: http://harpjs.com/\n\n[Hexo]: https://hexo.io/\n\n[Hyde]: http://hyde.github.io/\n\n[Hugo]: https://gohugo.io/\n\n[Jekyll]: https://jekyllrb.com\n\n[Jekyll Documentation]: http://jekyllrb.com/docs/home/\n\n[Jekyll Plugin]: https://jekyllrb.com/docs/plugins/\n\n[Lektor]: https://www.getlektor.com/\n\n[lets-encrypt]:\n/blog/tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt/\n\n[Liquid]: https://github.com/Shopify/liquid/wiki\n\n[Markdown]: http://daringfireball.net/projects/markdown/\n\n[Metalsmith]: http://www.metalsmith.io/\n\n[Middleman]: https://middlemanapp.com/\n\n[Nanoc]: https://nanoc.ws/\n\n[node]: https://nodejs.org/en/\n\n[node-422]: https://hub.docker.com/_/node/\n\n[Pelican]: http://blog.getpelican.com/\n\n[Python]: https://www.python.org/\n\n[Ruby]: https://www.ruby-lang.org/\n\n[Sass]: http://sass-lang.com/\n\n[SSGs]: https://www.staticgen.com/\n\n[StartSSL]: https://startssl.com/\n\n[wiki-static-websites]: https://en.wikipedia.org/wiki/Static_web_page\n\n[YAML]: http://yaml.org/\n\n[Virtua Creative]: http://virtuacreative.com.br/en/\n\n\n[ci-examples]: https://gitlab.com/groups/pages\n\n[html-examples]: https://gitlab.com/groups/html-themes\n\n[jekyll-examples]: https://gitlab.com/groups/jekyll-themes\n\n[middle-examples]: https://gitlab.com/groups/middleman-themes\n\n[themes-templates]: https://gitlab.com/themes-templates\n\n\n[jekyll-proj]: https://gitlab.com/jekyll-themes/default-bundler\n\n[jekyll-253-example]: https://gitlab.com/jekyll-themes/carte-noire\n\n[hexo-proj]: https://gitlab.com/themes-templates/hexo\n\n[pages-hexo]: https://gitlab.com/pages/hexo\n","engineering",{"slug":23,"featured":6,"template":24},"gitlab-pages-setup","BlogPost","content:en-us:blog:gitlab-pages-setup.yml","yaml","Gitlab Pages Setup","content","en-us/blog/gitlab-pages-setup.yml","en-us/blog/gitlab-pages-setup","yml",{"_path":33,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"data":35,"_id":457,"_type":26,"title":458,"_source":28,"_file":459,"_stem":460,"_extension":31},"/shared/en-us/main-navigation","en-us",{"logo":36,"freeTrial":41,"sales":46,"login":51,"items":56,"search":388,"minimal":419,"duo":438,"pricingDeployment":447},{"config":37},{"href":38,"dataGaName":39,"dataGaLocation":40},"/","gitlab logo","header",{"text":42,"config":43},"Get free trial",{"href":44,"dataGaName":45,"dataGaLocation":40},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":47,"config":48},"Talk to sales",{"href":49,"dataGaName":50,"dataGaLocation":40},"/sales/","sales",{"text":52,"config":53},"Sign in",{"href":54,"dataGaName":55,"dataGaLocation":40},"https://gitlab.com/users/sign_in/","sign in",[57,101,199,204,309,369],{"text":58,"config":59,"cards":61,"footer":84},"Platform",{"dataNavLevelOne":60},"platform",[62,68,76],{"title":58,"description":63,"link":64},"The most comprehensive AI-powered DevSecOps Platform",{"text":65,"config":66},"Explore our Platform",{"href":67,"dataGaName":60,"dataGaLocation":40},"/platform/",{"title":69,"description":70,"link":71},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":72,"config":73},"Meet GitLab Duo",{"href":74,"dataGaName":75,"dataGaLocation":40},"/gitlab-duo/","gitlab duo ai",{"title":77,"description":78,"link":79},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":80,"config":81},"Learn more",{"href":82,"dataGaName":83,"dataGaLocation":40},"/why-gitlab/","why gitlab",{"title":85,"items":86},"Get started with",[87,92,97],{"text":88,"config":89},"Platform Engineering",{"href":90,"dataGaName":91,"dataGaLocation":40},"/solutions/platform-engineering/","platform engineering",{"text":93,"config":94},"Developer Experience",{"href":95,"dataGaName":96,"dataGaLocation":40},"/developer-experience/","Developer experience",{"text":98,"config":99},"MLOps",{"href":100,"dataGaName":98,"dataGaLocation":40},"/topics/devops/the-role-of-ai-in-devops/",{"text":102,"left":103,"config":104,"link":106,"lists":110,"footer":181},"Product",true,{"dataNavLevelOne":105},"solutions",{"text":107,"config":108},"View all Solutions",{"href":109,"dataGaName":105,"dataGaLocation":40},"/solutions/",[111,136,160],{"title":112,"description":113,"link":114,"items":119},"Automation","CI/CD and automation to accelerate deployment",{"config":115},{"icon":116,"href":117,"dataGaName":118,"dataGaLocation":40},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[120,124,128,132],{"text":121,"config":122},"CI/CD",{"href":123,"dataGaLocation":40,"dataGaName":121},"/solutions/continuous-integration/",{"text":125,"config":126},"AI-Assisted Development",{"href":74,"dataGaLocation":40,"dataGaName":127},"AI assisted development",{"text":129,"config":130},"Source Code Management",{"href":131,"dataGaLocation":40,"dataGaName":129},"/solutions/source-code-management/",{"text":133,"config":134},"Automated Software Delivery",{"href":117,"dataGaLocation":40,"dataGaName":135},"Automated software delivery",{"title":137,"description":138,"link":139,"items":144},"Security","Deliver code faster without compromising security",{"config":140},{"href":141,"dataGaName":142,"dataGaLocation":40,"icon":143},"/solutions/security-compliance/","security and compliance","ShieldCheckLight",[145,150,155],{"text":146,"config":147},"Application Security Testing",{"href":148,"dataGaName":149,"dataGaLocation":40},"/solutions/application-security-testing/","Application security testing",{"text":151,"config":152},"Software Supply Chain Security",{"href":153,"dataGaLocation":40,"dataGaName":154},"/solutions/supply-chain/","Software supply chain security",{"text":156,"config":157},"Software Compliance",{"href":158,"dataGaName":159,"dataGaLocation":40},"/solutions/software-compliance/","software compliance",{"title":161,"link":162,"items":167},"Measurement",{"config":163},{"icon":164,"href":165,"dataGaName":166,"dataGaLocation":40},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[168,172,176],{"text":169,"config":170},"Visibility & Measurement",{"href":165,"dataGaLocation":40,"dataGaName":171},"Visibility and Measurement",{"text":173,"config":174},"Value Stream Management",{"href":175,"dataGaLocation":40,"dataGaName":173},"/solutions/value-stream-management/",{"text":177,"config":178},"Analytics & Insights",{"href":179,"dataGaLocation":40,"dataGaName":180},"/solutions/analytics-and-insights/","Analytics and insights",{"title":182,"items":183},"GitLab for",[184,189,194],{"text":185,"config":186},"Enterprise",{"href":187,"dataGaLocation":40,"dataGaName":188},"/enterprise/","enterprise",{"text":190,"config":191},"Small Business",{"href":192,"dataGaLocation":40,"dataGaName":193},"/small-business/","small business",{"text":195,"config":196},"Public Sector",{"href":197,"dataGaLocation":40,"dataGaName":198},"/solutions/public-sector/","public sector",{"text":200,"config":201},"Pricing",{"href":202,"dataGaName":203,"dataGaLocation":40,"dataNavLevelOne":203},"/pricing/","pricing",{"text":205,"config":206,"link":208,"lists":212,"feature":296},"Resources",{"dataNavLevelOne":207},"resources",{"text":209,"config":210},"View all resources",{"href":211,"dataGaName":207,"dataGaLocation":40},"/resources/",[213,246,268],{"title":214,"items":215},"Getting started",[216,221,226,231,236,241],{"text":217,"config":218},"Install",{"href":219,"dataGaName":220,"dataGaLocation":40},"/install/","install",{"text":222,"config":223},"Quick start guides",{"href":224,"dataGaName":225,"dataGaLocation":40},"/get-started/","quick setup checklists",{"text":227,"config":228},"Learn",{"href":229,"dataGaLocation":40,"dataGaName":230},"https://university.gitlab.com/","learn",{"text":232,"config":233},"Product documentation",{"href":234,"dataGaName":235,"dataGaLocation":40},"https://docs.gitlab.com/","product documentation",{"text":237,"config":238},"Best practice videos",{"href":239,"dataGaName":240,"dataGaLocation":40},"/getting-started-videos/","best practice videos",{"text":242,"config":243},"Integrations",{"href":244,"dataGaName":245,"dataGaLocation":40},"/integrations/","integrations",{"title":247,"items":248},"Discover",[249,254,258,263],{"text":250,"config":251},"Customer success stories",{"href":252,"dataGaName":253,"dataGaLocation":40},"/customers/","customer success stories",{"text":255,"config":256},"Blog",{"href":257,"dataGaName":5,"dataGaLocation":40},"/blog/",{"text":259,"config":260},"Remote",{"href":261,"dataGaName":262,"dataGaLocation":40},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":264,"config":265},"TeamOps",{"href":266,"dataGaName":267,"dataGaLocation":40},"/teamops/","teamops",{"title":269,"items":270},"Connect",[271,276,281,286,291],{"text":272,"config":273},"GitLab Services",{"href":274,"dataGaName":275,"dataGaLocation":40},"/services/","services",{"text":277,"config":278},"Community",{"href":279,"dataGaName":280,"dataGaLocation":40},"/community/","community",{"text":282,"config":283},"Forum",{"href":284,"dataGaName":285,"dataGaLocation":40},"https://forum.gitlab.com/","forum",{"text":287,"config":288},"Events",{"href":289,"dataGaName":290,"dataGaLocation":40},"/events/","events",{"text":292,"config":293},"Partners",{"href":294,"dataGaName":295,"dataGaLocation":40},"/partners/","partners",{"backgroundColor":297,"textColor":298,"text":299,"image":300,"link":304},"#2f2a6b","#fff","Insights for the future of software development",{"altText":301,"config":302},"the source promo card",{"src":303},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":305,"config":306},"Read the latest",{"href":307,"dataGaName":308,"dataGaLocation":40},"/the-source/","the source",{"text":310,"config":311,"lists":313},"Company",{"dataNavLevelOne":312},"company",[314],{"items":315},[316,321,327,329,334,339,344,349,354,359,364],{"text":317,"config":318},"About",{"href":319,"dataGaName":320,"dataGaLocation":40},"/company/","about",{"text":322,"config":323,"footerGa":326},"Jobs",{"href":324,"dataGaName":325,"dataGaLocation":40},"/jobs/","jobs",{"dataGaName":325},{"text":287,"config":328},{"href":289,"dataGaName":290,"dataGaLocation":40},{"text":330,"config":331},"Leadership",{"href":332,"dataGaName":333,"dataGaLocation":40},"/company/team/e-group/","leadership",{"text":335,"config":336},"Team",{"href":337,"dataGaName":338,"dataGaLocation":40},"/company/team/","team",{"text":340,"config":341},"Handbook",{"href":342,"dataGaName":343,"dataGaLocation":40},"https://handbook.gitlab.com/","handbook",{"text":345,"config":346},"Investor relations",{"href":347,"dataGaName":348,"dataGaLocation":40},"https://ir.gitlab.com/","investor relations",{"text":350,"config":351},"Trust Center",{"href":352,"dataGaName":353,"dataGaLocation":40},"/security/","trust center",{"text":355,"config":356},"AI Transparency Center",{"href":357,"dataGaName":358,"dataGaLocation":40},"/ai-transparency-center/","ai transparency center",{"text":360,"config":361},"Newsletter",{"href":362,"dataGaName":363,"dataGaLocation":40},"/company/contact/","newsletter",{"text":365,"config":366},"Press",{"href":367,"dataGaName":368,"dataGaLocation":40},"/press/","press",{"text":370,"config":371,"lists":372},"Contact us",{"dataNavLevelOne":312},[373],{"items":374},[375,378,383],{"text":47,"config":376},{"href":49,"dataGaName":377,"dataGaLocation":40},"talk to sales",{"text":379,"config":380},"Get help",{"href":381,"dataGaName":382,"dataGaLocation":40},"/support/","get help",{"text":384,"config":385},"Customer portal",{"href":386,"dataGaName":387,"dataGaLocation":40},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":389,"login":390,"suggestions":397},"Close",{"text":391,"link":392},"To search repositories and projects, login to",{"text":393,"config":394},"gitlab.com",{"href":54,"dataGaName":395,"dataGaLocation":396},"search login","search",{"text":398,"default":399},"Suggestions",[400,402,406,408,412,416],{"text":69,"config":401},{"href":74,"dataGaName":69,"dataGaLocation":396},{"text":403,"config":404},"Code Suggestions (AI)",{"href":405,"dataGaName":403,"dataGaLocation":396},"/solutions/code-suggestions/",{"text":121,"config":407},{"href":123,"dataGaName":121,"dataGaLocation":396},{"text":409,"config":410},"GitLab on AWS",{"href":411,"dataGaName":409,"dataGaLocation":396},"/partners/technology-partners/aws/",{"text":413,"config":414},"GitLab on Google Cloud",{"href":415,"dataGaName":413,"dataGaLocation":396},"/partners/technology-partners/google-cloud-platform/",{"text":417,"config":418},"Why GitLab?",{"href":82,"dataGaName":417,"dataGaLocation":396},{"freeTrial":420,"mobileIcon":425,"desktopIcon":430,"secondaryButton":433},{"text":421,"config":422},"Start free trial",{"href":423,"dataGaName":45,"dataGaLocation":424},"https://gitlab.com/-/trials/new/","nav",{"altText":426,"config":427},"Gitlab Icon",{"src":428,"dataGaName":429,"dataGaLocation":424},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":426,"config":431},{"src":432,"dataGaName":429,"dataGaLocation":424},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":434,"config":435},"Get Started",{"href":436,"dataGaName":437,"dataGaLocation":424},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":439,"mobileIcon":443,"desktopIcon":445},{"text":440,"config":441},"Learn more about GitLab Duo",{"href":74,"dataGaName":442,"dataGaLocation":424},"gitlab duo",{"altText":426,"config":444},{"src":428,"dataGaName":429,"dataGaLocation":424},{"altText":426,"config":446},{"src":432,"dataGaName":429,"dataGaLocation":424},{"freeTrial":448,"mobileIcon":453,"desktopIcon":455},{"text":449,"config":450},"Back to pricing",{"href":202,"dataGaName":451,"dataGaLocation":424,"icon":452},"back to pricing","GoBack",{"altText":426,"config":454},{"src":428,"dataGaName":429,"dataGaLocation":424},{"altText":426,"config":456},{"src":432,"dataGaName":429,"dataGaLocation":424},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":462,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"title":463,"button":464,"image":469,"config":473,"_id":475,"_type":26,"_source":28,"_file":476,"_stem":477,"_extension":31},"/shared/en-us/banner","is now in public beta!",{"text":465,"config":466},"Try the Beta",{"href":467,"dataGaName":468,"dataGaLocation":40},"/gitlab-duo/agent-platform/","duo banner",{"altText":470,"config":471},"GitLab Duo Agent Platform",{"src":472},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753720689/somrf9zaunk0xlt7ne4x.svg",{"layout":474},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":479,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"data":480,"_id":684,"_type":26,"title":685,"_source":28,"_file":686,"_stem":687,"_extension":31},"/shared/en-us/main-footer",{"text":481,"source":482,"edit":488,"contribute":493,"config":498,"items":503,"minimal":676},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":483,"config":484},"View page source",{"href":485,"dataGaName":486,"dataGaLocation":487},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":489,"config":490},"Edit this page",{"href":491,"dataGaName":492,"dataGaLocation":487},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":494,"config":495},"Please contribute",{"href":496,"dataGaName":497,"dataGaLocation":487},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":499,"facebook":500,"youtube":501,"linkedin":502},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[504,527,583,612,646],{"title":58,"links":505,"subMenu":510},[506],{"text":507,"config":508},"DevSecOps platform",{"href":67,"dataGaName":509,"dataGaLocation":487},"devsecops platform",[511],{"title":200,"links":512},[513,517,522],{"text":514,"config":515},"View plans",{"href":202,"dataGaName":516,"dataGaLocation":487},"view plans",{"text":518,"config":519},"Why Premium?",{"href":520,"dataGaName":521,"dataGaLocation":487},"/pricing/premium/","why premium",{"text":523,"config":524},"Why Ultimate?",{"href":525,"dataGaName":526,"dataGaLocation":487},"/pricing/ultimate/","why ultimate",{"title":528,"links":529},"Solutions",[530,535,537,539,544,549,553,556,560,565,567,570,573,578],{"text":531,"config":532},"Digital transformation",{"href":533,"dataGaName":534,"dataGaLocation":487},"/topics/digital-transformation/","digital transformation",{"text":146,"config":536},{"href":148,"dataGaName":146,"dataGaLocation":487},{"text":135,"config":538},{"href":117,"dataGaName":118,"dataGaLocation":487},{"text":540,"config":541},"Agile development",{"href":542,"dataGaName":543,"dataGaLocation":487},"/solutions/agile-delivery/","agile delivery",{"text":545,"config":546},"Cloud transformation",{"href":547,"dataGaName":548,"dataGaLocation":487},"/topics/cloud-native/","cloud transformation",{"text":550,"config":551},"SCM",{"href":131,"dataGaName":552,"dataGaLocation":487},"source code management",{"text":121,"config":554},{"href":123,"dataGaName":555,"dataGaLocation":487},"continuous integration & delivery",{"text":557,"config":558},"Value stream management",{"href":175,"dataGaName":559,"dataGaLocation":487},"value stream management",{"text":561,"config":562},"GitOps",{"href":563,"dataGaName":564,"dataGaLocation":487},"/solutions/gitops/","gitops",{"text":185,"config":566},{"href":187,"dataGaName":188,"dataGaLocation":487},{"text":568,"config":569},"Small business",{"href":192,"dataGaName":193,"dataGaLocation":487},{"text":571,"config":572},"Public sector",{"href":197,"dataGaName":198,"dataGaLocation":487},{"text":574,"config":575},"Education",{"href":576,"dataGaName":577,"dataGaLocation":487},"/solutions/education/","education",{"text":579,"config":580},"Financial services",{"href":581,"dataGaName":582,"dataGaLocation":487},"/solutions/finance/","financial services",{"title":205,"links":584},[585,587,589,591,594,596,598,600,602,604,606,608,610],{"text":217,"config":586},{"href":219,"dataGaName":220,"dataGaLocation":487},{"text":222,"config":588},{"href":224,"dataGaName":225,"dataGaLocation":487},{"text":227,"config":590},{"href":229,"dataGaName":230,"dataGaLocation":487},{"text":232,"config":592},{"href":234,"dataGaName":593,"dataGaLocation":487},"docs",{"text":255,"config":595},{"href":257,"dataGaName":5,"dataGaLocation":487},{"text":250,"config":597},{"href":252,"dataGaName":253,"dataGaLocation":487},{"text":259,"config":599},{"href":261,"dataGaName":262,"dataGaLocation":487},{"text":272,"config":601},{"href":274,"dataGaName":275,"dataGaLocation":487},{"text":264,"config":603},{"href":266,"dataGaName":267,"dataGaLocation":487},{"text":277,"config":605},{"href":279,"dataGaName":280,"dataGaLocation":487},{"text":282,"config":607},{"href":284,"dataGaName":285,"dataGaLocation":487},{"text":287,"config":609},{"href":289,"dataGaName":290,"dataGaLocation":487},{"text":292,"config":611},{"href":294,"dataGaName":295,"dataGaLocation":487},{"title":310,"links":613},[614,616,618,620,622,624,626,630,635,637,639,641],{"text":317,"config":615},{"href":319,"dataGaName":312,"dataGaLocation":487},{"text":322,"config":617},{"href":324,"dataGaName":325,"dataGaLocation":487},{"text":330,"config":619},{"href":332,"dataGaName":333,"dataGaLocation":487},{"text":335,"config":621},{"href":337,"dataGaName":338,"dataGaLocation":487},{"text":340,"config":623},{"href":342,"dataGaName":343,"dataGaLocation":487},{"text":345,"config":625},{"href":347,"dataGaName":348,"dataGaLocation":487},{"text":627,"config":628},"Sustainability",{"href":629,"dataGaName":627,"dataGaLocation":487},"/sustainability/",{"text":631,"config":632},"Diversity, inclusion and belonging (DIB)",{"href":633,"dataGaName":634,"dataGaLocation":487},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":350,"config":636},{"href":352,"dataGaName":353,"dataGaLocation":487},{"text":360,"config":638},{"href":362,"dataGaName":363,"dataGaLocation":487},{"text":365,"config":640},{"href":367,"dataGaName":368,"dataGaLocation":487},{"text":642,"config":643},"Modern Slavery Transparency Statement",{"href":644,"dataGaName":645,"dataGaLocation":487},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":647,"links":648},"Contact Us",[649,652,654,656,661,666,671],{"text":650,"config":651},"Contact an expert",{"href":49,"dataGaName":50,"dataGaLocation":487},{"text":379,"config":653},{"href":381,"dataGaName":382,"dataGaLocation":487},{"text":384,"config":655},{"href":386,"dataGaName":387,"dataGaLocation":487},{"text":657,"config":658},"Status",{"href":659,"dataGaName":660,"dataGaLocation":487},"https://status.gitlab.com/","status",{"text":662,"config":663},"Terms of use",{"href":664,"dataGaName":665,"dataGaLocation":487},"/terms/","terms of use",{"text":667,"config":668},"Privacy statement",{"href":669,"dataGaName":670,"dataGaLocation":487},"/privacy/","privacy statement",{"text":672,"config":673},"Cookie preferences",{"dataGaName":674,"dataGaLocation":487,"id":675,"isOneTrustButton":103},"cookie preferences","ot-sdk-btn",{"items":677},[678,680,682],{"text":662,"config":679},{"href":664,"dataGaName":665,"dataGaLocation":487},{"text":667,"config":681},{"href":669,"dataGaName":670,"dataGaLocation":487},{"text":672,"config":683},{"dataGaName":674,"dataGaLocation":487,"id":675,"isOneTrustButton":103},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",[689],{"_path":690,"_dir":691,"_draft":6,"_partial":6,"_locale":7,"content":692,"config":696,"_id":698,"_type":26,"title":18,"_source":28,"_file":699,"_stem":700,"_extension":31},"/en-us/blog/authors/marcia-ramos","authors",{"name":18,"config":693},{"headshot":694,"ctfId":695},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Marcia-Ramos",{"template":697},"BlogAuthor","content:en-us:blog:authors:marcia-ramos.yml","en-us/blog/authors/marcia-ramos.yml","en-us/blog/authors/marcia-ramos",{"_path":702,"_dir":34,"_draft":6,"_partial":6,"_locale":7,"header":703,"eyebrow":704,"blurb":705,"button":706,"secondaryButton":710,"_id":712,"_type":26,"title":713,"_source":28,"_file":714,"_stem":715,"_extension":31},"/shared/en-us/next-steps","Start shipping better software faster","50%+ of the Fortune 100 trust GitLab","See what your team can do with the intelligent\n\n\nDevSecOps platform.\n",{"text":42,"config":707},{"href":708,"dataGaName":45,"dataGaLocation":709},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":47,"config":711},{"href":49,"dataGaName":50,"dataGaLocation":709},"content:shared:en-us:next-steps.yml","Next Steps","shared/en-us/next-steps.yml","shared/en-us/next-steps",1758326254125]