[{"data":1,"prerenderedAt":997},["ShallowReactive",2],{"/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes":3,"navigation-en-us":212,"banner-en-us":639,"footer-en-us":649,"blog-post-authors-en-us-Aaron Peters, Member, Good Docs Project":893,"blog-related-posts-en-us-pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes":908,"blog-promotions-en-us":933,"next-steps-en-us":987},{"id":4,"title":5,"authors":6,"body":8,"category":189,"date":190,"description":191,"extension":192,"externalUrl":193,"faq":193,"featured":194,"heroImage":195,"meta":196,"navigation":194,"path":197,"seo":198,"slug":203,"stem":204,"tags":205,"template":210,"updatedDate":193,"__hash__":211},"blogPosts/en-us/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes.md","Pair GitLab and The Good Docs Project template to improve release notes",[7],"Aaron Peters, Member, Good Docs Project",{"type":9,"value":10,"toc":181},"minimark",[11,15,18,33,38,41,58,67,71,74,81,88,92,116,120,130,134,141,145,148,163],[12,13,14],"p",{},"Release notes allow software users to quickly understand the changes that come with the latest version of software. They also allow software publishers to highlight changes as important, or provide crucial information about the impact an upgrade may have. Some tools allow developers to \"generate\" release notes based on sources of data (such as completed items in DevOps systems), but notes produced this way tend to simply list changes without context. Writing release notes, however, provides teams with the opportunity to \"tell the story\" of the changes the new software version will bring.",[12,16,17],{},"Though this process certainly requires a greater investment of time than publishing a basic changelog does, your users will certainly appreciate the results: release notes that explain the key elements of the release (such as new features, improvements, and known issues) in a well-organized, human-readable way.",[12,19,20,26,27,32],{},[21,22,25],"a",{"href":23,"rel":24},"https://thegooddocsproject.dev/welcome/",[],"The Good Docs Project's"," release notes template is designed to help you do exactly that. And the combination of GitLab's work management platform and our own ",[21,28,31],{"href":29,"rel":30},"https://gitlab.com/tgdp/templates/-/tree/main/release-notes?ref_type=heads",[],"Release Notes template"," makes the job of putting out good, informative release notes easier.",[34,35,37],"h2",{"id":36},"the-anatomy-of-quality-release-notes","The anatomy of quality release notes",[12,39,40],{},"Release notes that provide readers with a good picture of the version's changes require two primary inputs:",[42,43,44,52],"ul",{},[45,46,47,51],"li",{},[48,49,50],"strong",{},"A list of the changes included in the release","\nAt The Good Docs Project, all the management of the work of our contributors occurs in GitLab. So it's easy to refer to our release plans to identify which additions and improvements were completed and included in the release.",[45,53,54,57],{},[48,55,56],{},"A description of those changes including reasoning, importance, and impact","\nThis is where our project's Release Notes template can assist. Rather than staring at a blank page, wondering where to start, users can begin to fill in our template step-by-step, adjusting to taste.",[12,59,60,61,66],{},"We'll walk through each of these steps in the following sections as they occurred when creating the release notes to ",[21,62,65],{"href":63,"rel":64},"https://gitlab.com/tgdp/templates/-/releases/v1.1.0",[],"our recent Dragon release",".",[34,68,70],{"id":69},"gathering-a-releases-changes","Gathering a release's changes",[12,72,73],{},"At The Good Docs Project, we use GitLab features — including setting milestones, creating/assigning issues, and tagging releases — to get our work out into the community (our prior blog post here at GitLab describes this process). The platform allows our worldwide contributor base to easily discover new things to work on and update everyone on their progress once they select something. When the time comes to package a release, it brings the added benefit of a tidy list of issues included in the project at the time of release.",[75,76],"img",{"src":77,"alt":78,"width":79,"height":80},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176084/Blog/hxo08y06apkumwuwm80c.png","The Milestone screen in GitLab provides an easy-to-scan list of work included in the release","100%","auto",[12,82,83,84,87],{},"When creating the release notes for our project's Dragon milestone, we reviewed all the items included in the ",[48,85,86],{},"Closed"," column on the Milestone screen. This allowed us to pick the most important changes to highlight, while leaving out issues that wouldn't significantly impact a user's experience.",[34,89,91],{"id":90},"crafting-the-release-notes","Crafting the release notes",[12,93,94,95,99,100,105,106,111,112,115],{},"Equipped with a list of all the key updates in the release, we start writing the release notes. Our project's ",[21,96,31],{"href":97,"rel":98},"https://gitlab.com/tgdp/templates/-/blob/main/release-notes/template-release-notes.md?ref_type=heads",[]," provides a ready-made Markdown skeleton comprised of key sections based on our contributors' research and experience. The accompanying ",[21,101,104],{"href":102,"rel":103},"https://gitlab.com/tgdp/templates/-/blob/main/release-notes/guide-release-notes.md?ref_type=heads",[],"usage guide"," and ",[21,107,110],{"href":108,"rel":109},"https://gitlab.com/tgdp/templates/-/blob/main/release-notes/example-release-notes.md?ref_type=heads",[],"example of the template in action"," provides additional tips and suggestions for writing effective release notes. The latter references our ",[48,113,114],{},"Chronologue"," project, a fictional telescope and application that can see through time, which is naturally well-documented.",[75,117],{"src":118,"alt":119,"width":79,"height":80},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176091/Blog/jcpfxjqb5jpidssm3jlr.png","The Release Notes template comes ready to populate with 'the story' of your latest release",[12,121,122,123,105,126,129],{},"Of course, our template is simply a starting point. Teams should always feel free to add sections where they make sense, remove them where they don't, and make the style of it their own. For example, we left out the ",[48,124,125],{},"Bug fixes",[48,127,128],{},"Known issues"," sections in our latest Dragon release notes, instead focusing on the new additions and improvements this release brought.",[34,131,133],{"id":132},"adding-release-notes-to-the-release","Adding release notes to the release",[12,135,136,137,140],{},"GitLab's build tools also make it easy to add our notes while actually creating the release. First, we tagged one of our project's commits, then created a release from the tag. On GitLab's ",[48,138,139],{},"Releases > New"," screen, we can copy and paste the Markdown we wrote to automatically format the release notes.",[75,142],{"src":143,"alt":144,"width":79,"height":80},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176096/Blog/otwduhvokgnqclon4ugx.png","Our templates are already in Markdown format, so when it's time to paste them into the release it works automagically!",[12,146,147],{},"And just like that our release notes are done. With the assistance of the template, they required just an hour to write. And after an additional half-hour of work creating the release, we're ready to send our work out to the community. Our experience using the combination of GitLab and our templates has made the process of shipping our templates a piece of cake.",[12,149,150,151,156,157,162],{},"If you'd like to check out our templates, feel free to browse ",[21,152,155],{"href":153,"rel":154},"https://gitlab.com/tgdp",[],"our GitLab project",".\nOr visit our ",[21,158,161],{"href":159,"rel":160},"https://thegooddocsproject.dev/community/",[],"community page"," to learn how to join us in leveling up the state of technical documentation.",[12,164,165],{},[166,167,168,169,174,175,180],"em",{},"The ",[21,170,173],{"href":171,"rel":172},"https://about.gitlab.com/solutions/open-source/partners/",[],"GitLab Open Source Partners"," are building the future of open source on GitLab. ",[21,176,179],{"href":177,"rel":178},"https://gitlab.com/gitlab-com/marketing/developer-relations/open-source-program/gitlab-open-source-partners",[],"Connect with them"," on Gitlab.com.",{"title":182,"searchDepth":183,"depth":183,"links":184},"",2,[185,186,187,188],{"id":36,"depth":183,"text":37},{"id":69,"depth":183,"text":70},{"id":90,"depth":183,"text":91},{"id":132,"depth":183,"text":133},"open-source","2024-01-23","Creating compelling, detailed, human-readable notes for software releases is important. Using GitLab and this template from The Good Docs Project makes it easier.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099541/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_432673748_5xWPNsktdz2QChWhl16jGq_1750099540656.jpg",{},"/en-us/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes",{"title":5,"description":191,"ogTitle":5,"ogDescription":191,"noIndex":199,"ogImage":195,"ogUrl":200,"ogSiteName":201,"ogType":202,"canonicalUrls":200},false,"https://about.gitlab.com/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes","https://about.gitlab.com","article","pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes","en-us/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes",[206,207,208,209],"open source","DevSecOps platform","community","tutorial","BlogPost","-xLULxv9vEUulReBnNjpk9EsN_v3G2ddal4r2mj4LmY",{"logo":213,"freeTrial":218,"sales":223,"login":228,"items":233,"search":559,"minimal":590,"duo":609,"switchNav":618,"pricingDeployment":629},{"config":214},{"href":215,"dataGaName":216,"dataGaLocation":217},"/","gitlab logo","header",{"text":219,"config":220},"Get free trial",{"href":221,"dataGaName":222,"dataGaLocation":217},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":224,"config":225},"Request a demo",{"href":226,"dataGaName":227,"dataGaLocation":217},"/sales/?contact-topic=request-demo","sales",{"text":229,"config":230},"Sign in",{"href":231,"dataGaName":232,"dataGaLocation":217},"https://gitlab.com/users/sign_in/","sign in",[234,263,363,368,481,537],{"text":235,"config":236,"menu":238},"Platform",{"dataNavLevelOne":237},"platform",{"type":239,"columns":240},"cards",[241,247,255],{"title":235,"description":242,"link":243},"The intelligent orchestration platform for DevSecOps",{"text":244,"config":245},"Explore our Platform",{"href":246,"dataGaName":237,"dataGaLocation":217},"/platform/",{"title":248,"description":249,"link":250},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":251,"config":252},"Meet GitLab Duo",{"href":253,"dataGaName":254,"dataGaLocation":217},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":256,"description":257,"link":258},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":259,"config":260},"Learn more",{"href":261,"dataGaName":262,"dataGaLocation":217},"/why-gitlab/","why gitlab",{"text":264,"left":194,"config":265,"menu":267},"Product",{"dataNavLevelOne":266},"solutions",{"type":268,"link":269,"columns":273,"feature":342},"lists",{"text":270,"config":271},"View all Solutions",{"href":272,"dataGaName":266,"dataGaLocation":217},"/solutions/",[274,298,321],{"title":275,"description":276,"link":277,"items":282},"Automation","CI/CD and automation to accelerate deployment",{"config":278},{"icon":279,"href":280,"dataGaName":281,"dataGaLocation":217},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[283,287,290,294],{"text":284,"config":285},"CI/CD",{"href":286,"dataGaLocation":217,"dataGaName":284},"/solutions/continuous-integration/",{"text":248,"config":288},{"href":253,"dataGaLocation":217,"dataGaName":289},"gitlab duo agent platform - product menu",{"text":291,"config":292},"Source Code Management",{"href":293,"dataGaLocation":217,"dataGaName":291},"/solutions/source-code-management/",{"text":295,"config":296},"Automated Software Delivery",{"href":280,"dataGaLocation":217,"dataGaName":297},"Automated software delivery",{"title":299,"description":300,"link":301,"items":306},"Security","Deliver code faster without compromising security",{"config":302},{"href":303,"dataGaName":304,"dataGaLocation":217,"icon":305},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[307,311,316],{"text":308,"config":309},"Application Security Testing",{"href":303,"dataGaName":310,"dataGaLocation":217},"Application security testing",{"text":312,"config":313},"Software Supply Chain Security",{"href":314,"dataGaLocation":217,"dataGaName":315},"/solutions/supply-chain/","Software supply chain security",{"text":317,"config":318},"Software Compliance",{"href":319,"dataGaName":320,"dataGaLocation":217},"/solutions/software-compliance/","software compliance",{"title":322,"link":323,"items":328},"Measurement",{"config":324},{"icon":325,"href":326,"dataGaName":327,"dataGaLocation":217},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[329,333,337],{"text":330,"config":331},"Visibility & Measurement",{"href":326,"dataGaLocation":217,"dataGaName":332},"Visibility and Measurement",{"text":334,"config":335},"Value Stream Management",{"href":336,"dataGaLocation":217,"dataGaName":334},"/solutions/value-stream-management/",{"text":338,"config":339},"Analytics & Insights",{"href":340,"dataGaLocation":217,"dataGaName":341},"/solutions/analytics-and-insights/","Analytics and insights",{"title":343,"type":268,"items":344},"GitLab for",[345,351,357],{"text":346,"config":347},"Enterprise",{"icon":348,"href":349,"dataGaLocation":217,"dataGaName":350},"Building","/enterprise/","enterprise",{"text":352,"config":353},"Small Business",{"icon":354,"href":355,"dataGaLocation":217,"dataGaName":356},"Work","/small-business/","small business",{"text":358,"config":359},"Public Sector",{"icon":360,"href":361,"dataGaLocation":217,"dataGaName":362},"Organization","/solutions/public-sector/","public sector",{"text":364,"config":365},"Pricing",{"href":366,"dataGaName":367,"dataGaLocation":217,"dataNavLevelOne":367},"/pricing/","pricing",{"text":369,"config":370,"menu":372},"Resources",{"dataNavLevelOne":371},"resources",{"type":268,"link":373,"columns":377,"feature":470},{"text":374,"config":375},"View all resources",{"href":376,"dataGaName":371,"dataGaLocation":217},"/resources/",[378,411,438],{"title":379,"items":380},"Getting started",[381,386,391,396,401,406],{"text":382,"config":383},"Install",{"href":384,"dataGaName":385,"dataGaLocation":217},"/install/","install",{"text":387,"config":388},"Quick start guides",{"href":389,"dataGaName":390,"dataGaLocation":217},"/get-started/","quick setup checklists",{"text":392,"config":393},"Learn",{"href":394,"dataGaLocation":217,"dataGaName":395},"https://university.gitlab.com/","learn",{"text":397,"config":398},"Product documentation",{"href":399,"dataGaName":400,"dataGaLocation":217},"https://docs.gitlab.com/","product documentation",{"text":402,"config":403},"Best practice videos",{"href":404,"dataGaName":405,"dataGaLocation":217},"/getting-started-videos/","best practice videos",{"text":407,"config":408},"Integrations",{"href":409,"dataGaName":410,"dataGaLocation":217},"/integrations/","integrations",{"title":412,"items":413},"Discover",[414,419,424,429,433],{"text":415,"config":416},"Customer success stories",{"href":417,"dataGaName":418,"dataGaLocation":217},"/customers/","customer success stories",{"text":420,"config":421},"Blog",{"href":422,"dataGaName":423,"dataGaLocation":217},"/blog/","blog",{"text":425,"config":426},"Demo Hub",{"href":427,"dataGaName":428,"dataGaLocation":217},"/demo-hub/","demo hub",{"text":430,"config":431},"The Source",{"href":432,"dataGaName":423,"dataGaLocation":217},"/the-source/",{"text":434,"config":435},"Remote",{"href":436,"dataGaName":437,"dataGaLocation":217},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":439,"items":440},"Connect",[441,446,451,455,460,465],{"text":442,"config":443},"GitLab Services",{"href":444,"dataGaName":445,"dataGaLocation":217},"/services/","services",{"text":447,"config":448},"Contribute",{"href":449,"dataGaName":450,"dataGaLocation":217},"https://contributors.gitlab.com","contribute",{"text":452,"config":453},"Community",{"href":454,"dataGaName":208,"dataGaLocation":217},"/community/",{"text":456,"config":457},"Forum",{"href":458,"dataGaName":459,"dataGaLocation":217},"https://forum.gitlab.com/","forum",{"text":461,"config":462},"Events",{"href":463,"dataGaName":464,"dataGaLocation":217},"/events/","events",{"text":466,"config":467},"Partners",{"href":468,"dataGaName":469,"dataGaLocation":217},"/partners/","partners",{"config":471,"title":474,"text":475,"link":476},{"background":472,"textColor":473},"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":477,"config":478},"Read the latest",{"href":479,"dataGaName":480,"dataGaLocation":217},"/whats-new/","whats new",{"text":482,"config":483,"menu":485},"Company",{"dataNavLevelOne":484},"company",{"type":268,"columns":486},[487],{"items":488},[489,494,500,502,507,512,517,522,527,532],{"text":490,"config":491},"About",{"href":492,"dataGaName":493,"dataGaLocation":217},"/company/","about",{"text":495,"config":496,"footerGa":499},"Jobs",{"href":497,"dataGaName":498,"dataGaLocation":217},"/jobs/","jobs",{"dataGaName":498},{"text":461,"config":501},{"href":463,"dataGaName":464,"dataGaLocation":217},{"text":503,"config":504},"Leadership",{"href":505,"dataGaName":506,"dataGaLocation":217},"/company/team/e-group/","leadership",{"text":508,"config":509},"Handbook",{"href":510,"dataGaName":511,"dataGaLocation":217},"https://handbook.gitlab.com/","handbook",{"text":513,"config":514},"Investor relations",{"href":515,"dataGaName":516,"dataGaLocation":217},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":518,"config":519},"Trust Center",{"href":520,"dataGaName":521,"dataGaLocation":217},"/security/","trust center",{"text":523,"config":524},"AI Transparency Center",{"href":525,"dataGaName":526,"dataGaLocation":217},"/ai-transparency-center/","ai transparency center",{"text":528,"config":529},"Newsletter",{"href":530,"dataGaName":531,"dataGaLocation":217},"/company/contact/#contact-forms","newsletter",{"text":533,"config":534},"Press",{"href":535,"dataGaName":536,"dataGaLocation":217},"/press/","press",{"text":538,"config":539,"menu":540},"Contact us",{"dataNavLevelOne":484},{"type":268,"columns":541},[542],{"items":543},[544,549,554],{"text":545,"config":546},"Talk to sales",{"href":547,"dataGaName":548,"dataGaLocation":217},"/sales/","talk to sales",{"text":550,"config":551},"Support portal",{"href":552,"dataGaName":553,"dataGaLocation":217},"https://support.gitlab.com/hc/en-us","support portal",{"text":555,"config":556},"Customer portal",{"href":557,"dataGaName":558,"dataGaLocation":217},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":560,"login":561,"suggestions":568},"Close",{"text":562,"link":563},"To search repositories and projects, login to",{"text":564,"config":565},"gitlab.com",{"href":231,"dataGaName":566,"dataGaLocation":567},"search login","search",{"text":569,"default":570},"Suggestions",[571,573,577,579,583,587],{"text":248,"config":572},{"href":253,"dataGaName":248,"dataGaLocation":567},{"text":574,"config":575},"Code Suggestions (AI)",{"href":576,"dataGaName":574,"dataGaLocation":567},"/solutions/code-suggestions/",{"text":284,"config":578},{"href":286,"dataGaName":284,"dataGaLocation":567},{"text":580,"config":581},"GitLab on AWS",{"href":582,"dataGaName":580,"dataGaLocation":567},"/partners/technology-partners/aws/",{"text":584,"config":585},"GitLab on Google Cloud",{"href":586,"dataGaName":584,"dataGaLocation":567},"/partners/technology-partners/google-cloud-platform/",{"text":588,"config":589},"Why GitLab?",{"href":261,"dataGaName":588,"dataGaLocation":567},{"freeTrial":591,"mobileIcon":596,"desktopIcon":601,"secondaryButton":604},{"text":592,"config":593},"Start free trial",{"href":594,"dataGaName":222,"dataGaLocation":595},"https://gitlab.com/-/trials/new/","nav",{"altText":597,"config":598},"Gitlab Icon",{"src":599,"dataGaName":600,"dataGaLocation":595},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":597,"config":602},{"src":603,"dataGaName":600,"dataGaLocation":595},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":605,"config":606},"Get Started",{"href":607,"dataGaName":608,"dataGaLocation":595},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":610,"mobileIcon":614,"desktopIcon":616},{"text":611,"config":612},"Learn more about GitLab Duo",{"href":253,"dataGaName":613,"dataGaLocation":595},"gitlab duo",{"altText":597,"config":615},{"src":599,"dataGaName":600,"dataGaLocation":595},{"altText":597,"config":617},{"src":603,"dataGaName":600,"dataGaLocation":595},{"button":619,"mobileIcon":624,"desktopIcon":626},{"text":620,"config":621},"/switch",{"href":622,"dataGaName":623,"dataGaLocation":595},"#contact","switch",{"altText":597,"config":625},{"src":599,"dataGaName":600,"dataGaLocation":595},{"altText":597,"config":627},{"src":628,"dataGaName":600,"dataGaLocation":595},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":630,"mobileIcon":635,"desktopIcon":637},{"text":631,"config":632},"Back to pricing",{"href":366,"dataGaName":633,"dataGaLocation":595,"icon":634},"back to pricing","GoBack",{"altText":597,"config":636},{"src":599,"dataGaName":600,"dataGaLocation":595},{"altText":597,"config":638},{"src":603,"dataGaName":600,"dataGaLocation":595},{"title":640,"titleMobile":641,"button":642,"config":647},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":259,"config":643},{"href":644,"dataGaName":645,"dataGaLocation":646},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":648,"disabled":199},"release",{"data":650},{"text":651,"source":652,"edit":658,"contribute":663,"config":668,"items":673,"minimal":882},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":653,"config":654},"View page source",{"href":655,"dataGaName":656,"dataGaLocation":657},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":659,"config":660},"Edit this page",{"href":661,"dataGaName":662,"dataGaLocation":657},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":664,"config":665},"Please contribute",{"href":666,"dataGaName":667,"dataGaLocation":657},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":669,"facebook":670,"youtube":671,"linkedin":672},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[674,721,774,818,850],{"title":364,"links":675,"subMenu":690},[676,680,685],{"text":677,"config":678},"View plans",{"href":366,"dataGaName":679,"dataGaLocation":657},"view plans",{"text":681,"config":682},"Why Premium?",{"href":683,"dataGaName":684,"dataGaLocation":657},"/pricing/premium/","why premium",{"text":686,"config":687},"Why Ultimate?",{"href":688,"dataGaName":689,"dataGaLocation":657},"/pricing/ultimate/","why ultimate",[691],{"title":692,"links":693},"Contact Us",[694,697,699,701,706,711,716],{"text":695,"config":696},"Contact sales",{"href":547,"dataGaName":227,"dataGaLocation":657},{"text":550,"config":698},{"href":552,"dataGaName":553,"dataGaLocation":657},{"text":555,"config":700},{"href":557,"dataGaName":558,"dataGaLocation":657},{"text":702,"config":703},"Status",{"href":704,"dataGaName":705,"dataGaLocation":657},"https://status.gitlab.com/","status",{"text":707,"config":708},"Terms of use",{"href":709,"dataGaName":710,"dataGaLocation":657},"/terms/","terms of use",{"text":712,"config":713},"Privacy statement",{"href":714,"dataGaName":715,"dataGaLocation":657},"/privacy/","privacy statement",{"text":717,"config":718},"Cookie preferences",{"dataGaName":719,"dataGaLocation":657,"id":720,"isOneTrustButton":194},"cookie preferences","ot-sdk-btn",{"title":264,"links":722,"subMenu":730},[723,726],{"text":207,"config":724},{"href":246,"dataGaName":725,"dataGaLocation":657},"devsecops platform",{"text":727,"config":728},"AI-Assisted Development",{"href":253,"dataGaName":729,"dataGaLocation":657},"ai-assisted development",[731],{"title":732,"links":733},"Topics",[734,739,744,749,754,759,764,769],{"text":735,"config":736},"CICD",{"href":737,"dataGaName":738,"dataGaLocation":657},"/topics/ci-cd/","cicd",{"text":740,"config":741},"GitOps",{"href":742,"dataGaName":743,"dataGaLocation":657},"/topics/gitops/","gitops",{"text":745,"config":746},"DevOps",{"href":747,"dataGaName":748,"dataGaLocation":657},"/topics/devops/","devops",{"text":750,"config":751},"Version Control",{"href":752,"dataGaName":753,"dataGaLocation":657},"/topics/version-control/","version control",{"text":755,"config":756},"DevSecOps",{"href":757,"dataGaName":758,"dataGaLocation":657},"/topics/devsecops/","devsecops",{"text":760,"config":761},"Cloud Native",{"href":762,"dataGaName":763,"dataGaLocation":657},"/topics/cloud-native/","cloud native",{"text":765,"config":766},"AI for Coding",{"href":767,"dataGaName":768,"dataGaLocation":657},"/topics/devops/ai-for-coding/","ai for coding",{"text":770,"config":771},"Agentic AI",{"href":772,"dataGaName":773,"dataGaLocation":657},"/topics/agentic-ai/","agentic ai",{"title":775,"links":776},"Solutions",[777,779,781,786,790,793,797,800,802,805,808,813],{"text":308,"config":778},{"href":303,"dataGaName":308,"dataGaLocation":657},{"text":297,"config":780},{"href":280,"dataGaName":281,"dataGaLocation":657},{"text":782,"config":783},"Agile development",{"href":784,"dataGaName":785,"dataGaLocation":657},"/solutions/agile-delivery/","agile delivery",{"text":787,"config":788},"SCM",{"href":293,"dataGaName":789,"dataGaLocation":657},"source code management",{"text":735,"config":791},{"href":286,"dataGaName":792,"dataGaLocation":657},"continuous integration & delivery",{"text":794,"config":795},"Value stream management",{"href":336,"dataGaName":796,"dataGaLocation":657},"value stream management",{"text":740,"config":798},{"href":799,"dataGaName":743,"dataGaLocation":657},"/solutions/gitops/",{"text":346,"config":801},{"href":349,"dataGaName":350,"dataGaLocation":657},{"text":803,"config":804},"Small business",{"href":355,"dataGaName":356,"dataGaLocation":657},{"text":806,"config":807},"Public sector",{"href":361,"dataGaName":362,"dataGaLocation":657},{"text":809,"config":810},"Education",{"href":811,"dataGaName":812,"dataGaLocation":657},"/solutions/education/","education",{"text":814,"config":815},"Financial services",{"href":816,"dataGaName":817,"dataGaLocation":657},"/solutions/finance/","financial services",{"title":369,"links":819},[820,822,824,826,829,831,834,836,838,840,842,844,846,848],{"text":382,"config":821},{"href":384,"dataGaName":385,"dataGaLocation":657},{"text":387,"config":823},{"href":389,"dataGaName":390,"dataGaLocation":657},{"text":392,"config":825},{"href":394,"dataGaName":395,"dataGaLocation":657},{"text":397,"config":827},{"href":399,"dataGaName":828,"dataGaLocation":657},"docs",{"text":420,"config":830},{"href":422,"dataGaName":423,"dataGaLocation":657},{"text":832,"config":833},"What's new",{"href":479,"dataGaName":480,"dataGaLocation":657},{"text":415,"config":835},{"href":417,"dataGaName":418,"dataGaLocation":657},{"text":434,"config":837},{"href":436,"dataGaName":437,"dataGaLocation":657},{"text":442,"config":839},{"href":444,"dataGaName":445,"dataGaLocation":657},{"text":447,"config":841},{"href":449,"dataGaName":450,"dataGaLocation":657},{"text":452,"config":843},{"href":454,"dataGaName":208,"dataGaLocation":657},{"text":456,"config":845},{"href":458,"dataGaName":459,"dataGaLocation":657},{"text":461,"config":847},{"href":463,"dataGaName":464,"dataGaLocation":657},{"text":466,"config":849},{"href":468,"dataGaName":469,"dataGaLocation":657},{"title":482,"links":851},[852,854,856,858,860,862,866,871,873,875,877],{"text":490,"config":853},{"href":492,"dataGaName":484,"dataGaLocation":657},{"text":495,"config":855},{"href":497,"dataGaName":498,"dataGaLocation":657},{"text":503,"config":857},{"href":505,"dataGaName":506,"dataGaLocation":657},{"text":508,"config":859},{"href":510,"dataGaName":511,"dataGaLocation":657},{"text":513,"config":861},{"href":515,"dataGaName":516,"dataGaLocation":657},{"text":863,"config":864},"Sustainability",{"href":865,"dataGaName":863,"dataGaLocation":657},"/sustainability/",{"text":867,"config":868},"Diversity, inclusion and belonging (DIB)",{"href":869,"dataGaName":870,"dataGaLocation":657},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":518,"config":872},{"href":520,"dataGaName":521,"dataGaLocation":657},{"text":528,"config":874},{"href":530,"dataGaName":531,"dataGaLocation":657},{"text":533,"config":876},{"href":535,"dataGaName":536,"dataGaLocation":657},{"text":878,"config":879},"Modern Slavery Transparency Statement",{"href":880,"dataGaName":881,"dataGaLocation":657},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":883},[884,887,890],{"text":885,"config":886},"Terms",{"href":709,"dataGaName":710,"dataGaLocation":657},{"text":888,"config":889},"Cookies",{"dataGaName":719,"dataGaLocation":657,"id":720,"isOneTrustButton":194},{"text":891,"config":892},"Privacy",{"href":714,"dataGaName":715,"dataGaLocation":657},[894],{"id":895,"title":896,"body":193,"config":897,"content":899,"description":193,"extension":902,"meta":903,"navigation":194,"path":904,"seo":905,"stem":906,"__hash__":907},"blogAuthors/en-us/blog/authors/aaron-peters-member-good-docs-project.yml","Aaron Peters Member Good Docs Project",{"template":898},"BlogAuthor",{"name":7,"config":900},{"headshot":182,"ctfId":901},"7KZoxZ7kn5c5DAvuDP6wtx","yml",{},"/en-us/blog/authors/aaron-peters-member-good-docs-project",{},"en-us/blog/authors/aaron-peters-member-good-docs-project","_RgDbi0AwAK4C-0BAud8GxIgNGD4zraii6s8ghKdYXA",[909,917,925],{"title":910,"description":911,"heroImage":912,"category":189,"date":913,"authors":914,"slug":916,"externalUrl":193},"What's new in Git 2.55.0?","Learn about the new features and changes in Git 2.55, including a new git-history(1) fixup command, an fsmonitor daemon for Linux, pushing to remote groups, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782732487/ztwgrvlolpifo01vj8qc.png","2026-06-29",[915],"Toon Claes","whats-new-in-git-2-55-0",{"title":918,"description":919,"heroImage":920,"category":189,"date":921,"authors":922,"slug":924,"externalUrl":193},"GitLab AI Hackathon 2026: Meet the winners","Nearly 7,000 developers built 600+ AI agents and flows on GitLab Duo Agent Platform. Find out who won and what they created.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[923],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":926,"description":927,"heroImage":928,"category":189,"date":929,"authors":930,"slug":932,"externalUrl":193},"What’s new in Git 2.54.0?","Learn about release contributions, including new repository maintenance, a new command to edit commit history, a replacement for git-sizer(1), and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782734716/ztwgrvlolpifo01vj8qc.png","2026-04-20",[931],"Patrick Steinhardt","whats-new-in-git-2-54-0",{"promotions":934},[935,949,961,973],{"id":936,"categories":937,"header":939,"text":940,"button":941,"image":946},"ai-modernization",[938],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":942,"config":943},"Get your AI maturity score",{"href":944,"dataGaName":945,"dataGaLocation":423},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":947},{"src":948},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":950,"categories":951,"header":953,"text":940,"button":954,"image":958},"devops-modernization",[952,758],"product","Are you just managing tools or shipping innovation?",{"text":955,"config":956},"Get your DevOps maturity score",{"href":957,"dataGaName":945,"dataGaLocation":423},"/assessments/devops-modernization-assessment/",{"config":959},{"src":960},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":962,"categories":963,"header":965,"text":940,"button":966,"image":970},"security-modernization",[964],"security","Are you trading speed for security?",{"text":967,"config":968},"Get your security maturity score",{"href":969,"dataGaName":945,"dataGaLocation":423},"/assessments/security-modernization-assessment/",{"config":971},{"src":972},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":974,"paths":975,"header":978,"text":979,"button":980,"image":985},"github-azure-migration",[976,977],"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":981,"config":982},"See how GitLab compares to GitHub",{"href":983,"dataGaName":984,"dataGaLocation":423},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":986},{"src":960},{"header":988,"blurb":989,"button":990,"secondaryButton":995},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":991,"config":992},"Get your free trial",{"href":993,"dataGaName":222,"dataGaLocation":994},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":695,"config":996},{"href":547,"dataGaName":227,"dataGaLocation":994},1786803772106]