[{"data":1,"prerenderedAt":959},["ShallowReactive",2],{"/blog/fine-grained-job-tokens-ga":3,"navigation-en-us":163,"banner-en-us":587,"footer-en-us":597,"blog-post-authors-en-us-Alex Mark|Joe Randazzo":842,"blog-related-posts-en-us-fine-grained-job-tokens-ga":869,"blog-promotions-en-us":895,"next-steps-en-us":949},{"id":4,"title":5,"authors":6,"body":9,"category":146,"date":147,"description":148,"extension":149,"externalUrl":150,"faq":150,"featured":151,"heroImage":152,"meta":153,"navigation":154,"path":155,"seo":156,"slug":157,"stem":158,"tags":159,"template":161,"updatedDate":150,"__hash__":162},"blogPosts/en-us/blog/fine-grained-job-tokens-ga.md","Fine-grained permissions for job tokens is now GA",[7,8],"Alex Mark","Joe Randazzo",{"type":10,"value":11,"toc":140},"minimark",[12,28,37,40,71,80,87,92,95,98,125,129,132],[13,14,15,21,22,27],"p",{},[16,17,20],"a",{"href":18,"rel":19},"https://about.gitlab.com/topics/ci-cd/",[],"CI/CD"," pipelines often inherit overprivileged permissions from user accounts, creating significant security risks if pipelines are compromised or tokens are leaked. ",[16,23,26],{"href":24,"rel":25},"https://docs.gitlab.com/releases/18/gitlab-18-3-released/",[],"GitLab 18.3"," introduces fine-grained permissions for job tokens to solve this problem, moving this security enhancement from Beta to GA.",[13,29,30,31,36],{},"This capability allows maintainers to implement granular permissions that control job token access to API resources. Following the ",[16,32,35],{"href":33,"rel":34},"https://about.gitlab.com/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab/",[],"principle of least privilege",", these job tokens have no ability to access any API resources until you explicitly grant them permissions.",[13,38,39],{},"This initial release includes fine-grained permissions for the following resources:",[41,42,43,47,50,53,56,59,62,65,68],"ul",{},[44,45,46],"li",{},"Repositories",[44,48,49],{},"Deployments",[44,51,52],{},"Environments",[44,54,55],{},"Jobs",[44,57,58],{},"Packages",[44,60,61],{},"Pipelines",[44,63,64],{},"Releases",[44,66,67],{},"Secure Files",[44,69,70],{},"Terraform State",[13,72,73,74,79],{},"Additional API endpoints are planned for future releases. For more information, see the ",[16,75,78],{"href":76,"rel":77},"https://gitlab.com/groups/gitlab-org/-/epics/6310",[],"associated epic",".",[13,81,82],{},[83,84],"img",{"alt":85,"src":86},"fine-grained permissions example","https://res.cloudinary.com/about-gitlab-com/image/upload/v1755633419/izgwpj45oxoof0frvhap.png",[88,89,91],"h2",{"id":90},"the-bigger-picture","The bigger picture",[13,93,94],{},"This release represents a critical step in GitLab's broader mission to improve your software supply chain security. Historically, job tokens have been bound to the user running the pipeline, inheriting their privileges and creating security risks if pipelines are compromised.",[13,96,97],{},"Fine-grained permissions for job tokens provide a foundation for a more secure CI/CD ecosystem that:",[41,99,100,107,113,119],{},[44,101,102,106],{},[103,104,105],"strong",{},"Reduces attack surface",": Implements the principle of least privilege by limiting access to only necessary resources",[44,108,109,112],{},[103,110,111],{},"Eliminates dependency on long-lived tokens",": Provides a secure alternative that reduces the need for personal access tokens and other persistent credentials",[44,114,115,118],{},[103,116,117],{},"Prepares for machine-based identity",": This opt-in approach lays the groundwork for eventually decoupling job tokens from user identities entirely, moving toward true machine-to-machine authentication",[44,120,121,124],{},[103,122,123],{},"Enables secure automation at scale",": Supports complex deployment workflows and CI/CD components without compromising security",[88,126,128],{"id":127},"getting-started","Getting started",[13,130,131],{},"Security teams and DevOps engineers should evaluate this feature for any projects running automated deployments, package publishing, or infrastructure management. Since this is an opt-in capability, you can migrate gradually to minimize disruption to your existing pipelines.",[13,133,134,135,79],{},"Start by identifying your most critical pipelines and auditing their current permission requirements. Then enable fine-grained permissions and configure the minimal access needed for each project. For more information, see the ",[16,136,139],{"href":137,"rel":138},"https://docs.gitlab.com/ci/jobs/fine_grained_permissions/",[],"documentation on fine-grained permissions for CI/CD job tokens",{"title":141,"searchDepth":142,"depth":142,"links":143},"",2,[144,145],{"id":90,"depth":142,"text":91},{"id":127,"depth":142,"text":128},"engineering","2025-08-26","GitLab now allows the use of fine-grained permissions for CI/CD job tokens, enhancing the security of your software supply chain.","md",null,false,"blog/hero%20images/workflow_1800x945.png",{},true,"/en-us/blog/fine-grained-job-tokens-ga",{"title":5,"description":148},"fine-grained-job-tokens-ga","en-us/blog/fine-grained-job-tokens-ga",[160],"community","BlogPost","P2-MjIFQCAnDmcRmGnICvtiwb-OpZ76Ps4Rm2RUZn10",{"logo":164,"freeTrial":169,"sales":174,"login":179,"items":184,"search":507,"minimal":538,"duo":557,"switchNav":566,"pricingDeployment":577},{"config":165},{"href":166,"dataGaName":167,"dataGaLocation":168},"/","gitlab logo","header",{"text":170,"config":171},"Get free trial",{"href":172,"dataGaName":173,"dataGaLocation":168},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":175,"config":176},"Request a demo",{"href":177,"dataGaName":178,"dataGaLocation":168},"/sales/?contact-topic=request-demo","sales",{"text":180,"config":181},"Sign in",{"href":182,"dataGaName":183,"dataGaLocation":168},"https://gitlab.com/users/sign_in/","sign in",[185,214,313,318,430,485],{"text":186,"config":187,"menu":189},"Platform",{"dataNavLevelOne":188},"platform",{"type":190,"columns":191},"cards",[192,198,206],{"title":186,"description":193,"link":194},"The intelligent orchestration platform for DevSecOps",{"text":195,"config":196},"Explore our Platform",{"href":197,"dataGaName":188,"dataGaLocation":168},"/platform/",{"title":199,"description":200,"link":201},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":202,"config":203},"Meet GitLab Duo",{"href":204,"dataGaName":205,"dataGaLocation":168},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":207,"description":208,"link":209},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":210,"config":211},"Learn more",{"href":212,"dataGaName":213,"dataGaLocation":168},"/why-gitlab/","why gitlab",{"text":215,"left":154,"config":216,"menu":218},"Product",{"dataNavLevelOne":217},"solutions",{"type":219,"link":220,"columns":224,"feature":292},"lists",{"text":221,"config":222},"View all Solutions",{"href":223,"dataGaName":217,"dataGaLocation":168},"/solutions/",[225,248,271],{"title":226,"description":227,"link":228,"items":233},"Automation","CI/CD and automation to accelerate deployment",{"config":229},{"icon":230,"href":231,"dataGaName":232,"dataGaLocation":168},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[234,237,240,244],{"text":20,"config":235},{"href":236,"dataGaLocation":168,"dataGaName":20},"/solutions/continuous-integration/",{"text":199,"config":238},{"href":204,"dataGaLocation":168,"dataGaName":239},"gitlab duo agent platform - product menu",{"text":241,"config":242},"Source Code Management",{"href":243,"dataGaLocation":168,"dataGaName":241},"/solutions/source-code-management/",{"text":245,"config":246},"Automated Software Delivery",{"href":231,"dataGaLocation":168,"dataGaName":247},"Automated software delivery",{"title":249,"description":250,"link":251,"items":256},"Security","Deliver code faster without compromising security",{"config":252},{"href":253,"dataGaName":254,"dataGaLocation":168,"icon":255},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[257,261,266],{"text":258,"config":259},"Application Security Testing",{"href":253,"dataGaName":260,"dataGaLocation":168},"Application security testing",{"text":262,"config":263},"Software Supply Chain Security",{"href":264,"dataGaLocation":168,"dataGaName":265},"/solutions/supply-chain/","Software supply chain security",{"text":267,"config":268},"Software Compliance",{"href":269,"dataGaName":270,"dataGaLocation":168},"/solutions/software-compliance/","software compliance",{"title":272,"link":273,"items":278},"Measurement",{"config":274},{"icon":275,"href":276,"dataGaName":277,"dataGaLocation":168},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[279,283,287],{"text":280,"config":281},"Visibility & Measurement",{"href":276,"dataGaLocation":168,"dataGaName":282},"Visibility and Measurement",{"text":284,"config":285},"Value Stream Management",{"href":286,"dataGaLocation":168,"dataGaName":284},"/solutions/value-stream-management/",{"text":288,"config":289},"Analytics & Insights",{"href":290,"dataGaLocation":168,"dataGaName":291},"/solutions/analytics-and-insights/","Analytics and insights",{"title":293,"type":219,"items":294},"GitLab for",[295,301,307],{"text":296,"config":297},"Enterprise",{"icon":298,"href":299,"dataGaLocation":168,"dataGaName":300},"Building","/enterprise/","enterprise",{"text":302,"config":303},"Small Business",{"icon":304,"href":305,"dataGaLocation":168,"dataGaName":306},"Work","/small-business/","small business",{"text":308,"config":309},"Public Sector",{"icon":310,"href":311,"dataGaLocation":168,"dataGaName":312},"Organization","/solutions/public-sector/","public sector",{"text":314,"config":315},"Pricing",{"href":316,"dataGaName":317,"dataGaLocation":168,"dataNavLevelOne":317},"/pricing/","pricing",{"text":319,"config":320,"menu":322},"Resources",{"dataNavLevelOne":321},"resources",{"type":219,"link":323,"columns":327,"feature":419},{"text":324,"config":325},"View all resources",{"href":326,"dataGaName":321,"dataGaLocation":168},"/resources/",[328,360,387],{"title":128,"items":329},[330,335,340,345,350,355],{"text":331,"config":332},"Install",{"href":333,"dataGaName":334,"dataGaLocation":168},"/install/","install",{"text":336,"config":337},"Quick start guides",{"href":338,"dataGaName":339,"dataGaLocation":168},"/get-started/","quick setup checklists",{"text":341,"config":342},"Learn",{"href":343,"dataGaLocation":168,"dataGaName":344},"https://university.gitlab.com/","learn",{"text":346,"config":347},"Product documentation",{"href":348,"dataGaName":349,"dataGaLocation":168},"https://docs.gitlab.com/","product documentation",{"text":351,"config":352},"Best practice videos",{"href":353,"dataGaName":354,"dataGaLocation":168},"/getting-started-videos/","best practice videos",{"text":356,"config":357},"Integrations",{"href":358,"dataGaName":359,"dataGaLocation":168},"/integrations/","integrations",{"title":361,"items":362},"Discover",[363,368,373,378,382],{"text":364,"config":365},"Customer success stories",{"href":366,"dataGaName":367,"dataGaLocation":168},"/customers/","customer success stories",{"text":369,"config":370},"Blog",{"href":371,"dataGaName":372,"dataGaLocation":168},"/blog/","blog",{"text":374,"config":375},"Demo Hub",{"href":376,"dataGaName":377,"dataGaLocation":168},"/demo-hub/","demo hub",{"text":379,"config":380},"The Source",{"href":381,"dataGaName":372,"dataGaLocation":168},"/the-source/",{"text":383,"config":384},"Remote",{"href":385,"dataGaName":386,"dataGaLocation":168},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":388,"items":389},"Connect",[390,395,400,404,409,414],{"text":391,"config":392},"GitLab Services",{"href":393,"dataGaName":394,"dataGaLocation":168},"/services/","services",{"text":396,"config":397},"Contribute",{"href":398,"dataGaName":399,"dataGaLocation":168},"https://contributors.gitlab.com","contribute",{"text":401,"config":402},"Community",{"href":403,"dataGaName":160,"dataGaLocation":168},"/community/",{"text":405,"config":406},"Forum",{"href":407,"dataGaName":408,"dataGaLocation":168},"https://forum.gitlab.com/","forum",{"text":410,"config":411},"Events",{"href":412,"dataGaName":413,"dataGaLocation":168},"/events/","events",{"text":415,"config":416},"Partners",{"href":417,"dataGaName":418,"dataGaLocation":168},"/partners/","partners",{"config":420,"title":423,"text":424,"link":425},{"background":421,"textColor":422},"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":426,"config":427},"Read the latest",{"href":428,"dataGaName":429,"dataGaLocation":168},"/whats-new/","whats new",{"text":431,"config":432,"menu":434},"Company",{"dataNavLevelOne":433},"company",{"type":219,"columns":435},[436],{"items":437},[438,443,448,450,455,460,465,470,475,480],{"text":439,"config":440},"About",{"href":441,"dataGaName":442,"dataGaLocation":168},"/company/","about",{"text":55,"config":444,"footerGa":447},{"href":445,"dataGaName":446,"dataGaLocation":168},"/jobs/","jobs",{"dataGaName":446},{"text":410,"config":449},{"href":412,"dataGaName":413,"dataGaLocation":168},{"text":451,"config":452},"Leadership",{"href":453,"dataGaName":454,"dataGaLocation":168},"/company/team/e-group/","leadership",{"text":456,"config":457},"Handbook",{"href":458,"dataGaName":459,"dataGaLocation":168},"https://handbook.gitlab.com/","handbook",{"text":461,"config":462},"Investor relations",{"href":463,"dataGaName":464,"dataGaLocation":168},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":466,"config":467},"Trust Center",{"href":468,"dataGaName":469,"dataGaLocation":168},"/security/","trust center",{"text":471,"config":472},"AI Transparency Center",{"href":473,"dataGaName":474,"dataGaLocation":168},"/ai-transparency-center/","ai transparency center",{"text":476,"config":477},"Newsletter",{"href":478,"dataGaName":479,"dataGaLocation":168},"/company/contact/#contact-forms","newsletter",{"text":481,"config":482},"Press",{"href":483,"dataGaName":484,"dataGaLocation":168},"/press/","press",{"text":486,"config":487,"menu":488},"Contact us",{"dataNavLevelOne":433},{"type":219,"columns":489},[490],{"items":491},[492,497,502],{"text":493,"config":494},"Talk to sales",{"href":495,"dataGaName":496,"dataGaLocation":168},"/sales/","talk to sales",{"text":498,"config":499},"Support portal",{"href":500,"dataGaName":501,"dataGaLocation":168},"https://support.gitlab.com/hc/en-us","support portal",{"text":503,"config":504},"Customer portal",{"href":505,"dataGaName":506,"dataGaLocation":168},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":508,"login":509,"suggestions":516},"Close",{"text":510,"link":511},"To search repositories and projects, login to",{"text":512,"config":513},"gitlab.com",{"href":182,"dataGaName":514,"dataGaLocation":515},"search login","search",{"text":517,"default":518},"Suggestions",[519,521,525,527,531,535],{"text":199,"config":520},{"href":204,"dataGaName":199,"dataGaLocation":515},{"text":522,"config":523},"Code Suggestions (AI)",{"href":524,"dataGaName":522,"dataGaLocation":515},"/solutions/code-suggestions/",{"text":20,"config":526},{"href":236,"dataGaName":20,"dataGaLocation":515},{"text":528,"config":529},"GitLab on AWS",{"href":530,"dataGaName":528,"dataGaLocation":515},"/partners/technology-partners/aws/",{"text":532,"config":533},"GitLab on Google Cloud",{"href":534,"dataGaName":532,"dataGaLocation":515},"/partners/technology-partners/google-cloud-platform/",{"text":536,"config":537},"Why GitLab?",{"href":212,"dataGaName":536,"dataGaLocation":515},{"freeTrial":539,"mobileIcon":544,"desktopIcon":549,"secondaryButton":552},{"text":540,"config":541},"Start free trial",{"href":542,"dataGaName":173,"dataGaLocation":543},"https://gitlab.com/-/trials/new/","nav",{"altText":545,"config":546},"Gitlab Icon",{"src":547,"dataGaName":548,"dataGaLocation":543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":545,"config":550},{"src":551,"dataGaName":548,"dataGaLocation":543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":553,"config":554},"Get Started",{"href":555,"dataGaName":556,"dataGaLocation":543},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":558,"mobileIcon":562,"desktopIcon":564},{"text":559,"config":560},"Learn more about GitLab Duo",{"href":204,"dataGaName":561,"dataGaLocation":543},"gitlab duo",{"altText":545,"config":563},{"src":547,"dataGaName":548,"dataGaLocation":543},{"altText":545,"config":565},{"src":551,"dataGaName":548,"dataGaLocation":543},{"button":567,"mobileIcon":572,"desktopIcon":574},{"text":568,"config":569},"/switch",{"href":570,"dataGaName":571,"dataGaLocation":543},"#contact","switch",{"altText":545,"config":573},{"src":547,"dataGaName":548,"dataGaLocation":543},{"altText":545,"config":575},{"src":576,"dataGaName":548,"dataGaLocation":543},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":578,"mobileIcon":583,"desktopIcon":585},{"text":579,"config":580},"Back to pricing",{"href":316,"dataGaName":581,"dataGaLocation":543,"icon":582},"back to pricing","GoBack",{"altText":545,"config":584},{"src":547,"dataGaName":548,"dataGaLocation":543},{"altText":545,"config":586},{"src":551,"dataGaName":548,"dataGaLocation":543},{"title":588,"titleMobile":589,"button":590,"config":595},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":210,"config":591},{"href":592,"dataGaName":593,"dataGaLocation":594},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":596,"disabled":151},"release",{"data":598},{"text":599,"source":600,"edit":606,"contribute":611,"config":616,"items":621,"minimal":831},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":601,"config":602},"View page source",{"href":603,"dataGaName":604,"dataGaLocation":605},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":607,"config":608},"Edit this page",{"href":609,"dataGaName":610,"dataGaLocation":605},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":612,"config":613},"Please contribute",{"href":614,"dataGaName":615,"dataGaLocation":605},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":617,"facebook":618,"youtube":619,"linkedin":620},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[622,669,723,767,799],{"title":314,"links":623,"subMenu":638},[624,628,633],{"text":625,"config":626},"View plans",{"href":316,"dataGaName":627,"dataGaLocation":605},"view plans",{"text":629,"config":630},"Why Premium?",{"href":631,"dataGaName":632,"dataGaLocation":605},"/pricing/premium/","why premium",{"text":634,"config":635},"Why Ultimate?",{"href":636,"dataGaName":637,"dataGaLocation":605},"/pricing/ultimate/","why ultimate",[639],{"title":640,"links":641},"Contact Us",[642,645,647,649,654,659,664],{"text":643,"config":644},"Contact sales",{"href":495,"dataGaName":178,"dataGaLocation":605},{"text":498,"config":646},{"href":500,"dataGaName":501,"dataGaLocation":605},{"text":503,"config":648},{"href":505,"dataGaName":506,"dataGaLocation":605},{"text":650,"config":651},"Status",{"href":652,"dataGaName":653,"dataGaLocation":605},"https://status.gitlab.com/","status",{"text":655,"config":656},"Terms of use",{"href":657,"dataGaName":658,"dataGaLocation":605},"/terms/","terms of use",{"text":660,"config":661},"Privacy statement",{"href":662,"dataGaName":663,"dataGaLocation":605},"/privacy/","privacy statement",{"text":665,"config":666},"Cookie preferences",{"dataGaName":667,"dataGaLocation":605,"id":668,"isOneTrustButton":154},"cookie preferences","ot-sdk-btn",{"title":215,"links":670,"subMenu":679},[671,675],{"text":672,"config":673},"DevSecOps platform",{"href":197,"dataGaName":674,"dataGaLocation":605},"devsecops platform",{"text":676,"config":677},"AI-Assisted Development",{"href":204,"dataGaName":678,"dataGaLocation":605},"ai-assisted development",[680],{"title":681,"links":682},"Topics",[683,688,693,698,703,708,713,718],{"text":684,"config":685},"CICD",{"href":686,"dataGaName":687,"dataGaLocation":605},"/topics/ci-cd/","cicd",{"text":689,"config":690},"GitOps",{"href":691,"dataGaName":692,"dataGaLocation":605},"/topics/gitops/","gitops",{"text":694,"config":695},"DevOps",{"href":696,"dataGaName":697,"dataGaLocation":605},"/topics/devops/","devops",{"text":699,"config":700},"Version Control",{"href":701,"dataGaName":702,"dataGaLocation":605},"/topics/version-control/","version control",{"text":704,"config":705},"DevSecOps",{"href":706,"dataGaName":707,"dataGaLocation":605},"/topics/devsecops/","devsecops",{"text":709,"config":710},"Cloud Native",{"href":711,"dataGaName":712,"dataGaLocation":605},"/topics/cloud-native/","cloud native",{"text":714,"config":715},"AI for Coding",{"href":716,"dataGaName":717,"dataGaLocation":605},"/topics/devops/ai-for-coding/","ai for coding",{"text":719,"config":720},"Agentic AI",{"href":721,"dataGaName":722,"dataGaLocation":605},"/topics/agentic-ai/","agentic ai",{"title":724,"links":725},"Solutions",[726,728,730,735,739,742,746,749,751,754,757,762],{"text":258,"config":727},{"href":253,"dataGaName":258,"dataGaLocation":605},{"text":247,"config":729},{"href":231,"dataGaName":232,"dataGaLocation":605},{"text":731,"config":732},"Agile development",{"href":733,"dataGaName":734,"dataGaLocation":605},"/solutions/agile-delivery/","agile delivery",{"text":736,"config":737},"SCM",{"href":243,"dataGaName":738,"dataGaLocation":605},"source code management",{"text":684,"config":740},{"href":236,"dataGaName":741,"dataGaLocation":605},"continuous integration & delivery",{"text":743,"config":744},"Value stream management",{"href":286,"dataGaName":745,"dataGaLocation":605},"value stream management",{"text":689,"config":747},{"href":748,"dataGaName":692,"dataGaLocation":605},"/solutions/gitops/",{"text":296,"config":750},{"href":299,"dataGaName":300,"dataGaLocation":605},{"text":752,"config":753},"Small business",{"href":305,"dataGaName":306,"dataGaLocation":605},{"text":755,"config":756},"Public sector",{"href":311,"dataGaName":312,"dataGaLocation":605},{"text":758,"config":759},"Education",{"href":760,"dataGaName":761,"dataGaLocation":605},"/solutions/education/","education",{"text":763,"config":764},"Financial services",{"href":765,"dataGaName":766,"dataGaLocation":605},"/solutions/finance/","financial services",{"title":319,"links":768},[769,771,773,775,778,780,783,785,787,789,791,793,795,797],{"text":331,"config":770},{"href":333,"dataGaName":334,"dataGaLocation":605},{"text":336,"config":772},{"href":338,"dataGaName":339,"dataGaLocation":605},{"text":341,"config":774},{"href":343,"dataGaName":344,"dataGaLocation":605},{"text":346,"config":776},{"href":348,"dataGaName":777,"dataGaLocation":605},"docs",{"text":369,"config":779},{"href":371,"dataGaName":372,"dataGaLocation":605},{"text":781,"config":782},"What's new",{"href":428,"dataGaName":429,"dataGaLocation":605},{"text":364,"config":784},{"href":366,"dataGaName":367,"dataGaLocation":605},{"text":383,"config":786},{"href":385,"dataGaName":386,"dataGaLocation":605},{"text":391,"config":788},{"href":393,"dataGaName":394,"dataGaLocation":605},{"text":396,"config":790},{"href":398,"dataGaName":399,"dataGaLocation":605},{"text":401,"config":792},{"href":403,"dataGaName":160,"dataGaLocation":605},{"text":405,"config":794},{"href":407,"dataGaName":408,"dataGaLocation":605},{"text":410,"config":796},{"href":412,"dataGaName":413,"dataGaLocation":605},{"text":415,"config":798},{"href":417,"dataGaName":418,"dataGaLocation":605},{"title":431,"links":800},[801,803,805,807,809,811,815,820,822,824,826],{"text":439,"config":802},{"href":441,"dataGaName":433,"dataGaLocation":605},{"text":55,"config":804},{"href":445,"dataGaName":446,"dataGaLocation":605},{"text":451,"config":806},{"href":453,"dataGaName":454,"dataGaLocation":605},{"text":456,"config":808},{"href":458,"dataGaName":459,"dataGaLocation":605},{"text":461,"config":810},{"href":463,"dataGaName":464,"dataGaLocation":605},{"text":812,"config":813},"Sustainability",{"href":814,"dataGaName":812,"dataGaLocation":605},"/sustainability/",{"text":816,"config":817},"Diversity, inclusion and belonging (DIB)",{"href":818,"dataGaName":819,"dataGaLocation":605},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":466,"config":821},{"href":468,"dataGaName":469,"dataGaLocation":605},{"text":476,"config":823},{"href":478,"dataGaName":479,"dataGaLocation":605},{"text":481,"config":825},{"href":483,"dataGaName":484,"dataGaLocation":605},{"text":827,"config":828},"Modern Slavery Transparency Statement",{"href":829,"dataGaName":830,"dataGaLocation":605},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":832},[833,836,839],{"text":834,"config":835},"Terms",{"href":657,"dataGaName":658,"dataGaLocation":605},{"text":837,"config":838},"Cookies",{"dataGaName":667,"dataGaLocation":605,"id":668,"isOneTrustButton":154},{"text":840,"config":841},"Privacy",{"href":662,"dataGaName":663,"dataGaLocation":605},[843,857],{"id":844,"title":7,"body":150,"config":845,"content":847,"description":150,"extension":851,"meta":852,"navigation":154,"path":853,"seo":854,"stem":855,"__hash__":856},"blogAuthors/en-us/blog/authors/alex-mark.yml",{"template":846},"BlogAuthor",{"name":7,"config":848},{"headshot":849,"ctfId":850},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755709078/j3vuvongn6hbucxwaufz.png","alexmark","yml",{},"/en-us/blog/authors/alex-mark",{},"en-us/blog/authors/alex-mark","Krkz59XKlUxt4WkmmEm-wSxscqPAskbYY0-iBstNMJI",{"id":858,"title":8,"body":150,"config":859,"content":860,"description":150,"extension":851,"meta":864,"navigation":154,"path":865,"seo":866,"stem":867,"__hash__":868},"blogAuthors/en-us/blog/authors/joe-randazzo.yml",{"template":846},{"name":8,"config":861},{"headshot":862,"ctfId":863},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664711/Blog/Author%20Headshots/randazzo.jpg","5DxpEbIVcwN2ukwiEMsHlH",{},"/en-us/blog/authors/joe-randazzo",{},"en-us/blog/authors/joe-randazzo","Kg6ZOiBKQgjjlIpsfIAWHsug3iGMaAK1trTdXg4BaFI",[870,879,887],{"title":871,"description":872,"heroImage":873,"category":146,"date":874,"authors":875,"slug":878,"externalUrl":150},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[876,877],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":880,"description":881,"heroImage":882,"category":146,"date":883,"authors":884,"slug":886,"externalUrl":150},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[885],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":888,"description":889,"heroImage":890,"category":146,"date":891,"authors":892,"slug":894,"externalUrl":150},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[893],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":896},[897,911,923,935],{"id":898,"categories":899,"header":901,"text":902,"button":903,"image":908},"ai-modernization",[900],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":904,"config":905},"Get your AI maturity score",{"href":906,"dataGaName":907,"dataGaLocation":372},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":909},{"src":910},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":912,"categories":913,"header":915,"text":902,"button":916,"image":920},"devops-modernization",[914,707],"product","Are you just managing tools or shipping innovation?",{"text":917,"config":918},"Get your DevOps maturity score",{"href":919,"dataGaName":907,"dataGaLocation":372},"/assessments/devops-modernization-assessment/",{"config":921},{"src":922},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":924,"categories":925,"header":927,"text":902,"button":928,"image":932},"security-modernization",[926],"security","Are you trading speed for security?",{"text":929,"config":930},"Get your security maturity score",{"href":931,"dataGaName":907,"dataGaLocation":372},"/assessments/security-modernization-assessment/",{"config":933},{"src":934},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":936,"paths":937,"header":940,"text":941,"button":942,"image":947},"github-azure-migration",[938,939],"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":943,"config":944},"See how GitLab compares to GitHub",{"href":945,"dataGaName":946,"dataGaLocation":372},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":948},{"src":922},{"header":950,"blurb":951,"button":952,"secondaryButton":957},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":953,"config":954},"Get your free trial",{"href":955,"dataGaName":173,"dataGaLocation":956},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":643,"config":958},{"href":495,"dataGaName":178,"dataGaLocation":956},1786803747100]