[{"data":1,"prerenderedAt":950},["ShallowReactive",2],{"/blog/gitlab-hashicorp-terraform-vault-pt-1":3,"navigation-en-us":156,"banner-en-us":582,"footer-en-us":592,"blog-post-authors-en-us-Kelly Hair|Anthony Davanzo":835,"blog-related-posts-en-us-gitlab-hashicorp-terraform-vault-pt-1":861,"blog-promotions-en-us":886,"next-steps-en-us":940},{"id":4,"title":5,"authors":6,"body":9,"category":131,"date":132,"description":133,"extension":134,"externalUrl":135,"faq":135,"featured":136,"heroImage":137,"meta":138,"navigation":139,"path":140,"seo":141,"slug":146,"stem":147,"tags":148,"template":154,"updatedDate":135,"__hash__":155},"blogPosts/en-us/blog/gitlab-hashicorp-terraform-vault-pt-1.md","GitLab and HashiCorp: Providing application and infrastructure delivery workflows",[7,8],"Kelly Hair","Anthony Davanzo",{"type":10,"value":11,"toc":120},"minimark",[12,16,19,24,33,36,39,48,53,68,72,80,88,92,101,106],[13,14,15],"p",{},"A growing number of teams are becoming more and more invested in continually improving the business through iterative development. Adopting the culture of DevOps isn’t necessarily confined to software development itself, but is equally applicable to ITOps, System Admins, and other infrastructure teams as well. Just as a proper CI/CD workflow is the foundation of today’s application delivery, a similar automated workflow is essential for managing the delivery of infrastructure as well.",[13,17,18],{},"As developers try to become more agile in building, packing, and testing their applications, having the right CI/CD tool that is flexible to other automation use cases is critical. GitLab has gone into great detail about their flexible CI/CD capabilities here. What’s sometimes overlooked is implementing the proper CI/CD process for the underlying infrastructure that these applications rely on. In addition to application delivery, organizations need to consider what their infrastructure delivery process looks like. GitLab and HashiCorp have partnered to create a multi-blog series on how to combine the application delivery workflow with the infrastructure delivery workflow. In this part we will discuss a high-level overview of the solutions that we will dive deeper into in Part 2.",[20,21,23],"h2",{"id":22},"leveraging-hashicorp-terraform-for-cicd-pipelines","Leveraging HashiCorp Terraform for CI/CD Pipelines",[13,25,26,32],{},[27,28,31],"a",{"href":29,"rel":30},"https://www.terraform.io/",[],"HashiCorp Terraform"," is an open source tool for provisioning infrastructure as code. Users define infrastructure in HashiCorp Configuration Language (HCL) configuration files, Terraform reads those configurations, offers a speculative plan of what it will create, and then users confirm and apply those changes. Terraform keeps track of what infrastructure is provisioned in a state file.",[13,34,35],{},"The recently announced Terraform Cloud application provides users with additional automation and collaboration capabilities on top of Terraform, such as remotely managing and version that state file, executing Terraform runs (plan/apply) remotely, and allowing teams to comment and collaborate on Terraform. By remotely managing state files, Terraform Cloud empowers teams to work more quickly and safely in parallel without concerns of losing the file or overwriting each other's changes. These features are especially helpful for users implementing CI/CD pipelines because they allow users to interact with Terraform via webhooks/API instead of having Terraform run on a local machine.",[13,37,38],{},"Most users will store their configuration files in a VCS (Version Control System) like GitLab and connect that VCS to Terraform Cloud. That connection allows users to borrow best practices from software engineering to version and iterate on infrastructure as code, using VCS and Terraform Cloud as a provisioning pipeline for infrastructure. Terraform will automatically run a plan upon changes to configuration files in a VCS. This plan can be reviewed by the team for safety and accuracy in the Terraform UI, then it can be applied to provision the specified infrastructure. Terraform Cloud can also be configured to automatically apply those changes.",[13,40,41,42,47],{},"Terraform Cloud also includes a Governance upgrade, which provides access to the ",[27,43,46],{"href":44,"rel":45},"https://www.hashicorp.com/sentinel",[],"Sentinel"," policy as code framework.  This framework allows users to define fine-grain rules and policies for their infrastructure that are automatically enforced before that infrastructure is provisioned. This allows users to work with the speed and efficiency they want in their continuous integration/delivery pipelines, while still ensuring that best practices are being implemented.",[49,50,52],"h3",{"id":51},"future-iterations","Future iterations",[13,54,55,56,61,62,67],{},"It is also worth discussing current work in progress with GitLab and Vault. Vault from Hashicorp secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets that services depend on. In efforts to improve ",[27,57,60],{"href":58,"rel":59},"https://gitlab.com/groups/gitlab-org/-/epics/816",[],"Variables and secrets management in GitLab CI/CD"," we’re working with HashiCorp to provide a ",[27,63,66],{"href":64,"rel":65},"https://gitlab.com/gitlab-org/gitlab-ce/issues/61053",[],"first-class integration with Vault"," sometime in the future.",[20,69,71],{"id":70},"next-steps","Next steps",[13,73,74,75,79],{},"As a follow up, we will soon be posting a blog on the technical details of ",[76,77,78],"em",{},"how"," to build a Terraform pipeline in GitLab CI/CD.",[13,81,82,83,87],{},"In meantime, check out how ",[27,84,86],{"href":85},"/blog/wag-labs-blog-post/","WagLabs reduced their release process from 40 minutes to just six",", using Terraform and GitLab CI/CD!",[49,89,91],{"id":90},"about-the-authors","About the authors",[13,93,94],{},[76,95,96,100],{},[27,97,8],{"href":98,"rel":99},"https://www.linkedin.com/in/anthonydavanzo/",[]," is the product marketing manager for Terraform Cloud at HashiCorp. In this role he focuses on bringing Terraform Cloud to market, hoping to drive adoption and spread awareness of the tool. His prior role as the technical product marketing manager for Terraform helps with deep domain knowledge and before HashiCorp, he was a product marketing manager at Cloudflare.",[13,102,103],{},[76,104,105],{},"Kelly Hair is a solutions architect at GitLab.",[13,107,108,109,114,115],{},"Photo by ",[27,110,113],{"href":111,"rel":112},"https://unsplash.com/@saadx?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Saad Salim"," on ",[27,116,119],{"href":117,"rel":118},"https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Unsplash",{"title":121,"searchDepth":122,"depth":122,"links":123},"",2,[124,128],{"id":22,"depth":122,"text":23,"children":125},[126],{"id":51,"depth":127,"text":52},3,{"id":70,"depth":122,"text":71,"children":129},[130],{"id":90,"depth":127,"text":91},"insights","2019-09-17","Discover how to leverage CI/CD for your infrastructure scripts with Terraform and GitLab.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670238/Blog/Hero%20Images/gitlab-terraform-pipelines.jpg",{},true,"/en-us/blog/gitlab-hashicorp-terraform-vault-pt-1",{"title":142,"description":133,"ogTitle":142,"ogDescription":133,"noIndex":136,"ogImage":137,"ogUrl":143,"ogSiteName":144,"ogType":145,"canonicalUrls":143},"GitLab and HashiCorp streamline delivery workflows","https://about.gitlab.com/blog/gitlab-hashicorp-terraform-vault-pt-1","https://about.gitlab.com","article","gitlab-hashicorp-terraform-vault-pt-1","en-us/blog/gitlab-hashicorp-terraform-vault-pt-1",[149,150,151,152,153],"CI/CD","cloud native","DevOps","integrations","frontend","BlogPost","f2khF3eEehiR20itmkgSNomf5aEykobBc7SHQ4hYt6A",{"logo":157,"freeTrial":162,"sales":167,"login":172,"items":177,"search":502,"minimal":533,"duo":552,"switchNav":561,"pricingDeployment":572},{"config":158},{"href":159,"dataGaName":160,"dataGaLocation":161},"/","gitlab logo","header",{"text":163,"config":164},"Get free trial",{"href":165,"dataGaName":166,"dataGaLocation":161},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":168,"config":169},"Request a demo",{"href":170,"dataGaName":171,"dataGaLocation":161},"/sales/?contact-topic=request-demo","sales",{"text":173,"config":174},"Sign in",{"href":175,"dataGaName":176,"dataGaLocation":161},"https://gitlab.com/users/sign_in/","sign in",[178,207,306,311,424,480],{"text":179,"config":180,"menu":182},"Platform",{"dataNavLevelOne":181},"platform",{"type":183,"columns":184},"cards",[185,191,199],{"title":179,"description":186,"link":187},"The intelligent orchestration platform for DevSecOps",{"text":188,"config":189},"Explore our Platform",{"href":190,"dataGaName":181,"dataGaLocation":161},"/platform/",{"title":192,"description":193,"link":194},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":195,"config":196},"Meet GitLab Duo",{"href":197,"dataGaName":198,"dataGaLocation":161},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":200,"description":201,"link":202},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":203,"config":204},"Learn more",{"href":205,"dataGaName":206,"dataGaLocation":161},"/why-gitlab/","why gitlab",{"text":208,"left":139,"config":209,"menu":211},"Product",{"dataNavLevelOne":210},"solutions",{"type":212,"link":213,"columns":217,"feature":285},"lists",{"text":214,"config":215},"View all Solutions",{"href":216,"dataGaName":210,"dataGaLocation":161},"/solutions/",[218,241,264],{"title":219,"description":220,"link":221,"items":226},"Automation","CI/CD and automation to accelerate deployment",{"config":222},{"icon":223,"href":224,"dataGaName":225,"dataGaLocation":161},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[227,230,233,237],{"text":149,"config":228},{"href":229,"dataGaLocation":161,"dataGaName":149},"/solutions/continuous-integration/",{"text":192,"config":231},{"href":197,"dataGaLocation":161,"dataGaName":232},"gitlab duo agent platform - product menu",{"text":234,"config":235},"Source Code Management",{"href":236,"dataGaLocation":161,"dataGaName":234},"/solutions/source-code-management/",{"text":238,"config":239},"Automated Software Delivery",{"href":224,"dataGaLocation":161,"dataGaName":240},"Automated software delivery",{"title":242,"description":243,"link":244,"items":249},"Security","Deliver code faster without compromising security",{"config":245},{"href":246,"dataGaName":247,"dataGaLocation":161,"icon":248},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[250,254,259],{"text":251,"config":252},"Application Security Testing",{"href":246,"dataGaName":253,"dataGaLocation":161},"Application security testing",{"text":255,"config":256},"Software Supply Chain Security",{"href":257,"dataGaLocation":161,"dataGaName":258},"/solutions/supply-chain/","Software supply chain security",{"text":260,"config":261},"Software Compliance",{"href":262,"dataGaName":263,"dataGaLocation":161},"/solutions/software-compliance/","software compliance",{"title":265,"link":266,"items":271},"Measurement",{"config":267},{"icon":268,"href":269,"dataGaName":270,"dataGaLocation":161},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[272,276,280],{"text":273,"config":274},"Visibility & Measurement",{"href":269,"dataGaLocation":161,"dataGaName":275},"Visibility and Measurement",{"text":277,"config":278},"Value Stream Management",{"href":279,"dataGaLocation":161,"dataGaName":277},"/solutions/value-stream-management/",{"text":281,"config":282},"Analytics & Insights",{"href":283,"dataGaLocation":161,"dataGaName":284},"/solutions/analytics-and-insights/","Analytics and insights",{"title":286,"type":212,"items":287},"GitLab for",[288,294,300],{"text":289,"config":290},"Enterprise",{"icon":291,"href":292,"dataGaLocation":161,"dataGaName":293},"Building","/enterprise/","enterprise",{"text":295,"config":296},"Small Business",{"icon":297,"href":298,"dataGaLocation":161,"dataGaName":299},"Work","/small-business/","small business",{"text":301,"config":302},"Public Sector",{"icon":303,"href":304,"dataGaLocation":161,"dataGaName":305},"Organization","/solutions/public-sector/","public sector",{"text":307,"config":308},"Pricing",{"href":309,"dataGaName":310,"dataGaLocation":161,"dataNavLevelOne":310},"/pricing/","pricing",{"text":312,"config":313,"menu":315},"Resources",{"dataNavLevelOne":314},"resources",{"type":212,"link":316,"columns":320,"feature":413},{"text":317,"config":318},"View all resources",{"href":319,"dataGaName":314,"dataGaLocation":161},"/resources/",[321,353,380],{"title":322,"items":323},"Getting started",[324,329,334,339,344,349],{"text":325,"config":326},"Install",{"href":327,"dataGaName":328,"dataGaLocation":161},"/install/","install",{"text":330,"config":331},"Quick start guides",{"href":332,"dataGaName":333,"dataGaLocation":161},"/get-started/","quick setup checklists",{"text":335,"config":336},"Learn",{"href":337,"dataGaLocation":161,"dataGaName":338},"https://university.gitlab.com/","learn",{"text":340,"config":341},"Product documentation",{"href":342,"dataGaName":343,"dataGaLocation":161},"https://docs.gitlab.com/","product documentation",{"text":345,"config":346},"Best practice videos",{"href":347,"dataGaName":348,"dataGaLocation":161},"/getting-started-videos/","best practice videos",{"text":350,"config":351},"Integrations",{"href":352,"dataGaName":152,"dataGaLocation":161},"/integrations/",{"title":354,"items":355},"Discover",[356,361,366,371,375],{"text":357,"config":358},"Customer success stories",{"href":359,"dataGaName":360,"dataGaLocation":161},"/customers/","customer success stories",{"text":362,"config":363},"Blog",{"href":364,"dataGaName":365,"dataGaLocation":161},"/blog/","blog",{"text":367,"config":368},"Demo Hub",{"href":369,"dataGaName":370,"dataGaLocation":161},"/demo-hub/","demo hub",{"text":372,"config":373},"The Source",{"href":374,"dataGaName":365,"dataGaLocation":161},"/the-source/",{"text":376,"config":377},"Remote",{"href":378,"dataGaName":379,"dataGaLocation":161},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":381,"items":382},"Connect",[383,388,393,398,403,408],{"text":384,"config":385},"GitLab Services",{"href":386,"dataGaName":387,"dataGaLocation":161},"/services/","services",{"text":389,"config":390},"Contribute",{"href":391,"dataGaName":392,"dataGaLocation":161},"https://contributors.gitlab.com","contribute",{"text":394,"config":395},"Community",{"href":396,"dataGaName":397,"dataGaLocation":161},"/community/","community",{"text":399,"config":400},"Forum",{"href":401,"dataGaName":402,"dataGaLocation":161},"https://forum.gitlab.com/","forum",{"text":404,"config":405},"Events",{"href":406,"dataGaName":407,"dataGaLocation":161},"/events/","events",{"text":409,"config":410},"Partners",{"href":411,"dataGaName":412,"dataGaLocation":161},"/partners/","partners",{"config":414,"title":417,"text":418,"link":419},{"background":415,"textColor":416},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":420,"config":421},"Read the latest",{"href":422,"dataGaName":423,"dataGaLocation":161},"/whats-new/","whats new",{"text":425,"config":426,"menu":428},"Company",{"dataNavLevelOne":427},"company",{"type":212,"columns":429},[430],{"items":431},[432,437,443,445,450,455,460,465,470,475],{"text":433,"config":434},"About",{"href":435,"dataGaName":436,"dataGaLocation":161},"/company/","about",{"text":438,"config":439,"footerGa":442},"Jobs",{"href":440,"dataGaName":441,"dataGaLocation":161},"/jobs/","jobs",{"dataGaName":441},{"text":404,"config":444},{"href":406,"dataGaName":407,"dataGaLocation":161},{"text":446,"config":447},"Leadership",{"href":448,"dataGaName":449,"dataGaLocation":161},"/company/team/e-group/","leadership",{"text":451,"config":452},"Handbook",{"href":453,"dataGaName":454,"dataGaLocation":161},"https://handbook.gitlab.com/","handbook",{"text":456,"config":457},"Investor relations",{"href":458,"dataGaName":459,"dataGaLocation":161},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":461,"config":462},"Trust Center",{"href":463,"dataGaName":464,"dataGaLocation":161},"/security/","trust center",{"text":466,"config":467},"AI Transparency Center",{"href":468,"dataGaName":469,"dataGaLocation":161},"/ai-transparency-center/","ai transparency center",{"text":471,"config":472},"Newsletter",{"href":473,"dataGaName":474,"dataGaLocation":161},"/company/contact/#contact-forms","newsletter",{"text":476,"config":477},"Press",{"href":478,"dataGaName":479,"dataGaLocation":161},"/press/","press",{"text":481,"config":482,"menu":483},"Contact us",{"dataNavLevelOne":427},{"type":212,"columns":484},[485],{"items":486},[487,492,497],{"text":488,"config":489},"Talk to sales",{"href":490,"dataGaName":491,"dataGaLocation":161},"/sales/","talk to sales",{"text":493,"config":494},"Support portal",{"href":495,"dataGaName":496,"dataGaLocation":161},"https://support.gitlab.com/hc/en-us","support portal",{"text":498,"config":499},"Customer portal",{"href":500,"dataGaName":501,"dataGaLocation":161},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":503,"login":504,"suggestions":511},"Close",{"text":505,"link":506},"To search repositories and projects, login to",{"text":507,"config":508},"gitlab.com",{"href":175,"dataGaName":509,"dataGaLocation":510},"search login","search",{"text":512,"default":513},"Suggestions",[514,516,520,522,526,530],{"text":192,"config":515},{"href":197,"dataGaName":192,"dataGaLocation":510},{"text":517,"config":518},"Code Suggestions (AI)",{"href":519,"dataGaName":517,"dataGaLocation":510},"/solutions/code-suggestions/",{"text":149,"config":521},{"href":229,"dataGaName":149,"dataGaLocation":510},{"text":523,"config":524},"GitLab on AWS",{"href":525,"dataGaName":523,"dataGaLocation":510},"/partners/technology-partners/aws/",{"text":527,"config":528},"GitLab on Google Cloud",{"href":529,"dataGaName":527,"dataGaLocation":510},"/partners/technology-partners/google-cloud-platform/",{"text":531,"config":532},"Why GitLab?",{"href":205,"dataGaName":531,"dataGaLocation":510},{"freeTrial":534,"mobileIcon":539,"desktopIcon":544,"secondaryButton":547},{"text":535,"config":536},"Start free trial",{"href":537,"dataGaName":166,"dataGaLocation":538},"https://gitlab.com/-/trials/new/","nav",{"altText":540,"config":541},"Gitlab Icon",{"src":542,"dataGaName":543,"dataGaLocation":538},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":540,"config":545},{"src":546,"dataGaName":543,"dataGaLocation":538},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":548,"config":549},"Get Started",{"href":550,"dataGaName":551,"dataGaLocation":538},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":553,"mobileIcon":557,"desktopIcon":559},{"text":554,"config":555},"Learn more about GitLab Duo",{"href":197,"dataGaName":556,"dataGaLocation":538},"gitlab duo",{"altText":540,"config":558},{"src":542,"dataGaName":543,"dataGaLocation":538},{"altText":540,"config":560},{"src":546,"dataGaName":543,"dataGaLocation":538},{"button":562,"mobileIcon":567,"desktopIcon":569},{"text":563,"config":564},"/switch",{"href":565,"dataGaName":566,"dataGaLocation":538},"#contact","switch",{"altText":540,"config":568},{"src":542,"dataGaName":543,"dataGaLocation":538},{"altText":540,"config":570},{"src":571,"dataGaName":543,"dataGaLocation":538},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":573,"mobileIcon":578,"desktopIcon":580},{"text":574,"config":575},"Back to pricing",{"href":309,"dataGaName":576,"dataGaLocation":538,"icon":577},"back to pricing","GoBack",{"altText":540,"config":579},{"src":542,"dataGaName":543,"dataGaLocation":538},{"altText":540,"config":581},{"src":546,"dataGaName":543,"dataGaLocation":538},{"title":583,"titleMobile":584,"button":585,"config":590},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":203,"config":586},{"href":587,"dataGaName":588,"dataGaLocation":589},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":591,"disabled":136},"release",{"data":593},{"text":594,"source":595,"edit":601,"contribute":606,"config":611,"items":616,"minimal":824},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":596,"config":597},"View page source",{"href":598,"dataGaName":599,"dataGaLocation":600},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":602,"config":603},"Edit this page",{"href":604,"dataGaName":605,"dataGaLocation":600},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":607,"config":608},"Please contribute",{"href":609,"dataGaName":610,"dataGaLocation":600},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":612,"facebook":613,"youtube":614,"linkedin":615},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[617,664,716,760,792],{"title":307,"links":618,"subMenu":633},[619,623,628],{"text":620,"config":621},"View plans",{"href":309,"dataGaName":622,"dataGaLocation":600},"view plans",{"text":624,"config":625},"Why Premium?",{"href":626,"dataGaName":627,"dataGaLocation":600},"/pricing/premium/","why premium",{"text":629,"config":630},"Why Ultimate?",{"href":631,"dataGaName":632,"dataGaLocation":600},"/pricing/ultimate/","why ultimate",[634],{"title":635,"links":636},"Contact Us",[637,640,642,644,649,654,659],{"text":638,"config":639},"Contact sales",{"href":490,"dataGaName":171,"dataGaLocation":600},{"text":493,"config":641},{"href":495,"dataGaName":496,"dataGaLocation":600},{"text":498,"config":643},{"href":500,"dataGaName":501,"dataGaLocation":600},{"text":645,"config":646},"Status",{"href":647,"dataGaName":648,"dataGaLocation":600},"https://status.gitlab.com/","status",{"text":650,"config":651},"Terms of use",{"href":652,"dataGaName":653,"dataGaLocation":600},"/terms/","terms of use",{"text":655,"config":656},"Privacy statement",{"href":657,"dataGaName":658,"dataGaLocation":600},"/privacy/","privacy statement",{"text":660,"config":661},"Cookie preferences",{"dataGaName":662,"dataGaLocation":600,"id":663,"isOneTrustButton":139},"cookie preferences","ot-sdk-btn",{"title":208,"links":665,"subMenu":674},[666,670],{"text":667,"config":668},"DevSecOps platform",{"href":190,"dataGaName":669,"dataGaLocation":600},"devsecops platform",{"text":671,"config":672},"AI-Assisted Development",{"href":197,"dataGaName":673,"dataGaLocation":600},"ai-assisted development",[675],{"title":676,"links":677},"Topics",[678,683,688,692,697,702,706,711],{"text":679,"config":680},"CICD",{"href":681,"dataGaName":682,"dataGaLocation":600},"/topics/ci-cd/","cicd",{"text":684,"config":685},"GitOps",{"href":686,"dataGaName":687,"dataGaLocation":600},"/topics/gitops/","gitops",{"text":151,"config":689},{"href":690,"dataGaName":691,"dataGaLocation":600},"/topics/devops/","devops",{"text":693,"config":694},"Version Control",{"href":695,"dataGaName":696,"dataGaLocation":600},"/topics/version-control/","version control",{"text":698,"config":699},"DevSecOps",{"href":700,"dataGaName":701,"dataGaLocation":600},"/topics/devsecops/","devsecops",{"text":703,"config":704},"Cloud Native",{"href":705,"dataGaName":150,"dataGaLocation":600},"/topics/cloud-native/",{"text":707,"config":708},"AI for Coding",{"href":709,"dataGaName":710,"dataGaLocation":600},"/topics/devops/ai-for-coding/","ai for coding",{"text":712,"config":713},"Agentic AI",{"href":714,"dataGaName":715,"dataGaLocation":600},"/topics/agentic-ai/","agentic ai",{"title":717,"links":718},"Solutions",[719,721,723,728,732,735,739,742,744,747,750,755],{"text":251,"config":720},{"href":246,"dataGaName":251,"dataGaLocation":600},{"text":240,"config":722},{"href":224,"dataGaName":225,"dataGaLocation":600},{"text":724,"config":725},"Agile development",{"href":726,"dataGaName":727,"dataGaLocation":600},"/solutions/agile-delivery/","agile delivery",{"text":729,"config":730},"SCM",{"href":236,"dataGaName":731,"dataGaLocation":600},"source code management",{"text":679,"config":733},{"href":229,"dataGaName":734,"dataGaLocation":600},"continuous integration & delivery",{"text":736,"config":737},"Value stream management",{"href":279,"dataGaName":738,"dataGaLocation":600},"value stream management",{"text":684,"config":740},{"href":741,"dataGaName":687,"dataGaLocation":600},"/solutions/gitops/",{"text":289,"config":743},{"href":292,"dataGaName":293,"dataGaLocation":600},{"text":745,"config":746},"Small business",{"href":298,"dataGaName":299,"dataGaLocation":600},{"text":748,"config":749},"Public sector",{"href":304,"dataGaName":305,"dataGaLocation":600},{"text":751,"config":752},"Education",{"href":753,"dataGaName":754,"dataGaLocation":600},"/solutions/education/","education",{"text":756,"config":757},"Financial services",{"href":758,"dataGaName":759,"dataGaLocation":600},"/solutions/finance/","financial services",{"title":312,"links":761},[762,764,766,768,771,773,776,778,780,782,784,786,788,790],{"text":325,"config":763},{"href":327,"dataGaName":328,"dataGaLocation":600},{"text":330,"config":765},{"href":332,"dataGaName":333,"dataGaLocation":600},{"text":335,"config":767},{"href":337,"dataGaName":338,"dataGaLocation":600},{"text":340,"config":769},{"href":342,"dataGaName":770,"dataGaLocation":600},"docs",{"text":362,"config":772},{"href":364,"dataGaName":365,"dataGaLocation":600},{"text":774,"config":775},"What's new",{"href":422,"dataGaName":423,"dataGaLocation":600},{"text":357,"config":777},{"href":359,"dataGaName":360,"dataGaLocation":600},{"text":376,"config":779},{"href":378,"dataGaName":379,"dataGaLocation":600},{"text":384,"config":781},{"href":386,"dataGaName":387,"dataGaLocation":600},{"text":389,"config":783},{"href":391,"dataGaName":392,"dataGaLocation":600},{"text":394,"config":785},{"href":396,"dataGaName":397,"dataGaLocation":600},{"text":399,"config":787},{"href":401,"dataGaName":402,"dataGaLocation":600},{"text":404,"config":789},{"href":406,"dataGaName":407,"dataGaLocation":600},{"text":409,"config":791},{"href":411,"dataGaName":412,"dataGaLocation":600},{"title":425,"links":793},[794,796,798,800,802,804,808,813,815,817,819],{"text":433,"config":795},{"href":435,"dataGaName":427,"dataGaLocation":600},{"text":438,"config":797},{"href":440,"dataGaName":441,"dataGaLocation":600},{"text":446,"config":799},{"href":448,"dataGaName":449,"dataGaLocation":600},{"text":451,"config":801},{"href":453,"dataGaName":454,"dataGaLocation":600},{"text":456,"config":803},{"href":458,"dataGaName":459,"dataGaLocation":600},{"text":805,"config":806},"Sustainability",{"href":807,"dataGaName":805,"dataGaLocation":600},"/sustainability/",{"text":809,"config":810},"Diversity, inclusion and belonging (DIB)",{"href":811,"dataGaName":812,"dataGaLocation":600},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":461,"config":814},{"href":463,"dataGaName":464,"dataGaLocation":600},{"text":471,"config":816},{"href":473,"dataGaName":474,"dataGaLocation":600},{"text":476,"config":818},{"href":478,"dataGaName":479,"dataGaLocation":600},{"text":820,"config":821},"Modern Slavery Transparency Statement",{"href":822,"dataGaName":823,"dataGaLocation":600},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":825},[826,829,832],{"text":827,"config":828},"Terms",{"href":652,"dataGaName":653,"dataGaLocation":600},{"text":830,"config":831},"Cookies",{"dataGaName":662,"dataGaLocation":600,"id":663,"isOneTrustButton":139},{"text":833,"config":834},"Privacy",{"href":657,"dataGaName":658,"dataGaLocation":600},[836,850],{"id":837,"title":7,"body":135,"config":838,"content":840,"description":135,"extension":844,"meta":845,"navigation":139,"path":846,"seo":847,"stem":848,"__hash__":849},"blogAuthors/en-us/blog/authors/kelly-hair.yml",{"template":839},"BlogAuthor",{"name":7,"config":841},{"headshot":842,"ctfId":843},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","16z1eHwE7Ok5Ty4C6gpbUY","yml",{},"/en-us/blog/authors/kelly-hair",{},"en-us/blog/authors/kelly-hair","RVe-Nt9OftV5VKVzljr8bzFMxCjUB-TmDxqlt6f9JgA",{"id":851,"title":8,"body":135,"config":852,"content":853,"description":135,"extension":844,"meta":856,"navigation":139,"path":857,"seo":858,"stem":859,"__hash__":860},"blogAuthors/en-us/blog/authors/anthony-davanzo.yml",{"template":839},{"name":8,"config":854},{"headshot":842,"ctfId":855},"4KccrB6k5jq46xQRDOdWSb",{},"/en-us/blog/authors/anthony-davanzo",{},"en-us/blog/authors/anthony-davanzo","bHDUEvHpa90FeKSviOxsB5cCaq349QGsObbd3HsrFB8",[862,870,878],{"title":863,"description":864,"heroImage":865,"category":131,"date":866,"authors":867,"slug":869,"externalUrl":135},"How we overhauled GitLab navigation","Users weren't getting what they needed from our navigation. Here are the steps we took to turn that experience around.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682884/Blog/Hero%20Images/navigation.jpg","2023-08-15",[868],"Ashley Knobloch","navigation-research-blog-post",{"title":871,"description":872,"heroImage":873,"category":131,"date":874,"authors":875,"slug":877,"externalUrl":135},"Beautifying our UI: Giving GitLab build features a fresh look","Get an inside look at how we are improving the usability of GitLab build features with multiple visual design improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682807/Blog/Hero%20Images/beautify.jpg","2023-07-05",[876],"Veethika Mishra","beautifying-of-our-ui",{"title":879,"description":880,"heroImage":881,"category":131,"date":882,"authors":883,"slug":885,"externalUrl":135},"4 best practices leading orgs to release software faster","GitLab's 2023 Global DevSecOps Survey illuminates the strategies that organizations deploying more frequently have in common.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663908/Blog/Hero%20Images/2023-devsecops-report-blog-banner2.png","2023-06-08",[884],"Kristina Weis","best-practices-leading-orgs-to-release-software-faster",{"promotions":887},[888,902,914,926],{"id":889,"categories":890,"header":892,"text":893,"button":894,"image":899},"ai-modernization",[891],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":895,"config":896},"Get your AI maturity score",{"href":897,"dataGaName":898,"dataGaLocation":365},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":900},{"src":901},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":903,"categories":904,"header":906,"text":893,"button":907,"image":911},"devops-modernization",[905,701],"product","Are you just managing tools or shipping innovation?",{"text":908,"config":909},"Get your DevOps maturity score",{"href":910,"dataGaName":898,"dataGaLocation":365},"/assessments/devops-modernization-assessment/",{"config":912},{"src":913},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":915,"categories":916,"header":918,"text":893,"button":919,"image":923},"security-modernization",[917],"security","Are you trading speed for security?",{"text":920,"config":921},"Get your security maturity score",{"href":922,"dataGaName":898,"dataGaLocation":365},"/assessments/security-modernization-assessment/",{"config":924},{"src":925},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":927,"paths":928,"header":931,"text":932,"button":933,"image":938},"github-azure-migration",[929,930],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":934,"config":935},"See how GitLab compares to GitHub",{"href":936,"dataGaName":937,"dataGaLocation":365},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":939},{"src":913},{"header":941,"blurb":942,"button":943,"secondaryButton":948},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":944,"config":945},"Get your free trial",{"href":946,"dataGaName":166,"dataGaLocation":947},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":638,"config":949},{"href":490,"dataGaName":171,"dataGaLocation":947},1786803760617]