[{"data":1,"prerenderedAt":1135},["ShallowReactive",2],{"/blog/how-gitlab-empowers-translators-with-more-context":3,"navigation-en-us":351,"banner-en-us":777,"footer-en-us":787,"blog-post-authors-en-us-Oleksandr Pysaryuk":1032,"blog-related-posts-en-us-how-gitlab-empowers-translators-with-more-context":1047,"blog-promotions-en-us":1072,"next-steps-en-us":1125},{"id":4,"title":5,"authors":6,"body":8,"category":328,"date":329,"description":330,"extension":331,"externalUrl":332,"faq":332,"featured":333,"heroImage":334,"meta":335,"navigation":336,"path":337,"seo":338,"slug":342,"stem":343,"tags":344,"template":349,"updatedDate":332,"__hash__":350},"blogPosts/en-us/blog/how-gitlab-empowers-translators-with-more-context.md","How GitLab empowers translators with more context",[7],"Oleksandr Pysaryuk",{"type":9,"value":10,"toc":320},"minimark",[11,28,33,36,39,63,83,87,102,128,131,141,148,164,170,182,188,198,204,210,216,234,240,248,254,261,266,269,283,287,296],[12,13,14,15,21,22,27],"p",{},"GitLab is continuously translated by our global community of translators and proofreaders. Through ",[16,17,20],"a",{"href":18,"rel":19},"https://docs.gitlab.com/development/i18n/translation/",[],"Crowdin",", they help make our product more accessible to the world by translating it into 78 languages. GitLab translation community members are volunteer translators, working professionals who are GitLab users, and even ",[16,23,26],{"href":24,"rel":25},"https://about.gitlab.com/blog/behind-the-scenes-of-gitlab-korean-translation/",[],"university students contributing to translators as part of their classroom projects",".",[29,30,32],"h3",{"id":31},"how-the-gitlab-open-core-model-supports-translators","How the GitLab open-core model supports translators",[12,34,35],{},"While this community collaboration is powerful, translators often face a crucial challenge: understanding the full context of the text that they are translating.",[12,37,38],{},"Great translation isn't just about converting words – it's about preserving meaning, intent, and usability in a target language. Software translation requires a unique blend of skills. Great translators usually specialize in multiple linguistic domains as well as the technical domain of the product itself. They perform myriad translation-adjacent tasks such as:",[40,41,42,46,49,52,60],"ul",{},[43,44,45],"li",{},"ensuring accuracy and consistency of technical terminology",[43,47,48],{},"creating new glossary terms for new concepts",[43,50,51],{},"adhering to the style and tone",[43,53,54,55],{},"navigating the complexity of ",[16,56,59],{"href":57,"rel":58},"https://www.unicode.org/cldr/charts/46/supplemental/language_plural_rules.html",[],"CLDR pluralization rules",[43,61,62],{},"understanding the translatability of composite messages and how to provide feedback to improve the source by making it localizable",[12,64,65,66,71,72,77,78,27],{},"Translators spend lots of time researching context, asking questions, and reading ",[16,67,70],{"href":68,"rel":69},"https://docs.gitlab.com/",[],"GitLab product documentation",". Without proper context, even simple phrases can be mistranslated, potentially confusing or disrupting user workflows. What sets ",[16,73,76],{"href":74,"rel":75},"https://about.gitlab.com/blog/gitlab-is-open-core-github-is-closed-source/",[],"GitLab apart is its open-core model",", which allows translators to access most of the product development context directly at the source. This transparency empowers them to actively contribute as true ",[16,79,82],{"href":80,"rel":81},"https://handbook.gitlab.com/handbook/company/mission/#mission",[],"co-creators of the GitLab global product",[29,84,86],{"id":85},"introducing-our-new-context-enhancement-feature","Introducing our new context-enhancement feature",[12,88,89,90,95,96,101],{},"To support these needs and empower translators with context, GitLab has developed a new feature: we now ",[16,91,94],{"href":92,"rel":93},"https://docs.gitlab.com/development/i18n/translation/#context",[],"embed into each translatable string a contextual link"," (more specifically, a link to our global in-product search) that lets translators locate all instances of that string in the codebase. These links allow translators to rely on ",[16,97,100],{"href":98,"rel":99},"https://docs.gitlab.com/user/project/repository/files/git_blame/",[],"Git blame"," to trace every string's history – from its current location in code, through commits in merge requests, and all the way up to the original planning discussions.",[12,103,104,105,109,110,113,114,119,120,124,125,127],{},"For example, when you are translating ",[106,107,108],"strong",{},"Rotate",", the ",[106,111,112],{},"AccessTokens|"," ",[16,115,118],{"href":116,"rel":117},"https://docs.gitlab.com/development/i18n/externalization/#namespaces",[],"namespace"," suggests that the context is, well, ",[121,122,123],"em",{},"access tokens",". However, there is no additional visual context for what ",[106,126,108],{}," means, and translators are left to wonder, guess, and provide the best possible assumption in a target language.",[12,129,130],{},"With the new context enhancement, here is what translators are now able to do:",[132,133,134],"ol",{},[43,135,136,137,140],{},"Click the URL in the ",[106,138,139],{},"See where this string is used in code"," section.",[12,142,143],{},[144,145],"img",{"alt":146,"src":147},"see where this string is used in code section","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097929/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097928929.png",[132,149,151],{"start":150},2,[43,152,153,154,159,160,163],{},"Review the ",[16,155,158],{"href":156,"rel":157},"https://gitlab.com/search?project_id=278964&search=%22%28%5B%5E%3A%5D%28+%29%2B%3F%7C_%5C%5C%28%29%5B%27%5C%22%60%5DAccessTokens%5C%5C%7CRotate%5B%27%5C%22%60%5D%22+%28file%3A%5C.js%24+or+file%3A%5C.vue%24+or+file%3A%5C.rb%24+or+file%3A%5C.erb%24+or+file%3A%5C.haml%24%29+%28file%3A%5Eee%2Fapp%2F+or+file%3A%5Eee%2Flib%2F+or+file%3A%5Eee%2Fconfig%2F+or+file%3A%5Eee%2Flocale%2F+or+file%3A%5Eapp%2F+or+file%3A%5Elib%2F+or+file%3A%5Econfig%2F+or+file%3A%5Elocale%2F%29&regex=true",[],"result of the code search",", and click the ",[106,161,162],{},"View blame"," icon:",[12,165,166],{},[144,167],{"alt":168,"src":169},"Screen with View blame icon","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097929/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097928930.png",[132,171,173],{"start":172},3,[43,174,175,176,181],{},"Follow the link with the relevant merge request (",[16,177,180],{"href":178,"rel":179},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169954",[],"Introduce rotation of personal tokens in UI","):",[12,183,184],{},[144,185],{"alt":186,"src":187},"Link with relevant merge request","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097929/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097928932.png",[132,189,191],{"start":190},4,[43,192,193,194,197],{},"On the ",[106,195,196],{},"Commits"," page, follow the link to the actual merge request:",[12,199,200],{},[144,201],{"alt":202,"src":203},"Commits page with link","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097929/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097928934.png",[132,205,207],{"start":206},5,[43,208,209],{},"Watch the screen recording that the software engineer added to the merge request:",[12,211,212],{},[144,213],{"alt":214,"src":215},"screen recording in merge request","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097929/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097928936.png",[132,217,219],{"start":218},6,[43,220,221,222,227,228,233],{},"Research even further by going to:\na. The linked issue ",[16,223,226],{"href":224,"rel":225},"https://gitlab.com/gitlab-org/gitlab/-/issues/241523",[],"Introduce renew expired token capability in UI"," or its parent epic ",[16,229,232],{"href":230,"rel":231},"https://gitlab.com/groups/gitlab-org/-/epics/14563",[],"Rotate Token through the UI",":",[12,235,236],{},[144,237],{"alt":238,"src":239},"linked issue and parent epic","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097929/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097928938.png",[12,241,242,243,233],{},"b. The ",[16,244,247],{"href":245,"rel":246},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/172916",[],"related merge request that updates the GitLab product documentation",[12,249,250],{},[144,251],{"alt":252,"src":253},"related merge request to update GitLab product documentation","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097929/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097928940.png",[12,255,256,257,260],{},"All these research steps will lead translators to better understand the technical concept of ",[121,258,259],{},"access token rotation"," and why the token rotation functionality was added, how it works, and what problem it solves for users.",[12,262,263,264,27],{},"With this rich research trail, translators get the maximum amount of context that will help provide the technically accurate and linguistically correct translation for the seemingly simple word ",[106,265,108],{},[12,267,268],{},"This approach goes far beyond traditional translation aids like providing screenshots or exploring the product user interface. Translators can now fully understand the context by:",[40,270,271,274,277,280],{},[43,272,273],{},"deriving context from paths and naming conventions used in code",[43,275,276],{},"viewing screenshots or video recordings that are added to original merge requests",[43,278,279],{},"reading original planning and development discussions",[43,281,282],{},"following the engineering, copywriting, and product management decision-making process that has led to specific wording",[29,284,286],{"id":285},"more-ai-powered-contextual-features-coming-up","More AI-powered contextual features coming up",[12,288,289,290,295],{},"The GitLab Localization team isn't stopping here. We are working on ",[16,291,294],{"href":292,"rel":293},"https://gitlab.com/groups/gitlab-com/localization/-/epics/81",[],"more context-enhancement features",", including AI-powered tools to help translators understand string usage and placement. Imagine a system where translators could interact with an agent by asking questions or proactively receiving immediate code-aware responses about where and how strings are used in the product UI.",[297,298,299],"blockquote",{},[29,300,302,303,308,309,314,315,27],{"id":301},"join-our-community-on-crowdin-as-a-translator-or-a-proofreader-try-these-new-context-features-and-let-us-know-how-we-can-make-the-translation-experience-and-our-product-even-better","Join our ",[16,304,307],{"href":305,"rel":306},"https://docs.gitlab.com/development/i18n/",[],"community on Crowdin"," as a translator or a ",[16,310,313],{"href":311,"rel":312},"https://docs.gitlab.com/development/i18n/#proofreading",[],"proofreader",", try these new context features, and let us know how we can make the ",[16,316,319],{"href":317,"rel":318},"https://gitlab.com/gitlab-com/localization/localization-team/-/issues/259",[],"translation experience and our product even better",{"title":321,"searchDepth":150,"depth":150,"links":322},"",[323,324,325,326],{"id":31,"depth":172,"text":32},{"id":85,"depth":172,"text":86},{"id":285,"depth":172,"text":286},{"id":301,"depth":172,"text":327},"Join our community on Crowdin as a translator or a proofreader, try these new context features, and let us know how we can make the translation experience and our product even better.","open-source","2024-12-09","Learn about the new translation context enhancement feature in GitLab. Join our translation community and help translate GitLab to your language.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097922/Blog/Hero%20Images/Blog/Hero%20Images/gitlabflatlogomap_gitlabflatlogomap.png_1750097921899.png",{},true,"/en-us/blog/how-gitlab-empowers-translators-with-more-context",{"title":5,"description":330,"ogTitle":5,"ogDescription":330,"noIndex":333,"ogImage":334,"ogUrl":339,"ogSiteName":340,"ogType":341,"canonicalUrls":339},"https://about.gitlab.com/blog/how-gitlab-empowers-translators-with-more-context","https://about.gitlab.com","article","how-gitlab-empowers-translators-with-more-context","en-us/blog/how-gitlab-empowers-translators-with-more-context",[345,346,347,348],"community","collaboration","product","contributors","BlogPost","peqqpw_h3w_KqXQobUkQnopETL4MXv4cuB5vCGoJ1Pc",{"logo":352,"freeTrial":357,"sales":362,"login":367,"items":372,"search":697,"minimal":728,"duo":747,"switchNav":756,"pricingDeployment":767},{"config":353},{"href":354,"dataGaName":355,"dataGaLocation":356},"/","gitlab logo","header",{"text":358,"config":359},"Get free trial",{"href":360,"dataGaName":361,"dataGaLocation":356},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":363,"config":364},"Request a demo",{"href":365,"dataGaName":366,"dataGaLocation":356},"/sales/?contact-topic=request-demo","sales",{"text":368,"config":369},"Sign in",{"href":370,"dataGaName":371,"dataGaLocation":356},"https://gitlab.com/users/sign_in/","sign in",[373,402,502,507,619,675],{"text":374,"config":375,"menu":377},"Platform",{"dataNavLevelOne":376},"platform",{"type":378,"columns":379},"cards",[380,386,394],{"title":374,"description":381,"link":382},"The intelligent orchestration platform for DevSecOps",{"text":383,"config":384},"Explore our Platform",{"href":385,"dataGaName":376,"dataGaLocation":356},"/platform/",{"title":387,"description":388,"link":389},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":390,"config":391},"Meet GitLab Duo",{"href":392,"dataGaName":393,"dataGaLocation":356},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":395,"description":396,"link":397},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":398,"config":399},"Learn more",{"href":400,"dataGaName":401,"dataGaLocation":356},"/why-gitlab/","why gitlab",{"text":403,"left":336,"config":404,"menu":406},"Product",{"dataNavLevelOne":405},"solutions",{"type":407,"link":408,"columns":412,"feature":481},"lists",{"text":409,"config":410},"View all Solutions",{"href":411,"dataGaName":405,"dataGaLocation":356},"/solutions/",[413,437,460],{"title":414,"description":415,"link":416,"items":421},"Automation","CI/CD and automation to accelerate deployment",{"config":417},{"icon":418,"href":419,"dataGaName":420,"dataGaLocation":356},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[422,426,429,433],{"text":423,"config":424},"CI/CD",{"href":425,"dataGaLocation":356,"dataGaName":423},"/solutions/continuous-integration/",{"text":387,"config":427},{"href":392,"dataGaLocation":356,"dataGaName":428},"gitlab duo agent platform - product menu",{"text":430,"config":431},"Source Code Management",{"href":432,"dataGaLocation":356,"dataGaName":430},"/solutions/source-code-management/",{"text":434,"config":435},"Automated Software Delivery",{"href":419,"dataGaLocation":356,"dataGaName":436},"Automated software delivery",{"title":438,"description":439,"link":440,"items":445},"Security","Deliver code faster without compromising security",{"config":441},{"href":442,"dataGaName":443,"dataGaLocation":356,"icon":444},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[446,450,455],{"text":447,"config":448},"Application Security Testing",{"href":442,"dataGaName":449,"dataGaLocation":356},"Application security testing",{"text":451,"config":452},"Software Supply Chain Security",{"href":453,"dataGaLocation":356,"dataGaName":454},"/solutions/supply-chain/","Software supply chain security",{"text":456,"config":457},"Software Compliance",{"href":458,"dataGaName":459,"dataGaLocation":356},"/solutions/software-compliance/","software compliance",{"title":461,"link":462,"items":467},"Measurement",{"config":463},{"icon":464,"href":465,"dataGaName":466,"dataGaLocation":356},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[468,472,476],{"text":469,"config":470},"Visibility & Measurement",{"href":465,"dataGaLocation":356,"dataGaName":471},"Visibility and Measurement",{"text":473,"config":474},"Value Stream Management",{"href":475,"dataGaLocation":356,"dataGaName":473},"/solutions/value-stream-management/",{"text":477,"config":478},"Analytics & Insights",{"href":479,"dataGaLocation":356,"dataGaName":480},"/solutions/analytics-and-insights/","Analytics and insights",{"title":482,"type":407,"items":483},"GitLab for",[484,490,496],{"text":485,"config":486},"Enterprise",{"icon":487,"href":488,"dataGaLocation":356,"dataGaName":489},"Building","/enterprise/","enterprise",{"text":491,"config":492},"Small Business",{"icon":493,"href":494,"dataGaLocation":356,"dataGaName":495},"Work","/small-business/","small business",{"text":497,"config":498},"Public Sector",{"icon":499,"href":500,"dataGaLocation":356,"dataGaName":501},"Organization","/solutions/public-sector/","public sector",{"text":503,"config":504},"Pricing",{"href":505,"dataGaName":506,"dataGaLocation":356,"dataNavLevelOne":506},"/pricing/","pricing",{"text":508,"config":509,"menu":511},"Resources",{"dataNavLevelOne":510},"resources",{"type":407,"link":512,"columns":516,"feature":608},{"text":513,"config":514},"View all resources",{"href":515,"dataGaName":510,"dataGaLocation":356},"/resources/",[517,549,576],{"title":518,"items":519},"Getting started",[520,525,530,535,539,544],{"text":521,"config":522},"Install",{"href":523,"dataGaName":524,"dataGaLocation":356},"/install/","install",{"text":526,"config":527},"Quick start guides",{"href":528,"dataGaName":529,"dataGaLocation":356},"/get-started/","quick setup checklists",{"text":531,"config":532},"Learn",{"href":533,"dataGaLocation":356,"dataGaName":534},"https://university.gitlab.com/","learn",{"text":536,"config":537},"Product documentation",{"href":68,"dataGaName":538,"dataGaLocation":356},"product documentation",{"text":540,"config":541},"Best practice videos",{"href":542,"dataGaName":543,"dataGaLocation":356},"/getting-started-videos/","best practice videos",{"text":545,"config":546},"Integrations",{"href":547,"dataGaName":548,"dataGaLocation":356},"/integrations/","integrations",{"title":550,"items":551},"Discover",[552,557,562,567,571],{"text":553,"config":554},"Customer success stories",{"href":555,"dataGaName":556,"dataGaLocation":356},"/customers/","customer success stories",{"text":558,"config":559},"Blog",{"href":560,"dataGaName":561,"dataGaLocation":356},"/blog/","blog",{"text":563,"config":564},"Demo Hub",{"href":565,"dataGaName":566,"dataGaLocation":356},"/demo-hub/","demo hub",{"text":568,"config":569},"The Source",{"href":570,"dataGaName":561,"dataGaLocation":356},"/the-source/",{"text":572,"config":573},"Remote",{"href":574,"dataGaName":575,"dataGaLocation":356},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":577,"items":578},"Connect",[579,584,589,593,598,603],{"text":580,"config":581},"GitLab Services",{"href":582,"dataGaName":583,"dataGaLocation":356},"/services/","services",{"text":585,"config":586},"Contribute",{"href":587,"dataGaName":588,"dataGaLocation":356},"https://contributors.gitlab.com","contribute",{"text":590,"config":591},"Community",{"href":592,"dataGaName":345,"dataGaLocation":356},"/community/",{"text":594,"config":595},"Forum",{"href":596,"dataGaName":597,"dataGaLocation":356},"https://forum.gitlab.com/","forum",{"text":599,"config":600},"Events",{"href":601,"dataGaName":602,"dataGaLocation":356},"/events/","events",{"text":604,"config":605},"Partners",{"href":606,"dataGaName":607,"dataGaLocation":356},"/partners/","partners",{"config":609,"title":612,"text":613,"link":614},{"background":610,"textColor":611},"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":615,"config":616},"Read the latest",{"href":617,"dataGaName":618,"dataGaLocation":356},"/whats-new/","whats new",{"text":620,"config":621,"menu":623},"Company",{"dataNavLevelOne":622},"company",{"type":407,"columns":624},[625],{"items":626},[627,632,638,640,645,650,655,660,665,670],{"text":628,"config":629},"About",{"href":630,"dataGaName":631,"dataGaLocation":356},"/company/","about",{"text":633,"config":634,"footerGa":637},"Jobs",{"href":635,"dataGaName":636,"dataGaLocation":356},"/jobs/","jobs",{"dataGaName":636},{"text":599,"config":639},{"href":601,"dataGaName":602,"dataGaLocation":356},{"text":641,"config":642},"Leadership",{"href":643,"dataGaName":644,"dataGaLocation":356},"/company/team/e-group/","leadership",{"text":646,"config":647},"Handbook",{"href":648,"dataGaName":649,"dataGaLocation":356},"https://handbook.gitlab.com/","handbook",{"text":651,"config":652},"Investor relations",{"href":653,"dataGaName":654,"dataGaLocation":356},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":656,"config":657},"Trust Center",{"href":658,"dataGaName":659,"dataGaLocation":356},"/security/","trust center",{"text":661,"config":662},"AI Transparency Center",{"href":663,"dataGaName":664,"dataGaLocation":356},"/ai-transparency-center/","ai transparency center",{"text":666,"config":667},"Newsletter",{"href":668,"dataGaName":669,"dataGaLocation":356},"/company/contact/#contact-forms","newsletter",{"text":671,"config":672},"Press",{"href":673,"dataGaName":674,"dataGaLocation":356},"/press/","press",{"text":676,"config":677,"menu":678},"Contact us",{"dataNavLevelOne":622},{"type":407,"columns":679},[680],{"items":681},[682,687,692],{"text":683,"config":684},"Talk to sales",{"href":685,"dataGaName":686,"dataGaLocation":356},"/sales/","talk to sales",{"text":688,"config":689},"Support portal",{"href":690,"dataGaName":691,"dataGaLocation":356},"https://support.gitlab.com/hc/en-us","support portal",{"text":693,"config":694},"Customer portal",{"href":695,"dataGaName":696,"dataGaLocation":356},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":698,"login":699,"suggestions":706},"Close",{"text":700,"link":701},"To search repositories and projects, login to",{"text":702,"config":703},"gitlab.com",{"href":370,"dataGaName":704,"dataGaLocation":705},"search login","search",{"text":707,"default":708},"Suggestions",[709,711,715,717,721,725],{"text":387,"config":710},{"href":392,"dataGaName":387,"dataGaLocation":705},{"text":712,"config":713},"Code Suggestions (AI)",{"href":714,"dataGaName":712,"dataGaLocation":705},"/solutions/code-suggestions/",{"text":423,"config":716},{"href":425,"dataGaName":423,"dataGaLocation":705},{"text":718,"config":719},"GitLab on AWS",{"href":720,"dataGaName":718,"dataGaLocation":705},"/partners/technology-partners/aws/",{"text":722,"config":723},"GitLab on Google Cloud",{"href":724,"dataGaName":722,"dataGaLocation":705},"/partners/technology-partners/google-cloud-platform/",{"text":726,"config":727},"Why GitLab?",{"href":400,"dataGaName":726,"dataGaLocation":705},{"freeTrial":729,"mobileIcon":734,"desktopIcon":739,"secondaryButton":742},{"text":730,"config":731},"Start free trial",{"href":732,"dataGaName":361,"dataGaLocation":733},"https://gitlab.com/-/trials/new/","nav",{"altText":735,"config":736},"Gitlab Icon",{"src":737,"dataGaName":738,"dataGaLocation":733},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":735,"config":740},{"src":741,"dataGaName":738,"dataGaLocation":733},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":743,"config":744},"Get Started",{"href":745,"dataGaName":746,"dataGaLocation":733},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":748,"mobileIcon":752,"desktopIcon":754},{"text":749,"config":750},"Learn more about GitLab Duo",{"href":392,"dataGaName":751,"dataGaLocation":733},"gitlab duo",{"altText":735,"config":753},{"src":737,"dataGaName":738,"dataGaLocation":733},{"altText":735,"config":755},{"src":741,"dataGaName":738,"dataGaLocation":733},{"button":757,"mobileIcon":762,"desktopIcon":764},{"text":758,"config":759},"/switch",{"href":760,"dataGaName":761,"dataGaLocation":733},"#contact","switch",{"altText":735,"config":763},{"src":737,"dataGaName":738,"dataGaLocation":733},{"altText":735,"config":765},{"src":766,"dataGaName":738,"dataGaLocation":733},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":768,"mobileIcon":773,"desktopIcon":775},{"text":769,"config":770},"Back to pricing",{"href":505,"dataGaName":771,"dataGaLocation":733,"icon":772},"back to pricing","GoBack",{"altText":735,"config":774},{"src":737,"dataGaName":738,"dataGaLocation":733},{"altText":735,"config":776},{"src":741,"dataGaName":738,"dataGaLocation":733},{"title":778,"titleMobile":779,"button":780,"config":785},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":398,"config":781},{"href":782,"dataGaName":783,"dataGaLocation":784},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":786,"disabled":333},"release",{"data":788},{"text":789,"source":790,"edit":796,"contribute":801,"config":806,"items":811,"minimal":1021},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":791,"config":792},"View page source",{"href":793,"dataGaName":794,"dataGaLocation":795},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":797,"config":798},"Edit this page",{"href":799,"dataGaName":800,"dataGaLocation":795},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":802,"config":803},"Please contribute",{"href":804,"dataGaName":805,"dataGaLocation":795},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":807,"facebook":808,"youtube":809,"linkedin":810},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[812,859,913,957,989],{"title":503,"links":813,"subMenu":828},[814,818,823],{"text":815,"config":816},"View plans",{"href":505,"dataGaName":817,"dataGaLocation":795},"view plans",{"text":819,"config":820},"Why Premium?",{"href":821,"dataGaName":822,"dataGaLocation":795},"/pricing/premium/","why premium",{"text":824,"config":825},"Why Ultimate?",{"href":826,"dataGaName":827,"dataGaLocation":795},"/pricing/ultimate/","why ultimate",[829],{"title":830,"links":831},"Contact Us",[832,835,837,839,844,849,854],{"text":833,"config":834},"Contact sales",{"href":685,"dataGaName":366,"dataGaLocation":795},{"text":688,"config":836},{"href":690,"dataGaName":691,"dataGaLocation":795},{"text":693,"config":838},{"href":695,"dataGaName":696,"dataGaLocation":795},{"text":840,"config":841},"Status",{"href":842,"dataGaName":843,"dataGaLocation":795},"https://status.gitlab.com/","status",{"text":845,"config":846},"Terms of use",{"href":847,"dataGaName":848,"dataGaLocation":795},"/terms/","terms of use",{"text":850,"config":851},"Privacy statement",{"href":852,"dataGaName":853,"dataGaLocation":795},"/privacy/","privacy statement",{"text":855,"config":856},"Cookie preferences",{"dataGaName":857,"dataGaLocation":795,"id":858,"isOneTrustButton":336},"cookie preferences","ot-sdk-btn",{"title":403,"links":860,"subMenu":869},[861,865],{"text":862,"config":863},"DevSecOps platform",{"href":385,"dataGaName":864,"dataGaLocation":795},"devsecops platform",{"text":866,"config":867},"AI-Assisted Development",{"href":392,"dataGaName":868,"dataGaLocation":795},"ai-assisted development",[870],{"title":871,"links":872},"Topics",[873,878,883,888,893,898,903,908],{"text":874,"config":875},"CICD",{"href":876,"dataGaName":877,"dataGaLocation":795},"/topics/ci-cd/","cicd",{"text":879,"config":880},"GitOps",{"href":881,"dataGaName":882,"dataGaLocation":795},"/topics/gitops/","gitops",{"text":884,"config":885},"DevOps",{"href":886,"dataGaName":887,"dataGaLocation":795},"/topics/devops/","devops",{"text":889,"config":890},"Version Control",{"href":891,"dataGaName":892,"dataGaLocation":795},"/topics/version-control/","version control",{"text":894,"config":895},"DevSecOps",{"href":896,"dataGaName":897,"dataGaLocation":795},"/topics/devsecops/","devsecops",{"text":899,"config":900},"Cloud Native",{"href":901,"dataGaName":902,"dataGaLocation":795},"/topics/cloud-native/","cloud native",{"text":904,"config":905},"AI for Coding",{"href":906,"dataGaName":907,"dataGaLocation":795},"/topics/devops/ai-for-coding/","ai for coding",{"text":909,"config":910},"Agentic AI",{"href":911,"dataGaName":912,"dataGaLocation":795},"/topics/agentic-ai/","agentic ai",{"title":914,"links":915},"Solutions",[916,918,920,925,929,932,936,939,941,944,947,952],{"text":447,"config":917},{"href":442,"dataGaName":447,"dataGaLocation":795},{"text":436,"config":919},{"href":419,"dataGaName":420,"dataGaLocation":795},{"text":921,"config":922},"Agile development",{"href":923,"dataGaName":924,"dataGaLocation":795},"/solutions/agile-delivery/","agile delivery",{"text":926,"config":927},"SCM",{"href":432,"dataGaName":928,"dataGaLocation":795},"source code management",{"text":874,"config":930},{"href":425,"dataGaName":931,"dataGaLocation":795},"continuous integration & delivery",{"text":933,"config":934},"Value stream management",{"href":475,"dataGaName":935,"dataGaLocation":795},"value stream management",{"text":879,"config":937},{"href":938,"dataGaName":882,"dataGaLocation":795},"/solutions/gitops/",{"text":485,"config":940},{"href":488,"dataGaName":489,"dataGaLocation":795},{"text":942,"config":943},"Small business",{"href":494,"dataGaName":495,"dataGaLocation":795},{"text":945,"config":946},"Public sector",{"href":500,"dataGaName":501,"dataGaLocation":795},{"text":948,"config":949},"Education",{"href":950,"dataGaName":951,"dataGaLocation":795},"/solutions/education/","education",{"text":953,"config":954},"Financial services",{"href":955,"dataGaName":956,"dataGaLocation":795},"/solutions/finance/","financial services",{"title":508,"links":958},[959,961,963,965,968,970,973,975,977,979,981,983,985,987],{"text":521,"config":960},{"href":523,"dataGaName":524,"dataGaLocation":795},{"text":526,"config":962},{"href":528,"dataGaName":529,"dataGaLocation":795},{"text":531,"config":964},{"href":533,"dataGaName":534,"dataGaLocation":795},{"text":536,"config":966},{"href":68,"dataGaName":967,"dataGaLocation":795},"docs",{"text":558,"config":969},{"href":560,"dataGaName":561,"dataGaLocation":795},{"text":971,"config":972},"What's new",{"href":617,"dataGaName":618,"dataGaLocation":795},{"text":553,"config":974},{"href":555,"dataGaName":556,"dataGaLocation":795},{"text":572,"config":976},{"href":574,"dataGaName":575,"dataGaLocation":795},{"text":580,"config":978},{"href":582,"dataGaName":583,"dataGaLocation":795},{"text":585,"config":980},{"href":587,"dataGaName":588,"dataGaLocation":795},{"text":590,"config":982},{"href":592,"dataGaName":345,"dataGaLocation":795},{"text":594,"config":984},{"href":596,"dataGaName":597,"dataGaLocation":795},{"text":599,"config":986},{"href":601,"dataGaName":602,"dataGaLocation":795},{"text":604,"config":988},{"href":606,"dataGaName":607,"dataGaLocation":795},{"title":620,"links":990},[991,993,995,997,999,1001,1005,1010,1012,1014,1016],{"text":628,"config":992},{"href":630,"dataGaName":622,"dataGaLocation":795},{"text":633,"config":994},{"href":635,"dataGaName":636,"dataGaLocation":795},{"text":641,"config":996},{"href":643,"dataGaName":644,"dataGaLocation":795},{"text":646,"config":998},{"href":648,"dataGaName":649,"dataGaLocation":795},{"text":651,"config":1000},{"href":653,"dataGaName":654,"dataGaLocation":795},{"text":1002,"config":1003},"Sustainability",{"href":1004,"dataGaName":1002,"dataGaLocation":795},"/sustainability/",{"text":1006,"config":1007},"Diversity, inclusion and belonging (DIB)",{"href":1008,"dataGaName":1009,"dataGaLocation":795},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":656,"config":1011},{"href":658,"dataGaName":659,"dataGaLocation":795},{"text":666,"config":1013},{"href":668,"dataGaName":669,"dataGaLocation":795},{"text":671,"config":1015},{"href":673,"dataGaName":674,"dataGaLocation":795},{"text":1017,"config":1018},"Modern Slavery Transparency Statement",{"href":1019,"dataGaName":1020,"dataGaLocation":795},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1022},[1023,1026,1029],{"text":1024,"config":1025},"Terms",{"href":847,"dataGaName":848,"dataGaLocation":795},{"text":1027,"config":1028},"Cookies",{"dataGaName":857,"dataGaLocation":795,"id":858,"isOneTrustButton":336},{"text":1030,"config":1031},"Privacy",{"href":852,"dataGaName":853,"dataGaLocation":795},[1033],{"id":1034,"title":7,"body":332,"config":1035,"content":1037,"description":332,"extension":1041,"meta":1042,"navigation":336,"path":1043,"seo":1044,"stem":1045,"__hash__":1046},"blogAuthors/en-us/blog/authors/oleksandr-pysaryuk.yml",{"template":1036},"BlogAuthor",{"name":7,"config":1038},{"headshot":1039,"ctfId":1040},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664469/Blog/Author%20Headshots/opysaryuk_headshot.png","5EbCnvbwgeZKYOUug8fFFO","yml",{},"/en-us/blog/authors/oleksandr-pysaryuk",{},"en-us/blog/authors/oleksandr-pysaryuk","KOm5M6or33A11lyoIHVPIdNHV0Mz3kcF7uYg7-CwRoM",[1048,1056,1064],{"title":1049,"description":1050,"heroImage":1051,"category":328,"date":1052,"authors":1053,"slug":1055,"externalUrl":332},"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",[1054],"Toon Claes","whats-new-in-git-2-55-0",{"title":1057,"description":1058,"heroImage":1059,"category":328,"date":1060,"authors":1061,"slug":1063,"externalUrl":332},"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",[1062],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":1065,"description":1066,"heroImage":1067,"category":328,"date":1068,"authors":1069,"slug":1071,"externalUrl":332},"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",[1070],"Patrick Steinhardt","whats-new-in-git-2-54-0",{"promotions":1073},[1074,1088,1099,1111],{"id":1075,"categories":1076,"header":1078,"text":1079,"button":1080,"image":1085},"ai-modernization",[1077],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1081,"config":1082},"Get your AI maturity score",{"href":1083,"dataGaName":1084,"dataGaLocation":561},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1086},{"src":1087},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1089,"categories":1090,"header":1091,"text":1079,"button":1092,"image":1096},"devops-modernization",[347,897],"Are you just managing tools or shipping innovation?",{"text":1093,"config":1094},"Get your DevOps maturity score",{"href":1095,"dataGaName":1084,"dataGaLocation":561},"/assessments/devops-modernization-assessment/",{"config":1097},{"src":1098},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1100,"categories":1101,"header":1103,"text":1079,"button":1104,"image":1108},"security-modernization",[1102],"security","Are you trading speed for security?",{"text":1105,"config":1106},"Get your security maturity score",{"href":1107,"dataGaName":1084,"dataGaLocation":561},"/assessments/security-modernization-assessment/",{"config":1109},{"src":1110},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1112,"paths":1113,"header":1116,"text":1117,"button":1118,"image":1123},"github-azure-migration",[1114,1115],"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":1119,"config":1120},"See how GitLab compares to GitHub",{"href":1121,"dataGaName":1122,"dataGaLocation":561},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1124},{"src":1098},{"header":1126,"blurb":1127,"button":1128,"secondaryButton":1133},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1129,"config":1130},"Get your free trial",{"href":1131,"dataGaName":361,"dataGaLocation":1132},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":833,"config":1134},{"href":685,"dataGaName":366,"dataGaLocation":1132},1786803749421]