[{"data":1,"prerenderedAt":1038},["ShallowReactive",2],{"/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare":3,"navigation-en-us":241,"banner-en-us":668,"footer-en-us":678,"blog-post-authors-en-us-Nick Veenhof|Christian Couder":923,"blog-related-posts-en-us-google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare":950,"blog-promotions-en-us":974,"next-steps-en-us":1028},{"id":4,"title":5,"authors":6,"body":9,"category":217,"date":218,"description":219,"extension":220,"externalUrl":221,"faq":221,"featured":222,"heroImage":223,"meta":224,"navigation":225,"path":226,"seo":227,"slug":231,"stem":232,"tags":233,"template":239,"updatedDate":221,"__hash__":240},"blogPosts/en-us/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare.md","Google Summer of Code 2024: Contribute to GitLab and Git to prepare",[7,8],"Nick Veenhof","Christian Couder",{"type":10,"value":11,"toc":207},"minimark",[12,35,38,43,51,77,94,97,101,104,108,128,131,139,153,157,160,163,167,170,179,183,198],[13,14,15,16,22,23,28,29,34],"p",{},"Google Summer of Code (",[17,18,21],"a",{"href":19,"rel":20},"https://summerofcode.withgoogle.com/",[],"GSoC","), a program that helps bring new contributors into open source software development, is just around the corner. So now is the time to start learning ",[17,24,27],{"href":25,"rel":26},"https://about.gitlab.com/community/contribute/",[],"how to contribute to GitLab"," or Git and prepare ideas for GSOC 2024. GitLab has participated in GSOC for more than five years of the program's 20-year history, and the mentorship opportunity aligns well with our \"",[17,30,33],{"href":31,"rel":32},"https://handbook.gitlab.com/handbook/company/mission/",[],"Everyone can contribute","\" mission.",[13,36,37],{},"In 2023, GitLab team members mentored GSoC contributors working on GitLab and Git open source projects throughout the 12-week program. One example was the “Unify ref-filter formats with other --pretty formats” Git project.",[39,40,42],"h2",{"id":41},"implementing-new-formatting-options-for-git-commands","Implementing new formatting options for Git commands",[13,44,45,46,50],{},"Kousik Sanagavarapu was selected as a 2023 GSOC contributor and was mentored by ",[17,47,8],{"href":48,"rel":49},"https://gitlab.com/chriscool",[],", staff backend engineer on the GitLab Gitaly::Git team.",[13,52,53,54,59,60,64,65,68,69,72,73,76],{},"Kousik’s work focused on implementing some ",[17,55,58],{"href":56,"rel":57},"https://summerofcode.withgoogle.com/programs/2023/projects/rck3kmq2",[],"new formatting options for Git commands"," like ",[61,62,63],"code",{},"git branch",", ",[61,66,67],{},"git tag"," and ",[61,70,71],{},"git for-each-ref",". These commands use a formatting mechanism called the “ref-filter” format. The formatting options Kousik worked on were already available for other commands like ",[61,74,75],{},"git log",", that use a different formatting mechanism called the “pretty” format. So the work involved porting these options from the “pretty” format to the “ref-filter” format.",[13,78,79,80,64,82,84,85,87,88,93],{},"Thanks to Kousik’s work, it’s now possible to use a number of new placeholders like %(signature), %(authoremail:mailmap), or %(describe) in the –format option of ",[61,81,63],{},[61,83,67],{},", and ",[61,86,71],{}," to get more information about the commits that branches, tags, or refs in general point to. ",[17,89,92],{"href":90,"rel":91},"https://git-scm.com/docs/git-for-each-ref/2.43.0#_field_names",[],"Read the documentation"," for a description of these placeholders.",[13,95,96],{},"These improvements are available in the recently released Git 2.43.",[39,98,100],{"id":99},"how-gsoc-works","How GSOC works",[13,102,103],{},"Open source organizations who participate – such as GitLab and Git – have to propose projects and provide mentors. Selected contributors are helped by the mentors and paid by Google during 12 or more weeks while they work on their projects. Contributors are evaluated three times by mentors: after a “Community Bonding” period, in the middle of the coding period, and after the coding period for a final evaluation.",[39,105,107],{"id":106},"how-to-participate-as-a-contributor","How to participate as a contributor",[13,109,110,111,115,116,121,122,127],{},"To apply to become a contributor for GSOC 2024, check out the ",[17,112,114],{"href":19,"rel":113},[],"GSoC website"," and the ",[17,117,120],{"href":118,"rel":119},"https://opensource.googleblog.com",[],"Google Open Source blog",". Interested parties should register ",[17,123,126],{"href":124,"rel":125},"https://opensource.googleblog.com/2023/02/mentor-organizations-announced-for.html",[],"when selected organizations are announced",", which will happen in a few months.",[13,129,130],{},"Contributors will then be selected by the mentors after they have made a small contribution and after they have prepared an application document that details how they plan to achieve the proposed project they want to work on.",[13,132,133,134,138],{},"Prospective contributors can start learning about GitLab or Git right now to be fully ready to make a small contribution and prepare an application. ",[17,135,137],{"href":124,"rel":136},[],"As Google says",", “The most successful applications come from contributors who start preparing now.”",[13,140,141,142,146,147,152],{},"GitLab has a lot of documentation and tutorials ",[17,143,145],{"href":25,"rel":144},[],"to learn how to contribute",", while Git has a ",[17,148,151],{"href":149,"rel":150},"https://git.github.io/Hacking-Git/",[],"Hacking Git page"," with a lot of helpful links.",[39,154,156],{"id":155},"how-gitlab-team-members-participate","How GitLab team members participate",[13,158,159],{},"GitLab participates in GSOC as an open source organization and team members from different functional areas volunteer to mentor contributors and propose projects for them to work on.",[13,161,162],{},"In 2023, GitLab team members mentored contributors on a number of GitLab-related projects, including  Pajamas Migration with the GitLab Foundations Team and improving the documentation for the contributor journey to GitLab.",[39,164,166],{"id":165},"how-git-developers-participate","How Git developers participate",[13,168,169],{},"The Git project also participates in GSoC as an open source organization, and Git developers who are interested in mentoring propose projects, and then select GSoC contributors.",[13,171,172,173,178],{},"Last summer, in addition to the \"Unify ref-filter formats with other --pretty formats\" project, Git developers proposed the \"",[17,174,177],{"href":175,"rel":176},"https://summerofcode.withgoogle.com/programs/2023/projects/Rkbc1Abe",[],"More Sparse Index integrations","\" project.",[39,180,182],{"id":181},"mentoring-and-gitlab","Mentoring and GitLab",[13,184,185,186,191,192,197],{},"GitLab’s mission is “Everyone can contribute” and we understand that helping potential contributors through mentoring can achieve this goal. In addition to participating in external programs like GSOC and ",[17,187,190],{"href":188,"rel":189},"https://about.gitlab.com/blog/outreachy-sponsorship-winter-2020/",[],"Outreachy",", GitLab has internal mentoring programs, including a ",[17,193,196],{"href":194,"rel":195},"https://handbook.gitlab.com/handbook/ceo/shadow/",[],"CEO Shadow program"," and a Mentorship program for women.",[13,199,200,201,206],{},"Learn more about ",[17,202,205],{"href":203,"rel":204},"https://handbook.gitlab.com/handbook/people-group/learning-and-development/mentor/",[],"mentoring at GitLab",".",{"title":208,"searchDepth":209,"depth":209,"links":210},"",2,[211,212,213,214,215,216],{"id":41,"depth":209,"text":42},{"id":99,"depth":209,"text":100},{"id":106,"depth":209,"text":107},{"id":155,"depth":209,"text":156},{"id":165,"depth":209,"text":166},{"id":181,"depth":209,"text":182},"open-source","2023-12-20","Learning how to contribute to GitLab and Git can help you get ready to apply for Google's program for open source development.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663000/Blog/Hero%20Images/tanukilifecycle.png",{},true,"/en-us/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare",{"title":5,"description":219,"ogTitle":5,"ogDescription":219,"noIndex":222,"ogImage":223,"ogUrl":228,"ogSiteName":229,"ogType":230,"canonicalUrls":228},"https://about.gitlab.com/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare","https://about.gitlab.com","article","google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare","en-us/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare",[234,235,236,237,238],"open source","community","contributors","git","collaboration","BlogPost","tjAxFRfnDm7PAn8pg5OvJ6IoZNPlTPUVJaqef8c00_c",{"logo":242,"freeTrial":247,"sales":252,"login":257,"items":262,"search":588,"minimal":619,"duo":638,"switchNav":647,"pricingDeployment":658},{"config":243},{"href":244,"dataGaName":245,"dataGaLocation":246},"/","gitlab logo","header",{"text":248,"config":249},"Get free trial",{"href":250,"dataGaName":251,"dataGaLocation":246},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":253,"config":254},"Request a demo",{"href":255,"dataGaName":256,"dataGaLocation":246},"/sales/?contact-topic=request-demo","sales",{"text":258,"config":259},"Sign in",{"href":260,"dataGaName":261,"dataGaLocation":246},"https://gitlab.com/users/sign_in/","sign in",[263,292,392,397,510,566],{"text":264,"config":265,"menu":267},"Platform",{"dataNavLevelOne":266},"platform",{"type":268,"columns":269},"cards",[270,276,284],{"title":264,"description":271,"link":272},"The intelligent orchestration platform for DevSecOps",{"text":273,"config":274},"Explore our Platform",{"href":275,"dataGaName":266,"dataGaLocation":246},"/platform/",{"title":277,"description":278,"link":279},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":280,"config":281},"Meet GitLab Duo",{"href":282,"dataGaName":283,"dataGaLocation":246},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":285,"description":286,"link":287},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":288,"config":289},"Learn more",{"href":290,"dataGaName":291,"dataGaLocation":246},"/why-gitlab/","why gitlab",{"text":293,"left":225,"config":294,"menu":296},"Product",{"dataNavLevelOne":295},"solutions",{"type":297,"link":298,"columns":302,"feature":371},"lists",{"text":299,"config":300},"View all Solutions",{"href":301,"dataGaName":295,"dataGaLocation":246},"/solutions/",[303,327,350],{"title":304,"description":305,"link":306,"items":311},"Automation","CI/CD and automation to accelerate deployment",{"config":307},{"icon":308,"href":309,"dataGaName":310,"dataGaLocation":246},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[312,316,319,323],{"text":313,"config":314},"CI/CD",{"href":315,"dataGaLocation":246,"dataGaName":313},"/solutions/continuous-integration/",{"text":277,"config":317},{"href":282,"dataGaLocation":246,"dataGaName":318},"gitlab duo agent platform - product menu",{"text":320,"config":321},"Source Code Management",{"href":322,"dataGaLocation":246,"dataGaName":320},"/solutions/source-code-management/",{"text":324,"config":325},"Automated Software Delivery",{"href":309,"dataGaLocation":246,"dataGaName":326},"Automated software delivery",{"title":328,"description":329,"link":330,"items":335},"Security","Deliver code faster without compromising security",{"config":331},{"href":332,"dataGaName":333,"dataGaLocation":246,"icon":334},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[336,340,345],{"text":337,"config":338},"Application Security Testing",{"href":332,"dataGaName":339,"dataGaLocation":246},"Application security testing",{"text":341,"config":342},"Software Supply Chain Security",{"href":343,"dataGaLocation":246,"dataGaName":344},"/solutions/supply-chain/","Software supply chain security",{"text":346,"config":347},"Software Compliance",{"href":348,"dataGaName":349,"dataGaLocation":246},"/solutions/software-compliance/","software compliance",{"title":351,"link":352,"items":357},"Measurement",{"config":353},{"icon":354,"href":355,"dataGaName":356,"dataGaLocation":246},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[358,362,366],{"text":359,"config":360},"Visibility & Measurement",{"href":355,"dataGaLocation":246,"dataGaName":361},"Visibility and Measurement",{"text":363,"config":364},"Value Stream Management",{"href":365,"dataGaLocation":246,"dataGaName":363},"/solutions/value-stream-management/",{"text":367,"config":368},"Analytics & Insights",{"href":369,"dataGaLocation":246,"dataGaName":370},"/solutions/analytics-and-insights/","Analytics and insights",{"title":372,"type":297,"items":373},"GitLab for",[374,380,386],{"text":375,"config":376},"Enterprise",{"icon":377,"href":378,"dataGaLocation":246,"dataGaName":379},"Building","/enterprise/","enterprise",{"text":381,"config":382},"Small Business",{"icon":383,"href":384,"dataGaLocation":246,"dataGaName":385},"Work","/small-business/","small business",{"text":387,"config":388},"Public Sector",{"icon":389,"href":390,"dataGaLocation":246,"dataGaName":391},"Organization","/solutions/public-sector/","public sector",{"text":393,"config":394},"Pricing",{"href":395,"dataGaName":396,"dataGaLocation":246,"dataNavLevelOne":396},"/pricing/","pricing",{"text":398,"config":399,"menu":401},"Resources",{"dataNavLevelOne":400},"resources",{"type":297,"link":402,"columns":406,"feature":499},{"text":403,"config":404},"View all resources",{"href":405,"dataGaName":400,"dataGaLocation":246},"/resources/",[407,440,467],{"title":408,"items":409},"Getting started",[410,415,420,425,430,435],{"text":411,"config":412},"Install",{"href":413,"dataGaName":414,"dataGaLocation":246},"/install/","install",{"text":416,"config":417},"Quick start guides",{"href":418,"dataGaName":419,"dataGaLocation":246},"/get-started/","quick setup checklists",{"text":421,"config":422},"Learn",{"href":423,"dataGaLocation":246,"dataGaName":424},"https://university.gitlab.com/","learn",{"text":426,"config":427},"Product documentation",{"href":428,"dataGaName":429,"dataGaLocation":246},"https://docs.gitlab.com/","product documentation",{"text":431,"config":432},"Best practice videos",{"href":433,"dataGaName":434,"dataGaLocation":246},"/getting-started-videos/","best practice videos",{"text":436,"config":437},"Integrations",{"href":438,"dataGaName":439,"dataGaLocation":246},"/integrations/","integrations",{"title":441,"items":442},"Discover",[443,448,453,458,462],{"text":444,"config":445},"Customer success stories",{"href":446,"dataGaName":447,"dataGaLocation":246},"/customers/","customer success stories",{"text":449,"config":450},"Blog",{"href":451,"dataGaName":452,"dataGaLocation":246},"/blog/","blog",{"text":454,"config":455},"Demo Hub",{"href":456,"dataGaName":457,"dataGaLocation":246},"/demo-hub/","demo hub",{"text":459,"config":460},"The Source",{"href":461,"dataGaName":452,"dataGaLocation":246},"/the-source/",{"text":463,"config":464},"Remote",{"href":465,"dataGaName":466,"dataGaLocation":246},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":468,"items":469},"Connect",[470,475,480,484,489,494],{"text":471,"config":472},"GitLab Services",{"href":473,"dataGaName":474,"dataGaLocation":246},"/services/","services",{"text":476,"config":477},"Contribute",{"href":478,"dataGaName":479,"dataGaLocation":246},"https://contributors.gitlab.com","contribute",{"text":481,"config":482},"Community",{"href":483,"dataGaName":235,"dataGaLocation":246},"/community/",{"text":485,"config":486},"Forum",{"href":487,"dataGaName":488,"dataGaLocation":246},"https://forum.gitlab.com/","forum",{"text":490,"config":491},"Events",{"href":492,"dataGaName":493,"dataGaLocation":246},"/events/","events",{"text":495,"config":496},"Partners",{"href":497,"dataGaName":498,"dataGaLocation":246},"/partners/","partners",{"config":500,"title":503,"text":504,"link":505},{"background":501,"textColor":502},"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":506,"config":507},"Read the latest",{"href":508,"dataGaName":509,"dataGaLocation":246},"/whats-new/","whats new",{"text":511,"config":512,"menu":514},"Company",{"dataNavLevelOne":513},"company",{"type":297,"columns":515},[516],{"items":517},[518,523,529,531,536,541,546,551,556,561],{"text":519,"config":520},"About",{"href":521,"dataGaName":522,"dataGaLocation":246},"/company/","about",{"text":524,"config":525,"footerGa":528},"Jobs",{"href":526,"dataGaName":527,"dataGaLocation":246},"/jobs/","jobs",{"dataGaName":527},{"text":490,"config":530},{"href":492,"dataGaName":493,"dataGaLocation":246},{"text":532,"config":533},"Leadership",{"href":534,"dataGaName":535,"dataGaLocation":246},"/company/team/e-group/","leadership",{"text":537,"config":538},"Handbook",{"href":539,"dataGaName":540,"dataGaLocation":246},"https://handbook.gitlab.com/","handbook",{"text":542,"config":543},"Investor relations",{"href":544,"dataGaName":545,"dataGaLocation":246},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":547,"config":548},"Trust Center",{"href":549,"dataGaName":550,"dataGaLocation":246},"/security/","trust center",{"text":552,"config":553},"AI Transparency Center",{"href":554,"dataGaName":555,"dataGaLocation":246},"/ai-transparency-center/","ai transparency center",{"text":557,"config":558},"Newsletter",{"href":559,"dataGaName":560,"dataGaLocation":246},"/company/contact/#contact-forms","newsletter",{"text":562,"config":563},"Press",{"href":564,"dataGaName":565,"dataGaLocation":246},"/press/","press",{"text":567,"config":568,"menu":569},"Contact us",{"dataNavLevelOne":513},{"type":297,"columns":570},[571],{"items":572},[573,578,583],{"text":574,"config":575},"Talk to sales",{"href":576,"dataGaName":577,"dataGaLocation":246},"/sales/","talk to sales",{"text":579,"config":580},"Support portal",{"href":581,"dataGaName":582,"dataGaLocation":246},"https://support.gitlab.com/hc/en-us","support portal",{"text":584,"config":585},"Customer portal",{"href":586,"dataGaName":587,"dataGaLocation":246},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":589,"login":590,"suggestions":597},"Close",{"text":591,"link":592},"To search repositories and projects, login to",{"text":593,"config":594},"gitlab.com",{"href":260,"dataGaName":595,"dataGaLocation":596},"search login","search",{"text":598,"default":599},"Suggestions",[600,602,606,608,612,616],{"text":277,"config":601},{"href":282,"dataGaName":277,"dataGaLocation":596},{"text":603,"config":604},"Code Suggestions (AI)",{"href":605,"dataGaName":603,"dataGaLocation":596},"/solutions/code-suggestions/",{"text":313,"config":607},{"href":315,"dataGaName":313,"dataGaLocation":596},{"text":609,"config":610},"GitLab on AWS",{"href":611,"dataGaName":609,"dataGaLocation":596},"/partners/technology-partners/aws/",{"text":613,"config":614},"GitLab on Google Cloud",{"href":615,"dataGaName":613,"dataGaLocation":596},"/partners/technology-partners/google-cloud-platform/",{"text":617,"config":618},"Why GitLab?",{"href":290,"dataGaName":617,"dataGaLocation":596},{"freeTrial":620,"mobileIcon":625,"desktopIcon":630,"secondaryButton":633},{"text":621,"config":622},"Start free trial",{"href":623,"dataGaName":251,"dataGaLocation":624},"https://gitlab.com/-/trials/new/","nav",{"altText":626,"config":627},"Gitlab Icon",{"src":628,"dataGaName":629,"dataGaLocation":624},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":626,"config":631},{"src":632,"dataGaName":629,"dataGaLocation":624},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":634,"config":635},"Get Started",{"href":636,"dataGaName":637,"dataGaLocation":624},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":639,"mobileIcon":643,"desktopIcon":645},{"text":640,"config":641},"Learn more about GitLab Duo",{"href":282,"dataGaName":642,"dataGaLocation":624},"gitlab duo",{"altText":626,"config":644},{"src":628,"dataGaName":629,"dataGaLocation":624},{"altText":626,"config":646},{"src":632,"dataGaName":629,"dataGaLocation":624},{"button":648,"mobileIcon":653,"desktopIcon":655},{"text":649,"config":650},"/switch",{"href":651,"dataGaName":652,"dataGaLocation":624},"#contact","switch",{"altText":626,"config":654},{"src":628,"dataGaName":629,"dataGaLocation":624},{"altText":626,"config":656},{"src":657,"dataGaName":629,"dataGaLocation":624},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":659,"mobileIcon":664,"desktopIcon":666},{"text":660,"config":661},"Back to pricing",{"href":395,"dataGaName":662,"dataGaLocation":624,"icon":663},"back to pricing","GoBack",{"altText":626,"config":665},{"src":628,"dataGaName":629,"dataGaLocation":624},{"altText":626,"config":667},{"src":632,"dataGaName":629,"dataGaLocation":624},{"title":669,"titleMobile":670,"button":671,"config":676},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":288,"config":672},{"href":673,"dataGaName":674,"dataGaLocation":675},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":677,"disabled":222},"release",{"data":679},{"text":680,"source":681,"edit":687,"contribute":692,"config":697,"items":702,"minimal":912},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":682,"config":683},"View page source",{"href":684,"dataGaName":685,"dataGaLocation":686},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":688,"config":689},"Edit this page",{"href":690,"dataGaName":691,"dataGaLocation":686},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":693,"config":694},"Please contribute",{"href":695,"dataGaName":696,"dataGaLocation":686},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":698,"facebook":699,"youtube":700,"linkedin":701},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[703,750,804,848,880],{"title":393,"links":704,"subMenu":719},[705,709,714],{"text":706,"config":707},"View plans",{"href":395,"dataGaName":708,"dataGaLocation":686},"view plans",{"text":710,"config":711},"Why Premium?",{"href":712,"dataGaName":713,"dataGaLocation":686},"/pricing/premium/","why premium",{"text":715,"config":716},"Why Ultimate?",{"href":717,"dataGaName":718,"dataGaLocation":686},"/pricing/ultimate/","why ultimate",[720],{"title":721,"links":722},"Contact Us",[723,726,728,730,735,740,745],{"text":724,"config":725},"Contact sales",{"href":576,"dataGaName":256,"dataGaLocation":686},{"text":579,"config":727},{"href":581,"dataGaName":582,"dataGaLocation":686},{"text":584,"config":729},{"href":586,"dataGaName":587,"dataGaLocation":686},{"text":731,"config":732},"Status",{"href":733,"dataGaName":734,"dataGaLocation":686},"https://status.gitlab.com/","status",{"text":736,"config":737},"Terms of use",{"href":738,"dataGaName":739,"dataGaLocation":686},"/terms/","terms of use",{"text":741,"config":742},"Privacy statement",{"href":743,"dataGaName":744,"dataGaLocation":686},"/privacy/","privacy statement",{"text":746,"config":747},"Cookie preferences",{"dataGaName":748,"dataGaLocation":686,"id":749,"isOneTrustButton":225},"cookie preferences","ot-sdk-btn",{"title":293,"links":751,"subMenu":760},[752,756],{"text":753,"config":754},"DevSecOps platform",{"href":275,"dataGaName":755,"dataGaLocation":686},"devsecops platform",{"text":757,"config":758},"AI-Assisted Development",{"href":282,"dataGaName":759,"dataGaLocation":686},"ai-assisted development",[761],{"title":762,"links":763},"Topics",[764,769,774,779,784,789,794,799],{"text":765,"config":766},"CICD",{"href":767,"dataGaName":768,"dataGaLocation":686},"/topics/ci-cd/","cicd",{"text":770,"config":771},"GitOps",{"href":772,"dataGaName":773,"dataGaLocation":686},"/topics/gitops/","gitops",{"text":775,"config":776},"DevOps",{"href":777,"dataGaName":778,"dataGaLocation":686},"/topics/devops/","devops",{"text":780,"config":781},"Version Control",{"href":782,"dataGaName":783,"dataGaLocation":686},"/topics/version-control/","version control",{"text":785,"config":786},"DevSecOps",{"href":787,"dataGaName":788,"dataGaLocation":686},"/topics/devsecops/","devsecops",{"text":790,"config":791},"Cloud Native",{"href":792,"dataGaName":793,"dataGaLocation":686},"/topics/cloud-native/","cloud native",{"text":795,"config":796},"AI for Coding",{"href":797,"dataGaName":798,"dataGaLocation":686},"/topics/devops/ai-for-coding/","ai for coding",{"text":800,"config":801},"Agentic AI",{"href":802,"dataGaName":803,"dataGaLocation":686},"/topics/agentic-ai/","agentic ai",{"title":805,"links":806},"Solutions",[807,809,811,816,820,823,827,830,832,835,838,843],{"text":337,"config":808},{"href":332,"dataGaName":337,"dataGaLocation":686},{"text":326,"config":810},{"href":309,"dataGaName":310,"dataGaLocation":686},{"text":812,"config":813},"Agile development",{"href":814,"dataGaName":815,"dataGaLocation":686},"/solutions/agile-delivery/","agile delivery",{"text":817,"config":818},"SCM",{"href":322,"dataGaName":819,"dataGaLocation":686},"source code management",{"text":765,"config":821},{"href":315,"dataGaName":822,"dataGaLocation":686},"continuous integration & delivery",{"text":824,"config":825},"Value stream management",{"href":365,"dataGaName":826,"dataGaLocation":686},"value stream management",{"text":770,"config":828},{"href":829,"dataGaName":773,"dataGaLocation":686},"/solutions/gitops/",{"text":375,"config":831},{"href":378,"dataGaName":379,"dataGaLocation":686},{"text":833,"config":834},"Small business",{"href":384,"dataGaName":385,"dataGaLocation":686},{"text":836,"config":837},"Public sector",{"href":390,"dataGaName":391,"dataGaLocation":686},{"text":839,"config":840},"Education",{"href":841,"dataGaName":842,"dataGaLocation":686},"/solutions/education/","education",{"text":844,"config":845},"Financial services",{"href":846,"dataGaName":847,"dataGaLocation":686},"/solutions/finance/","financial services",{"title":398,"links":849},[850,852,854,856,859,861,864,866,868,870,872,874,876,878],{"text":411,"config":851},{"href":413,"dataGaName":414,"dataGaLocation":686},{"text":416,"config":853},{"href":418,"dataGaName":419,"dataGaLocation":686},{"text":421,"config":855},{"href":423,"dataGaName":424,"dataGaLocation":686},{"text":426,"config":857},{"href":428,"dataGaName":858,"dataGaLocation":686},"docs",{"text":449,"config":860},{"href":451,"dataGaName":452,"dataGaLocation":686},{"text":862,"config":863},"What's new",{"href":508,"dataGaName":509,"dataGaLocation":686},{"text":444,"config":865},{"href":446,"dataGaName":447,"dataGaLocation":686},{"text":463,"config":867},{"href":465,"dataGaName":466,"dataGaLocation":686},{"text":471,"config":869},{"href":473,"dataGaName":474,"dataGaLocation":686},{"text":476,"config":871},{"href":478,"dataGaName":479,"dataGaLocation":686},{"text":481,"config":873},{"href":483,"dataGaName":235,"dataGaLocation":686},{"text":485,"config":875},{"href":487,"dataGaName":488,"dataGaLocation":686},{"text":490,"config":877},{"href":492,"dataGaName":493,"dataGaLocation":686},{"text":495,"config":879},{"href":497,"dataGaName":498,"dataGaLocation":686},{"title":511,"links":881},[882,884,886,888,890,892,896,901,903,905,907],{"text":519,"config":883},{"href":521,"dataGaName":513,"dataGaLocation":686},{"text":524,"config":885},{"href":526,"dataGaName":527,"dataGaLocation":686},{"text":532,"config":887},{"href":534,"dataGaName":535,"dataGaLocation":686},{"text":537,"config":889},{"href":539,"dataGaName":540,"dataGaLocation":686},{"text":542,"config":891},{"href":544,"dataGaName":545,"dataGaLocation":686},{"text":893,"config":894},"Sustainability",{"href":895,"dataGaName":893,"dataGaLocation":686},"/sustainability/",{"text":897,"config":898},"Diversity, inclusion and belonging (DIB)",{"href":899,"dataGaName":900,"dataGaLocation":686},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":547,"config":902},{"href":549,"dataGaName":550,"dataGaLocation":686},{"text":557,"config":904},{"href":559,"dataGaName":560,"dataGaLocation":686},{"text":562,"config":906},{"href":564,"dataGaName":565,"dataGaLocation":686},{"text":908,"config":909},"Modern Slavery Transparency Statement",{"href":910,"dataGaName":911,"dataGaLocation":686},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":913},[914,917,920],{"text":915,"config":916},"Terms",{"href":738,"dataGaName":739,"dataGaLocation":686},{"text":918,"config":919},"Cookies",{"dataGaName":748,"dataGaLocation":686,"id":749,"isOneTrustButton":225},{"text":921,"config":922},"Privacy",{"href":743,"dataGaName":744,"dataGaLocation":686},[924,938],{"id":925,"title":7,"body":221,"config":926,"content":928,"description":221,"extension":932,"meta":933,"navigation":225,"path":934,"seo":935,"stem":936,"__hash__":937},"blogAuthors/en-us/blog/authors/nick-veenhof.yml",{"template":927},"BlogAuthor",{"name":7,"config":929},{"headshot":930,"ctfId":931},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679373/Blog/Author%20Headshots/nick_vh-headshot.jpg","nickvh","yml",{},"/en-us/blog/authors/nick-veenhof",{},"en-us/blog/authors/nick-veenhof","ma8ulRPGa203T7BUg1Wi2qtsti_gTkx8j4XhwXf_usU",{"id":939,"title":8,"body":221,"config":940,"content":941,"description":221,"extension":932,"meta":945,"navigation":225,"path":946,"seo":947,"stem":948,"__hash__":949},"blogAuthors/en-us/blog/authors/christian-couder.yml",{"template":927},{"name":8,"config":942},{"headshot":943,"ctfId":944},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663687/Blog/Author%20Headshots/chriscool-headshot.jpg","chriscool",{},"/en-us/blog/authors/christian-couder",{},"en-us/blog/authors/christian-couder","6VsKjKNdm1XKAmFMZHj53ROyylDlxaSJhcARRkw6EQQ",[951,959,966],{"title":952,"description":953,"heroImage":954,"category":217,"date":955,"authors":956,"slug":958,"externalUrl":221},"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",[957],"Toon Claes","whats-new-in-git-2-55-0",{"title":960,"description":961,"heroImage":962,"category":217,"date":963,"authors":964,"slug":965,"externalUrl":221},"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",[7],"gitlab-ai-hackathon-2026-meet-the-winners",{"title":967,"description":968,"heroImage":969,"category":217,"date":970,"authors":971,"slug":973,"externalUrl":221},"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",[972],"Patrick Steinhardt","whats-new-in-git-2-54-0",{"promotions":975},[976,990,1002,1014],{"id":977,"categories":978,"header":980,"text":981,"button":982,"image":987},"ai-modernization",[979],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":983,"config":984},"Get your AI maturity score",{"href":985,"dataGaName":986,"dataGaLocation":452},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":988},{"src":989},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":991,"categories":992,"header":994,"text":981,"button":995,"image":999},"devops-modernization",[993,788],"product","Are you just managing tools or shipping innovation?",{"text":996,"config":997},"Get your DevOps maturity score",{"href":998,"dataGaName":986,"dataGaLocation":452},"/assessments/devops-modernization-assessment/",{"config":1000},{"src":1001},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1003,"categories":1004,"header":1006,"text":981,"button":1007,"image":1011},"security-modernization",[1005],"security","Are you trading speed for security?",{"text":1008,"config":1009},"Get your security maturity score",{"href":1010,"dataGaName":986,"dataGaLocation":452},"/assessments/security-modernization-assessment/",{"config":1012},{"src":1013},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1015,"paths":1016,"header":1019,"text":1020,"button":1021,"image":1026},"github-azure-migration",[1017,1018],"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":1022,"config":1023},"See how GitLab compares to GitHub",{"href":1024,"dataGaName":1025,"dataGaLocation":452},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1027},{"src":1001},{"header":1029,"blurb":1030,"button":1031,"secondaryButton":1036},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1032,"config":1033},"Get your free trial",{"href":1034,"dataGaName":251,"dataGaLocation":1035},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":724,"config":1037},{"href":576,"dataGaName":256,"dataGaLocation":1035},1786803734339]