[{"data":1,"prerenderedAt":38223},["ShallowReactive",2],{"/en-us/blog/categories/bulletin-board":3,"navigation-en-us":21,"banner-en-us":450,"footer-en-us":467,"footer-source-/en-us/blog/categories/bulletin-board/":712,"blogPosts-en-us":716,"bulletin-board-category-en-us":38208},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":11,"config":12,"_id":15,"_type":16,"title":9,"_source":17,"_file":18,"_stem":19,"_extension":20},"/en-us/blog/categories/bulletin-board","categories",false,"",{"title":9,"description":10},"Bulletin Board","Browse articles related to Bulletin Board on the GitLab Blog",{"name":9},{"template":13,"slug":14,"hide":6},"BlogCategory","bulletin-board","content:en-us:blog:categories:bulletin-board.yml","yaml","content","en-us/blog/categories/bulletin-board.yml","en-us/blog/categories/bulletin-board","yml",{"_path":22,"_dir":23,"_draft":6,"_partial":6,"_locale":7,"data":24,"_id":446,"_type":16,"title":447,"_source":17,"_file":448,"_stem":449,"_extension":20},"/shared/en-us/main-navigation","en-us",{"logo":25,"freeTrial":30,"sales":35,"login":40,"items":45,"search":377,"minimal":408,"duo":427,"pricingDeployment":436},{"config":26},{"href":27,"dataGaName":28,"dataGaLocation":29},"/","gitlab logo","header",{"text":31,"config":32},"Get free trial",{"href":33,"dataGaName":34,"dataGaLocation":29},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":36,"config":37},"Talk to sales",{"href":38,"dataGaName":39,"dataGaLocation":29},"/sales/","sales",{"text":41,"config":42},"Sign in",{"href":43,"dataGaName":44,"dataGaLocation":29},"https://gitlab.com/users/sign_in/","sign in",[46,90,187,192,298,358],{"text":47,"config":48,"cards":50,"footer":73},"Platform",{"dataNavLevelOne":49},"platform",[51,57,65],{"title":47,"description":52,"link":53},"The most comprehensive AI-powered DevSecOps Platform",{"text":54,"config":55},"Explore our Platform",{"href":56,"dataGaName":49,"dataGaLocation":29},"/platform/",{"title":58,"description":59,"link":60},"GitLab Duo (AI)","Build software faster with AI at every stage of development",{"text":61,"config":62},"Meet GitLab Duo",{"href":63,"dataGaName":64,"dataGaLocation":29},"/gitlab-duo/","gitlab duo ai",{"title":66,"description":67,"link":68},"Why GitLab","10 reasons why Enterprises choose GitLab",{"text":69,"config":70},"Learn more",{"href":71,"dataGaName":72,"dataGaLocation":29},"/why-gitlab/","why gitlab",{"title":74,"items":75},"Get started with",[76,81,86],{"text":77,"config":78},"Platform Engineering",{"href":79,"dataGaName":80,"dataGaLocation":29},"/solutions/platform-engineering/","platform engineering",{"text":82,"config":83},"Developer Experience",{"href":84,"dataGaName":85,"dataGaLocation":29},"/developer-experience/","Developer experience",{"text":87,"config":88},"MLOps",{"href":89,"dataGaName":87,"dataGaLocation":29},"/topics/devops/the-role-of-ai-in-devops/",{"text":91,"left":92,"config":93,"link":95,"lists":99,"footer":169},"Product",true,{"dataNavLevelOne":94},"solutions",{"text":96,"config":97},"View all Solutions",{"href":98,"dataGaName":94,"dataGaLocation":29},"/solutions/",[100,125,148],{"title":101,"description":102,"link":103,"items":108},"Automation","CI/CD and automation to accelerate deployment",{"config":104},{"icon":105,"href":106,"dataGaName":107,"dataGaLocation":29},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[109,113,117,121],{"text":110,"config":111},"CI/CD",{"href":112,"dataGaLocation":29,"dataGaName":110},"/solutions/continuous-integration/",{"text":114,"config":115},"AI-Assisted Development",{"href":63,"dataGaLocation":29,"dataGaName":116},"AI assisted development",{"text":118,"config":119},"Source Code Management",{"href":120,"dataGaLocation":29,"dataGaName":118},"/solutions/source-code-management/",{"text":122,"config":123},"Automated Software Delivery",{"href":106,"dataGaLocation":29,"dataGaName":124},"Automated software delivery",{"title":126,"description":127,"link":128,"items":133},"Security","Deliver code faster without compromising security",{"config":129},{"href":130,"dataGaName":131,"dataGaLocation":29,"icon":132},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[134,138,143],{"text":135,"config":136},"Application Security Testing",{"href":130,"dataGaName":137,"dataGaLocation":29},"Application security testing",{"text":139,"config":140},"Software Supply Chain Security",{"href":141,"dataGaLocation":29,"dataGaName":142},"/solutions/supply-chain/","Software supply chain security",{"text":144,"config":145},"Software Compliance",{"href":146,"dataGaName":147,"dataGaLocation":29},"/solutions/software-compliance/","software compliance",{"title":149,"link":150,"items":155},"Measurement",{"config":151},{"icon":152,"href":153,"dataGaName":154,"dataGaLocation":29},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[156,160,164],{"text":157,"config":158},"Visibility & Measurement",{"href":153,"dataGaLocation":29,"dataGaName":159},"Visibility and Measurement",{"text":161,"config":162},"Value Stream Management",{"href":163,"dataGaLocation":29,"dataGaName":161},"/solutions/value-stream-management/",{"text":165,"config":166},"Analytics & Insights",{"href":167,"dataGaLocation":29,"dataGaName":168},"/solutions/analytics-and-insights/","Analytics and insights",{"title":170,"items":171},"GitLab for",[172,177,182],{"text":173,"config":174},"Enterprise",{"href":175,"dataGaLocation":29,"dataGaName":176},"/enterprise/","enterprise",{"text":178,"config":179},"Small Business",{"href":180,"dataGaLocation":29,"dataGaName":181},"/small-business/","small business",{"text":183,"config":184},"Public Sector",{"href":185,"dataGaLocation":29,"dataGaName":186},"/solutions/public-sector/","public sector",{"text":188,"config":189},"Pricing",{"href":190,"dataGaName":191,"dataGaLocation":29,"dataNavLevelOne":191},"/pricing/","pricing",{"text":193,"config":194,"link":196,"lists":200,"feature":285},"Resources",{"dataNavLevelOne":195},"resources",{"text":197,"config":198},"View all resources",{"href":199,"dataGaName":195,"dataGaLocation":29},"/resources/",[201,234,257],{"title":202,"items":203},"Getting started",[204,209,214,219,224,229],{"text":205,"config":206},"Install",{"href":207,"dataGaName":208,"dataGaLocation":29},"/install/","install",{"text":210,"config":211},"Quick start guides",{"href":212,"dataGaName":213,"dataGaLocation":29},"/get-started/","quick setup checklists",{"text":215,"config":216},"Learn",{"href":217,"dataGaLocation":29,"dataGaName":218},"https://university.gitlab.com/","learn",{"text":220,"config":221},"Product documentation",{"href":222,"dataGaName":223,"dataGaLocation":29},"https://docs.gitlab.com/","product documentation",{"text":225,"config":226},"Best practice videos",{"href":227,"dataGaName":228,"dataGaLocation":29},"/getting-started-videos/","best practice videos",{"text":230,"config":231},"Integrations",{"href":232,"dataGaName":233,"dataGaLocation":29},"/integrations/","integrations",{"title":235,"items":236},"Discover",[237,242,247,252],{"text":238,"config":239},"Customer success stories",{"href":240,"dataGaName":241,"dataGaLocation":29},"/customers/","customer success stories",{"text":243,"config":244},"Blog",{"href":245,"dataGaName":246,"dataGaLocation":29},"/blog/","blog",{"text":248,"config":249},"Remote",{"href":250,"dataGaName":251,"dataGaLocation":29},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":253,"config":254},"TeamOps",{"href":255,"dataGaName":256,"dataGaLocation":29},"/teamops/","teamops",{"title":258,"items":259},"Connect",[260,265,270,275,280],{"text":261,"config":262},"GitLab Services",{"href":263,"dataGaName":264,"dataGaLocation":29},"/services/","services",{"text":266,"config":267},"Community",{"href":268,"dataGaName":269,"dataGaLocation":29},"/community/","community",{"text":271,"config":272},"Forum",{"href":273,"dataGaName":274,"dataGaLocation":29},"https://forum.gitlab.com/","forum",{"text":276,"config":277},"Events",{"href":278,"dataGaName":279,"dataGaLocation":29},"/events/","events",{"text":281,"config":282},"Partners",{"href":283,"dataGaName":284,"dataGaLocation":29},"/partners/","partners",{"backgroundColor":286,"textColor":287,"text":288,"image":289,"link":293},"#2f2a6b","#fff","Insights for the future of software development",{"altText":290,"config":291},"the source promo card",{"src":292},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":294,"config":295},"Read the latest",{"href":296,"dataGaName":297,"dataGaLocation":29},"/the-source/","the source",{"text":299,"config":300,"lists":302},"Company",{"dataNavLevelOne":301},"company",[303],{"items":304},[305,310,316,318,323,328,333,338,343,348,353],{"text":306,"config":307},"About",{"href":308,"dataGaName":309,"dataGaLocation":29},"/company/","about",{"text":311,"config":312,"footerGa":315},"Jobs",{"href":313,"dataGaName":314,"dataGaLocation":29},"/jobs/","jobs",{"dataGaName":314},{"text":276,"config":317},{"href":278,"dataGaName":279,"dataGaLocation":29},{"text":319,"config":320},"Leadership",{"href":321,"dataGaName":322,"dataGaLocation":29},"/company/team/e-group/","leadership",{"text":324,"config":325},"Team",{"href":326,"dataGaName":327,"dataGaLocation":29},"/company/team/","team",{"text":329,"config":330},"Handbook",{"href":331,"dataGaName":332,"dataGaLocation":29},"https://handbook.gitlab.com/","handbook",{"text":334,"config":335},"Investor relations",{"href":336,"dataGaName":337,"dataGaLocation":29},"https://ir.gitlab.com/","investor relations",{"text":339,"config":340},"Trust Center",{"href":341,"dataGaName":342,"dataGaLocation":29},"/security/","trust center",{"text":344,"config":345},"AI Transparency Center",{"href":346,"dataGaName":347,"dataGaLocation":29},"/ai-transparency-center/","ai transparency center",{"text":349,"config":350},"Newsletter",{"href":351,"dataGaName":352,"dataGaLocation":29},"/company/contact/","newsletter",{"text":354,"config":355},"Press",{"href":356,"dataGaName":357,"dataGaLocation":29},"/press/","press",{"text":359,"config":360,"lists":361},"Contact us",{"dataNavLevelOne":301},[362],{"items":363},[364,367,372],{"text":36,"config":365},{"href":38,"dataGaName":366,"dataGaLocation":29},"talk to sales",{"text":368,"config":369},"Support portal",{"href":370,"dataGaName":371,"dataGaLocation":29},"https://support.gitlab.com","support portal",{"text":373,"config":374},"Customer portal",{"href":375,"dataGaName":376,"dataGaLocation":29},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":378,"login":379,"suggestions":386},"Close",{"text":380,"link":381},"To search repositories and projects, login to",{"text":382,"config":383},"gitlab.com",{"href":43,"dataGaName":384,"dataGaLocation":385},"search login","search",{"text":387,"default":388},"Suggestions",[389,391,395,397,401,405],{"text":58,"config":390},{"href":63,"dataGaName":58,"dataGaLocation":385},{"text":392,"config":393},"Code Suggestions (AI)",{"href":394,"dataGaName":392,"dataGaLocation":385},"/solutions/code-suggestions/",{"text":110,"config":396},{"href":112,"dataGaName":110,"dataGaLocation":385},{"text":398,"config":399},"GitLab on AWS",{"href":400,"dataGaName":398,"dataGaLocation":385},"/partners/technology-partners/aws/",{"text":402,"config":403},"GitLab on Google Cloud",{"href":404,"dataGaName":402,"dataGaLocation":385},"/partners/technology-partners/google-cloud-platform/",{"text":406,"config":407},"Why GitLab?",{"href":71,"dataGaName":406,"dataGaLocation":385},{"freeTrial":409,"mobileIcon":414,"desktopIcon":419,"secondaryButton":422},{"text":410,"config":411},"Start free trial",{"href":412,"dataGaName":34,"dataGaLocation":413},"https://gitlab.com/-/trials/new/","nav",{"altText":415,"config":416},"Gitlab Icon",{"src":417,"dataGaName":418,"dataGaLocation":413},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":415,"config":420},{"src":421,"dataGaName":418,"dataGaLocation":413},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":423,"config":424},"Get Started",{"href":425,"dataGaName":426,"dataGaLocation":413},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":428,"mobileIcon":432,"desktopIcon":434},{"text":429,"config":430},"Learn more about GitLab Duo",{"href":63,"dataGaName":431,"dataGaLocation":413},"gitlab duo",{"altText":415,"config":433},{"src":417,"dataGaName":418,"dataGaLocation":413},{"altText":415,"config":435},{"src":421,"dataGaName":418,"dataGaLocation":413},{"freeTrial":437,"mobileIcon":442,"desktopIcon":444},{"text":438,"config":439},"Back to pricing",{"href":190,"dataGaName":440,"dataGaLocation":413,"icon":441},"back to pricing","GoBack",{"altText":415,"config":443},{"src":417,"dataGaName":418,"dataGaLocation":413},{"altText":415,"config":445},{"src":421,"dataGaName":418,"dataGaLocation":413},"content:shared:en-us:main-navigation.yml","Main Navigation","shared/en-us/main-navigation.yml","shared/en-us/main-navigation",{"_path":451,"_dir":23,"_draft":6,"_partial":6,"_locale":7,"title":452,"button":453,"image":458,"config":462,"_id":464,"_type":16,"_source":17,"_file":465,"_stem":466,"_extension":20},"/shared/en-us/banner","is now in public beta!",{"text":454,"config":455},"Try the Beta",{"href":456,"dataGaName":457,"dataGaLocation":29},"/gitlab-duo/agent-platform/","duo banner",{"altText":459,"config":460},"GitLab Duo Agent Platform",{"src":461},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1753720689/somrf9zaunk0xlt7ne4x.svg",{"layout":463},"release","content:shared:en-us:banner.yml","shared/en-us/banner.yml","shared/en-us/banner",{"_path":468,"_dir":23,"_draft":6,"_partial":6,"_locale":7,"data":469,"_id":708,"_type":16,"title":709,"_source":17,"_file":710,"_stem":711,"_extension":20},"/shared/en-us/main-footer",{"text":470,"source":471,"edit":477,"contribute":482,"config":487,"items":492,"minimal":700},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":472,"config":473},"View page source",{"href":474,"dataGaName":475,"dataGaLocation":476},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":478,"config":479},"Edit this page",{"href":480,"dataGaName":481,"dataGaLocation":476},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":483,"config":484},"Please contribute",{"href":485,"dataGaName":486,"dataGaLocation":476},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":488,"facebook":489,"youtube":490,"linkedin":491},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[493,540,593,637,666],{"title":188,"links":494,"subMenu":509},[495,499,504],{"text":496,"config":497},"View plans",{"href":190,"dataGaName":498,"dataGaLocation":476},"view plans",{"text":500,"config":501},"Why Premium?",{"href":502,"dataGaName":503,"dataGaLocation":476},"/pricing/premium/","why premium",{"text":505,"config":506},"Why Ultimate?",{"href":507,"dataGaName":508,"dataGaLocation":476},"/pricing/ultimate/","why ultimate",[510],{"title":511,"links":512},"Contact Us",[513,516,518,520,525,530,535],{"text":514,"config":515},"Contact sales",{"href":38,"dataGaName":39,"dataGaLocation":476},{"text":368,"config":517},{"href":370,"dataGaName":371,"dataGaLocation":476},{"text":373,"config":519},{"href":375,"dataGaName":376,"dataGaLocation":476},{"text":521,"config":522},"Status",{"href":523,"dataGaName":524,"dataGaLocation":476},"https://status.gitlab.com/","status",{"text":526,"config":527},"Terms of use",{"href":528,"dataGaName":529,"dataGaLocation":476},"/terms/","terms of use",{"text":531,"config":532},"Privacy statement",{"href":533,"dataGaName":534,"dataGaLocation":476},"/privacy/","privacy statement",{"text":536,"config":537},"Cookie preferences",{"dataGaName":538,"dataGaLocation":476,"id":539,"isOneTrustButton":92},"cookie preferences","ot-sdk-btn",{"title":91,"links":541,"subMenu":549},[542,546],{"text":543,"config":544},"DevSecOps platform",{"href":56,"dataGaName":545,"dataGaLocation":476},"devsecops platform",{"text":114,"config":547},{"href":63,"dataGaName":548,"dataGaLocation":476},"ai-assisted development",[550],{"title":551,"links":552},"Topics",[553,558,563,568,573,578,583,588],{"text":554,"config":555},"CICD",{"href":556,"dataGaName":557,"dataGaLocation":476},"/topics/ci-cd/","cicd",{"text":559,"config":560},"GitOps",{"href":561,"dataGaName":562,"dataGaLocation":476},"/topics/gitops/","gitops",{"text":564,"config":565},"DevOps",{"href":566,"dataGaName":567,"dataGaLocation":476},"/topics/devops/","devops",{"text":569,"config":570},"Version Control",{"href":571,"dataGaName":572,"dataGaLocation":476},"/topics/version-control/","version control",{"text":574,"config":575},"DevSecOps",{"href":576,"dataGaName":577,"dataGaLocation":476},"/topics/devsecops/","devsecops",{"text":579,"config":580},"Cloud Native",{"href":581,"dataGaName":582,"dataGaLocation":476},"/topics/cloud-native/","cloud native",{"text":584,"config":585},"AI for Coding",{"href":586,"dataGaName":587,"dataGaLocation":476},"/topics/devops/ai-for-coding/","ai for coding",{"text":589,"config":590},"Agentic AI",{"href":591,"dataGaName":592,"dataGaLocation":476},"/topics/agentic-ai/","agentic ai",{"title":594,"links":595},"Solutions",[596,598,600,605,609,612,616,619,621,624,627,632],{"text":135,"config":597},{"href":130,"dataGaName":135,"dataGaLocation":476},{"text":124,"config":599},{"href":106,"dataGaName":107,"dataGaLocation":476},{"text":601,"config":602},"Agile development",{"href":603,"dataGaName":604,"dataGaLocation":476},"/solutions/agile-delivery/","agile delivery",{"text":606,"config":607},"SCM",{"href":120,"dataGaName":608,"dataGaLocation":476},"source code management",{"text":554,"config":610},{"href":112,"dataGaName":611,"dataGaLocation":476},"continuous integration & delivery",{"text":613,"config":614},"Value stream management",{"href":163,"dataGaName":615,"dataGaLocation":476},"value stream management",{"text":559,"config":617},{"href":618,"dataGaName":562,"dataGaLocation":476},"/solutions/gitops/",{"text":173,"config":620},{"href":175,"dataGaName":176,"dataGaLocation":476},{"text":622,"config":623},"Small business",{"href":180,"dataGaName":181,"dataGaLocation":476},{"text":625,"config":626},"Public sector",{"href":185,"dataGaName":186,"dataGaLocation":476},{"text":628,"config":629},"Education",{"href":630,"dataGaName":631,"dataGaLocation":476},"/solutions/education/","education",{"text":633,"config":634},"Financial services",{"href":635,"dataGaName":636,"dataGaLocation":476},"/solutions/finance/","financial services",{"title":193,"links":638},[639,641,643,645,648,650,652,654,656,658,660,662,664],{"text":205,"config":640},{"href":207,"dataGaName":208,"dataGaLocation":476},{"text":210,"config":642},{"href":212,"dataGaName":213,"dataGaLocation":476},{"text":215,"config":644},{"href":217,"dataGaName":218,"dataGaLocation":476},{"text":220,"config":646},{"href":222,"dataGaName":647,"dataGaLocation":476},"docs",{"text":243,"config":649},{"href":245,"dataGaName":246,"dataGaLocation":476},{"text":238,"config":651},{"href":240,"dataGaName":241,"dataGaLocation":476},{"text":248,"config":653},{"href":250,"dataGaName":251,"dataGaLocation":476},{"text":261,"config":655},{"href":263,"dataGaName":264,"dataGaLocation":476},{"text":253,"config":657},{"href":255,"dataGaName":256,"dataGaLocation":476},{"text":266,"config":659},{"href":268,"dataGaName":269,"dataGaLocation":476},{"text":271,"config":661},{"href":273,"dataGaName":274,"dataGaLocation":476},{"text":276,"config":663},{"href":278,"dataGaName":279,"dataGaLocation":476},{"text":281,"config":665},{"href":283,"dataGaName":284,"dataGaLocation":476},{"title":299,"links":667},[668,670,672,674,676,678,680,684,689,691,693,695],{"text":306,"config":669},{"href":308,"dataGaName":301,"dataGaLocation":476},{"text":311,"config":671},{"href":313,"dataGaName":314,"dataGaLocation":476},{"text":319,"config":673},{"href":321,"dataGaName":322,"dataGaLocation":476},{"text":324,"config":675},{"href":326,"dataGaName":327,"dataGaLocation":476},{"text":329,"config":677},{"href":331,"dataGaName":332,"dataGaLocation":476},{"text":334,"config":679},{"href":336,"dataGaName":337,"dataGaLocation":476},{"text":681,"config":682},"Sustainability",{"href":683,"dataGaName":681,"dataGaLocation":476},"/sustainability/",{"text":685,"config":686},"Diversity, inclusion and belonging (DIB)",{"href":687,"dataGaName":688,"dataGaLocation":476},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":339,"config":690},{"href":341,"dataGaName":342,"dataGaLocation":476},{"text":349,"config":692},{"href":351,"dataGaName":352,"dataGaLocation":476},{"text":354,"config":694},{"href":356,"dataGaName":357,"dataGaLocation":476},{"text":696,"config":697},"Modern Slavery Transparency Statement",{"href":698,"dataGaName":699,"dataGaLocation":476},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":701},[702,704,706],{"text":526,"config":703},{"href":528,"dataGaName":529,"dataGaLocation":476},{"text":531,"config":705},{"href":533,"dataGaName":534,"dataGaLocation":476},{"text":536,"config":707},{"dataGaName":538,"dataGaLocation":476,"id":539,"isOneTrustButton":92},"content:shared:en-us:main-footer.yml","Main Footer","shared/en-us/main-footer.yml","shared/en-us/main-footer",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":713,"content":714,"config":715,"_id":15,"_type":16,"title":9,"_source":17,"_file":18,"_stem":19,"_extension":20},{"title":9,"description":10},{"name":9},{"template":13,"slug":14,"hide":6},[717,742,759,779,798,815,833,847,866,885,899,916,932,949,971,988,1009,1025,1038,1057,1074,1088,1105,1121,1138,1154,1172,1184,1200,1218,1236,1254,1271,1287,1304,1321,1342,1358,1377,1396,1415,1431,1449,1468,1487,1505,1522,1540,1557,1576,1591,1607,1622,1639,1657,1673,1688,1705,1720,1737,1752,1769,1785,1801,1817,1833,1849,1867,1885,1902,1922,1939,1958,1976,1995,2013,2032,2049,2067,2084,2105,2125,2143,2160,2178,2197,2217,2235,2253,2271,2288,2307,2328,2345,2363,2380,2399,2417,2435,2453,2471,2490,2508,2525,2543,2563,2580,2598,2617,2636,2654,2671,2689,2711,2729,2747,2766,2784,2802,2822,2839,2858,2876,2896,2915,2932,2951,2969,2987,3007,3025,3043,3063,3082,3099,3117,3134,3153,3171,3189,3206,3225,3243,3261,3279,3299,3315,3333,3353,3371,3389,3408,3427,3445,3462,3478,3496,3514,3532,3548,3566,3584,3601,3619,3637,3655,3672,3691,3710,3728,3744,3761,3779,3796,3814,3832,3849,3866,3884,3903,3921,3939,3956,3973,3990,4008,4026,4044,4062,4080,4098,4117,4134,4152,4170,4189,4207,4228,4246,4265,4282,4301,4320,4339,4357,4375,4393,4410,4430,4449,4468,4487,4506,4525,4543,4560,4579,4599,4617,4634,4652,4672,4691,4707,4725,4742,4759,4778,4794,4814,4831,4848,4866,4884,4902,4919,4938,4955,4974,4991,5009,5027,5044,5062,5081,5099,5117,5134,5151,5168,5187,5207,5226,5243,5261,5277,5296,5314,5331,5349,5369,5387,5403,5420,5437,5456,5475,5492,5508,5526,5543,5562,5580,5598,5616,5634,5652,5669,5687,5705,5722,5740,5758,5774,5793,5810,5829,5846,5864,5882,5899,5916,5933,5951,5969,5986,6004,6022,6039,6055,6074,6091,6109,6129,6147,6165,6182,6200,6219,6237,6254,6271,6289,6308,6327,6345,6364,6383,6401,6420,6437,6455,6472,6492,6509,6526,6543,6562,6580,6599,6617,6635,6652,6670,6687,6704,6722,6738,6757,6774,6790,6807,6825,6842,6860,6877,6896,6915,6933,6951,6968,6987,7005,7023,7040,7057,7075,7093,7110,7127,7144,7160,7180,7198,7215,7232,7250,7267,7284,7301,7319,7338,7355,7373,7391,7407,7425,7443,7459,7477,7494,7512,7530,7547,7566,7583,7601,7618,7636,7654,7672,7689,7706,7723,7741,7759,7776,7795,7813,7830,7847,7865,7882,7900,7916,7934,7951,7969,7985,8002,8021,8039,8057,8075,8093,8110,8128,8148,8164,8180,8197,8215,8233,8252,8269,8287,8304,8321,8339,8356,8376,8394,8411,8429,8446,8463,8482,8501,8519,8539,8555,8573,8592,8609,8626,8644,8661,8679,8697,8713,8730,8749,8768,8786,8803,8820,8837,8854,8872,8888,8906,8923,8938,8957,8973,8990,9007,9024,9040,9059,9076,9094,9111,9128,9145,9163,9182,9200,9219,9237,9254,9272,9289,9306,9323,9340,9358,9376,9393,9412,9428,9445,9462,9480,9497,9515,9532,9549,9568,9585,9601,9620,9636,9653,9670,9687,9704,9721,9739,9757,9774,9791,9808,9826,9843,9860,9878,9894,9913,9930,9948,9966,9983,10000,10018,10036,10054,10073,10090,10108,10128,10145,10161,10179,10197,10215,10234,10251,10270,10289,10306,10325,10342,10361,10379,10397,10414,10433,10451,10468,10485,10504,10522,10540,10558,10575,10593,10610,10627,10646,10663,10681,10699,10717,10736,10753,10770,10788,10806,10825,10844,10862,10880,10899,10917,10934,10952,10970,10987,11005,11023,11041,11058,11076,11093,11114,11133,11150,11167,11185,11204,11222,11242,11258,11278,11296,11314,11333,11350,11368,11386,11403,11420,11438,11459,11477,11496,11513,11531,11549,11567,11585,11604,11622,11638,11657,11675,11694,11712,11728,11746,11764,11781,11799,11815,11832,11851,11869,11887,11904,11922,11942,11960,11978,11994,12012,12029,12047,12064,12083,12101,12118,12134,12152,12168,12187,12205,12223,12241,12260,12277,12294,12312,12331,12349,12367,12385,12405,12424,12442,12459,12476,12494,12513,12532,12549,12566,12583,12600,12618,12634,12652,12670,12687,12705,12722,12742,12760,12778,12796,12814,12832,12850,12868,12887,12904,12922,12941,12959,12977,12995,13014,13031,13049,13070,13086,13104,13121,13140,13159,13175,13193,13210,13226,13245,13263,13283,13302,13319,13338,13356,13374,13392,13410,13428,13445,13462,13479,13497,13513,13530,13547,13566,13583,13603,13621,13637,13655,13675,13693,13710,13727,13743,13762,13779,13797,13816,13834,13852,13870,13886,13903,13920,13937,13954,13972,13990,14009,14027,14043,14063,14080,14098,14114,14132,14150,14167,14183,14201,14219,14236,14254,14272,14288,14306,14323,14341,14358,14375,14393,14412,14428,14445,14461,14479,14497,14514,14531,14548,14568,14584,14602,14619,14635,14651,14668,14684,14703,14720,14737,14756,14773,14790,14807,14823,14842,14859,14876,14892,14912,14929,14946,14964,14981,14999,15016,15035,15053,15070,15087,15104,15120,15139,15156,15172,15195,15211,15229,15246,15264,15281,15299,15317,15335,15353,15372,15390,15407,15425,15442,15459,15475,15494,15512,15530,15549,15566,15583,15599,15616,15633,15651,15668,15686,15703,15719,15737,15754,15769,15787,15804,15821,15840,15858,15875,15894,15912,15928,15946,15963,15980,15997,16013,16032,16049,16067,16086,16105,16123,16140,16158,16175,16194,16212,16229,16245,16261,16280,16299,16317,16335,16353,16371,16390,16410,16427,16444,16462,16479,16498,16516,16534,16553,16570,16589,16606,16625,16643,16660,16677,16694,16712,16730,16748,16765,16783,16801,16821,16839,16855,16873,16891,16909,16928,16946,16964,16981,16999,17017,17033,17051,17068,17087,17105,17121,17139,17159,17177,17194,17213,17230,17248,17265,17282,17300,17318,17336,17353,17370,17387,17406,17424,17442,17459,17476,17495,17513,17532,17549,17569,17587,17605,17622,17638,17657,17675,17693,17712,17728,17745,17763,17779,17797,17814,17831,17848,17865,17884,17902,17919,17938,17956,17974,17992,18009,18026,18044,18062,18079,18096,18114,18130,18147,18165,18181,18199,18215,18233,18250,18267,18286,18303,18322,18338,18355,18373,18390,18407,18426,18443,18462,18479,18496,18513,18530,18547,18565,18584,18601,18618,18635,18653,18673,18690,18707,18725,18742,18760,18778,18797,18814,18831,18849,18867,18884,18901,18919,18935,18954,18971,18988,19006,19023,19042,19059,19076,19092,19109,19126,19143,19162,19179,19197,19215,19233,19251,19269,19286,19304,19321,19340,19358,19376,19393,19411,19428,19445,19462,19481,19498,19516,19533,19551,19567,19584,19602,19621,19639,19658,19676,19694,19711,19728,19744,19762,19781,19799,19817,19835,19853,19871,19889,19908,19926,19944,19961,19978,19996,20013,20030,20047,20065,20082,20100,20117,20134,20152,20170,20187,20205,20223,20242,20258,20275,20294,20312,20329,20347,20365,20381,20400,20417,20435,20453,20473,20491,20509,20525,20543,20561,20579,20597,20615,20634,20654,20673,20690,20708,20725,20743,20760,20778,20796,20814,20831,20849,20867,20884,20901,20919,20937,20954,20972,20989,21006,21024,21042,21060,21078,21095,21114,21132,21150,21168,21186,21204,21222,21240,21256,21273,21291,21310,21327,21345,21362,21379,21397,21414,21432,21450,21468,21486,21503,21521,21538,21555,21572,21589,21607,21624,21642,21660,21678,21694,21712,21730,21747,21765,21783,21800,21817,21834,21851,21869,21886,21903,21921,21938,21956,21973,21992,22008,22026,22043,22061,22078,22097,22112,22131,22148,22165,22181,22198,22217,22234,22252,22270,22287,22305,22322,22339,22357,22375,22392,22409,22427,22445,22461,22477,22494,22513,22531,22548,22567,22584,22602,22618,22635,22654,22670,22687,22704,22721,22739,22757,22773,22792,22811,22828,22845,22862,22880,22899,22916,22933,22950,22967,22985,23002,23020,23036,23054,23072,23090,23109,23125,23144,23162,23181,23199,23216,23234,23253,23270,23288,23306,23322,23340,23357,23373,23392,23410,23428,23445,23462,23479,23496,23514,23532,23550,23567,23584,23601,23619,23637,23653,23671,23688,23706,23726,23744,23761,23780,23799,23818,23837,23854,23870,23888,23906,23923,23941,23957,23975,23992,24010,24027,24045,24062,24080,24096,24114,24131,24148,24165,24182,24199,24217,24234,24252,24272,24290,24307,24324,24341,24358,24376,24392,24408,24427,24445,24463,24482,24499,24517,24535,24553,24572,24590,24607,24625,24643,24659,24678,24695,24712,24730,24747,24765,24783,24802,24819,24836,24853,24872,24890,24908,24927,24944,24961,24979,24997,25014,25032,25050,25070,25088,25106,25123,25140,25159,25176,25193,25211,25228,25244,25262,25278,25296,25314,25332,25350,25369,25387,25404,25422,25443,25460,25476,25494,25511,25529,25545,25562,25579,25596,25616,25633,25650,25669,25687,25704,25722,25740,25758,25774,25791,25807,25825,25843,25859,25877,25895,25911,25931,25948,25968,25984,26002,26020,26037,26055,26071,26089,26107,26125,26145,26163,26182,26200,26218,26235,26253,26269,26287,26306,26324,26341,26358,26376,26393,26411,26431,26448,26465,26483,26500,26517,26535,26552,26569,26586,26602,26620,26637,26654,26672,26689,26707,26726,26745,26762,26780,26798,26816,26834,26854,26872,26890,26906,26924,26942,26959,26976,26994,27013,27030,27047,27064,27081,27098,27115,27133,27150,27168,27186,27203,27222,27240,27257,27275,27293,27310,27328,27347,27366,27385,27403,27422,27440,27457,27475,27492,27510,27527,27545,27563,27580,27598,27614,27632,27648,27666,27684,27701,27718,27735,27753,27771,27790,27807,27825,27843,27861,27878,27896,27913,27931,27949,27965,27983,28001,28016,28033,28051,28069,28086,28104,28121,28139,28158,28178,28195,28215,28233,28249,28268,28285,28303,28321,28338,28356,28373,28393,28410,28428,28444,28462,28481,28498,28516,28533,28551,28569,28589,28608,28625,28644,28664,28682,28699,28716,28736,28756,28775,28792,28809,28826,28843,28861,28879,28896,28914,28933,28950,28968,28986,29005,29024,29041,29058,29076,29095,29112,29128,29145,29163,29179,29197,29214,29232,29248,29265,29283,29301,29318,29336,29354,29371,29389,29407,29425,29443,29462,29480,29498,29515,29533,29550,29567,29584,29602,29620,29637,29654,29671,29689,29706,29722,29739,29756,29773,29791,29808,29824,29843,29860,29878,29896,29914,29933,29951,29968,29985,30002,30018,30035,30054,30072,30090,30109,30127,30144,30162,30179,30197,30215,30231,30248,30266,30285,30303,30321,30339,30355,30372,30390,30406,30423,30440,30458,30474,30492,30509,30525,30542,30559,30577,30594,30612,30629,30646,30664,30682,30699,30717,30734,30752,30770,30788,30807,30824,30841,30860,30877,30896,30914,30932,30950,30967,30983,31000,31019,31036,31053,31071,31089,31105,31122,31139,31157,31175,31194,31211,31228,31246,31265,31282,31301,31318,31336,31356,31373,31391,31409,31427,31445,31463,31480,31500,31517,31534,31551,31571,31588,31606,31623,31641,31660,31679,31697,31715,31733,31750,31768,31786,31804,31821,31839,31857,31874,31893,31910,31929,31948,31968,31985,32004,32021,32040,32058,32075,32093,32111,32129,32146,32164,32181,32198,32216,32234,32253,32270,32288,32306,32324,32342,32360,32379,32396,32415,32433,32451,32470,32489,32506,32524,32541,32558,32576,32595,32615,32631,32648,32667,32686,32704,32722,32740,32757,32775,32794,32812,32829,32847,32866,32885,32904,32921,32938,32957,32975,32993,33010,33028,33046,33065,33083,33101,33120,33139,33158,33176,33193,33211,33228,33246,33264,33283,33300,33317,33336,33353,33372,33389,33407,33424,33441,33459,33475,33492,33509,33526,33542,33559,33576,33593,33610,33627,33644,33661,33678,33695,33711,33728,33745,33762,33779,33797,33813,33829,33846,33862,33879,33896,33912,33929,33946,33963,33980,33995,34013,34029,34046,34062,34079,34096,34113,34130,34146,34163,34180,34196,34213,34230,34246,34264,34281,34297,34313,34332,34349,34365,34382,34401,34416,34432,34447,34464,34481,34497,34514,34531,34548,34565,34581,34597,34613,34627,34645,34661,34678,34692,34709,34724,34740,34756,34774,34792,34807,34824,34842,34859,34876,34891,34908,34924,34941,34958,34975,34993,35008,35025,35043,35060,35077,35093,35110,35127,35143,35161,35178,35195,35211,35227,35243,35261,35276,35292,35310,35327,35345,35362,35379,35396,35413,35431,35447,35463,35479,35496,35512,35530,35547,35565,35582,35600,35617,35634,35651,35668,35685,35702,35718,35735,35751,35768,35785,35803,35821,35838,35856,35872,35888,35905,35923,35940,35957,35973,35990,36008,36024,36041,36059,36076,36092,36109,36124,36141,36158,36174,36190,36207,36223,36239,36254,36270,36287,36304,36321,36337,36353,36370,36386,36402,36419,36435,36452,36468,36483,36499,36515,36531,36548,36565,36581,36599,36616,36632,36649,36665,36681,36697,36713,36730,36746,36763,36779,36796,36812,36829,36845,36862,36878,36895,36911,36928,36944,36961,36979,36996,37013,37029,37045,37061,37077,37092,37108,37124,37140,37156,37173,37189,37206,37222,37238,37254,37271,37288,37303,37319,37336,37353,37370,37388,37405,37422,37440,37457,37474,37492,37509,37525,37541,37558,37575,37592,37610,37627,37645,37662,37678,37694,37710,37726,37742,37757,37774,37790,37806,37822,37839,37855,37872,37888,37904,37920,37936,37952,37969,37985,38001,38017,38032,38048,38064,38080,38096,38112,38128,38144,38160,38176,38192],{"_path":718,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":719,"content":723,"config":735,"_id":738,"_type":16,"title":739,"_source":17,"_file":740,"_stem":741,"_extension":20},"/en-us/blog/ace-your-planning-without-the-context-switching",{"config":720,"title":721,"description":722},{"noIndex":6},"Ace your planning without the context-switching","Learn how GitLab Duo Planner Agent simplifies tasks and saves time by helping product and engineering managers focus on the work that matters most.\n\n",{"title":721,"description":722,"heroImage":724,"date":725,"category":726,"tags":727,"authors":732},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098354/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%281%29_5XrohmuWBNuqL89BxVUzWm_1750098354056.png","2025-10-28","agile-planning",[728,729,730,731],"AI/ML","agile","features","product",[733,734],"Aathira Nair","Amanda Rueda",{"featured":92,"template":736,"slug":737},"BlogPost","ace-your-planning-without-the-context-switching","content:en-us:blog:ace-your-planning-without-the-context-switching.yml","Ace Your Planning Without The Context Switching","en-us/blog/ace-your-planning-without-the-context-switching.yml","en-us/blog/ace-your-planning-without-the-context-switching",{"_path":743,"_dir":744,"_draft":6,"_partial":6,"_locale":7,"content":745,"config":753,"_id":755,"_type":16,"title":756,"_source":17,"_file":757,"_stem":758,"_extension":20},"/en-us/blog/external-url/gitlab-patch-release-18-5-1-18-4-3-18-3-5","external-url",{"title":746,"description":747,"heroImage":748,"date":749,"category":731,"tags":750},"GitLab Patch Release: 18.5.1, 18.4.3, 18.3.5","Learn more about this release for GitLab Community Edition (CE) and Enterprise Edition (EE).","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661926/Blog/Hero%20Images/security-patch-blog-image-r2-0506-700x400-fy25_2x.jpg","2025-10-22",[751,752],"patch releases","security releases",{"featured":6,"template":736,"externalUrl":754},"https://about.gitlab.com/releases/2025/10/22/patch-release-gitlab-18-5-1-released/","content:en-us:blog:external-url:gitlab-patch-release-18-5-1-18-4-3-18-3-5.yml","Gitlab Patch Release 18 5 1 18 4 3 18 3 5","en-us/blog/external-url/gitlab-patch-release-18-5-1-18-4-3-18-3-5.yml","en-us/blog/external-url/gitlab-patch-release-18-5-1-18-4-3-18-3-5",{"_path":760,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":761,"content":765,"config":773,"_id":775,"_type":16,"title":776,"_source":17,"_file":777,"_stem":778,"_extension":20},"/en-us/blog/modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q",{"config":762,"title":763,"ogTitle":763,"description":764},{"noIndex":6},"Modernize Java applications quickly with GitLab Duo with Amazon Q","Transform legacy Java 8 applications to Java 17 in minutes instead of weeks using AI-powered automation.",{"title":763,"description":764,"authors":766,"heroImage":768,"date":749,"category":769,"tags":770},[767],"Cesar Saavedra","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659604/Blog/Hero%20Images/Screenshot_2024-11-27_at_4.55.28_PM.png","ai-ml",[728,771,772,731,730],"AWS","tutorial",{"featured":6,"template":736,"slug":774},"modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q","content:en-us:blog:modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q.yml","Modernize Java Applications Quickly With Gitlab Duo With Amazon Q","en-us/blog/modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q.yml","en-us/blog/modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q",{"_path":780,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":781,"content":785,"config":792,"_id":794,"_type":16,"title":795,"_source":17,"_file":796,"_stem":797,"_extension":20},"/en-us/blog/delivering-faster-and-smarter-scans-with-advanced-sast",{"config":782,"title":783,"description":784},{"noIndex":6},"Delivering faster and smarter scans with Advanced SAST","New accuracy and speed enhancements improve the developer experience and drive adoption. ",{"title":783,"description":784,"authors":786,"heroImage":788,"date":789,"category":790,"tags":791},[787],"Salman Ladha","https://res.cloudinary.com/about-gitlab-com/image/upload/v1759320418/xjmqcozxzt4frx0hori3.png","2025-10-21","security",[790,731],{"featured":6,"template":736,"slug":793},"delivering-faster-and-smarter-scans-with-advanced-sast","content:en-us:blog:delivering-faster-and-smarter-scans-with-advanced-sast.yml","Delivering Faster And Smarter Scans With Advanced Sast","en-us/blog/delivering-faster-and-smarter-scans-with-advanced-sast.yml","en-us/blog/delivering-faster-and-smarter-scans-with-advanced-sast",{"_path":799,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":800,"content":804,"config":809,"_id":811,"_type":16,"title":812,"_source":17,"_file":813,"_stem":814,"_extension":20},"/en-us/blog/gitlab-18-5-intelligence-that-moves-software-development-forward",{"config":801,"title":802,"description":803},{"noIndex":6},"GitLab 18.5: Intelligence that moves software development forward","GitLab 18.5 delivers new specialized agents, security insights that cut through the noise, and a reimagined interface that keeps your AI teammate always in view.",{"heroImage":805,"title":802,"description":803,"authors":806,"date":789,"category":769,"tags":808},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1760970883/asrc2c2hejqp5o1tan4c.png",[807],"Bill Staples",[730,731,543],{"featured":92,"template":736,"slug":810},"gitlab-18-5-intelligence-that-moves-software-development-forward","content:en-us:blog:gitlab-18-5-intelligence-that-moves-software-development-forward.yml","Gitlab 18 5 Intelligence That Moves Software Development Forward","en-us/blog/gitlab-18-5-intelligence-that-moves-software-development-forward.yml","en-us/blog/gitlab-18-5-intelligence-that-moves-software-development-forward",{"_path":816,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":817,"content":821,"config":827,"_id":829,"_type":16,"title":830,"_source":17,"_file":831,"_stem":832,"_extension":20},"/en-us/blog/claude-haiku-4-5-now-available-in-gitlab-duo-agentic-chat",{"config":818,"title":819,"description":820},{"noIndex":6},"Claude Haiku 4.5 now available in GitLab Duo Agentic Chat","Anthropic's fastest model with near-frontier coding performance is a model option for GitLab Duo Pro, Duo Enterprise, and Duo Agent Platform.",{"title":819,"description":820,"authors":822,"heroImage":824,"date":825,"category":769,"tags":826},[823],"Tim Zallmann","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097183/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750097183481.png","2025-10-20",[728,730,731],{"featured":92,"template":736,"slug":828},"claude-haiku-4-5-now-available-in-gitlab-duo-agentic-chat","content:en-us:blog:claude-haiku-4-5-now-available-in-gitlab-duo-agentic-chat.yml","Claude Haiku 4 5 Now Available In Gitlab Duo Agentic Chat","en-us/blog/claude-haiku-4-5-now-available-in-gitlab-duo-agentic-chat.yml","en-us/blog/claude-haiku-4-5-now-available-in-gitlab-duo-agentic-chat",{"_path":834,"_dir":744,"_draft":6,"_partial":6,"_locale":7,"content":835,"config":841,"_id":843,"_type":16,"title":844,"_source":17,"_file":845,"_stem":846,"_extension":20},"/en-us/blog/external-url/gitlab-18-5-released",{"title":836,"description":837,"heroImage":838,"date":839,"category":731,"tags":840},"GitLab 18.5 released","Learn what's inside, including GitLab Duo Planner Agent (Beta), GitLab Duo Security Analyst Agent (Beta), Maven virtual registry UI (Beta), and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1760628860/ueqgsanpldmpxgzp1fre.png","2025-10-16",[731],{"featured":92,"template":736,"externalUrl":842},"https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/","content:en-us:blog:external-url:gitlab-18-5-released.yml","Gitlab 18 5 Released","en-us/blog/external-url/gitlab-18-5-released.yml","en-us/blog/external-url/gitlab-18-5-released",{"_path":848,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":849,"content":853,"config":860,"_id":862,"_type":16,"title":863,"_source":17,"_file":864,"_stem":865,"_extension":20},"/en-us/blog/variable-and-artifact-sharing-in-gitlab-parent-child-pipelines",{"config":850,"title":851,"description":852},{"noIndex":6},"Variable and artifact sharing in GitLab parent-child pipelines","Learn how to simplify complex CI/CD pipelines with these best practices for sharing data in more modular pipeline setups. ",{"title":851,"description":852,"authors":854,"heroImage":857,"date":839,"category":858,"tags":859},[855,856],"William Arias","Daniel Helfand","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664198/Blog/Hero%20Images/Self-Hosted_1800x945.png","engineering",[110,574,772],{"featured":92,"template":736,"slug":861},"variable-and-artifact-sharing-in-gitlab-parent-child-pipelines","content:en-us:blog:variable-and-artifact-sharing-in-gitlab-parent-child-pipelines.yml","Variable And Artifact Sharing In Gitlab Parent Child Pipelines","en-us/blog/variable-and-artifact-sharing-in-gitlab-parent-child-pipelines.yml","en-us/blog/variable-and-artifact-sharing-in-gitlab-parent-child-pipelines",{"_path":867,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":868,"content":872,"config":879,"_id":881,"_type":16,"title":882,"_source":17,"_file":883,"_stem":884,"_extension":20},"/en-us/blog/how-we-built-a-structured-streamlit-application-framework-in-snowflake",{"config":869,"title":870,"ogTitle":870,"description":871},{"noIndex":6},"How we built a structured Streamlit Framework in Snowflake","Want to transform development from chaos to compliance? Learn how we implemented governance early on rather than retrofitting when maintenance costs climb exponentially.",{"title":873,"description":871,"authors":874,"heroImage":876,"date":877,"category":858,"tags":878},"How we built a structured Streamlit Application Framework in Snowflake",[875],"Radovan Bacovic","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097447/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097447404.png","2025-10-10",[731,730,790,772],{"featured":6,"template":736,"slug":880},"how-we-built-a-structured-streamlit-application-framework-in-snowflake","content:en-us:blog:how-we-built-a-structured-streamlit-application-framework-in-snowflake.yml","How We Built A Structured Streamlit Application Framework In Snowflake","en-us/blog/how-we-built-a-structured-streamlit-application-framework-in-snowflake.yml","en-us/blog/how-we-built-a-structured-streamlit-application-framework-in-snowflake",{"_path":886,"_dir":744,"_draft":6,"_partial":6,"_locale":7,"content":887,"config":893,"_id":895,"_type":16,"title":896,"_source":17,"_file":897,"_stem":898,"_extension":20},"/en-us/blog/external-url/gitlab-patch-release-18-4-2-18-3-4-18-2-8",{"title":888,"description":889,"heroImage":748,"date":890,"category":790,"tags":891},"GitLab Patch Release: 18.4.2, 18.3.4, 18.2.8","Learn more about GitLab Patch Release: 18.4.2, 18.3.4, 18.2.8 for GitLab Community Edition (CE) and Enterprise Edition (EE).","2025-10-08",[892],"releases",{"featured":6,"template":736,"externalUrl":894},"https://about.gitlab.com/releases/2025/10/08/patch-release-gitlab-18-4-2-released/","content:en-us:blog:external-url:gitlab-patch-release-18-4-2-18-3-4-18-2-8.yml","Gitlab Patch Release 18 4 2 18 3 4 18 2 8","en-us/blog/external-url/gitlab-patch-release-18-4-2-18-3-4-18-2-8.yml","en-us/blog/external-url/gitlab-patch-release-18-4-2-18-3-4-18-2-8",{"_path":900,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":901,"content":905,"config":910,"_id":912,"_type":16,"title":913,"_source":17,"_file":914,"_stem":915,"_extension":20},"/en-us/blog/optimize-gitlab-object-storage-for-scale-and-performance",{"config":902,"title":903,"description":904},{"noIndex":6},"Optimize GitLab object storage for scale and performance","Configure GitLab object storage for maximum performance and cost savings. Learn consolidated forms, direct downloads, and identity-based authentication.",{"title":903,"description":904,"authors":906,"category":731,"tags":908,"heroImage":909,"date":890},[907],"Tim Rizzi",[731,772,730],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665151/Blog/Hero%20Images/blog-image-template-1800x945__27_.png",{"featured":6,"template":736,"slug":911},"optimize-gitlab-object-storage-for-scale-and-performance","content:en-us:blog:optimize-gitlab-object-storage-for-scale-and-performance.yml","Optimize Gitlab Object Storage For Scale And Performance","en-us/blog/optimize-gitlab-object-storage-for-scale-and-performance.yml","en-us/blog/optimize-gitlab-object-storage-for-scale-and-performance",{"_path":917,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":918,"content":922,"config":926,"_id":928,"_type":16,"title":929,"_source":17,"_file":930,"_stem":931,"_extension":20},"/en-us/blog/streamline-enterprise-artifact-management-with-gitlab",{"config":919,"title":920,"description":921},{"noIndex":6},"Streamline enterprise artifact management with GitLab","Platform teams can spend $200K+ annually managing fragmented artifact systems. Learn about GitLab's strategic approach to consolidation.",{"title":920,"description":921,"heroImage":923,"authors":924,"category":731,"tags":925,"date":890},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1756500636/wmey6kqzzuhirk88w2de.png",[907],[731,730],{"featured":92,"template":736,"slug":927},"streamline-enterprise-artifact-management-with-gitlab","content:en-us:blog:streamline-enterprise-artifact-management-with-gitlab.yml","Streamline Enterprise Artifact Management With Gitlab","en-us/blog/streamline-enterprise-artifact-management-with-gitlab.yml","en-us/blog/streamline-enterprise-artifact-management-with-gitlab",{"_path":933,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":934,"content":938,"config":943,"_id":945,"_type":16,"title":946,"_source":17,"_file":947,"_stem":948,"_extension":20},"/en-us/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice",{"config":935,"title":936,"description":937},{"noIndex":6},"Atlassian ending Data Center as GitLab maintains deployment choice","As Atlassian transitions Data Center customers to cloud-only, GitLab presents a menu of deployment choices that map to business needs.",{"title":936,"description":937,"authors":939,"heroImage":724,"date":941,"category":577,"tags":942},[940],"Emilio Salvador","2025-10-07",[582,574,731,730],{"featured":92,"template":736,"slug":944},"atlassian-ending-data-center-as-gitlab-maintains-deployment-choice","content:en-us:blog:atlassian-ending-data-center-as-gitlab-maintains-deployment-choice.yml","Atlassian Ending Data Center As Gitlab Maintains Deployment Choice","en-us/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice.yml","en-us/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice",{"_path":950,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":951,"content":955,"config":965,"_id":967,"_type":16,"title":968,"_source":17,"_file":969,"_stem":970,"_extension":20},"/en-us/blog/how-gitlab-transforms-embedded-systems-testing-cycles",{"config":952,"title":953,"description":954},{"noIndex":6},"How GitLab transforms embedded systems testing cycles","Discover how managed lifecycle environments streamline virtual testing, delivering rapid feedback without environment sprawl or cost overruns.",{"title":953,"description":956,"authors":957,"heroImage":960,"date":961,"category":858,"tags":962},"Discover how managed lifecycle environments streamline and automate virtual testing, delivering rapid feedback without environment sprawl or cost overruns.",[958,959],"Matt DeLaney","Darwin Sanoy","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2025-10-02",[731,963,964],"embedded DevOps","testing",{"featured":92,"template":736,"slug":966},"how-gitlab-transforms-embedded-systems-testing-cycles","content:en-us:blog:how-gitlab-transforms-embedded-systems-testing-cycles.yml","How Gitlab Transforms Embedded Systems Testing Cycles","en-us/blog/how-gitlab-transforms-embedded-systems-testing-cycles.yml","en-us/blog/how-gitlab-transforms-embedded-systems-testing-cycles",{"_path":972,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":973,"content":977,"config":982,"_id":984,"_type":16,"title":985,"_source":17,"_file":986,"_stem":987,"_extension":20},"/en-us/blog/greater-ai-choice-in-gitlab-duo-claude-sonnet-4-5-arrives",{"config":974,"title":975,"description":976},{"noIndex":6},"Greater AI choice in GitLab Duo: Claude Sonnet 4.5 arrives","Anthropic's newest model for coding and agentic workflows is now available in GitLab Duo Pro, Duo Enterprise, and Duo Agent Platform.",{"title":975,"description":976,"authors":978,"heroImage":979,"date":980,"category":769,"tags":981},[823],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659856/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25.png","2025-09-29",[728,731],{"featured":92,"template":736,"slug":983},"greater-ai-choice-in-gitlab-duo-claude-sonnet-4-5-arrives","content:en-us:blog:greater-ai-choice-in-gitlab-duo-claude-sonnet-4-5-arrives.yml","Greater Ai Choice In Gitlab Duo Claude Sonnet 4 5 Arrives","en-us/blog/greater-ai-choice-in-gitlab-duo-claude-sonnet-4-5-arrives.yml","en-us/blog/greater-ai-choice-in-gitlab-duo-claude-sonnet-4-5-arrives",{"_path":989,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":990,"content":998,"config":1003,"_id":1005,"_type":16,"title":1006,"_source":17,"_file":1007,"_stem":1008,"_extension":20},"/en-us/blog/agentic-ai-guides-and-resources",{"title":991,"description":992,"ogTitle":991,"ogDescription":992,"noIndex":6,"ogImage":993,"ogUrl":994,"ogSiteName":995,"ogType":996,"canonicalUrls":994,"schema":997},"Agentic AI guides and resources","Learn everything you need to know about agentic AI, including what it is, how it works, why it levels up your DevSecOps environment, and best practices for implementation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658912/Blog/Hero%20Images/blog-image-template-1800x945__20_.png","https://about.gitlab.com/blog/agentic-ai-guides-and-resources","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Agentic AI guides and resources\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2025-05-07\",\n      }",{"title":991,"description":992,"authors":999,"heroImage":993,"date":1001,"category":769,"tags":1002,"updatedDate":980},[1000],"GitLab","2025-09-26",[728,543,772],{"slug":1004,"featured":92,"template":736},"agentic-ai-guides-and-resources","content:en-us:blog:agentic-ai-guides-and-resources.yml","Agentic Ai Guides And Resources","en-us/blog/agentic-ai-guides-and-resources.yml","en-us/blog/agentic-ai-guides-and-resources",{"_path":1010,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1011,"content":1014,"config":1019,"_id":1021,"_type":16,"title":1022,"_source":17,"_file":1023,"_stem":1024,"_extension":20},"/en-us/blog/duo-agent-platform-with-mcp",{"title":1012,"description":1013},"GitLab Duo Agent Platform adds support for Model Context Protocol","GitLab's MCP support enhances AI-powered dev workflows, connecting Duo Agent Platform as an MCP client and serving as an MCP server for external AI assistants.",{"title":1012,"description":1013,"authors":1015,"heroImage":1017,"date":1001,"category":769,"tags":1018},[1016],"Itzik Gan Baruch","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662523/Blog/Hero%20Images/Gartner_DevOps_Blog_Post_Cover_Image_1800x945__2_.png",[731,730,772],{"slug":1020,"featured":6,"template":736},"duo-agent-platform-with-mcp","content:en-us:blog:duo-agent-platform-with-mcp.yml","Duo Agent Platform With Mcp","en-us/blog/duo-agent-platform-with-mcp.yml","en-us/blog/duo-agent-platform-with-mcp",{"_path":1026,"_dir":744,"_draft":6,"_partial":6,"_locale":7,"content":1027,"config":1032,"_id":1034,"_type":16,"title":1035,"_source":17,"_file":1036,"_stem":1037,"_extension":20},"/en-us/blog/external-url/gitlab-patch-release-18-4-1-18-3-3-18-2-7",{"title":1028,"description":1029,"heroImage":748,"date":1030,"category":731,"tags":1031},"GitLab Patch Release: 18.4.1, 18.3.3, 18.2.7","Learn more about this patch release for GitLab Community Edition and Enterprise Edition.","2025-09-25",[752],{"featured":6,"template":736,"externalUrl":1033},"https://about.gitlab.com/releases/2025/09/25/patch-release-gitlab-18-4-1-released/","content:en-us:blog:external-url:gitlab-patch-release-18-4-1-18-3-3-18-2-7.yml","Gitlab Patch Release 18 4 1 18 3 3 18 2 7","en-us/blog/external-url/gitlab-patch-release-18-4-1-18-3-3-18-2-7.yml","en-us/blog/external-url/gitlab-patch-release-18-4-1-18-3-3-18-2-7",{"_path":1039,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1040,"content":1044,"config":1051,"_id":1053,"_type":16,"title":1054,"_source":17,"_file":1055,"_stem":1056,"_extension":20},"/en-us/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms",{"config":1041,"title":1042,"description":1043},{"noIndex":6},"GitLab named a Leader in the 2025 Gartner Magic Quadrant for DevOps Platforms","GitLab ranks 1st in 4 out of 6 use cases in the accompanying 2025 Gartner® Critical Capabilities report.",{"title":1042,"description":1043,"authors":1045,"heroImage":1047,"date":1030,"category":731,"tags":1048},[1046],"Manav Khurana","https://res.cloudinary.com/about-gitlab-com/image/upload/v1758812952/yxhgljkwljld0lyizmaz.png",[731,1049,1050],"news","DevOps platform",{"featured":92,"template":736,"slug":1052},"gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms","content:en-us:blog:gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms.yml","Gitlab Named A Leader In The 2025 Gartner Magic Quadrant For Devops Platforms","en-us/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms.yml","en-us/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-devops-platforms",{"_path":1058,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1059,"content":1063,"config":1068,"_id":1070,"_type":16,"title":1071,"_source":17,"_file":1072,"_stem":1073,"_extension":20},"/en-us/blog/gitlab-18-4-ai-native-development-with-automation-and-insight",{"config":1060,"title":1061,"description":1062},{"noIndex":6},"GitLab 18.4: AI-native development with automation and insight","With GitLab 18.4, teams create custom agents, unlock Knowledge Graph context, and auto-fix pipelines so developers stay focused and in flow.",{"title":1061,"description":1062,"authors":1064,"heroImage":1065,"date":1066,"category":769,"tags":1067},[807],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758541195/kig7sww6jyvxzmkmimbv.png","2025-09-23",[728,731,730,543],{"featured":92,"template":736,"slug":1069},"gitlab-18-4-ai-native-development-with-automation-and-insight","content:en-us:blog:gitlab-18-4-ai-native-development-with-automation-and-insight.yml","Gitlab 18 4 Ai Native Development With Automation And Insight","en-us/blog/gitlab-18-4-ai-native-development-with-automation-and-insight.yml","en-us/blog/gitlab-18-4-ai-native-development-with-automation-and-insight",{"_path":1075,"_dir":744,"_draft":6,"_partial":6,"_locale":7,"content":1076,"config":1082,"_id":1084,"_type":16,"title":1085,"_source":17,"_file":1086,"_stem":1087,"_extension":20},"/en-us/blog/external-url/gitlab-18-4-released",{"title":1077,"description":1078,"heroImage":1079,"date":1080,"category":731,"tags":1081},"GitLab 18.4 released","Latest version of GitLab includes Duo Model Selection generally available, Knowledge Graph, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1758202527/zbdm4mehauv3poqetyhk.png","2025-09-18",[731,892],{"featured":92,"template":736,"externalUrl":1083},"https://about.gitlab.com/releases/2025/09/18/gitlab-18-4-released/","content:en-us:blog:external-url:gitlab-18-4-released.yml","Gitlab 18 4 Released","en-us/blog/external-url/gitlab-18-4-released.yml","en-us/blog/external-url/gitlab-18-4-released",{"_path":1089,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1090,"config":1093,"content":1095,"_id":1101,"_type":16,"title":1102,"_source":17,"_file":1103,"_stem":1104,"_extension":20},"/en-us/blog/comprehensive-guide-to-gitlab-dast",{"title":1091,"description":1092},"A comprehensive guide to GitLab DAST","DevSecOps teams can learn how to implement and configure dynamic application security testing, perform passive/active scans, and set security policies.",{"slug":1094,"featured":92,"template":736},"comprehensive-guide-to-gitlab-dast",{"title":1091,"description":1092,"authors":1096,"heroImage":788,"date":1098,"updatedDate":1099,"category":790,"tags":1100},[1097],"Fernando Diaz","2025-09-17","2025-10-01",[790,772,964],"content:en-us:blog:comprehensive-guide-to-gitlab-dast.yml","Comprehensive Guide To Gitlab Dast","en-us/blog/comprehensive-guide-to-gitlab-dast.yml","en-us/blog/comprehensive-guide-to-gitlab-dast",{"_path":1106,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1107,"content":1111,"config":1115,"_id":1117,"_type":16,"title":1118,"_source":17,"_file":1119,"_stem":1120,"_extension":20},"/en-us/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants",{"config":1108,"title":1109,"description":1110},{"noIndex":6},"GitLab named a Leader in the 2025 Gartner Magic Quadrant for AI Code Assistants","GitLab recognized again as a Leader in the 2025 Gartner® Magic Quadrant™ for AI Code Assistants, for vision and execution.",{"title":1109,"description":1110,"heroImage":1112,"authors":1113,"date":1098,"category":1049,"tags":1114},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1757675943/q9kb7zfiw1cyxx9fcafp.png",[1046],[731,1049,574],{"featured":92,"template":736,"slug":1116},"gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants","content:en-us:blog:gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants.yml","Gitlab Named A Leader In The 2025 Gartner Magic Quadrant For Ai Code Assistants","en-us/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants.yml","en-us/blog/gitlab-named-a-leader-in-the-2025-gartner-magic-quadrant-for-ai-code-assistants",{"_path":1122,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1123,"config":1126,"content":1128,"_id":1134,"_type":16,"title":1135,"_source":17,"_file":1136,"_stem":1137,"_extension":20},"/en-us/blog/how-gitlab-duo-agent-platform-transforms-dataops",{"title":1124,"description":1125},"How GitLab Duo Agent Platform transforms DataOps","Explore how to turn hours of manual coding into minutes of automated generation with this comprehensive dbt model creation walkthrough.",{"slug":1127,"featured":92,"template":736},"how-gitlab-duo-agent-platform-transforms-dataops",{"title":1124,"description":1125,"authors":1129,"heroImage":1131,"date":1132,"category":769,"tags":1133},[1130],"Dennis van Rooijen","blog/hero%20images/workflow_1800x945.png","2025-09-16",[731,772,730],"content:en-us:blog:how-gitlab-duo-agent-platform-transforms-dataops.yml","How Gitlab Duo Agent Platform Transforms Dataops","en-us/blog/how-gitlab-duo-agent-platform-transforms-dataops.yml","en-us/blog/how-gitlab-duo-agent-platform-transforms-dataops",{"_path":1139,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1140,"config":1143,"content":1145,"_id":1150,"_type":16,"title":1151,"_source":17,"_file":1152,"_stem":1153,"_extension":20},"/en-us/blog/gitlab-and-accenture-announce-global-reseller-agreement",{"noIndex":6,"title":1141,"description":1142},"GitLab and Accenture announce Global Reseller Agreement","New reseller agreement empowers Accenture to offer GitLab's comprehensive DevSecOps platform.",{"featured":6,"template":736,"slug":1144},"gitlab-and-accenture-announce-global-reseller-agreement",{"title":1141,"description":1142,"category":1049,"tags":1146,"authors":1147,"heroImage":1148,"date":1149},[1049,731,574],[1000],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751568278/bots3gyfarx8qysbkw6c.png","2025-09-15","content:en-us:blog:gitlab-and-accenture-announce-global-reseller-agreement.yml","Gitlab And Accenture Announce Global Reseller Agreement","en-us/blog/gitlab-and-accenture-announce-global-reseller-agreement.yml","en-us/blog/gitlab-and-accenture-announce-global-reseller-agreement",{"_path":1155,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1156,"content":1160,"config":1166,"_id":1168,"_type":16,"title":1169,"_source":17,"_file":1170,"_stem":1171,"_extension":20},"/en-us/blog/how-we-supercharged-gitlab-ci-statuses-with-websockets",{"config":1157,"ogTitle":1158,"ogDescription":1159,"title":1158,"description":1159},{"noIndex":6},"How we supercharged GitLab CI statuses with WebSockets","Learn how we reduced API calls on GitLab's CI job status updates from 45 million to 3.4 million calls per day.",{"title":1158,"description":1161,"authors":1162,"heroImage":1164,"date":1149,"category":731,"tags":1165},"Learn how we reduced API calls on GitLab's CI job status updates from 45 million to 3.4 million calls per day. Users now see job status changes instantly instead of waiting up to 30 seconds.",[1163],"Payton Burdette","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663000/Blog/Hero%20Images/tanukilifecycle.png",[731,730,110],{"featured":6,"template":736,"slug":1167},"how-we-supercharged-gitlab-ci-statuses-with-websockets","content:en-us:blog:how-we-supercharged-gitlab-ci-statuses-with-websockets.yml","How We Supercharged Gitlab Ci Statuses With Websockets","en-us/blog/how-we-supercharged-gitlab-ci-statuses-with-websockets.yml","en-us/blog/how-we-supercharged-gitlab-ci-statuses-with-websockets",{"_path":1173,"_dir":744,"_draft":6,"_partial":6,"_locale":7,"content":1174,"config":1178,"_id":1180,"_type":16,"title":1181,"_source":17,"_file":1182,"_stem":1183,"_extension":20},"/en-us/blog/external-url/gitlab-patch-release-18-3-2-18-2-6-18-1-6",{"title":1175,"description":1029,"heroImage":748,"date":1176,"category":731,"tags":1177},"GitLab Patch Release: 18.3.2, 18.2.6, 18.1.6","2025-09-10",[751],{"featured":6,"template":736,"externalUrl":1179},"https://about.gitlab.com/releases/2025/09/10/patch-release-gitlab-18-3-2-released/","content:en-us:blog:external-url:gitlab-patch-release-18-3-2-18-2-6-18-1-6.yml","Gitlab Patch Release 18 3 2 18 2 6 18 1 6","en-us/blog/external-url/gitlab-patch-release-18-3-2-18-2-6-18-1-6.yml","en-us/blog/external-url/gitlab-patch-release-18-3-2-18-2-6-18-1-6",{"_path":1185,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1186,"config":1189,"content":1191,"_id":1196,"_type":16,"title":1197,"_source":17,"_file":1198,"_stem":1199,"_extension":20},"/en-us/blog/supercharge-your-git-workflows",{"title":1187,"description":1188},"Supercharge your Git workflows","Optimize git clone operations in any environment — up to 93% reduction in clone times and 98% reduction in disk space usage — with the Git Much Faster script.",{"slug":1190,"featured":92,"template":736},"supercharge-your-git-workflows",{"title":1187,"description":1188,"authors":1192,"heroImage":1193,"date":1176,"category":858,"tags":1194},[959],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098264/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_519147119_2RafH61mqosMZv8HGAlsUj_1750098264407.jpg",[772,1195],"git","content:en-us:blog:supercharge-your-git-workflows.yml","Supercharge Your Git Workflows","en-us/blog/supercharge-your-git-workflows.yml","en-us/blog/supercharge-your-git-workflows",{"_path":1201,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1202,"content":1206,"config":1212,"_id":1214,"_type":16,"title":1215,"_source":17,"_file":1216,"_stem":1217,"_extension":20},"/en-us/blog/a-developers-guide-to-building-secure-retail-apps-with-gitlab",{"config":1203,"title":1204,"description":1205},{"noIndex":6},"A developer's guide to building secure retail apps with GitLab","Learn how a DevSecOps platform helps retailers develop secure, compliant software for complex, high-traffic retail environments.",{"title":1204,"description":1205,"authors":1207,"category":790,"tags":1209,"date":1210,"heroImage":1211},[1016,1208],"Rebeca Fenoy-Anthony",[790,731,730,728],"2025-09-04","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756989645/fojzxakmfdea6jfqjkrl.png",{"featured":92,"template":736,"slug":1213},"a-developers-guide-to-building-secure-retail-apps-with-gitlab","content:en-us:blog:a-developers-guide-to-building-secure-retail-apps-with-gitlab.yml","A Developers Guide To Building Secure Retail Apps With Gitlab","en-us/blog/a-developers-guide-to-building-secure-retail-apps-with-gitlab.yml","en-us/blog/a-developers-guide-to-building-secure-retail-apps-with-gitlab",{"_path":1219,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1220,"content":1224,"config":1230,"_id":1232,"_type":16,"title":1233,"_source":17,"_file":1234,"_stem":1235,"_extension":20},"/en-us/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow",{"config":1221,"title":1222,"description":1223},{"noIndex":6},"Vibe coding with GitLab Duo Agent Platform: 'Issue to MR' Flow","Learn how to update your application in minutes with our newest agent Flow that takes developers from idea to code.",{"title":1225,"description":1223,"authors":1226,"heroImage":1227,"date":1228,"category":769,"tags":1229},"Vibe coding with GitLab Duo Agent Platform: Issue to MR Flow",[767],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662465/Blog/Hero%20Images/GitLab_Duo_Workflow_Unified_Data_Store__1_.png","2025-09-03",[728,731,730,772],{"featured":92,"template":736,"slug":1231},"vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow","content:en-us:blog:vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow.yml","Vibe Coding With Gitlab Duo Agent Platform Issue To Mr Flow","en-us/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow.yml","en-us/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow",{"_path":1237,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1238,"content":1242,"config":1248,"_id":1250,"_type":16,"title":1251,"_source":17,"_file":1252,"_stem":1253,"_extension":20},"/en-us/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance",{"config":1239,"title":1240,"description":1241},{"noIndex":6},"GitLab achieves ISO/IEC 42001 certification for AI governance","Learn about this new ISO certification, our associated GitLab Duo features, and our commitment to responsible AI development.",{"title":1240,"description":1241,"authors":1243,"heroImage":1245,"date":1246,"category":769,"tags":1247},[1244],"Davoud Tu","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098208/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_479904468%20%281%29_4lmOEVlaXP0YC3hSFmOw6i_1750098208185.jpg","2025-09-02",[1049,728,731],{"featured":92,"template":736,"slug":1249},"gitlab-achieves-iso-iec-42001-certification-for-ai-governance","content:en-us:blog:gitlab-achieves-iso-iec-42001-certification-for-ai-governance.yml","Gitlab Achieves Iso Iec 42001 Certification For Ai Governance","en-us/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance.yml","en-us/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance",{"_path":1255,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1256,"config":1260,"content":1262,"_id":1267,"_type":16,"title":1268,"_source":17,"_file":1269,"_stem":1270,"_extension":20},"/en-us/blog/secure-rust-development-with-gitlab",{"config":1257,"title":1258,"description":1259},{"noIndex":6},"Secure Rust development with GitLab","Learn how GitLab supports Rust development through its CI/CD capabilities, security scanning, dedicated Rust integrations, AI features, and more.",{"slug":1261,"featured":92,"template":736},"secure-rust-development-with-gitlab",{"title":1258,"description":1259,"authors":1263,"tags":1264,"heroImage":1266,"category":858,"date":1246},[1097],[269,1265,772],"open source","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756314674/tct6zf6evw0xgddd2vo3.png","content:en-us:blog:secure-rust-development-with-gitlab.yml","Secure Rust Development With Gitlab","en-us/blog/secure-rust-development-with-gitlab.yml","en-us/blog/secure-rust-development-with-gitlab",{"_path":1272,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1273,"content":1277,"config":1281,"_id":1283,"_type":16,"title":1284,"_source":17,"_file":1285,"_stem":1286,"_extension":20},"/en-us/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops",{"config":1274,"title":1275,"description":1276},{"noIndex":6},"Why enterprise independence matters more than ever in DevSecOps","As leaders question who controls their development infrastructure, GitLab's independence and transparency advantages have never been more relevant.\n",{"title":1275,"description":1276,"authors":1278,"date":1246,"category":769,"tags":1280,"heroImage":923},[1279],"Robin Schulman",[728,574,731,730,1265],{"featured":92,"template":736,"slug":1282},"why-enterprise-independence-matters-more-than-ever-in-devsecops","content:en-us:blog:why-enterprise-independence-matters-more-than-ever-in-devsecops.yml","Why Enterprise Independence Matters More Than Ever In Devsecops","en-us/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops.yml","en-us/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops",{"_path":1288,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1289,"content":1292,"config":1298,"_id":1300,"_type":16,"title":1301,"_source":17,"_file":1302,"_stem":1303,"_extension":20},"/en-us/blog/fine-grained-job-tokens-ga",{"title":1290,"description":1291},"Fine-grained permissions for job tokens is now GA","GitLab now allows the use of fine-grained permissions for CI/CD job tokens, enhancing the security of your software supply chain.",{"title":1290,"description":1291,"authors":1293,"heroImage":1131,"date":1296,"category":858,"tags":1297},[1294,1295],"Alex Mark","Joe Randazzo","2025-08-26",[269],{"slug":1299,"featured":6,"template":736},"fine-grained-job-tokens-ga","content:en-us:blog:fine-grained-job-tokens-ga.yml","Fine Grained Job Tokens Ga","en-us/blog/fine-grained-job-tokens-ga.yml","en-us/blog/fine-grained-job-tokens-ga",{"_path":1305,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1306,"config":1310,"content":1312,"_id":1317,"_type":16,"title":1318,"_source":17,"_file":1319,"_stem":1320,"_extension":20},"/en-us/blog/custom-admin-roles-now-ga",{"config":1307,"title":1308,"description":1309},{"noIndex":6},"Custom admin roles are now GA","GitLab now supports granular permissions in the Admin area, reducing the need for full-privileged administrators.",{"slug":1311,"featured":6,"template":736},"custom-admin-roles-now-ga",{"title":1308,"description":1309,"authors":1313,"heroImage":1314,"date":1315,"category":731,"tags":1316},[1295],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1756122536/akivvcnafog9c4dhhzkp.png","2025-08-25",[731,730],"content:en-us:blog:custom-admin-roles-now-ga.yml","Custom Admin Roles Now Ga","en-us/blog/custom-admin-roles-now-ga.yml","en-us/blog/custom-admin-roles-now-ga",{"_path":1322,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1323,"content":1328,"config":1336,"_id":1338,"_type":16,"title":1339,"_source":17,"_file":1340,"_stem":1341,"_extension":20},"/en-us/blog/embedded-views-the-future-of-work-tracking-in-gitlab",{"config":1324,"ogImage":1325,"title":1326,"description":1327},{"noIndex":6},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099072/Blog/Hero%20Images/Blog/Hero%20Images/agile_agile.png_1750099072322.png","Embedded views: The future of work tracking in GitLab","Learn how embedded views, powered by GitLab Query Language, help GitLab teams work more efficiently, make data-driven decisions, and maintain visibility across complex workflows.",{"title":1326,"description":1327,"authors":1329,"date":1333,"category":726,"tags":1334,"heroImage":1325},[1330,1331,1332],"Matthew Macfarlane","Himanshu Kapoor","Alex Fracazo","2025-08-21",[729,543,1335],"workflow",{"featured":6,"template":736,"slug":1337},"embedded-views-the-future-of-work-tracking-in-gitlab","content:en-us:blog:embedded-views-the-future-of-work-tracking-in-gitlab.yml","Embedded Views The Future Of Work Tracking In Gitlab","en-us/blog/embedded-views-the-future-of-work-tracking-in-gitlab.yml","en-us/blog/embedded-views-the-future-of-work-tracking-in-gitlab",{"_path":1343,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1344,"content":1348,"config":1352,"_id":1354,"_type":16,"title":1355,"_source":17,"_file":1356,"_stem":1357,"_extension":20},"/en-us/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering",{"config":1345,"title":1346,"description":1347},{"noIndex":6},"GitLab 18.3: Expanding AI orchestration in software engineering","Learn how we're advancing human-AI collaboration with enhanced Flows, enterprise governance, and seamless tool integration.",{"title":1346,"description":1347,"authors":1349,"heroImage":1350,"date":1333,"category":769,"tags":1351},[807],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755711502/wuuadis1pza3zehqohcc.png",[731,728,543,730,790],{"featured":92,"template":736,"slug":1353},"gitlab-18-3-expanding-ai-orchestration-in-software-engineering","content:en-us:blog:gitlab-18-3-expanding-ai-orchestration-in-software-engineering.yml","Gitlab 18 3 Expanding Ai Orchestration In Software Engineering","en-us/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering.yml","en-us/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering",{"_path":1359,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1360,"config":1363,"content":1365,"_id":1373,"_type":16,"title":1374,"_source":17,"_file":1375,"_stem":1376,"_extension":20},"/en-us/blog/docs-site-design-overhaul",{"title":1361,"description":1362},"The GitLab documentation site gets a major design overhaul","The product documentation is now clean, easier to navigate, and includes dark mode.",{"slug":1364,"featured":6,"template":736},"docs-site-design-overhaul",{"title":1361,"description":1366,"authors":1367,"heroImage":1131,"date":1371,"category":858,"tags":1372},"Learn about the features of our newly designed product documentation site, which includes an easy way to provide feedback and the much-requested dark mode.",[1368,1369,1370],"Suzanne Selhorn","Sarah German","Julia Miocene","2025-08-20",[269],"content:en-us:blog:docs-site-design-overhaul.yml","Docs Site Design Overhaul","en-us/blog/docs-site-design-overhaul.yml","en-us/blog/docs-site-design-overhaul",{"_path":1378,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1379,"content":1384,"config":1390,"_id":1392,"_type":16,"title":1393,"_source":17,"_file":1394,"_stem":1395,"_extension":20},"/en-us/blog/what-s-new-in-git-2-51-0",{"config":1380,"ogImage":1381,"title":1382,"description":1383},{"noIndex":6},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663087/Blog/Hero%20Images/git3-cover.png","What’s new in Git 2.51.0?","Learn about the latest contributions from GitLab's Git team and the Git community, including performance optimizations for git-push(1) and git-fetch(1).",{"title":1382,"description":1383,"authors":1385,"heroImage":1381,"date":1387,"category":1388,"tags":1389},[1386],"Karthik Nayak","2025-08-18","open-source",[1195,1265,269],{"featured":6,"template":736,"slug":1391},"what-s-new-in-git-2-51-0","content:en-us:blog:what-s-new-in-git-2-51-0.yml","What S New In Git 2 51 0","en-us/blog/what-s-new-in-git-2-51-0.yml","en-us/blog/what-s-new-in-git-2-51-0",{"_path":1397,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1398,"content":1403,"config":1409,"_id":1411,"_type":16,"title":1412,"_source":17,"_file":1413,"_stem":1414,"_extension":20},"/en-us/blog/why-financial-services-choose-single-tenant-saas",{"config":1399,"title":1400,"description":1401,"ogImage":1402},{"noIndex":6},"Why financial services choose single-tenant SaaS","Discover how GitLab Dedicated can help financial services organizations achieve compliant DevSecOps without compromising performance.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662023/Blog/Hero%20Images/display-dedicated-for-government-article-image-0679-1800x945-fy26.png",{"title":1400,"description":1401,"authors":1404,"heroImage":1402,"date":1407,"category":577,"tags":1408},[1405,1406],"George Kichukov","Allie Holland","2025-08-14",[636,1050],{"featured":6,"template":736,"slug":1410},"why-financial-services-choose-single-tenant-saas","content:en-us:blog:why-financial-services-choose-single-tenant-saas.yml","Why Financial Services Choose Single Tenant Saas","en-us/blog/why-financial-services-choose-single-tenant-saas.yml","en-us/blog/why-financial-services-choose-single-tenant-saas",{"_path":1416,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1417,"config":1420,"content":1422,"_id":1427,"_type":16,"title":1428,"_source":17,"_file":1429,"_stem":1430,"_extension":20},"/en-us/blog/custom-rules-duo-agentic-chat-deep-dive",{"title":1418,"description":1419},"Custom rules in GitLab Duo Agentic Chat for greater developer efficiency","Discover how AI can understand your codebase, follow your conventions, and generate production-ready code with minimal review cycles.",{"slug":1421,"featured":6,"template":736},"custom-rules-duo-agentic-chat-deep-dive",{"title":1418,"description":1419,"authors":1423,"heroImage":960,"date":1425,"category":858,"tags":1426},[1424],"Michael Friedrich","2025-08-12",[574,728],"content:en-us:blog:custom-rules-duo-agentic-chat-deep-dive.yml","Custom Rules Duo Agentic Chat Deep Dive","en-us/blog/custom-rules-duo-agentic-chat-deep-dive.yml","en-us/blog/custom-rules-duo-agentic-chat-deep-dive",{"_path":1432,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1433,"content":1437,"config":1443,"_id":1445,"_type":16,"title":1446,"_source":17,"_file":1447,"_stem":1448,"_extension":20},"/en-us/blog/get-started-with-gitlab-duo-agentic-chat-in-the-web-ui",{"config":1434,"title":1435,"description":1436},{"noIndex":6},"Get started with GitLab Duo Agentic Chat in the web UI","Learn about our new GitLab Duo AI feature that automates tasks by breaking down complex problems and executing operations across multiple sources.",{"title":1435,"description":1436,"authors":1438,"heroImage":1440,"date":1441,"category":769,"tags":1442},[1439,856],"Fatima Sarah Khalid","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664458/Blog/Hero%20Images/Gartner_AI_Code_Assistants_Blog_Post_Cover_Image_1800x945.png","2025-08-11",[728,110],{"featured":92,"template":736,"slug":1444},"get-started-with-gitlab-duo-agentic-chat-in-the-web-ui","content:en-us:blog:get-started-with-gitlab-duo-agentic-chat-in-the-web-ui.yml","Get Started With Gitlab Duo Agentic Chat In The Web Ui","en-us/blog/get-started-with-gitlab-duo-agentic-chat-in-the-web-ui.yml","en-us/blog/get-started-with-gitlab-duo-agentic-chat-in-the-web-ui",{"_path":1450,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1451,"content":1455,"config":1462,"_id":1464,"_type":16,"title":1465,"_source":17,"_file":1466,"_stem":1467,"_extension":20},"/en-us/blog/gitlab-duo-self-hosted-models-on-aws-bedrock",{"config":1452,"title":1453,"description":1454},{"noIndex":6},"Own your AI: Self-Hosted GitLab Duo models with AWS Bedrock","Discover how to leverage AI while maintaining control over your data, infrastructure, and security posture.",{"title":1453,"description":1454,"authors":1456,"heroImage":1459,"category":769,"tags":1460,"date":1461},[1457,1458],"Chloe Cartron","Olivier Dupré","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098682/Blog/Hero%20Images/Blog/Hero%20Images/duo-blog-post_1Cy89R1pY8OMwyrgSB525O_1750098682075.png",[728,771],"2025-08-07",{"featured":92,"template":736,"slug":1463},"gitlab-duo-self-hosted-models-on-aws-bedrock","content:en-us:blog:gitlab-duo-self-hosted-models-on-aws-bedrock.yml","Gitlab Duo Self Hosted Models On Aws Bedrock","en-us/blog/gitlab-duo-self-hosted-models-on-aws-bedrock.yml","en-us/blog/gitlab-duo-self-hosted-models-on-aws-bedrock",{"_path":1469,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1470,"content":1474,"config":1481,"_id":1483,"_type":16,"title":1484,"_source":17,"_file":1485,"_stem":1486,"_extension":20},"/en-us/blog/gitlab-uncovers-bittensor-theft-campaign-via-pypi",{"config":1471,"title":1472,"description":1473},{"noIndex":6},"GitLab uncovers Bittensor theft campaign via PyPI","Learn how we identified a supply chain attack campaign using typosquatted PyPI packages to steal cryptocurrency from Bittensor wallets by hijacking staking operations.",{"title":1472,"authors":1475,"description":1477,"date":1478,"category":790,"tags":1479,"heroImage":1480},[1476],"Michael Henriksen","GitLab's Vulnerability Research team identified a supply chain attack campaign using typosquatted PyPI packages to steal cryptocurrency from Bittensor wallets by hijacking staking operations.","2025-08-06",[790],"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1750098739/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_282096522_securitycompliance.jpeg_1750098739024.jpg",{"featured":6,"template":736,"slug":1482},"gitlab-uncovers-bittensor-theft-campaign-via-pypi","content:en-us:blog:gitlab-uncovers-bittensor-theft-campaign-via-pypi.yml","Gitlab Uncovers Bittensor Theft Campaign Via Pypi","en-us/blog/gitlab-uncovers-bittensor-theft-campaign-via-pypi.yml","en-us/blog/gitlab-uncovers-bittensor-theft-campaign-via-pypi",{"_path":1488,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1489,"content":1493,"config":1499,"_id":1501,"_type":16,"title":1502,"_source":17,"_file":1503,"_stem":1504,"_extension":20},"/en-us/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics",{"config":1490,"title":1491,"description":1492},{"noIndex":6},"Measuring AI ROI at scale: A practical guide to GitLab Duo Analytics","Learn how to transform raw usage data into actionable business insights and ROI calculations with this in-depth tutorial.",{"title":1491,"description":1492,"authors":1494,"heroImage":1496,"category":769,"tags":1497,"date":1478,"updatedDate":1498},[1495],"Paul Meresanu","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662840/Blog/Hero%20Images/ai-experiment-stars.png",[728,731,772],"2025-09-09",{"featured":6,"template":736,"slug":1500},"measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics","content:en-us:blog:measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics.yml","Measuring Ai Roi At Scale A Practical Guide To Gitlab Duo Analytics","en-us/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics.yml","en-us/blog/measuring-ai-roi-at-scale-a-practical-guide-to-gitlab-duo-analytics",{"_path":1506,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1507,"content":1511,"config":1516,"_id":1518,"_type":16,"title":1519,"_source":17,"_file":1520,"_stem":1521,"_extension":20},"/en-us/blog/ai-in-action-hackathon-celebrating-the-gitlab-innovations",{"config":1508,"title":1509,"description":1510},{"noIndex":6},"AI in Action Hackathon:  Celebrating the GitLab innovations ","Uncover breakthroughs from this AI development showcase that combined Google Cloud, MongoDB, and GitLab.",{"title":1509,"description":1510,"authors":1512,"heroImage":1440,"date":1514,"category":769,"tags":1515},[1513],"Nick Veenhof","2025-08-05",[1265,728,110],{"featured":92,"template":736,"slug":1517},"ai-in-action-hackathon-celebrating-the-gitlab-innovations","content:en-us:blog:ai-in-action-hackathon-celebrating-the-gitlab-innovations.yml","Ai In Action Hackathon Celebrating The Gitlab Innovations","en-us/blog/ai-in-action-hackathon-celebrating-the-gitlab-innovations.yml","en-us/blog/ai-in-action-hackathon-celebrating-the-gitlab-innovations",{"_path":1523,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1524,"content":1528,"config":1534,"_id":1536,"_type":16,"title":1537,"_source":17,"_file":1538,"_stem":1539,"_extension":20},"/en-us/blog/migrating-by-direct-transfer-is-generally-available",{"config":1525,"title":1526,"description":1527},{"noIndex":6},"Migrating by direct transfer is generally available","Learn how to migrate GitLab groups and projects efficiently between GitLab instances with performant and secure migration by direct transfer.",{"title":1526,"description":1527,"authors":1529,"heroImage":1531,"date":1532,"category":731,"tags":1533},[1530],"Magdalena Frankiewicz","https://res.cloudinary.com/about-gitlab-com/image/upload/v1753898687/nlxenzmbdk62dlylt3ey.png","2025-07-31",[574,731,730],{"featured":92,"template":736,"slug":1535},"migrating-by-direct-transfer-is-generally-available","content:en-us:blog:migrating-by-direct-transfer-is-generally-available.yml","Migrating By Direct Transfer Is Generally Available","en-us/blog/migrating-by-direct-transfer-is-generally-available.yml","en-us/blog/migrating-by-direct-transfer-is-generally-available",{"_path":1541,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1542,"content":1546,"config":1551,"_id":1553,"_type":16,"title":1554,"_source":17,"_file":1555,"_stem":1556,"_extension":20},"/en-us/blog/securing-ai-together-gitlabs-partnership-with-security-researchers",{"config":1543,"title":1544,"description":1545},{"noIndex":6},"Securing AI together: GitLab’s partnership with security researchers","Learn how GitLab collaborates with security researchers to identify and defend against emerging threats.",{"title":1544,"description":1545,"authors":1547,"heroImage":1549,"date":1532,"category":790,"tags":1550},[1548],"Kymberlee Price","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667636/Blog/Hero%20Images/Dedicated_Screengrab_1800x945.png",[790],{"featured":6,"template":736,"slug":1552},"securing-ai-together-gitlabs-partnership-with-security-researchers","content:en-us:blog:securing-ai-together-gitlabs-partnership-with-security-researchers.yml","Securing Ai Together Gitlabs Partnership With Security Researchers","en-us/blog/securing-ai-together-gitlabs-partnership-with-security-researchers.yml","en-us/blog/securing-ai-together-gitlabs-partnership-with-security-researchers",{"_path":1558,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1559,"content":1563,"config":1570,"_id":1572,"_type":16,"title":1573,"_source":17,"_file":1574,"_stem":1575,"_extension":20},"/en-us/blog/how-to-transform-compliance-observation-management-with-gitlab",{"config":1560,"title":1561,"description":1562},{"noIndex":6},"How to transform compliance observation management with GitLab","Learn how GitLab's Security Compliance team improved observation management using the DevSecOps platform, enhancing visibility, collaboration, and accountability.",{"title":1561,"description":1562,"authors":1564,"heroImage":1566,"date":1567,"category":790,"tags":1568},[1565],"Madeline Lake","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675154/Blog/Hero%20Images/blog-image-template-1800x945__8_.png","2025-07-24",[790,1569],"inside GitLab",{"featured":6,"template":736,"slug":1571},"how-to-transform-compliance-observation-management-with-gitlab","content:en-us:blog:how-to-transform-compliance-observation-management-with-gitlab.yml","How To Transform Compliance Observation Management With Gitlab","en-us/blog/how-to-transform-compliance-observation-management-with-gitlab.yml","en-us/blog/how-to-transform-compliance-observation-management-with-gitlab",{"_path":1577,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1578,"content":1581,"config":1585,"_id":1587,"_type":16,"title":1588,"_source":17,"_file":1589,"_stem":1590,"_extension":20},"/en-us/blog/software-supply-chain-security-guide-why-organizations-struggle",{"noIndex":6,"title":1579,"description":1580},"Software supply chain security guide: Why organizations struggle","Part 1 of this new series explores fundamental challenges, practical solutions, and emerging trends, including AI, that every development team needs to understand.",{"title":1579,"description":1580,"authors":1582,"heroImage":1583,"date":1567,"category":790,"tags":1584},[1016],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097701/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%285%29_1iy516k40hwBDChKcUJ2zb_1750097700983.png",[790,731,772],{"featured":92,"template":736,"slug":1586},"software-supply-chain-security-guide-why-organizations-struggle","content:en-us:blog:software-supply-chain-security-guide-why-organizations-struggle.yml","Software Supply Chain Security Guide Why Organizations Struggle","en-us/blog/software-supply-chain-security-guide-why-organizations-struggle.yml","en-us/blog/software-supply-chain-security-guide-why-organizations-struggle",{"_path":1592,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1593,"content":1596,"config":1601,"_id":1603,"_type":16,"title":1604,"_source":17,"_file":1605,"_stem":1606,"_extension":20},"/en-us/blog/inside-gitlabs-healthy-backlog-initiative",{"noIndex":6,"title":1594,"description":1595},"Inside GitLab's Healthy Backlog Initiative","Learn how we are refining issue management to prioritize strategic work, improve delivery, and create stronger feedback loops with users.",{"title":1594,"description":1595,"authors":1597,"heroImage":1440,"date":1599,"category":858,"tags":1600},[1598],"Stan Hu","2025-07-23",[269,731,1049],{"featured":92,"template":736,"slug":1602},"inside-gitlabs-healthy-backlog-initiative","content:en-us:blog:inside-gitlabs-healthy-backlog-initiative.yml","Inside Gitlabs Healthy Backlog Initiative","en-us/blog/inside-gitlabs-healthy-backlog-initiative.yml","en-us/blog/inside-gitlabs-healthy-backlog-initiative",{"_path":1608,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1609,"content":1612,"config":1616,"_id":1618,"_type":16,"title":1619,"_source":17,"_file":1620,"_stem":1621,"_extension":20},"/en-us/blog/bridging-the-visibility-gap-in-software-supply-chain-security",{"noIndex":6,"title":1610,"description":1611},"Bridging the visibility gap in software supply chain security","GitLab 18.2 includes support for comprehensive scanner coverage and transitive dependency visualization.",{"title":1610,"description":1611,"authors":1613,"heroImage":748,"date":1614,"category":790,"tags":1615},[787],"2025-07-21",[790,730,731],{"featured":92,"template":736,"slug":1617},"bridging-the-visibility-gap-in-software-supply-chain-security","content:en-us:blog:bridging-the-visibility-gap-in-software-supply-chain-security.yml","Bridging The Visibility Gap In Software Supply Chain Security","en-us/blog/bridging-the-visibility-gap-in-software-supply-chain-security.yml","en-us/blog/bridging-the-visibility-gap-in-software-supply-chain-security",{"_path":1623,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1624,"content":1628,"config":1633,"_id":1635,"_type":16,"title":1636,"_source":17,"_file":1637,"_stem":1638,"_extension":20},"/en-us/blog/gitlab-duo-agent-platform-public-beta",{"noIndex":6,"title":1625,"description":1626,"ogImage":1627},"GitLab Duo Agent Platform goes public beta","Introducing the DevSecOps orchestration platform designed to unlock asynchronous collaboration between developers and AI agents.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1752678395/impw8no5tbskr6k2afgu.jpg",{"tags":1629,"category":769,"date":1630,"heroImage":1627,"authors":1631,"description":1626,"title":1632},[728,731,730,1049],"2025-07-17",[807],"GitLab Duo Agent Platform Public Beta: Next-gen AI orchestration and more",{"featured":92,"template":736,"slug":1634},"gitlab-duo-agent-platform-public-beta","content:en-us:blog:gitlab-duo-agent-platform-public-beta.yml","Gitlab Duo Agent Platform Public Beta","en-us/blog/gitlab-duo-agent-platform-public-beta.yml","en-us/blog/gitlab-duo-agent-platform-public-beta",{"_path":1640,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1641,"content":1644,"config":1651,"_id":1653,"_type":16,"title":1654,"_source":17,"_file":1655,"_stem":1656,"_extension":20},"/en-us/blog/how-we-use-gitlab-to-grow-open-source-communities",{"noIndex":6,"title":1642,"description":1643},"How we use GitLab to grow open source communities","Learn how to use the DevSecOps platform to solve onboarding problems for new contributors.",{"title":1642,"description":1643,"authors":1645,"heroImage":1648,"category":1388,"tags":1649,"date":1650},[1646,1647],"Lee Tickett","Daniel Murphy","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099558/Blog/Hero%20Images/Blog/Hero%20Images/gitlabflatlogomap_gitlabflatlogomap.png_1750099558369.png",[1265,269,731],"2025-07-15",{"featured":6,"template":736,"slug":1652},"how-we-use-gitlab-to-grow-open-source-communities","content:en-us:blog:how-we-use-gitlab-to-grow-open-source-communities.yml","How We Use Gitlab To Grow Open Source Communities","en-us/blog/how-we-use-gitlab-to-grow-open-source-communities.yml","en-us/blog/how-we-use-gitlab-to-grow-open-source-communities",{"_path":1658,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1659,"content":1662,"config":1667,"_id":1669,"_type":16,"title":1670,"_source":17,"_file":1671,"_stem":1672,"_extension":20},"/en-us/blog/improving-gitlab-deletion-flow-what-to-expect-in-coming-months",{"noIndex":6,"title":1660,"description":1661},"Improving GitLab's deletion flow: What to expect in coming months","GitLab is enhancing its deletion flow for groups and projects with features like pending deletion, self-service recovery, and an extended 30-day recovery window. Here's what you need to know.\n",{"title":1660,"description":1661,"authors":1663,"heroImage":1164,"date":1665,"category":14,"tags":1666},[1664],"Christina Lohr","2025-07-14",[731],{"featured":6,"template":736,"slug":1668},"improving-gitlab-deletion-flow-what-to-expect-in-coming-months","content:en-us:blog:improving-gitlab-deletion-flow-what-to-expect-in-coming-months.yml","Improving Gitlab Deletion Flow What To Expect In Coming Months","en-us/blog/improving-gitlab-deletion-flow-what-to-expect-in-coming-months.yml","en-us/blog/improving-gitlab-deletion-flow-what-to-expect-in-coming-months",{"_path":1674,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1675,"content":1678,"config":1682,"_id":1684,"_type":16,"title":1685,"_source":17,"_file":1686,"_stem":1687,"_extension":20},"/en-us/blog/3-best-practices-for-building-software-in-the-era-of-llms",{"noIndex":6,"title":1676,"description":1677},"3 best practices for building software in the era of LLMs","With AI transforming coding speed, developers need new security habits. Learn what they are and how to deploy them throughout the DevSecOps workflow.",{"title":1676,"description":1677,"authors":1679,"heroImage":1017,"date":1680,"category":769,"tags":1681},[787],"2025-07-10",[728,790],{"featured":92,"template":736,"slug":1683},"3-best-practices-for-building-software-in-the-era-of-llms","content:en-us:blog:3-best-practices-for-building-software-in-the-era-of-llms.yml","3 Best Practices For Building Software In The Era Of Llms","en-us/blog/3-best-practices-for-building-software-in-the-era-of-llms.yml","en-us/blog/3-best-practices-for-building-software-in-the-era-of-llms",{"_path":1689,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1690,"config":1693,"content":1695,"_id":1701,"_type":16,"title":1702,"_source":17,"_file":1703,"_stem":1704,"_extension":20},"/en-us/blog/accelerate-learning-with-gitlab-duo-agent-platform",{"title":1691,"description":1692},"Accelerate learning with GitLab Duo Agent Platform","Learn how agentic AI helped generate comprehensive gRPC documentation in minutes, not hours.",{"slug":1694,"featured":92,"template":736},"accelerate-learning-with-gitlab-duo-agent-platform",{"title":1691,"description":1692,"authors":1696,"heroImage":1698,"date":1699,"category":769,"tags":1700},[1697],"Halil Coban","Blog/Hero%20Images/Workflow_1800x945.png","2025-07-07",[769,772,731,790],"content:en-us:blog:accelerate-learning-with-gitlab-duo-agent-platform.yml","Accelerate Learning With Gitlab Duo Agent Platform","en-us/blog/accelerate-learning-with-gitlab-duo-agent-platform.yml","en-us/blog/accelerate-learning-with-gitlab-duo-agent-platform",{"_path":1706,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1707,"content":1710,"config":1714,"_id":1716,"_type":16,"title":1717,"_source":17,"_file":1718,"_stem":1719,"_extension":20},"/en-us/blog/ci-cd-inputs-secure-and-preferred-method-to-pass-parameters-to-a-pipeline",{"noIndex":6,"title":1708,"description":1709},"CI/CD inputs: Secure and preferred method to pass parameters to a pipeline","Learn how CI/CD inputs provide type-safe parameter passing with validation, replacing error-prone variables for more reliable pipelines.",{"title":1708,"description":1709,"authors":1711,"heroImage":993,"date":1699,"category":731,"tags":1713},[1712],"Dov Hershkovitch",[110,731,790],{"featured":6,"template":736,"slug":1715},"ci-cd-inputs-secure-and-preferred-method-to-pass-parameters-to-a-pipeline","content:en-us:blog:ci-cd-inputs-secure-and-preferred-method-to-pass-parameters-to-a-pipeline.yml","Ci Cd Inputs Secure And Preferred Method To Pass Parameters To A Pipeline","en-us/blog/ci-cd-inputs-secure-and-preferred-method-to-pass-parameters-to-a-pipeline.yml","en-us/blog/ci-cd-inputs-secure-and-preferred-method-to-pass-parameters-to-a-pipeline",{"_path":1721,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1722,"content":1725,"config":1731,"_id":1733,"_type":16,"title":1734,"_source":17,"_file":1735,"_stem":1736,"_extension":20},"/en-us/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",{"noIndex":6,"title":1723,"description":1724},"Fast and secure AI agent deployment to Google Cloud with GitLab","Follow this step-by-step guide, complete with a demo application, to learn how to use agentic AI, along with GitLab's native integrations and CI/CD components.",{"title":1723,"description":1724,"authors":1726,"heroImage":1728,"date":1699,"category":769,"tags":1729},[1727],"Regnard Raquedan","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg",[728,1730,772],"google",{"featured":6,"template":736,"slug":1732},"fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab","content:en-us:blog:fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab.yml","Fast And Secure Ai Agent Deployment To Google Cloud With Gitlab","en-us/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab.yml","en-us/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",{"_path":1738,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1739,"content":1742,"config":1746,"_id":1748,"_type":16,"title":1749,"_source":17,"_file":1750,"_stem":1751,"_extension":20},"/en-us/blog/enhance-application-quality-with-ai-powered-test-generation",{"noIndex":6,"title":1740,"description":1741},"Enhance application quality with AI-powered test generation","Learn how GitLab Duo with Amazon Q improves the QA process by automatically generating comprehensive unit tests.",{"title":1740,"description":1741,"authors":1743,"heroImage":768,"date":1744,"category":769,"tags":1745},[767],"2025-07-03",[728,731,964,574,772,771],{"featured":92,"template":736,"slug":1747},"enhance-application-quality-with-ai-powered-test-generation","content:en-us:blog:enhance-application-quality-with-ai-powered-test-generation.yml","Enhance Application Quality With Ai Powered Test Generation","en-us/blog/enhance-application-quality-with-ai-powered-test-generation.yml","en-us/blog/enhance-application-quality-with-ai-powered-test-generation",{"_path":1753,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1754,"content":1757,"config":1763,"_id":1765,"_type":16,"title":1766,"_source":17,"_file":1767,"_stem":1768,"_extension":20},"/en-us/blog/why-now-is-the-time-for-embedded-devsecops",{"noIndex":6,"title":1755,"description":1756},"Why now is the time for embedded DevSecOps","Learn how embedded development teams address long feedback cycles, manual compliance, and isolated development with DevSecOps.",{"title":1755,"description":1756,"authors":1758,"heroImage":1759,"date":1760,"category":577,"tags":1761},[958],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659978/Blog/Hero%20Images/automation.png","2025-07-01",[963,731,110,1762],"automotive",{"featured":6,"template":736,"slug":1764},"why-now-is-the-time-for-embedded-devsecops","content:en-us:blog:why-now-is-the-time-for-embedded-devsecops.yml","Why Now Is The Time For Embedded Devsecops","en-us/blog/why-now-is-the-time-for-embedded-devsecops.yml","en-us/blog/why-now-is-the-time-for-embedded-devsecops",{"_path":1770,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1771,"content":1774,"config":1779,"_id":1781,"_type":16,"title":1782,"_source":17,"_file":1783,"_stem":1784,"_extension":20},"/en-us/blog/gitlab-catches-mongodb-go-module-supply-chain-attack",{"noIndex":6,"title":1772,"description":1773},"GitLab catches MongoDB Go module supply chain attack","Learn how GitLab detected a supply chain attack targeting Go developers through fake MongoDB drivers that deploy persistent backdoor malware.",{"title":1772,"description":1773,"authors":1775,"heroImage":1776,"category":790,"tags":1777,"date":1778},[1476],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098739/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_282096522_securitycompliance.jpeg_1750098739024.jpg",[790,731],"2025-06-30",{"featured":92,"template":736,"slug":1780},"gitlab-catches-mongodb-go-module-supply-chain-attack","content:en-us:blog:gitlab-catches-mongodb-go-module-supply-chain-attack.yml","Gitlab Catches Mongodb Go Module Supply Chain Attack","en-us/blog/gitlab-catches-mongodb-go-module-supply-chain-attack.yml","en-us/blog/gitlab-catches-mongodb-go-module-supply-chain-attack",{"_path":1786,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1787,"content":1790,"config":1795,"_id":1797,"_type":16,"title":1798,"_source":17,"_file":1799,"_stem":1800,"_extension":20},"/en-us/blog/exact-code-search-find-code-faster-across-repositories",{"noIndex":6,"title":1788,"description":1789},"Exact Code Search: Find code faster across repositories","Discover how this new GitLab feature can find exact matches, use regex patterns, and see contextual results across terabytes of codebases.",{"title":1788,"description":1789,"authors":1791,"heroImage":1566,"date":1793,"category":731,"tags":1794},[1792],"Dmitry Gruzd","2025-06-25",[731,772,1265],{"featured":6,"template":736,"slug":1796},"exact-code-search-find-code-faster-across-repositories","content:en-us:blog:exact-code-search-find-code-faster-across-repositories.yml","Exact Code Search Find Code Faster Across Repositories","en-us/blog/exact-code-search-find-code-faster-across-repositories.yml","en-us/blog/exact-code-search-find-code-faster-across-repositories",{"_path":1802,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1803,"content":1806,"config":1811,"_id":1813,"_type":16,"title":1814,"_source":17,"_file":1815,"_stem":1816,"_extension":20},"/en-us/blog/speed-meets-governance-model-selection-comes-to-gitlab-duo",{"noIndex":6,"title":1804,"description":1805},"Speed meets governance: Model Selection comes to GitLab Duo","Duo Model Selection provides LLM control for each GitLab Duo feature, enabling organizations to adopt AI while meeting strict governance and compliance standards.",{"title":1804,"description":1805,"authors":1807,"heroImage":1809,"date":1793,"category":769,"tags":1810},[1808],"Susie Bitters","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669095/Blog/Hero%20Images/gitlabduo.png",[728,731],{"featured":92,"template":736,"slug":1812},"speed-meets-governance-model-selection-comes-to-gitlab-duo","content:en-us:blog:speed-meets-governance-model-selection-comes-to-gitlab-duo.yml","Speed Meets Governance Model Selection Comes To Gitlab Duo","en-us/blog/speed-meets-governance-model-selection-comes-to-gitlab-duo.yml","en-us/blog/speed-meets-governance-model-selection-comes-to-gitlab-duo",{"_path":1818,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1819,"content":1822,"config":1827,"_id":1829,"_type":16,"title":1830,"_source":17,"_file":1831,"_stem":1832,"_extension":20},"/en-us/blog/gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops",{"noIndex":6,"title":1820,"description":1821},"GitLab Duo Agent Platform: What’s next for intelligent DevSecOps","GitLab Duo Agent Platform, a DevSecOps orchestration platform for humans and AI agents, leverages agentic AI for collaboration across the software development lifecycle.",{"heroImage":1823,"title":1820,"description":1821,"authors":1824,"date":1825,"category":769,"tags":1826},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750687578/esmflevxk5bf3eezjhwk.png",[807],"2025-06-24",[728,574,1049,731],{"featured":92,"template":736,"slug":1828},"gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops","content:en-us:blog:gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops.yml","Gitlab Duo Agent Platform What Is Next For Intelligent Devsecops","en-us/blog/gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops.yml","en-us/blog/gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops",{"_path":1834,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1835,"content":1838,"config":1843,"_id":1845,"_type":16,"title":1846,"_source":17,"_file":1847,"_stem":1848,"_extension":20},"/en-us/blog/reduce-the-load-on-gitlab-gitaly-with-bundle-uri",{"noIndex":6,"title":1836,"description":1837},"Reduce the load on GitLab Gitaly with bundle URI","Discover what the bundle URI Git feature is, how it is integrated into Gitaly, configuration best practices, and how GitLab users can benefit from it.",{"title":1836,"description":1837,"heroImage":1839,"date":1825,"category":731,"tags":1840,"authors":1841},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099013/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2814%29_6VTUA8mUhOZNDaRVNPeKwl_1750099012960.png",[731,574,1195],[1842],"Olivier Campeau",{"featured":6,"template":736,"slug":1844},"reduce-the-load-on-gitlab-gitaly-with-bundle-uri","content:en-us:blog:reduce-the-load-on-gitlab-gitaly-with-bundle-uri.yml","Reduce The Load On Gitlab Gitaly With Bundle Uri","en-us/blog/reduce-the-load-on-gitlab-gitaly-with-bundle-uri.yml","en-us/blog/reduce-the-load-on-gitlab-gitaly-with-bundle-uri",{"_path":1850,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1851,"content":1854,"config":1861,"_id":1863,"_type":16,"title":1864,"_source":17,"_file":1865,"_stem":1866,"_extension":20},"/en-us/blog/gitlab-ultimate-for-ibm-z-modern-devsecops-for-mainframes",{"noIndex":6,"description":1852,"title":1853},"A new offering from GitLab and IBM bridges mainframe and cloud-native development with seamless integration, CI/CD runner support, end-to-end visibility, and cost efficiency. ","GitLab Ultimate for IBM Z: Modern DevSecOps for mainframes",{"title":1853,"description":1852,"category":731,"tags":1855,"authors":1856,"heroImage":1859,"date":1860},[284,731,110,574],[1857,1858],"Mike Flouton","Andy Bradfield","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750440008/myqt5vcjlffh8sszw507.png","2025-06-23",{"featured":92,"template":736,"slug":1862},"gitlab-ultimate-for-ibm-z-modern-devsecops-for-mainframes","content:en-us:blog:gitlab-ultimate-for-ibm-z-modern-devsecops-for-mainframes.yml","Gitlab Ultimate For Ibm Z Modern Devsecops For Mainframes","en-us/blog/gitlab-ultimate-for-ibm-z-modern-devsecops-for-mainframes.yml","en-us/blog/gitlab-ultimate-for-ibm-z-modern-devsecops-for-mainframes",{"_path":1868,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1869,"content":1872,"config":1879,"_id":1881,"_type":16,"title":1882,"_source":17,"_file":1883,"_stem":1884,"_extension":20},"/en-us/blog/automating-role-based-access-control-rbac-at-scale",{"noIndex":6,"title":1870,"description":1871},"Automating role-based access control (RBAC) at scale","This guide details setting up GitLab + Keycloak + OIDC for RBAC, covering planning, Docker configuration, and automated access governance for DevSecOps.",{"title":1870,"description":1871,"heroImage":1873,"date":1874,"category":790,"tags":1875,"authors":1876},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659561/Blog/Hero%20Images/securitycheck.png","2025-06-20",[790],[1877,1495,1878],"James Wormwell","Kees Valkhof",{"featured":92,"template":736,"slug":1880},"automating-role-based-access-control-rbac-at-scale","content:en-us:blog:automating-role-based-access-control-rbac-at-scale.yml","Automating Role Based Access Control Rbac At Scale","en-us/blog/automating-role-based-access-control-rbac-at-scale.yml","en-us/blog/automating-role-based-access-control-rbac-at-scale",{"_path":1886,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1887,"content":1890,"config":1896,"_id":1898,"_type":16,"title":1899,"_source":17,"_file":1900,"_stem":1901,"_extension":20},"/en-us/blog/what-s-new-in-git-2-50-0",{"noIndex":6,"title":1888,"description":1889},"What’s new in Git 2.50.0?","Here are contributions from GitLab's Git team and the Git community such as the git-diff-pairs(1) command and git-rev-list(1) option to perform batched reference updates.",{"title":1888,"description":1891,"authors":1892,"heroImage":1381,"date":1894,"category":1388,"tags":1895},"Here are contributions from GitLab's Git team and the Git community such as the git-diff-pairs(1) command and git-update-ref(1) option to perform batched reference updates.",[1893],"Justin Tobler","2025-06-16",[1195,1265,269],{"featured":92,"template":736,"slug":1897},"what-s-new-in-git-2-50-0","content:en-us:blog:what-s-new-in-git-2-50-0.yml","What S New In Git 2 50 0","en-us/blog/what-s-new-in-git-2-50-0.yml","en-us/blog/what-s-new-in-git-2-50-0",{"_path":1903,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1904,"content":1910,"config":1916,"_id":1918,"_type":16,"title":1919,"_source":17,"_file":1920,"_stem":1921,"_extension":20},"/en-us/blog/ai-native-gitlab-premium-transform-higher-education-software-development",{"title":1905,"description":1906,"ogTitle":1905,"ogDescription":1906,"noIndex":6,"ogImage":1907,"ogUrl":1908,"ogSiteName":995,"ogType":996,"canonicalUrls":1908,"schema":1909},"AI-native GitLab Premium: Transform higher education software development","The DevSecOps platform's enterprise-grade features for academic workflows, data protection, and support ensure better collaboration, security, and efficiency.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659537/Blog/Hero%20Images/display-article-image-0679-1800x945-fy26.png","https://about.gitlab.com/blog/ai-native-gitlab-premium-transform-higher-education-software-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AI-native GitLab Premium: Transform higher education software development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jessica Hurwitz\"},{\"@type\":\"Person\",\"name\":\"Elisabeth Burrows\"}],\n        \"datePublished\": \"2025-06-10\",\n      }",{"title":1905,"description":1906,"authors":1911,"heroImage":1907,"date":1914,"category":731,"tags":1915},[1912,1913],"Jessica Hurwitz","Elisabeth Burrows","2025-06-10",[631,543,731,730,186],{"slug":1917,"featured":92,"template":736},"ai-native-gitlab-premium-transform-higher-education-software-development","content:en-us:blog:ai-native-gitlab-premium-transform-higher-education-software-development.yml","Ai Native Gitlab Premium Transform Higher Education Software Development","en-us/blog/ai-native-gitlab-premium-transform-higher-education-software-development.yml","en-us/blog/ai-native-gitlab-premium-transform-higher-education-software-development",{"_path":1923,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1924,"content":1929,"config":1933,"_id":1935,"_type":16,"title":1936,"_source":17,"_file":1937,"_stem":1938,"_extension":20},"/en-us/blog/speed-up-code-reviews-let-ai-handle-the-feedback-implementation",{"title":1925,"description":1926,"ogTitle":1925,"ogDescription":1926,"noIndex":6,"ogImage":768,"ogUrl":1927,"ogSiteName":995,"ogType":996,"canonicalUrls":1927,"schema":1928},"Speed up code reviews: Let AI handle the feedback implementation","Discover how GitLab Duo with Amazon Q automates the implementation of code review feedback through AI, transforming a time-consuming manual process into a streamlined workflow.","https://about.gitlab.com/blog/speed-up-code-reviews-let-ai-handle-the-feedback-implementation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Speed up code reviews: Let AI handle the feedback implementation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2025-06-10\",\n      }",{"title":1925,"description":1926,"authors":1930,"heroImage":768,"date":1914,"category":769,"tags":1931},[767],[731,730,543,771,1932,772],"code review",{"slug":1934,"featured":92,"template":736},"speed-up-code-reviews-let-ai-handle-the-feedback-implementation","content:en-us:blog:speed-up-code-reviews-let-ai-handle-the-feedback-implementation.yml","Speed Up Code Reviews Let Ai Handle The Feedback Implementation","en-us/blog/speed-up-code-reviews-let-ai-handle-the-feedback-implementation.yml","en-us/blog/speed-up-code-reviews-let-ai-handle-the-feedback-implementation",{"_path":1940,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1941,"content":1947,"config":1952,"_id":1954,"_type":16,"title":1955,"_source":17,"_file":1956,"_stem":1957,"_extension":20},"/en-us/blog/last-year-we-signed-the-secure-by-design-pledge-heres-our-progress",{"title":1942,"description":1943,"ogTitle":1942,"ogDescription":1943,"noIndex":6,"ogImage":1944,"ogUrl":1945,"ogSiteName":995,"ogType":996,"canonicalUrls":1945,"schema":1946},"Last year we signed the Secure by Design pledge - here's our progress","Learn about GitLab's CISA-aligned additions and improvements around MFA, default password reduction, patching, and vulnerability disclosure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659684/Blog/Hero%20Images/AdobeStock_479904468__1_.jpg","https://about.gitlab.com/blog/last-year-we-signed-the-secure-by-design-pledge-heres-our-progress","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Last year we signed the Secure by Design pledge - here's our progress\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2025-06-09\",\n      }",{"title":1942,"description":1943,"authors":1948,"heroImage":1944,"date":1950,"category":790,"tags":1951},[1949],"Joseph Longo","2025-06-09",[574,543,790,186],{"slug":1953,"featured":92,"template":736},"last-year-we-signed-the-secure-by-design-pledge-heres-our-progress","content:en-us:blog:last-year-we-signed-the-secure-by-design-pledge-heres-our-progress.yml","Last Year We Signed The Secure By Design Pledge Heres Our Progress","en-us/blog/last-year-we-signed-the-secure-by-design-pledge-heres-our-progress.yml","en-us/blog/last-year-we-signed-the-secure-by-design-pledge-heres-our-progress",{"_path":1959,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1960,"content":1966,"config":1970,"_id":1972,"_type":16,"title":1973,"_source":17,"_file":1974,"_stem":1975,"_extension":20},"/en-us/blog/4-ways-to-accelerate-embedded-development-with-gitlab",{"title":1961,"description":1962,"ogTitle":1961,"ogDescription":1962,"noIndex":6,"ogImage":1963,"ogUrl":1964,"ogSiteName":995,"ogType":996,"canonicalUrls":1964,"schema":1965},"4 ways to accelerate embedded development with GitLab","Learn how automated hardware testing, standard builds, collaborative workflows, and integrated compliance eliminate bottlenecks in firmware development.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659756/Blog/Hero%20Images/REFERENCE_-_display_preview_for_blog_images.png","https://about.gitlab.com/blog/4-ways-to-accelerate-embedded-development-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 ways to accelerate embedded development with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt DeLaney\"},{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2025-06-05\",\n      }",{"title":1961,"description":1962,"authors":1967,"heroImage":1963,"date":1968,"category":731,"tags":1969},[958,959],"2025-06-05",[543,772,730,963],{"slug":1971,"featured":6,"template":736},"4-ways-to-accelerate-embedded-development-with-gitlab","content:en-us:blog:4-ways-to-accelerate-embedded-development-with-gitlab.yml","4 Ways To Accelerate Embedded Development With Gitlab","en-us/blog/4-ways-to-accelerate-embedded-development-with-gitlab.yml","en-us/blog/4-ways-to-accelerate-embedded-development-with-gitlab",{"_path":1977,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1978,"content":1984,"config":1989,"_id":1991,"_type":16,"title":1992,"_source":17,"_file":1993,"_stem":1994,"_extension":20},"/en-us/blog/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes",{"title":1979,"description":1980,"ogTitle":1979,"ogDescription":1980,"noIndex":6,"ogImage":1981,"ogUrl":1982,"ogSiteName":995,"ogType":996,"canonicalUrls":1982,"schema":1983},"How we decreased GitLab repo backup times from 48 hours to 41 minutes","Learn how we tracked a performance bottleneck to a 15-year-old Git function and fixed it, leading to enhanced efficiency that supports more robust backup strategies and can reduce risk.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097166/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20display%20preview%20for%20blog%20images%20%282%29_2pKf8RsKzAaThmQfqHIaa7_1750097166565.png","https://about.gitlab.com/blog/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we decreased GitLab repo backup times from 48 hours to 41 minutes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Karthik Nayak\"},{\"@type\":\"Person\",\"name\":\"Manuel Kraft\"}],\n        \"datePublished\": \"2025-06-05\",\n      }",{"title":1979,"description":1980,"authors":1985,"heroImage":1981,"date":1968,"category":858,"tags":1987},[1386,1986],"Manuel Kraft",[1195,1265,731,1988,543],"performance",{"slug":1990,"featured":92,"template":736},"how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes","content:en-us:blog:how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes.yml","How We Decreased Gitlab Repo Backup Times From 48 Hours To 41 Minutes","en-us/blog/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes.yml","en-us/blog/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes",{"_path":1996,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1997,"content":2003,"config":2007,"_id":2009,"_type":16,"title":2010,"_source":17,"_file":2011,"_stem":2012,"_extension":20},"/en-us/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q",{"title":1998,"description":1999,"ogTitle":1998,"ogDescription":1999,"noIndex":6,"ogImage":2000,"ogUrl":2001,"ogSiteName":995,"ogType":996,"canonicalUrls":2001,"schema":2002},"Accelerate code reviews with GitLab Duo and Amazon Q","Use AI-powered agents to optimize code reviews by automatically analyzing merge requests and providing comprehensive feedback on bugs, readability, and coding standards.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750096976/Blog/Hero%20Images/Blog/Hero%20Images/Screenshot%202024-11-27%20at%204.55.28%E2%80%AFPM_4VVz6DgGBOvbGY8BUmd068_1750096975734.png","https://about.gitlab.com/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Accelerate code reviews with GitLab Duo and Amazon Q\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2025-06-02\",\n      }",{"title":1998,"description":1999,"authors":2004,"heroImage":2000,"date":2005,"category":769,"tags":2006},[767],"2025-06-02",[728,543,1932,731,730,284,771,772],{"slug":2008,"featured":92,"template":736},"accelerate-code-reviews-with-gitlab-duo-and-amazon-q","content:en-us:blog:accelerate-code-reviews-with-gitlab-duo-and-amazon-q.yml","Accelerate Code Reviews With Gitlab Duo And Amazon Q","en-us/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q.yml","en-us/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q",{"_path":2014,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2015,"content":2021,"config":2026,"_id":2028,"_type":16,"title":2029,"_source":17,"_file":2030,"_stem":2031,"_extension":20},"/en-us/blog/gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025",{"title":2016,"description":2017,"ogTitle":2016,"ogDescription":2017,"noIndex":6,"ogImage":2018,"ogUrl":2019,"ogSiteName":995,"ogType":996,"canonicalUrls":2019,"schema":2020},"GitLab named a Leader in The Forrester Wave™: DevOps Platforms, Q2 2025","Forrester calls GitLab platform the \"most all-in-one of the all-in-one solutions,\" adding it \"suits enterprises looking to standardize with a single purchase.\"","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658898/Blog/Hero%20Images/blog-post-image-forrester-wave-1800x945px-fy26.png","https://about.gitlab.com/blog/gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named a Leader in The Forrester Wave™: DevOps Platforms, Q2 2025\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2025-06-02\",\n      }",{"title":2016,"description":2017,"authors":2022,"heroImage":2018,"date":2005,"category":731,"tags":2024},[2023],"Dave Steer",[2025,731,1049,543],"research",{"slug":2027,"featured":92,"template":736},"gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025","content:en-us:blog:gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025.yml","Gitlab Named A Leader In The Forrester Wave Devops Platforms Q2 2025","en-us/blog/gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025.yml","en-us/blog/gitlab-named-a-leader-in-the-forrester-wave-devops-platforms-q2-2025",{"_path":2033,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2034,"content":2040,"config":2043,"_id":2045,"_type":16,"title":2046,"_source":17,"_file":2047,"_stem":2048,"_extension":20},"/en-us/blog/why-are-organizations-moving-to-a-unified-devsecops-platform",{"title":2035,"description":2036,"ogTitle":2035,"ogDescription":2036,"noIndex":6,"ogImage":2037,"ogUrl":2038,"ogSiteName":995,"ogType":996,"canonicalUrls":2038,"schema":2039},"Why are organizations moving to a unified DevSecOps platform?","Learn about GitLab's comprehensive, unified DevSecOps platform, which integrates tools, enhances security, and leverages AI for efficient software development.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097063/Blog/Hero%20Images/Blog/Hero%20Images/securitylifecycle-light_securitylifecycle-light.png_1750097063583.png","https://about.gitlab.com/blog/why-are-organizations-moving-to-a-unified-devsecops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why are organizations moving to a unified DevSecOps platform?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2025-06-02\",\n      }",{"title":2035,"description":2036,"authors":2041,"heroImage":2037,"date":2005,"category":577,"tags":2042},[1016],[574,543,731],{"slug":2044,"featured":6,"template":736},"why-are-organizations-moving-to-a-unified-devsecops-platform","content:en-us:blog:why-are-organizations-moving-to-a-unified-devsecops-platform.yml","Why Are Organizations Moving To A Unified Devsecops Platform","en-us/blog/why-are-organizations-moving-to-a-unified-devsecops-platform.yml","en-us/blog/why-are-organizations-moving-to-a-unified-devsecops-platform",{"_path":2050,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2051,"content":2056,"config":2061,"_id":2063,"_type":16,"title":2064,"_source":17,"_file":2065,"_stem":2066,"_extension":20},"/en-us/blog/gitlab-duo-chat-gets-agentic-ai-makeover",{"title":2052,"description":2053,"ogTitle":2052,"ogDescription":2053,"noIndex":6,"ogImage":960,"ogUrl":2054,"ogSiteName":995,"ogType":996,"canonicalUrls":2054,"schema":2055},"GitLab Duo Chat gets agentic AI makeover  ","Our new Duo Chat experience, currently an experimental release, helps developers onboard to projects, understand assignments, implement changes, and more.","https://about.gitlab.com/blog/gitlab-duo-chat-gets-agentic-ai-makeover","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Chat gets agentic AI makeover  \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Torsten Linz\"}],\n        \"datePublished\": \"2025-05-29\",\n      }",{"title":2052,"description":2053,"authors":2057,"heroImage":960,"date":2059,"category":769,"tags":2060},[2058],"Torsten Linz","2025-05-29",[728,1049,730,543,731,772],{"slug":2062,"featured":92,"template":736},"gitlab-duo-chat-gets-agentic-ai-makeover","content:en-us:blog:gitlab-duo-chat-gets-agentic-ai-makeover.yml","Gitlab Duo Chat Gets Agentic Ai Makeover","en-us/blog/gitlab-duo-chat-gets-agentic-ai-makeover.yml","en-us/blog/gitlab-duo-chat-gets-agentic-ai-makeover",{"_path":2068,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2069,"content":2075,"config":2078,"_id":2080,"_type":16,"title":2081,"_source":17,"_file":2082,"_stem":2083,"_extension":20},"/en-us/blog/what-is-a-large-language-model-llm",{"title":2070,"description":2071,"ogTitle":2070,"ogDescription":2071,"noIndex":6,"ogImage":2072,"ogUrl":2073,"ogSiteName":995,"ogType":996,"canonicalUrls":2073,"schema":2074},"What is a large language model (LLM)?","Learn how large language models work, their applications, and their impact on the DevSecOps world.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660057/Blog/Hero%20Images/LLM.jpg","https://about.gitlab.com/blog/what-is-a-large-language-model-llm","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What is a large language model (LLM)?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2025-05-29\",\n      }",{"title":2070,"description":2071,"authors":2076,"heroImage":2072,"date":2059,"category":769,"tags":2077},[1016],[728,574],{"slug":2079,"featured":6,"template":736},"what-is-a-large-language-model-llm","content:en-us:blog:what-is-a-large-language-model-llm.yml","What Is A Large Language Model Llm","en-us/blog/what-is-a-large-language-model-llm.yml","en-us/blog/what-is-a-large-language-model-llm",{"_path":2085,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2086,"content":2092,"config":2099,"_id":2101,"_type":16,"title":2102,"_source":17,"_file":2103,"_stem":2104,"_extension":20},"/en-us/blog/getting-started-with-gitlab-working-with-ci-cd-variables",{"title":2087,"description":2088,"ogTitle":2087,"ogDescription":2088,"noIndex":6,"ogImage":2089,"ogUrl":2090,"ogSiteName":995,"ogType":996,"canonicalUrls":2090,"schema":2091},"Getting started with GitLab: Working with CI/CD variables","Learn what CI/CD variables are, why they are important in DevSecOps, and best practices for utilizing them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659525/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25.png","https://about.gitlab.com/blog/getting-started-with-gitlab-working-with-ci-cd-variables","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab: Working with CI/CD variables\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2025-05-27\",\n      }",{"title":2087,"description":2088,"authors":2093,"heroImage":2089,"date":2095,"category":731,"tags":2096},[2094],"GitLab Team","2025-05-27",[731,772,2097,2098,110,730],"CI","CD",{"slug":2100,"featured":92,"template":736},"getting-started-with-gitlab-working-with-ci-cd-variables","content:en-us:blog:getting-started-with-gitlab-working-with-ci-cd-variables.yml","Getting Started With Gitlab Working With Ci Cd Variables","en-us/blog/getting-started-with-gitlab-working-with-ci-cd-variables.yml","en-us/blog/getting-started-with-gitlab-working-with-ci-cd-variables",{"_path":2106,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2107,"content":2113,"config":2119,"_id":2121,"_type":16,"title":2122,"_source":17,"_file":2123,"_stem":2124,"_extension":20},"/en-us/blog/introducing-compromised-password-detection-for-gitlab-com",{"title":2108,"description":2109,"ogTitle":2108,"ogDescription":2109,"noIndex":6,"ogImage":2110,"ogUrl":2111,"ogSiteName":995,"ogType":996,"canonicalUrls":2111,"schema":2112},"Introducing compromised password detection for GitLab.com","GitLab is adding compromised password detection on June 19, 2025. After that date, users logging in with known compromised passwords will be warned.  Here is what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097341/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%287%29_6QBUJnfaq500YYVKVDlxK7_1750097340425.png","https://about.gitlab.com/blog/introducing-compromised-password-detection-for-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing compromised password detection for GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ruby Nealon\"},{\"@type\":\"Person\",\"name\":\"Matt Coons\"}],\n        \"datePublished\": \"2025-05-22\",\n      }",{"title":2108,"description":2109,"authors":2114,"heroImage":2110,"date":2117,"category":790,"tags":2118},[2115,2116],"Ruby Nealon","Matt Coons","2025-05-22",[790,731,730,1049,543],{"slug":2120,"featured":92,"template":736},"introducing-compromised-password-detection-for-gitlab-com","content:en-us:blog:introducing-compromised-password-detection-for-gitlab-com.yml","Introducing Compromised Password Detection For Gitlab Com","en-us/blog/introducing-compromised-password-detection-for-gitlab-com.yml","en-us/blog/introducing-compromised-password-detection-for-gitlab-com",{"_path":2126,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2127,"content":2133,"config":2137,"_id":2139,"_type":16,"title":2140,"_source":17,"_file":2141,"_stem":2142,"_extension":20},"/en-us/blog/refactoring-javascript-to-typescript-with-gitlab-duo-workflow",{"title":2128,"description":2129,"ogTitle":2128,"ogDescription":2129,"noIndex":6,"ogImage":2130,"ogUrl":2131,"ogSiteName":995,"ogType":996,"canonicalUrls":2131,"schema":2132},"Refactoring JavaScript to TypeScript with GitLab Duo Workflow","Learn how we used our autonomous AI agent, which sits in your development environment, to convert a real-world JavaScript application to TypeScript.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660174/Blog/Hero%20Images/Workflow_1800x945.png","https://about.gitlab.com/blog/refactoring-javascript-to-typescript-with-gitlab-duo-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Refactoring JavaScript to TypeScript with GitLab Duo Workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Frédéric Caplette\"}],\n        \"datePublished\": \"2025-05-22\",\n      }",{"title":2128,"description":2129,"authors":2134,"heroImage":2130,"date":2117,"category":769,"tags":2136},[2135],"Frédéric Caplette",[728,772,543,730],{"slug":2138,"featured":92,"template":736},"refactoring-javascript-to-typescript-with-gitlab-duo-workflow","content:en-us:blog:refactoring-javascript-to-typescript-with-gitlab-duo-workflow.yml","Refactoring Javascript To Typescript With Gitlab Duo Workflow","en-us/blog/refactoring-javascript-to-typescript-with-gitlab-duo-workflow.yml","en-us/blog/refactoring-javascript-to-typescript-with-gitlab-duo-workflow",{"_path":2144,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2145,"content":2151,"config":2154,"_id":2156,"_type":16,"title":2157,"_source":17,"_file":2158,"_stem":2159,"_extension":20},"/en-us/blog/tutorial-secure-and-optimize-your-maven-repository-in-gitlab",{"title":2146,"description":2147,"ogTitle":2146,"ogDescription":2147,"noIndex":6,"ogImage":2148,"ogUrl":2149,"ogSiteName":995,"ogType":996,"canonicalUrls":2149,"schema":2150},"Tutorial: Secure and optimize your Maven Repository in GitLab","Learn the best practices, advanced techniques, and upcoming features that improve the efficiency of your DevSecOps workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666187/Blog/Hero%20Images/blog-image-template-1800x945__6_.png","https://about.gitlab.com/blog/tutorial-secure-and-optimize-your-maven-repository-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Secure and optimize your Maven Repository in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2025-05-22\",\n      }",{"title":2146,"description":2147,"authors":2152,"heroImage":2148,"date":2117,"category":790,"tags":2153},[907],[790,543,730,731,1335],{"slug":2155,"featured":92,"template":736},"tutorial-secure-and-optimize-your-maven-repository-in-gitlab","content:en-us:blog:tutorial-secure-and-optimize-your-maven-repository-in-gitlab.yml","Tutorial Secure And Optimize Your Maven Repository In Gitlab","en-us/blog/tutorial-secure-and-optimize-your-maven-repository-in-gitlab.yml","en-us/blog/tutorial-secure-and-optimize-your-maven-repository-in-gitlab",{"_path":2161,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2162,"content":2167,"config":2172,"_id":2174,"_type":16,"title":2175,"_source":17,"_file":2176,"_stem":2177,"_extension":20},"/en-us/blog/gitlab-dedicated-for-government-now-fedramp-authorized",{"title":2163,"description":2164,"ogTitle":2163,"ogDescription":2164,"noIndex":6,"ogImage":1402,"ogUrl":2165,"ogSiteName":995,"ogType":996,"canonicalUrls":2165,"schema":2166},"GitLab Dedicated for Government now FedRAMP-authorized","Learn how our single-tenant SaaS solution empowers public sector customers to securely accelerate their modernization initiatives.","https://about.gitlab.com/blog/gitlab-dedicated-for-government-now-fedramp-authorized","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Dedicated for Government now FedRAMP-authorized\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Deepa Mahalingam\"},{\"@type\":\"Person\",\"name\":\"Elisabeth Burrows\"}],\n        \"datePublished\": \"2025-05-19\",\n      }",{"title":2163,"description":2164,"authors":2168,"heroImage":1402,"date":2170,"category":731,"tags":2171},[2169,1913],"Deepa Mahalingam","2025-05-19",[543,730,1049,731,186],{"slug":2173,"featured":92,"template":736},"gitlab-dedicated-for-government-now-fedramp-authorized","content:en-us:blog:gitlab-dedicated-for-government-now-fedramp-authorized.yml","Gitlab Dedicated For Government Now Fedramp Authorized","en-us/blog/gitlab-dedicated-for-government-now-fedramp-authorized.yml","en-us/blog/gitlab-dedicated-for-government-now-fedramp-authorized",{"_path":2179,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2180,"content":2186,"config":2191,"_id":2193,"_type":16,"title":2194,"_source":17,"_file":2195,"_stem":2196,"_extension":20},"/en-us/blog/gitlab-premium-with-duo",{"title":2181,"description":2182,"ogTitle":2181,"ogDescription":2182,"noIndex":6,"ogImage":2183,"ogUrl":2184,"ogSiteName":995,"ogType":996,"canonicalUrls":2184,"schema":2185},"Unlocking AI for every GitLab Premium and Ultimate customer","GitLab Premium and Ultimate now include GitLab Duo essentials for creating and understanding code throughout the software development lifecycle, all at no additional cost.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660188/Blog/Hero%20Images/blog-premium-with-duo-cover-0756-fy26-v2-1800x945.png","https://about.gitlab.com/blog/gitlab-premium-with-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unlocking AI for every GitLab Premium and Ultimate customer\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2025-05-15\",\n      }",{"title":2181,"description":2182,"authors":2187,"heroImage":2183,"date":2189,"category":731,"tags":2190},[2188],"David DeSanto, Chief Product Officer, GitLab","2025-05-15",[728,543,1049,730,731],{"slug":2192,"featured":92,"template":736},"gitlab-premium-with-duo","content:en-us:blog:gitlab-premium-with-duo.yml","Gitlab Premium With Duo","en-us/blog/gitlab-premium-with-duo.yml","en-us/blog/gitlab-premium-with-duo",{"_path":2198,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2199,"content":2205,"config":2211,"_id":2213,"_type":16,"title":2214,"_source":17,"_file":2215,"_stem":2216,"_extension":20},"/en-us/blog/our-step-by-step-guide-to-evaluating-runtime-security-tools",{"title":2200,"description":2201,"ogTitle":2200,"ogDescription":2201,"noIndex":6,"ogImage":2202,"ogUrl":2203,"ogSiteName":995,"ogType":996,"canonicalUrls":2203,"schema":2204},"Our step-by-step guide to evaluating runtime security tools","Key learnings from the GitLab Security team’s runtime security tool evaluation on Kubernetes clusters and Linux servers using real-world attack simulations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097534/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1097303277_6gTk7M1DNx0tFuovupVFB1_1750097534344.jpg","https://about.gitlab.com/blog/our-step-by-step-guide-to-evaluating-runtime-security-tools","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our step-by-step guide to evaluating runtime security tools\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hiroki Suezawa\"},{\"@type\":\"Person\",\"name\":\"Mitra Jozenazemian\"}],\n        \"datePublished\": \"2025-05-13\",\n      }",{"title":2200,"description":2201,"authors":2206,"heroImage":2202,"date":2209,"category":790,"tags":2210},[2207,2208],"Hiroki Suezawa","Mitra Jozenazemian","2025-05-13",[790,574,1569],{"slug":2212,"featured":6,"template":736},"our-step-by-step-guide-to-evaluating-runtime-security-tools","content:en-us:blog:our-step-by-step-guide-to-evaluating-runtime-security-tools.yml","Our Step By Step Guide To Evaluating Runtime Security Tools","en-us/blog/our-step-by-step-guide-to-evaluating-runtime-security-tools.yml","en-us/blog/our-step-by-step-guide-to-evaluating-runtime-security-tools",{"_path":2218,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2219,"content":2224,"config":2229,"_id":2231,"_type":16,"title":2232,"_source":17,"_file":2233,"_stem":2234,"_extension":20},"/en-us/blog/automate-tedious-coding-tasks-with-gitlab-duo-workflow",{"title":2220,"description":2221,"ogTitle":2220,"ogDescription":2221,"noIndex":6,"ogImage":1227,"ogUrl":2222,"ogSiteName":995,"ogType":996,"canonicalUrls":2222,"schema":2223},"Automate tedious coding tasks with GitLab Duo Workflow","See how agentic AI can reduce time spent on repetitive tasks, freeing you up to focus on developing innovative solutions and shipping the next big thing.","https://about.gitlab.com/blog/automate-tedious-coding-tasks-with-gitlab-duo-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automate tedious coding tasks with GitLab Duo Workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeff Park\"}],\n        \"datePublished\": \"2025-05-06\",\n      }",{"title":2220,"description":2221,"authors":2225,"heroImage":1227,"date":2227,"category":769,"tags":2228},[2226],"Jeff Park","2025-05-06",[728,543,730,731,772,1335],{"slug":2230,"featured":92,"template":736},"automate-tedious-coding-tasks-with-gitlab-duo-workflow","content:en-us:blog:automate-tedious-coding-tasks-with-gitlab-duo-workflow.yml","Automate Tedious Coding Tasks With Gitlab Duo Workflow","en-us/blog/automate-tedious-coding-tasks-with-gitlab-duo-workflow.yml","en-us/blog/automate-tedious-coding-tasks-with-gitlab-duo-workflow",{"_path":2236,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2237,"content":2243,"config":2247,"_id":2249,"_type":16,"title":2250,"_source":17,"_file":2251,"_stem":2252,"_extension":20},"/en-us/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops",{"title":2238,"description":2239,"ogTitle":2238,"ogDescription":2239,"noIndex":6,"ogImage":2240,"ogUrl":2241,"ogSiteName":995,"ogType":996,"canonicalUrls":2241,"schema":2242},"How to use GitLab's Custom Compliance Frameworks in your DevSecOps environment","Explore how new frameworks, along with more than 50 out-of-the-box controls, transform regulatory requirements from burdensome checkboxes to integrated, automated workflow components.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097104/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097104092.png","https://about.gitlab.com/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab's Custom Compliance Frameworks in your DevSecOps environment\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-04-30\",\n      }",{"title":2238,"description":2239,"authors":2244,"heroImage":2240,"date":2245,"category":790,"tags":2246},[1097],"2025-04-30",[790,772,543,730,731],{"slug":2248,"featured":92,"template":736},"how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops","content:en-us:blog:how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops.yml","How To Use Gitlabs Custom Compliance Frameworks In Your Devsecops","en-us/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops.yml","en-us/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops",{"_path":2254,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2255,"content":2261,"config":2265,"_id":2267,"_type":16,"title":2268,"_source":17,"_file":2269,"_stem":2270,"_extension":20},"/en-us/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes",{"title":2256,"description":2257,"ogTitle":2256,"ogDescription":2257,"noIndex":6,"ogImage":2258,"ogUrl":2259,"ogSiteName":995,"ogType":996,"canonicalUrls":2259,"schema":2260},"GitLab Duo + Amazon Q: Transform ideas into code in minutes","The new GitLab Duo with Amazon Q integration analyzes your issue descriptions and automatically generates complete working code solutions, accelerating development workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097127/Blog/Hero%20Images/Blog/Hero%20Images/Screenshot%202024-11-27%20at%204.55.28%E2%80%AFPM_4VVz6DgGBOvbGY8BUmd068_1750097126673.png","https://about.gitlab.com/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo + Amazon Q: Transform ideas into code in minutes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2025-04-28\",\n      }",{"title":2256,"description":2257,"authors":2262,"heroImage":2258,"date":2263,"category":769,"tags":2264},[767],"2025-04-28",[728,771,772,543,731,233],{"slug":2266,"featured":92,"template":736},"gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes","content:en-us:blog:gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes.yml","Gitlab Duo Amazon Q Transform Ideas Into Code In Minutes","en-us/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes.yml","en-us/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes",{"_path":2272,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2273,"content":2278,"config":2282,"_id":2284,"_type":16,"title":2285,"_source":17,"_file":2286,"_stem":2287,"_extension":20},"/en-us/blog/getting-started-with-gitlab-understanding-ci-cd",{"title":2274,"description":2275,"ogTitle":2274,"ogDescription":2275,"noIndex":6,"ogImage":2089,"ogUrl":2276,"ogSiteName":995,"ogType":996,"canonicalUrls":2276,"schema":2277},"Getting started with GitLab: Understanding CI/CD","Learn the basics of continuous integration/continuous delivery in this beginner's guide, including what CI/CD components are and how to create them.","https://about.gitlab.com/blog/getting-started-with-gitlab-understanding-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab: Understanding CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2025-04-25\",\n      }",{"title":2274,"description":2275,"authors":2279,"heroImage":2089,"date":2280,"category":731,"tags":2281},[1000],"2025-04-25",[110,2097,2098,543,731,772],{"slug":2283,"featured":92,"template":736},"getting-started-with-gitlab-understanding-ci-cd","content:en-us:blog:getting-started-with-gitlab-understanding-ci-cd.yml","Getting Started With Gitlab Understanding Ci Cd","en-us/blog/getting-started-with-gitlab-understanding-ci-cd.yml","en-us/blog/getting-started-with-gitlab-understanding-ci-cd",{"_path":2289,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2290,"content":2296,"config":2301,"_id":2303,"_type":16,"title":2304,"_source":17,"_file":2305,"_stem":2306,"_extension":20},"/en-us/blog/solving-complex-challenges-with-gitlab-duo-workflow",{"title":2291,"description":2292,"ogTitle":2291,"ogDescription":2292,"noIndex":6,"ogImage":2293,"ogUrl":2294,"ogSiteName":995,"ogType":996,"canonicalUrls":2294,"schema":2295},"Solving complex challenges with GitLab Duo Workflow","Learn how a member of the GitLab Customer Success Management team uses agentic AI for real-world problem-solving, including addressing Helm chart limits in the package registry.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097663/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097663612.png","https://about.gitlab.com/blog/solving-complex-challenges-with-gitlab-duo-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Solving complex challenges with GitLab Duo Workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Johannes Bauer\"}],\n        \"datePublished\": \"2025-04-23\",\n      }",{"title":2291,"description":2292,"authors":2297,"heroImage":2293,"date":2299,"category":769,"tags":2300},[2298],"Johannes Bauer","2025-04-23",[728,543,731],{"slug":2302,"featured":92,"template":736},"solving-complex-challenges-with-gitlab-duo-workflow","content:en-us:blog:solving-complex-challenges-with-gitlab-duo-workflow.yml","Solving Complex Challenges With Gitlab Duo Workflow","en-us/blog/solving-complex-challenges-with-gitlab-duo-workflow.yml","en-us/blog/solving-complex-challenges-with-gitlab-duo-workflow",{"_path":2308,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2309,"content":2315,"config":2322,"_id":2324,"_type":16,"title":2325,"_source":17,"_file":2326,"_stem":2327,"_extension":20},"/en-us/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0",{"title":2310,"description":2311,"ogTitle":2310,"ogDescription":2311,"noIndex":6,"ogImage":2312,"ogUrl":2313,"ogSiteName":995,"ogType":996,"canonicalUrls":2313,"schema":2314},"A guide to the breaking changes in GitLab 18.0","Prepare now for the removals in our upcoming major release. Assess your impact and then review the mitigation steps provided in the documentation to ensure a smooth transition to GitLab 18.0.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659437/Blog/Hero%20Images/AdobeStock_398929148.jpg","https://about.gitlab.com/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A guide to the breaking changes in GitLab 18.0\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Martin Brümmer\"},{\"@type\":\"Person\",\"name\":\"Fabian Zimmer\"},{\"@type\":\"Person\",\"name\":\"Sam Wiskow\"}],\n        \"datePublished\": \"2025-04-18\",\n      }",{"title":2310,"description":2311,"authors":2316,"heroImage":2312,"date":2320,"category":731,"tags":2321},[2317,2318,2319],"Martin Brümmer","Fabian Zimmer","Sam Wiskow","2025-04-18",[731,543],{"slug":2323,"featured":6,"template":736},"a-guide-to-the-breaking-changes-in-gitlab-18-0","content:en-us:blog:a-guide-to-the-breaking-changes-in-gitlab-18-0.yml","A Guide To The Breaking Changes In Gitlab 18 0","en-us/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0.yml","en-us/blog/a-guide-to-the-breaking-changes-in-gitlab-18-0",{"_path":2329,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2330,"content":2335,"config":2339,"_id":2341,"_type":16,"title":2342,"_source":17,"_file":2343,"_stem":2344,"_extension":20},"/en-us/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws",{"title":2331,"description":2332,"ogTitle":2331,"ogDescription":2332,"noIndex":6,"ogImage":768,"ogUrl":2333,"ogSiteName":995,"ogType":996,"canonicalUrls":2333,"schema":2334},"GitLab Duo with Amazon Q: Agentic AI optimized for AWS generally available","The comprehensive AI-powered DevSecOps platform combined with the deepest set of cloud computing capabilities speeds dev cycles, increases automation, and improves code quality.","https://about.gitlab.com/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo with Amazon Q: Agentic AI optimized for AWS generally available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilio Salvador\"}],\n        \"datePublished\": \"2025-04-17\",\n      }",{"title":2331,"description":2332,"authors":2336,"heroImage":768,"date":2337,"category":769,"tags":2338},[940],"2025-04-17",[728,543,771,731,730,1049],{"slug":2340,"featured":92,"template":736},"gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws","content:en-us:blog:gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws.yml","Gitlab Duo With Amazon Q Agentic Ai Optimized For Aws","en-us/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws.yml","en-us/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws",{"_path":2346,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2347,"content":2353,"config":2357,"_id":2359,"_type":16,"title":2360,"_source":17,"_file":2361,"_stem":2362,"_extension":20},"/en-us/blog/introducing-custom-compliance-frameworks-in-gitlab",{"title":2348,"description":2349,"ogTitle":2348,"ogDescription":2349,"noIndex":6,"ogImage":2350,"ogUrl":2351,"ogSiteName":995,"ogType":996,"canonicalUrls":2351,"schema":2352},"Introducing Custom Compliance Frameworks in GitLab","Reduce manual tracking, accelerate audit readiness, and enforce controls faster natively within GitLab DevSecOps workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099268/Blog/Hero%20Images/Blog/Hero%20Images/GitLab_Blog_Header_v4_YBzFAgt2EAkqQfqxNFEgj_1750099267940.svg","https://about.gitlab.com/blog/introducing-custom-compliance-frameworks-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing Custom Compliance Frameworks in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ian Khor\"},{\"@type\":\"Person\",\"name\":\"Salman Ladha\"}],\n        \"datePublished\": \"2025-04-17\",\n      }",{"title":2348,"description":2349,"authors":2354,"heroImage":2350,"date":2337,"category":790,"tags":2356},[2355,787],"Ian Khor",[790,731,730,543],{"slug":2358,"featured":6,"template":736},"introducing-custom-compliance-frameworks-in-gitlab","content:en-us:blog:introducing-custom-compliance-frameworks-in-gitlab.yml","Introducing Custom Compliance Frameworks In Gitlab","en-us/blog/introducing-custom-compliance-frameworks-in-gitlab.yml","en-us/blog/introducing-custom-compliance-frameworks-in-gitlab",{"_path":2364,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2365,"content":2370,"config":2374,"_id":2376,"_type":16,"title":2377,"_source":17,"_file":2378,"_stem":2379,"_extension":20},"/en-us/blog/gitlab-rotating-omnibus-linux-package-signing-key",{"title":2366,"description":2367,"ogTitle":2366,"ogDescription":2367,"noIndex":6,"ogImage":1164,"ogUrl":2368,"ogSiteName":995,"ogType":996,"canonicalUrls":2368,"schema":2369},"GitLab rotating Omnibus Linux package signing key","Learn who is impacted by the rotation of the GNU Privacy Guard (GPG) key and what you need to know.","https://about.gitlab.com/blog/gitlab-rotating-omnibus-linux-package-signing-key","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab rotating Omnibus Linux package signing key\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2025-04-16\",\n      }",{"title":2366,"description":2367,"authors":2371,"heroImage":1164,"date":2372,"category":14,"tags":2373},[1000],"2025-04-16",[543,731,790],{"slug":2375,"featured":6,"template":736},"gitlab-rotating-omnibus-linux-package-signing-key","content:en-us:blog:gitlab-rotating-omnibus-linux-package-signing-key.yml","Gitlab Rotating Omnibus Linux Package Signing Key","en-us/blog/gitlab-rotating-omnibus-linux-package-signing-key.yml","en-us/blog/gitlab-rotating-omnibus-linux-package-signing-key",{"_path":2381,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2382,"content":2388,"config":2393,"_id":2395,"_type":16,"title":2396,"_source":17,"_file":2397,"_stem":2398,"_extension":20},"/en-us/blog/journey-through-gits-20-year-history",{"title":2383,"description":2384,"ogTitle":2383,"ogDescription":2384,"noIndex":6,"ogImage":2385,"ogUrl":2386,"ogSiteName":995,"ogType":996,"canonicalUrls":2386,"schema":2387},"Journey through Git's 20-year history","Follow along as we reminisce about the first commit, the unique aspects of the earliest releases, and the confusion sparked by an update to the git-push(1) default behavior.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097380/Blog/Hero%20Images/Blog/Hero%20Images/git-20-years-opt2_TWNsNk8KH43b3jP0KLD0U_1750097380123.png","https://about.gitlab.com/blog/journey-through-gits-20-year-history","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Journey through Git's 20-year history\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Steinhardt\"}],\n        \"datePublished\": \"2025-04-14\",\n      }",{"title":2383,"description":2384,"authors":2389,"heroImage":2385,"date":2391,"category":1388,"tags":2392},[2390],"Patrick Steinhardt","2025-04-14",[1265,1195],{"slug":2394,"featured":92,"template":736},"journey-through-gits-20-year-history","content:en-us:blog:journey-through-gits-20-year-history.yml","Journey Through Gits 20 Year History","en-us/blog/journey-through-gits-20-year-history.yml","en-us/blog/journey-through-gits-20-year-history",{"_path":2400,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2401,"content":2407,"config":2411,"_id":2413,"_type":16,"title":2414,"_source":17,"_file":2415,"_stem":2416,"_extension":20},"/en-us/blog/gitlab-at-next-25-transforming-app-modernization",{"title":2402,"description":2403,"ogTitle":2402,"ogDescription":2403,"noIndex":6,"ogImage":2404,"ogUrl":2405,"ogSiteName":995,"ogType":996,"canonicalUrls":2405,"schema":2406},"GitLab at Next '25: Transforming app modernization","GitLab participated in Google Cloud Next ‘25 and received a fifth consecutive Google Cloud Technology Partner of the Year recognition.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663121/Blog/Hero%20Images/LogoLockupPlusLight.png","https://about.gitlab.com/blog/gitlab-at-next-25-transforming-app-modernization","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab at Next '25: Transforming app modernization\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"}],\n        \"datePublished\": \"2025-04-11\",\n      }",{"title":2402,"description":2403,"authors":2408,"heroImage":2404,"date":2409,"category":1049,"tags":2410},[1727],"2025-04-11",[1730,543,279,284,1049],{"slug":2412,"featured":6,"template":736},"gitlab-at-next-25-transforming-app-modernization","content:en-us:blog:gitlab-at-next-25-transforming-app-modernization.yml","Gitlab At Next 25 Transforming App Modernization","en-us/blog/gitlab-at-next-25-transforming-app-modernization.yml","en-us/blog/gitlab-at-next-25-transforming-app-modernization",{"_path":2418,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2419,"content":2425,"config":2429,"_id":2431,"_type":16,"title":2432,"_source":17,"_file":2433,"_stem":2434,"_extension":20},"/en-us/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance",{"title":2420,"description":2421,"ogTitle":2420,"ogDescription":2421,"noIndex":6,"ogImage":2422,"ogUrl":2423,"ogSiteName":995,"ogType":996,"canonicalUrls":2423,"schema":2424},"Use GitLab Duo Workflow to improve application quality assurance","Learn step-by-step how to add unit tests to a Java application using agentic AI (includes a video tutorial).","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097617/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097616649.png","https://about.gitlab.com/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Use GitLab Duo Workflow to improve application quality assurance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2025-04-10\",\n      }",{"title":2420,"description":2421,"authors":2426,"heroImage":2422,"date":2427,"category":769,"tags":2428},[767],"2025-04-10",[728,543,772,731,730],{"slug":2430,"featured":6,"template":736},"use-gitlab-duo-workflow-to-improve-application-quality-assurance","content:en-us:blog:use-gitlab-duo-workflow-to-improve-application-quality-assurance.yml","Use Gitlab Duo Workflow To Improve Application Quality Assurance","en-us/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance.yml","en-us/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance",{"_path":2436,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2437,"content":2443,"config":2447,"_id":2449,"_type":16,"title":2450,"_source":17,"_file":2451,"_stem":2452,"_extension":20},"/en-us/blog/safe-without-silos-in-gitlab",{"title":2438,"description":2439,"ogTitle":2438,"ogDescription":2439,"noIndex":6,"ogImage":2440,"ogUrl":2441,"ogSiteName":995,"ogType":996,"canonicalUrls":2441,"schema":2442},"SAFe without silos in GitLab","Learn how to map the Scaled Agile Framework to the native capabilities of the DevSecOps platform and the advantages that come from doing so.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097569/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_2hcwWx49wQ7CHfvhhkVH6S_1750097569126.png","https://about.gitlab.com/blog/safe-without-silos-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SAFe without silos in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2025-04-08\",\n      }",{"title":2438,"description":2439,"authors":2444,"heroImage":2440,"date":2445,"category":726,"tags":2446},[734],"2025-04-08",[729,543,730,731,772],{"slug":2448,"featured":92,"template":736},"safe-without-silos-in-gitlab","content:en-us:blog:safe-without-silos-in-gitlab.yml","Safe Without Silos In Gitlab","en-us/blog/safe-without-silos-in-gitlab.yml","en-us/blog/safe-without-silos-in-gitlab",{"_path":2454,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2455,"content":2461,"config":2465,"_id":2467,"_type":16,"title":2468,"_source":17,"_file":2469,"_stem":2470,"_extension":20},"/en-us/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds",{"title":2456,"description":2457,"ogTitle":2456,"ogDescription":2457,"noIndex":6,"ogImage":2458,"ogUrl":2459,"ogSiteName":995,"ogType":996,"canonicalUrls":2459,"schema":2460},"Celebrating Git's 20th anniversary with creator Linus Torvalds","Discover the origins of the open-source version control system, why he handed over the reins a few months in, and what he thinks about adding new programming languages to Git.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662510/Blog/Hero%20Images/git-20-years-opt1.png","https://about.gitlab.com/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Celebrating Git's 20th anniversary with creator Linus Torvalds\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Steinhardt\"}],\n        \"datePublished\": \"2025-04-07\",\n      }",{"title":2456,"description":2457,"authors":2462,"heroImage":2458,"date":2463,"category":1388,"tags":2464},[2390],"2025-04-07",[1265,1195],{"slug":2466,"featured":92,"template":736},"celebrating-gits-20th-anniversary-with-creator-linus-torvalds","content:en-us:blog:celebrating-gits-20th-anniversary-with-creator-linus-torvalds.yml","Celebrating Gits 20th Anniversary With Creator Linus Torvalds","en-us/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds.yml","en-us/blog/celebrating-gits-20th-anniversary-with-creator-linus-torvalds",{"_path":2472,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2473,"content":2479,"config":2484,"_id":2486,"_type":16,"title":2487,"_source":17,"_file":2488,"_stem":2489,"_extension":20},"/en-us/blog/enhance-application-security-with-gitlab-hackerone",{"title":2474,"description":2475,"ogTitle":2474,"ogDescription":2475,"noIndex":6,"ogImage":2476,"ogUrl":2477,"ogSiteName":995,"ogType":996,"canonicalUrls":2477,"schema":2478},"Enhance application security with GitLab + HackerOne","Learn about the GitLab + HackerOne partnership and how to easily implement an integration that improves your organization’s application security posture.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097503/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2810%29_5ET24Q6i8ihqrAOkge7a1R_1750097503214.png","https://about.gitlab.com/blog/enhance-application-security-with-gitlab-hackerone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Enhance application security with GitLab + HackerOne\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-04-03\",\n      }",{"title":2474,"description":2475,"authors":2480,"heroImage":2476,"date":2481,"category":790,"tags":2482},[1097],"2025-04-03",[790,772,233,284,543,574,2483],"bug bounty",{"slug":2485,"featured":6,"template":736},"enhance-application-security-with-gitlab-hackerone","content:en-us:blog:enhance-application-security-with-gitlab-hackerone.yml","Enhance Application Security With Gitlab Hackerone","en-us/blog/enhance-application-security-with-gitlab-hackerone.yml","en-us/blog/enhance-application-security-with-gitlab-hackerone",{"_path":2491,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2492,"content":2498,"config":2502,"_id":2504,"_type":16,"title":2505,"_source":17,"_file":2506,"_stem":2507,"_extension":20},"/en-us/blog/secure-and-safe-login-and-commits-with-gitlab-yubico",{"title":2493,"description":2494,"ogTitle":2493,"ogDescription":2494,"noIndex":6,"ogImage":2495,"ogUrl":2496,"ogSiteName":995,"ogType":996,"canonicalUrls":2496,"schema":2497},"Secure and safe login and commits with GitLab + Yubico","Learn how GitLab and Yubico have partnered to strengthen software development security through robust authentication measures.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663259/Blog/Hero%20Images/REFERENCE_-_display_preview_for_blog_images__3_.png","https://about.gitlab.com/blog/secure-and-safe-login-and-commits-with-gitlab-yubico","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure and safe login and commits with GitLab + Yubico\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-04-02\",\n      }",{"title":2493,"description":2494,"authors":2499,"heroImage":2495,"date":2500,"category":790,"tags":2501},[1097],"2025-04-02",[233,790,772,543,731,730],{"slug":2503,"featured":92,"template":736},"secure-and-safe-login-and-commits-with-gitlab-yubico","content:en-us:blog:secure-and-safe-login-and-commits-with-gitlab-yubico.yml","Secure And Safe Login And Commits With Gitlab Yubico","en-us/blog/secure-and-safe-login-and-commits-with-gitlab-yubico.yml","en-us/blog/secure-and-safe-login-and-commits-with-gitlab-yubico",{"_path":2509,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2510,"content":2515,"config":2519,"_id":2521,"_type":16,"title":2522,"_source":17,"_file":2523,"_stem":2524,"_extension":20},"/en-us/blog/enhance-data-security-with-custom-pii-detection-rulesets",{"title":2511,"description":2512,"ogTitle":2511,"ogDescription":2512,"noIndex":6,"ogImage":1583,"ogUrl":2513,"ogSiteName":995,"ogType":996,"canonicalUrls":2513,"schema":2514},"Strengthen data security with custom PII detection rulesets","This tutorial explains how GitLab's customizable Secret Detection rulesets enhance data security by identifying PII patterns in code repositories. Learn how AI can help.","https://about.gitlab.com/blog/enhance-data-security-with-custom-pii-detection-rulesets","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Strengthen data security with custom PII detection rulesets\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-04-01\",\n      }",{"title":2511,"description":2512,"authors":2516,"heroImage":1583,"date":2517,"category":790,"tags":2518},[1097],"2025-04-01",[790,731,772,543,728],{"slug":2520,"featured":92,"template":736},"enhance-data-security-with-custom-pii-detection-rulesets","content:en-us:blog:enhance-data-security-with-custom-pii-detection-rulesets.yml","Enhance Data Security With Custom Pii Detection Rulesets","en-us/blog/enhance-data-security-with-custom-pii-detection-rulesets.yml","en-us/blog/enhance-data-security-with-custom-pii-detection-rulesets",{"_path":2526,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2527,"content":2533,"config":2537,"_id":2539,"_type":16,"title":2540,"_source":17,"_file":2541,"_stem":2542,"_extension":20},"/en-us/blog/improving-oauth-ropc-security-on-gitlab-com",{"title":2528,"description":2529,"ogTitle":2528,"ogDescription":2529,"noIndex":6,"ogImage":2530,"ogUrl":2531,"ogSiteName":995,"ogType":996,"canonicalUrls":2531,"schema":2532},"Improving OAuth ROPC security on GitLab.com","GitLab.com is improving the security of OAuth Resource Owner Password Credentials (ROPC) by requiring client authentication, effective April 8, 2025.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663239/Blog/Hero%20Images/AdobeStock_1023776629.jpg","https://about.gitlab.com/blog/improving-oauth-ropc-security-on-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improving OAuth ROPC security on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Security Team\"}],\n        \"datePublished\": \"2025-04-01\",\n      }",{"title":2528,"description":2529,"authors":2534,"heroImage":2530,"date":2517,"category":731,"tags":2536},[2535],"GitLab Security Team",[731,790,543],{"slug":2538,"featured":6,"template":736},"improving-oauth-ropc-security-on-gitlab-com","content:en-us:blog:improving-oauth-ropc-security-on-gitlab-com.yml","Improving Oauth Ropc Security On Gitlab Com","en-us/blog/improving-oauth-ropc-security-on-gitlab-com.yml","en-us/blog/improving-oauth-ropc-security-on-gitlab-com",{"_path":2544,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2545,"content":2551,"config":2557,"_id":2559,"_type":16,"title":2560,"_source":17,"_file":2561,"_stem":2562,"_extension":20},"/en-us/blog/more-granular-product-usage-insights-for-gitlab-self-managed-and-dedicated",{"title":2546,"description":2547,"ogTitle":2546,"ogDescription":2547,"noIndex":6,"ogImage":2548,"ogUrl":2549,"ogSiteName":995,"ogType":996,"canonicalUrls":2549,"schema":2550},"More granular product usage insights for GitLab Self-Managed and Dedicated","Learn how event-level data helps GitLab improve the DevSecOps platform. Opt-out option is always available.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099221/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_78Dav6FR9EGjhebHWuBVan_1750099221690.png","https://about.gitlab.com/blog/more-granular-product-usage-insights-for-gitlab-self-managed-and-dedicated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"More granular product usage insights for GitLab Self-Managed and Dedicated\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tanuja Jayarama Raju\"}],\n        \"datePublished\": \"2025-03-26\",\n      }",{"title":2546,"description":2547,"authors":2552,"heroImage":2548,"date":2554,"category":731,"tags":2555,"updatedDate":2556},[2553],"Tanuja Jayarama Raju","2025-03-26",[731,543,730],"2025-05-14",{"slug":2558,"featured":92,"template":736},"more-granular-product-usage-insights-for-gitlab-self-managed-and-dedicated","content:en-us:blog:more-granular-product-usage-insights-for-gitlab-self-managed-and-dedicated.yml","More Granular Product Usage Insights For Gitlab Self Managed And Dedicated","en-us/blog/more-granular-product-usage-insights-for-gitlab-self-managed-and-dedicated.yml","en-us/blog/more-granular-product-usage-insights-for-gitlab-self-managed-and-dedicated",{"_path":2564,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2565,"content":2570,"config":2574,"_id":2576,"_type":16,"title":2577,"_source":17,"_file":2578,"_stem":2579,"_extension":20},"/en-us/blog/tutorial-secure-bigquery-data-publishing-with-gitlab",{"title":2566,"description":2567,"ogTitle":2566,"ogDescription":2567,"noIndex":6,"ogImage":1963,"ogUrl":2568,"ogSiteName":995,"ogType":996,"canonicalUrls":2568,"schema":2569},"Tutorial: Secure BigQuery data publishing with GitLab ","Learn how to create repeatable, auditable, and efficient processes for automating and securing BigQuery data exports.","https://about.gitlab.com/blog/tutorial-secure-bigquery-data-publishing-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Secure BigQuery data publishing with GitLab \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"}],\n        \"datePublished\": \"2025-03-25\",\n      }",{"title":2566,"description":2567,"authors":2571,"heroImage":1963,"date":2572,"category":858,"tags":2573},[1727],"2025-03-25",[574,543,772,1335,233,1730],{"slug":2575,"featured":92,"template":736},"tutorial-secure-bigquery-data-publishing-with-gitlab","content:en-us:blog:tutorial-secure-bigquery-data-publishing-with-gitlab.yml","Tutorial Secure Bigquery Data Publishing With Gitlab","en-us/blog/tutorial-secure-bigquery-data-publishing-with-gitlab.yml","en-us/blog/tutorial-secure-bigquery-data-publishing-with-gitlab",{"_path":2581,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2582,"content":2588,"config":2592,"_id":2594,"_type":16,"title":2595,"_source":17,"_file":2596,"_stem":2597,"_extension":20},"/en-us/blog/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd",{"title":2583,"description":2584,"ogTitle":2583,"ogDescription":2584,"noIndex":6,"ogImage":2585,"ogUrl":2586,"ogSiteName":995,"ogType":996,"canonicalUrls":2586,"schema":2587},"Prepare now: Docker Hub rate limits will impact GitLab CI/CD","Learn how Docker Hub's upcoming pull rate limits will affect GitLab pipelines and what you can do to avoid disruptions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662488/Blog/Hero%20Images/blog-image-template-1800x945__3_.png","https://about.gitlab.com/blog/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Prepare now: Docker Hub rate limits will impact GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2025-03-24\",\n      }",{"title":2583,"description":2584,"authors":2589,"heroImage":2585,"date":2590,"category":14,"tags":2591},[907],"2025-03-24",[110,1049,543],{"slug":2593,"featured":92,"template":736},"prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd","content:en-us:blog:prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd.yml","Prepare Now Docker Hub Rate Limits Will Impact Gitlab Ci Cd","en-us/blog/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd.yml","en-us/blog/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd",{"_path":2599,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2600,"content":2606,"config":2611,"_id":2613,"_type":16,"title":2614,"_source":17,"_file":2615,"_stem":2616,"_extension":20},"/en-us/blog/self-service-security-alert-handling-with-gitlabs-uam",{"title":2601,"description":2602,"ogTitle":2601,"ogDescription":2602,"noIndex":6,"ogImage":2603,"ogUrl":2604,"ogSiteName":995,"ogType":996,"canonicalUrls":2604,"schema":2605},"Self-service security alert handling with GitLab's UAM","The User Attestation Module automates security alerts by routing them directly to team members for verification, reducing manual SecOps work and enhancing audit trails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662080/Blog/Hero%20Images/AdobeStock_1097303277.jpg","https://about.gitlab.com/blog/self-service-security-alert-handling-with-gitlabs-uam","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Self-service security alert handling with GitLab's UAM\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bala Allam\"},{\"@type\":\"Person\",\"name\":\"Matt Coons\"}],\n        \"datePublished\": \"2025-03-18\",\n      }",{"title":2601,"description":2602,"authors":2607,"heroImage":2603,"date":2609,"category":790,"tags":2610},[2608,2116],"Bala Allam","2025-03-18",[790,772,543,731,1265],{"slug":2612,"featured":6,"template":736},"self-service-security-alert-handling-with-gitlabs-uam","content:en-us:blog:self-service-security-alert-handling-with-gitlabs-uam.yml","Self Service Security Alert Handling With Gitlabs Uam","en-us/blog/self-service-security-alert-handling-with-gitlabs-uam.yml","en-us/blog/self-service-security-alert-handling-with-gitlabs-uam",{"_path":2618,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2619,"content":2625,"config":2630,"_id":2632,"_type":16,"title":2633,"_source":17,"_file":2634,"_stem":2635,"_extension":20},"/en-us/blog/gitlab-achieves-pci-dss-attestation-of-compliance",{"title":2620,"description":2621,"ogTitle":2620,"ogDescription":2621,"noIndex":6,"ogImage":2622,"ogUrl":2623,"ogSiteName":995,"ogType":996,"canonicalUrls":2623,"schema":2624},"GitLab achieves PCI DSS Attestation of Compliance","Learn how our completion of the AoC as a service provider, along with our broader security credentials, helps us support customers'  compliance efforts.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673615/Blog/Hero%20Images/blog-image-template-1800x945__4_.png","https://about.gitlab.com/blog/gitlab-achieves-pci-dss-attestation-of-compliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab achieves PCI DSS Attestation of Compliance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sasha Gazlay\"}],\n        \"datePublished\": \"2025-03-17\",\n      }",{"title":2620,"description":2621,"authors":2626,"heroImage":2622,"date":2628,"category":14,"tags":2629},[2627],"Sasha Gazlay","2025-03-17",[543,790,1049],{"slug":2631,"featured":6,"template":736},"gitlab-achieves-pci-dss-attestation-of-compliance","content:en-us:blog:gitlab-achieves-pci-dss-attestation-of-compliance.yml","Gitlab Achieves Pci Dss Attestation Of Compliance","en-us/blog/gitlab-achieves-pci-dss-attestation-of-compliance.yml","en-us/blog/gitlab-achieves-pci-dss-attestation-of-compliance",{"_path":2637,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2638,"content":2643,"config":2648,"_id":2650,"_type":16,"title":2651,"_source":17,"_file":2652,"_stem":2653,"_extension":20},"/en-us/blog/whats-new-in-git-2-49-0",{"title":2639,"description":2640,"ogTitle":2639,"ogDescription":2640,"noIndex":6,"ogImage":1381,"ogUrl":2641,"ogSiteName":995,"ogType":996,"canonicalUrls":2641,"schema":2642},"What's new in Git 2.49.0?","Learn about the latest version of Git, including improved performance thanks to zlib-ng, a new name-hashing algorithm, and git-backfill(1).","https://about.gitlab.com/blog/whats-new-in-git-2-49-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What's new in Git 2.49.0?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Toon Claes\"}],\n        \"datePublished\": \"2025-03-14\",\n      }",{"title":2639,"description":2640,"authors":2644,"heroImage":1381,"date":2646,"category":1388,"tags":2647},[2645],"Toon Claes","2025-03-14",[269,1265,1195],{"slug":2649,"featured":92,"template":736},"whats-new-in-git-2-49-0","content:en-us:blog:whats-new-in-git-2-49-0.yml","Whats New In Git 2 49 0","en-us/blog/whats-new-in-git-2-49-0.yml","en-us/blog/whats-new-in-git-2-49-0",{"_path":2655,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2656,"content":2661,"config":2665,"_id":2667,"_type":16,"title":2668,"_source":17,"_file":2669,"_stem":2670,"_extension":20},"/en-us/blog/automating-agile-workflows-with-the-gitlab-triage-gem",{"title":2657,"description":2658,"ogTitle":2657,"ogDescription":2658,"noIndex":6,"ogImage":2089,"ogUrl":2659,"ogSiteName":995,"ogType":996,"canonicalUrls":2659,"schema":2660},"Automating Agile workflows with the gitlab-triage gem","Learn how to automate repetitive tasks like triaging issues and merge requests to free up valuable developer time in our \"Getting Started with GitLab\" series.","https://about.gitlab.com/blog/automating-agile-workflows-with-the-gitlab-triage-gem","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automating Agile workflows with the gitlab-triage gem\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2025-03-13\",\n      }",{"title":2657,"description":2658,"authors":2662,"heroImage":2089,"date":2663,"category":731,"tags":2664},[1000],"2025-03-13",[543,772,731,729,110],{"slug":2666,"featured":6,"template":736},"automating-agile-workflows-with-the-gitlab-triage-gem","content:en-us:blog:automating-agile-workflows-with-the-gitlab-triage-gem.yml","Automating Agile Workflows With The Gitlab Triage Gem","en-us/blog/automating-agile-workflows-with-the-gitlab-triage-gem.yml","en-us/blog/automating-agile-workflows-with-the-gitlab-triage-gem",{"_path":2672,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2673,"content":2679,"config":2683,"_id":2685,"_type":16,"title":2686,"_source":17,"_file":2687,"_stem":2688,"_extension":20},"/en-us/blog/vulnerability-risk-prioritization-made-simple-with-gitlab",{"title":2674,"description":2675,"ogTitle":2674,"ogDescription":2675,"noIndex":6,"ogImage":2676,"ogUrl":2677,"ogSiteName":995,"ogType":996,"canonicalUrls":2677,"schema":2678},"Vulnerability risk prioritization made simple with GitLab","GitLab provides detailed vulnerability risk data to assess the potential impact of detected vulnerabilities. Learn how this enables teams to effectively prioritize remediation efforts.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674528/Blog/Hero%20Images/blog-image-template-1800x945__5_.png","https://about.gitlab.com/blog/vulnerability-risk-prioritization-made-simple-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Vulnerability risk prioritization made simple with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-03-12\",\n      }",{"title":2674,"description":2675,"authors":2680,"heroImage":2676,"date":2681,"category":790,"tags":2682},[1097],"2025-03-12",[772,790,574],{"slug":2684,"featured":92,"template":736},"vulnerability-risk-prioritization-made-simple-with-gitlab","content:en-us:blog:vulnerability-risk-prioritization-made-simple-with-gitlab.yml","Vulnerability Risk Prioritization Made Simple With Gitlab","en-us/blog/vulnerability-risk-prioritization-made-simple-with-gitlab.yml","en-us/blog/vulnerability-risk-prioritization-made-simple-with-gitlab",{"_path":2690,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2691,"content":2697,"config":2705,"_id":2707,"_type":16,"title":2708,"_source":17,"_file":2709,"_stem":2710,"_extension":20},"/en-us/blog/beautifying-our-ui-enhancing-gitlabs-deployment-experience",{"title":2692,"description":2693,"ogTitle":2692,"ogDescription":2693,"noIndex":6,"ogImage":2694,"ogUrl":2695,"ogSiteName":995,"ogType":996,"canonicalUrls":2695,"schema":2696},"Beautifying our UI: Enhancing GitLab's deployment experience","Go inside our innovative approach to improving our user interface, including pairing product designers and frontend engineers to make usability improvements across the platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097783/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%288%29_5KLUrr4DkY2u0JTMA12FVm_1750097783460.png","https://about.gitlab.com/blog/beautifying-our-ui-enhancing-gitlabs-deployment-experience","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Beautifying our UI: Enhancing GitLab's deployment experience\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Bauman\"}],\n        \"datePublished\": \"2025-03-06\",\n      }",{"title":2692,"description":2693,"authors":2698,"heroImage":2694,"date":2700,"category":731,"tags":2701},[2699],"Emily Bauman","2025-03-06",[2702,2703,2704,731,543],"design","UX","UI",{"slug":2706,"featured":6,"template":736},"beautifying-our-ui-enhancing-gitlabs-deployment-experience","content:en-us:blog:beautifying-our-ui-enhancing-gitlabs-deployment-experience.yml","Beautifying Our Ui Enhancing Gitlabs Deployment Experience","en-us/blog/beautifying-our-ui-enhancing-gitlabs-deployment-experience.yml","en-us/blog/beautifying-our-ui-enhancing-gitlabs-deployment-experience",{"_path":2712,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2713,"content":2718,"config":2723,"_id":2725,"_type":16,"title":2726,"_source":17,"_file":2727,"_stem":2728,"_extension":20},"/en-us/blog/how-gitlab-measures-red-team-impact-the-adoption-rate-metric",{"title":2714,"description":2715,"ogTitle":2714,"ogDescription":2715,"noIndex":6,"ogImage":2530,"ogUrl":2716,"ogSiteName":995,"ogType":996,"canonicalUrls":2716,"schema":2717},"How GitLab measures Red Team impact: The adoption rate metric","Follow our journey to develop and implement better metrics, including how we used GitLab to track our results end-to-end. Also find out the lessons learned along the way.","https://about.gitlab.com/blog/how-gitlab-measures-red-team-impact-the-adoption-rate-metric","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab measures Red Team impact: The adoption rate metric\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Moberly\"}],\n        \"datePublished\": \"2025-03-05\",\n      }",{"title":2714,"description":2715,"authors":2719,"heroImage":2530,"date":2721,"category":790,"tags":2722},[2720],"Chris Moberly","2025-03-05",[790,574,1569],{"slug":2724,"featured":6,"template":736},"how-gitlab-measures-red-team-impact-the-adoption-rate-metric","content:en-us:blog:how-gitlab-measures-red-team-impact-the-adoption-rate-metric.yml","How Gitlab Measures Red Team Impact The Adoption Rate Metric","en-us/blog/how-gitlab-measures-red-team-impact-the-adoption-rate-metric.yml","en-us/blog/how-gitlab-measures-red-team-impact-the-adoption-rate-metric",{"_path":2730,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2731,"content":2737,"config":2741,"_id":2743,"_type":16,"title":2744,"_source":17,"_file":2745,"_stem":2746,"_extension":20},"/en-us/blog/introducing-gitlabs-open-source-security-center",{"title":2732,"description":2733,"ogTitle":2732,"ogDescription":2733,"noIndex":6,"ogImage":2734,"ogUrl":2735,"ogSiteName":995,"ogType":996,"canonicalUrls":2735,"schema":2736},"Introducing GitLab’s Open Source Security Center","Our open source repository of projects designed to enhance security operations and risk management will help developers adapt faster, respond smarter, and defend better — together.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661895/Blog/Hero%20Images/blog-image-template-1800x945__7_.png","https://about.gitlab.com/blog/introducing-gitlabs-open-source-security-center","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab’s Open Source Security Center\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Salman Ladha\"},{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2025-03-04\",\n      }",{"title":2732,"description":2733,"authors":2738,"heroImage":2734,"date":2739,"category":790,"tags":2740},[787,1949],"2025-03-04",[790,1049,1265,574,730],{"slug":2742,"featured":92,"template":736},"introducing-gitlabs-open-source-security-center","content:en-us:blog:introducing-gitlabs-open-source-security-center.yml","Introducing Gitlabs Open Source Security Center","en-us/blog/introducing-gitlabs-open-source-security-center.yml","en-us/blog/introducing-gitlabs-open-source-security-center",{"_path":2748,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2749,"content":2755,"config":2760,"_id":2762,"_type":16,"title":2763,"_source":17,"_file":2764,"_stem":2765,"_extension":20},"/en-us/blog/the-gitlab-ai-security-framework-for-security-leaders",{"title":2750,"description":2751,"ogTitle":2750,"ogDescription":2751,"noIndex":6,"ogImage":2752,"ogUrl":2753,"ogSiteName":995,"ogType":996,"canonicalUrls":2753,"schema":2754},"The GitLab AI Security Framework for security leaders","Discover how GitLab Duo's security controls, third-party integrations, and retention policies help teams safely implement AI into their development workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664299/Blog/Hero%20Images/AdobeStock_887599633.jpg","https://about.gitlab.com/blog/the-gitlab-ai-security-framework-for-security-leaders","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The GitLab AI Security Framework for security leaders\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kyle Smith\"},{\"@type\":\"Person\",\"name\":\"Ayoub Fandi\"}],\n        \"datePublished\": \"2025-03-04\",\n      }",{"title":2750,"description":2751,"authors":2756,"heroImage":2752,"date":2739,"category":769,"tags":2759},[2757,2758],"Kyle Smith","Ayoub Fandi",[728,730,543,790],{"slug":2761,"featured":92,"template":736},"the-gitlab-ai-security-framework-for-security-leaders","content:en-us:blog:the-gitlab-ai-security-framework-for-security-leaders.yml","The Gitlab Ai Security Framework For Security Leaders","en-us/blog/the-gitlab-ai-security-framework-for-security-leaders.yml","en-us/blog/the-gitlab-ai-security-framework-for-security-leaders",{"_path":2767,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2768,"content":2774,"config":2778,"_id":2780,"_type":16,"title":2781,"_source":17,"_file":2782,"_stem":2783,"_extension":20},"/en-us/blog/build-a-new-website-in-a-few-easy-steps-with-gitlab-pages",{"title":2769,"description":2770,"ogTitle":2769,"ogDescription":2770,"noIndex":6,"ogImage":2771,"ogUrl":2772,"ogSiteName":995,"ogType":996,"canonicalUrls":2772,"schema":2773},"Build a new website in a few easy steps with GitLab Pages ","This tutorial shows you how to create and host your personal website using GitLab Pages with a ready-to-use template that you can customize in minutes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097716/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%281%29_7c3TDgNgct9xQbmTJSw0de_1750097716096.png","https://about.gitlab.com/blog/build-a-new-website-in-a-few-easy-steps-with-gitlab-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Build a new website in a few easy steps with GitLab Pages \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alex Fracazo\"}],\n        \"datePublished\": \"2025-03-03\",\n      }",{"title":2769,"description":2770,"authors":2775,"heroImage":2771,"date":2776,"category":731,"tags":2777},[1332],"2025-03-03",[772,543],{"slug":2779,"featured":6,"template":736},"build-a-new-website-in-a-few-easy-steps-with-gitlab-pages","content:en-us:blog:build-a-new-website-in-a-few-easy-steps-with-gitlab-pages.yml","Build A New Website In A Few Easy Steps With Gitlab Pages","en-us/blog/build-a-new-website-in-a-few-easy-steps-with-gitlab-pages.yml","en-us/blog/build-a-new-website-in-a-few-easy-steps-with-gitlab-pages",{"_path":2785,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2786,"content":2792,"config":2796,"_id":2798,"_type":16,"title":2799,"_source":17,"_file":2800,"_stem":2801,"_extension":20},"/en-us/blog/build-and-run-containers-in-remote-development-workspaces",{"title":2787,"description":2788,"ogTitle":2787,"ogDescription":2788,"noIndex":6,"ogImage":2789,"ogUrl":2790,"ogSiteName":995,"ogType":996,"canonicalUrls":2790,"schema":2791},"Build and run containers in Remote Development workspaces","Use this easy-to-follow tutorial to create a secure, ephemeral, reproducible development environment in GitLab that can replace your local environments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663857/Blog/Hero%20Images/blog-image-template-1800x945__12_.png","https://about.gitlab.com/blog/build-and-run-containers-in-remote-development-workspaces","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Build and run containers in Remote Development workspaces\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vishal Tak\"}],\n        \"datePublished\": \"2025-03-03\",\n      }",{"title":2787,"description":2788,"authors":2793,"heroImage":2789,"date":2776,"category":731,"tags":2795},[2794],"Vishal Tak",[772,543,730,731],{"slug":2797,"featured":92,"template":736},"build-and-run-containers-in-remote-development-workspaces","content:en-us:blog:build-and-run-containers-in-remote-development-workspaces.yml","Build And Run Containers In Remote Development Workspaces","en-us/blog/build-and-run-containers-in-remote-development-workspaces.yml","en-us/blog/build-and-run-containers-in-remote-development-workspaces",{"_path":2803,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2804,"content":2810,"config":2816,"_id":2818,"_type":16,"title":2819,"_source":17,"_file":2820,"_stem":2821,"_extension":20},"/en-us/blog/create-a-workspace-quickly-with-the-gitlab-default-devfile",{"title":2805,"description":2806,"ogTitle":2805,"ogDescription":2806,"noIndex":6,"ogImage":2807,"ogUrl":2808,"ogSiteName":995,"ogType":996,"canonicalUrls":2808,"schema":2809},"Create a workspace quickly with the GitLab default devfile","The GitLab default devfile makes it easier than ever to try out workspaces for new projects. Learn how to share developer environment configurations effortlessly with this tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097860/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20display%20preview%20for%20blog%20images%20%281%29_2XDPsbkjQ3o6tcdom6IGxI_1750097859914.png","https://about.gitlab.com/blog/create-a-workspace-quickly-with-the-gitlab-default-devfile","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Create a workspace quickly with the GitLab default devfile\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Zhaochen Li\"}],\n        \"datePublished\": \"2025-02-27\",\n      }",{"title":2805,"description":2806,"authors":2811,"heroImage":2807,"date":2813,"category":731,"tags":2814},[2812],"Zhaochen Li","2025-02-27",[2815,543,730,772,731],"collaboration",{"slug":2817,"featured":6,"template":736},"create-a-workspace-quickly-with-the-gitlab-default-devfile","content:en-us:blog:create-a-workspace-quickly-with-the-gitlab-default-devfile.yml","Create A Workspace Quickly With The Gitlab Default Devfile","en-us/blog/create-a-workspace-quickly-with-the-gitlab-default-devfile.yml","en-us/blog/create-a-workspace-quickly-with-the-gitlab-default-devfile",{"_path":2823,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2824,"content":2830,"config":2833,"_id":2835,"_type":16,"title":2836,"_source":17,"_file":2837,"_stem":2838,"_extension":20},"/en-us/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy",{"title":2825,"description":2826,"ogTitle":2825,"ogDescription":2826,"noIndex":6,"ogImage":2827,"ogUrl":2828,"ogSiteName":995,"ogType":996,"canonicalUrls":2828,"schema":2829},"GitLab Duo Self-Hosted: Enterprise AI built for data privacy","Customers in regulated industries can now deploy GitLab Duo on self-managed infrastructure, leveraging the power of generative AI while helping to address data residency and privacy concerns.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097840/Blog/Hero%20Images/Blog/Hero%20Images/Self-Hosted%201800x945_1dL1II2ITh2PteObA9DBLD_1750097839679.png","https://about.gitlab.com/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Self-Hosted: Enterprise AI built for data privacy\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Susie Bitters\"},{\"@type\":\"Person\",\"name\":\"Aathira Nair\"}],\n        \"datePublished\": \"2025-02-27\",\n      }",{"title":2825,"description":2826,"authors":2831,"heroImage":2827,"date":2813,"category":769,"tags":2832},[1808,733],[728,730,543,731,1049],{"slug":2834,"featured":92,"template":736},"gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy","content:en-us:blog:gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy.yml","Gitlab Duo Self Hosted Enterprise Ai Built For Data Privacy","en-us/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy.yml","en-us/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy",{"_path":2840,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2841,"content":2847,"config":2852,"_id":2854,"_type":16,"title":2855,"_source":17,"_file":2856,"_stem":2857,"_extension":20},"/en-us/blog/the-ultimate-guide-to-token-management-at-gitlab",{"title":2842,"description":2843,"ogTitle":2842,"ogDescription":2843,"noIndex":6,"ogImage":2844,"ogUrl":2845,"ogSiteName":995,"ogType":996,"canonicalUrls":2845,"schema":2846},"The ultimate guide to token management at GitLab","Learn all the steps in the end-to-end process of identifying, managing, and securing tokens for improved security across the software development lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097408/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1097303277_6gTk7M1DNx0tFuovupVFB1_1750097407860.jpg","https://about.gitlab.com/blog/the-ultimate-guide-to-token-management-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The ultimate guide to token management at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hakeem Abdul-Razak\"}],\n        \"datePublished\": \"2025-02-25\",\n      }",{"title":2842,"description":2843,"authors":2848,"heroImage":2844,"date":2850,"category":790,"tags":2851},[2849],"Hakeem Abdul-Razak","2025-02-25",[772,790,543,730,731],{"slug":2853,"featured":92,"template":736},"the-ultimate-guide-to-token-management-at-gitlab","content:en-us:blog:the-ultimate-guide-to-token-management-at-gitlab.yml","The Ultimate Guide To Token Management At Gitlab","en-us/blog/the-ultimate-guide-to-token-management-at-gitlab.yml","en-us/blog/the-ultimate-guide-to-token-management-at-gitlab",{"_path":2859,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2860,"content":2865,"config":2870,"_id":2872,"_type":16,"title":2873,"_source":17,"_file":2874,"_stem":2875,"_extension":20},"/en-us/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai",{"title":2861,"description":2862,"ogTitle":2861,"ogDescription":2862,"noIndex":6,"ogImage":2130,"ogUrl":2863,"ogSiteName":995,"ogType":996,"canonicalUrls":2863,"schema":2864},"GitLab Duo Workflow: Enterprise visibility and control for agentic AI","Secure, autonomous, context-aware AI agents take on complex tasks, freeing developers to ship innovative software faster. Private beta waitlist now open.","https://about.gitlab.com/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Workflow: Enterprise visibility and control for agentic AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pini Wietchner\"}],\n        \"datePublished\": \"2025-02-24\",\n      }",{"title":2861,"description":2862,"authors":2866,"heroImage":2130,"date":2868,"category":769,"tags":2869},[2867],"Pini Wietchner","2025-02-24",[543,728,730,731,1049,1335],{"slug":2871,"featured":92,"template":736},"gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai","content:en-us:blog:gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai.yml","Gitlab Duo Workflow Enterprise Visibility And Control For Agentic Ai","en-us/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai.yml","en-us/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai",{"_path":2877,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2878,"content":2884,"config":2890,"_id":2892,"_type":16,"title":2893,"_source":17,"_file":2894,"_stem":2895,"_extension":20},"/en-us/blog/how-we-reduced-mr-review-time-with-value-stream-management",{"title":2879,"description":2880,"ogTitle":2879,"ogDescription":2880,"noIndex":6,"ogImage":2881,"ogUrl":2882,"ogSiteName":995,"ogType":996,"canonicalUrls":2882,"schema":2883},"How we reduced MR review time with Value Stream Management ","The GitLab engineering team leverages VSM to pinpoint bottlenecks in the merge request review process and streamline software delivery. See how we do it and what we've learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097876/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20display%20preview%20for%20blog%20images%20%282%29_2pKf8RsKzAaThmQfqHIaa7_1750097875817.png","https://about.gitlab.com/blog/how-we-reduced-mr-review-time-with-value-stream-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we reduced MR review time with Value Stream Management \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2025-02-20\",\n      }",{"title":2879,"description":2880,"authors":2885,"heroImage":2881,"date":2887,"category":858,"tags":2888},[2886],"Haim Snir","2025-02-20",[731,730,543,1335,2889],"solutions architecture",{"slug":2891,"featured":6,"template":736},"how-we-reduced-mr-review-time-with-value-stream-management","content:en-us:blog:how-we-reduced-mr-review-time-with-value-stream-management.yml","How We Reduced Mr Review Time With Value Stream Management","en-us/blog/how-we-reduced-mr-review-time-with-value-stream-management.yml","en-us/blog/how-we-reduced-mr-review-time-with-value-stream-management",{"_path":2897,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2898,"content":2904,"config":2909,"_id":2911,"_type":16,"title":2912,"_source":17,"_file":2913,"_stem":2914,"_extension":20},"/en-us/blog/how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery",{"title":2899,"description":2900,"ogTitle":2899,"ogDescription":2900,"noIndex":6,"ogImage":2901,"ogUrl":2902,"ogSiteName":995,"ogType":996,"canonicalUrls":2902,"schema":2903},"How to use OCI images as the source of truth for continuous delivery","Discover the benefits of using Open Container Initiative images as part of GitOps workflows and the many features GitLab offers to simplify deployments to Kubernetes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097601/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20Use%20this%20page%20as%20a%20reference%20for%20thumbnail%20sizes_76Tn5jFmEHY5LFj8RdDjNY_1750097600692.png","https://about.gitlab.com/blog/how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use OCI images as the source of truth for continuous delivery\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Helfand\"}],\n        \"datePublished\": \"2025-02-19\",\n      }",{"title":2899,"description":2900,"authors":2905,"heroImage":2901,"date":2906,"category":1388,"tags":2907},[856],"2025-02-19",[110,1265,2908,559,1195,772],"kubernetes",{"slug":2910,"featured":6,"template":736},"how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery","content:en-us:blog:how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery.yml","How To Use Oci Images As The Source Of Truth For Continuous Delivery","en-us/blog/how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery.yml","en-us/blog/how-to-use-oci-images-as-the-source-of-truth-for-continuous-delivery",{"_path":2916,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2917,"content":2923,"config":2926,"_id":2928,"_type":16,"title":2929,"_source":17,"_file":2930,"_stem":2931,"_extension":20},"/en-us/blog/structuring-the-gitlab-package-registry-for-enterprise-scale",{"title":2918,"description":2919,"ogTitle":2918,"ogDescription":2919,"noIndex":6,"ogImage":2920,"ogUrl":2921,"ogSiteName":995,"ogType":996,"canonicalUrls":2921,"schema":2922},"Structuring the GitLab Package Registry for enterprise scale","Learn how to leverage GitLab's unique project-based publishing model alongside root-group-level consumption to create a secure, flexible package management strategy.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662332/Blog/Hero%20Images/blog-image-template-1800x945__23_.png","https://about.gitlab.com/blog/structuring-the-gitlab-package-registry-for-enterprise-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Structuring the GitLab Package Registry for enterprise scale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2025-02-19\",\n      }",{"title":2918,"description":2919,"authors":2924,"heroImage":2920,"date":2906,"category":731,"tags":2925},[907],[574,772,2889],{"slug":2927,"featured":92,"template":736},"structuring-the-gitlab-package-registry-for-enterprise-scale","content:en-us:blog:structuring-the-gitlab-package-registry-for-enterprise-scale.yml","Structuring The Gitlab Package Registry For Enterprise Scale","en-us/blog/structuring-the-gitlab-package-registry-for-enterprise-scale.yml","en-us/blog/structuring-the-gitlab-package-registry-for-enterprise-scale",{"_path":2933,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2934,"content":2940,"config":2945,"_id":2947,"_type":16,"title":2948,"_source":17,"_file":2949,"_stem":2950,"_extension":20},"/en-us/blog/certificate-based-kubernetes-integration-sunsetting-on-gitlab-com",{"title":2935,"description":2936,"ogTitle":2935,"ogDescription":2936,"noIndex":6,"ogImage":2937,"ogUrl":2938,"ogSiteName":995,"ogType":996,"canonicalUrls":2938,"schema":2939},"Certificate-based Kubernetes integration sunsetting on GitLab.com","Learn how to check if you are impacted by the sunsetting in May 2026 and the steps needed to migrate to our proposed alternatives, including the GitLab agent for Kubernetes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662245/Blog/Hero%20Images/blog-image-template-1800x945__16_.png","https://about.gitlab.com/blog/certificate-based-kubernetes-integration-sunsetting-on-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Certificate-based Kubernetes integration sunsetting on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2025-02-17\",\n      }",{"title":2935,"description":2936,"authors":2941,"heroImage":2937,"date":2943,"category":731,"tags":2944,"updatedDate":2320},[2942],"Viktor Nagy","2025-02-17",[110,2908,731,543],{"slug":2946,"featured":6,"template":736},"certificate-based-kubernetes-integration-sunsetting-on-gitlab-com","content:en-us:blog:certificate-based-kubernetes-integration-sunsetting-on-gitlab-com.yml","Certificate Based Kubernetes Integration Sunsetting On Gitlab Com","en-us/blog/certificate-based-kubernetes-integration-sunsetting-on-gitlab-com.yml","en-us/blog/certificate-based-kubernetes-integration-sunsetting-on-gitlab-com",{"_path":2952,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2953,"content":2959,"config":2963,"_id":2965,"_type":16,"title":2966,"_source":17,"_file":2967,"_stem":2968,"_extension":20},"/en-us/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab",{"title":2954,"description":2955,"ogTitle":2954,"ogDescription":2955,"noIndex":6,"ogImage":2956,"ogUrl":2957,"ogSiteName":995,"ogType":996,"canonicalUrls":2957,"schema":2958},"Automating container image migration from Amazon ECR to GitLab","When platform teams move their CI/CD to GitLab, migrating container images shouldn't be the bottleneck. Follow this step-by-step guide to automate the pipeline migration process.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663129/Blog/Hero%20Images/blog-image-template-1800x945__28_.png","https://about.gitlab.com/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automating container image migration from Amazon ECR to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2025-02-13\",\n      }",{"title":2954,"description":2955,"authors":2960,"heroImage":2956,"date":2961,"category":858,"tags":2962},[907],"2025-02-13",[110,771,772,543,731,2889],{"slug":2964,"featured":92,"template":736},"automating-container-image-migration-from-amazon-ecr-to-gitlab","content:en-us:blog:automating-container-image-migration-from-amazon-ecr-to-gitlab.yml","Automating Container Image Migration From Amazon Ecr To Gitlab","en-us/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab.yml","en-us/blog/automating-container-image-migration-from-amazon-ecr-to-gitlab",{"_path":2970,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2971,"content":2977,"config":2981,"_id":2983,"_type":16,"title":2984,"_source":17,"_file":2985,"_stem":2986,"_extension":20},"/en-us/blog/getting-started-with-gitlab-mastering-project-management",{"title":2972,"description":2973,"ogTitle":2972,"ogDescription":2973,"noIndex":6,"ogImage":2974,"ogUrl":2975,"ogSiteName":995,"ogType":996,"canonicalUrls":2975,"schema":2976},"Getting started with GitLab: Mastering project management","Discover the key components of project management and how to put them to use for better organization and tracking.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097294/Blog/Hero%20Images/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25_cFwd8DYFLekdnOLmbbChp_1750097293924.png","https://about.gitlab.com/blog/getting-started-with-gitlab-mastering-project-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab: Mastering project management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2025-02-11\",\n      }",{"title":2972,"description":2973,"authors":2978,"heroImage":2974,"date":2979,"category":731,"tags":2980},[1000],"2025-02-11",[772,731,543,729],{"slug":2982,"featured":6,"template":736},"getting-started-with-gitlab-mastering-project-management","content:en-us:blog:getting-started-with-gitlab-mastering-project-management.yml","Getting Started With Gitlab Mastering Project Management","en-us/blog/getting-started-with-gitlab-mastering-project-management.yml","en-us/blog/getting-started-with-gitlab-mastering-project-management",{"_path":2988,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":2989,"content":2995,"config":3001,"_id":3003,"_type":16,"title":3004,"_source":17,"_file":3005,"_stem":3006,"_extension":20},"/en-us/blog/how-to-scan-a-full-commit-history-to-detect-sensitive-secrets",{"title":2990,"description":2991,"ogTitle":2990,"ogDescription":2991,"noIndex":6,"ogImage":2992,"ogUrl":2993,"ogSiteName":995,"ogType":996,"canonicalUrls":2993,"schema":2994},"How to scan a full commit history to detect sensitive secrets","Use GitLab Secret Detection to scan a repository's commit history, including branches. View results within the GitLab UI with just a few lines of code added to a pipeline file.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097948/Blog/Hero%20Images/Blog/Hero%20Images/REFERENCE%20-%20display%20preview%20for%20blog%20images%20%281%29_2XDPsbkjQ3o6tcdom6IGxI_1750097948673.png","https://about.gitlab.com/blog/how-to-scan-a-full-commit-history-to-detect-sensitive-secrets","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to scan a full commit history to detect sensitive secrets\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Noah Ing\"},{\"@type\":\"Person\",\"name\":\"Jerez Solis\"}],\n        \"datePublished\": \"2025-02-06\",\n      }",{"title":2990,"description":2991,"authors":2996,"heroImage":2992,"date":2999,"category":790,"tags":3000},[2997,2998],"Noah Ing","Jerez Solis","2025-02-06",[2889,772,543,730],{"slug":3002,"featured":6,"template":736},"how-to-scan-a-full-commit-history-to-detect-sensitive-secrets","content:en-us:blog:how-to-scan-a-full-commit-history-to-detect-sensitive-secrets.yml","How To Scan A Full Commit History To Detect Sensitive Secrets","en-us/blog/how-to-scan-a-full-commit-history-to-detect-sensitive-secrets.yml","en-us/blog/how-to-scan-a-full-commit-history-to-detect-sensitive-secrets",{"_path":3008,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3009,"content":3015,"config":3019,"_id":3021,"_type":16,"title":3022,"_source":17,"_file":3023,"_stem":3024,"_extension":20},"/en-us/blog/tutorial-security-scanning-in-air-gapped-environments",{"title":3010,"description":3011,"ogTitle":3010,"ogDescription":3011,"noIndex":6,"ogImage":3012,"ogUrl":3013,"ogSiteName":995,"ogType":996,"canonicalUrls":3013,"schema":3014},"Tutorial: Security scanning in air-gapped environments","Security scanning remains crucial even in air-gapped environments to detect internal threats, prevent data exfiltration, and maintain operational integrity. Learn how GitLab can help get air-gapped environments secure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099301/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1097303277_6gTk7M1DNx0tFuovupVFB1_1750099300786.jpg","https://about.gitlab.com/blog/tutorial-security-scanning-in-air-gapped-environments","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Security scanning in air-gapped environments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-02-05\",\n      }",{"title":3010,"description":3011,"authors":3016,"heroImage":3012,"date":3017,"category":790,"tags":3018},[1097],"2025-02-05",[772,790,186,543,730],{"slug":3020,"featured":92,"template":736},"tutorial-security-scanning-in-air-gapped-environments","content:en-us:blog:tutorial-security-scanning-in-air-gapped-environments.yml","Tutorial Security Scanning In Air Gapped Environments","en-us/blog/tutorial-security-scanning-in-air-gapped-environments.yml","en-us/blog/tutorial-security-scanning-in-air-gapped-environments",{"_path":3026,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3027,"content":3033,"config":3037,"_id":3039,"_type":16,"title":3040,"_source":17,"_file":3041,"_stem":3042,"_extension":20},"/en-us/blog/how-to-harmonize-agile-sprints-with-product-roadmaps",{"title":3028,"description":3029,"ogTitle":3028,"ogDescription":3029,"noIndex":6,"ogImage":3030,"ogUrl":3031,"ogSiteName":995,"ogType":996,"canonicalUrls":3031,"schema":3032},"How to harmonize Agile sprints with product roadmaps","Apply best practices and GitLab features to your product journey, including creating centralized roadmaps, conducting review sessions, and tracking sprint lifecycles.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097231/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2821%29_2pdp2MNB7SoP4MhhiI1WIa_1750097230664.png","https://about.gitlab.com/blog/how-to-harmonize-agile-sprints-with-product-roadmaps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to harmonize Agile sprints with product roadmaps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2025-02-04\",\n      }",{"title":3028,"description":3029,"authors":3034,"heroImage":3030,"date":3035,"category":726,"tags":3036},[734],"2025-02-04",[729,772,1335,543],{"slug":3038,"featured":92,"template":736},"how-to-harmonize-agile-sprints-with-product-roadmaps","content:en-us:blog:how-to-harmonize-agile-sprints-with-product-roadmaps.yml","How To Harmonize Agile Sprints With Product Roadmaps","en-us/blog/how-to-harmonize-agile-sprints-with-product-roadmaps.yml","en-us/blog/how-to-harmonize-agile-sprints-with-product-roadmaps",{"_path":3044,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3045,"content":3051,"config":3057,"_id":3059,"_type":16,"title":3060,"_source":17,"_file":3061,"_stem":3062,"_extension":20},"/en-us/blog/how-gitlab-uses-prompt-guardrails-to-help-protect-customers",{"title":3046,"description":3047,"ogTitle":3046,"ogDescription":3047,"noIndex":6,"ogImage":3048,"ogUrl":3049,"ogSiteName":995,"ogType":996,"canonicalUrls":3049,"schema":3050},"How GitLab uses prompt guardrails to help protect customers","Learn what prompt guardrails are, how they help mitigate security risks, and what unique considerations GitLab has taken into account when implementing them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663918/Blog/Hero%20Images/aipower.jpg","https://about.gitlab.com/blog/how-gitlab-uses-prompt-guardrails-to-help-protect-customers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab uses prompt guardrails to help protect customers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"},{\"@type\":\"Person\",\"name\":\"Roger Woo\"}],\n        \"datePublished\": \"2025-01-30\",\n      }",{"title":3046,"description":3047,"authors":3052,"heroImage":3048,"date":3055,"category":769,"tags":3056},[3053,3054],"David O'Regan","Roger Woo","2025-01-30",[728,1569],{"slug":3058,"featured":92,"template":736},"how-gitlab-uses-prompt-guardrails-to-help-protect-customers","content:en-us:blog:how-gitlab-uses-prompt-guardrails-to-help-protect-customers.yml","How Gitlab Uses Prompt Guardrails To Help Protect Customers","en-us/blog/how-gitlab-uses-prompt-guardrails-to-help-protect-customers.yml","en-us/blog/how-gitlab-uses-prompt-guardrails-to-help-protect-customers",{"_path":3064,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3065,"content":3070,"config":3076,"_id":3078,"_type":16,"title":3079,"_source":17,"_file":3080,"_stem":3081,"_extension":20},"/en-us/blog/the-co-create-program-how-customers-are-collaborating-to-build-gitlab",{"title":3066,"description":3067,"ogTitle":3066,"ogDescription":3067,"noIndex":6,"ogImage":1963,"ogUrl":3068,"ogSiteName":995,"ogType":996,"canonicalUrls":3068,"schema":3069},"The Co-Create Program: How customers are collaborating to build GitLab","Learn how organizations like Thales, Scania, and Kitware are partnering with GitLab engineers to contribute meaningful features that benefit the entire community.","https://about.gitlab.com/blog/the-co-create-program-how-customers-are-collaborating-to-build-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Co-Create Program: How customers are collaborating to build GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2025-01-30\",\n      }",{"title":3066,"description":3067,"authors":3071,"heroImage":1963,"date":3055,"category":3072,"tags":3073},[1439],"customer-stories",[3074,1265,3075],"contributors","customers",{"slug":3077,"featured":92,"template":736},"the-co-create-program-how-customers-are-collaborating-to-build-gitlab","content:en-us:blog:the-co-create-program-how-customers-are-collaborating-to-build-gitlab.yml","The Co Create Program How Customers Are Collaborating To Build Gitlab","en-us/blog/the-co-create-program-how-customers-are-collaborating-to-build-gitlab.yml","en-us/blog/the-co-create-program-how-customers-are-collaborating-to-build-gitlab",{"_path":3083,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3084,"content":3089,"config":3093,"_id":3095,"_type":16,"title":3096,"_source":17,"_file":3097,"_stem":3098,"_extension":20},"/en-us/blog/automating-cybersecurity-threat-detections-with-gitlab-ci-cd",{"title":3085,"description":3086,"ogTitle":3085,"ogDescription":3086,"noIndex":6,"ogImage":2530,"ogUrl":3087,"ogSiteName":995,"ogType":996,"canonicalUrls":3087,"schema":3088},"Automating cybersecurity threat detections with GitLab CI/CD","Discover how GUARD automates cybersecurity threat detections through the use\nof GitLab CI/CD and how it ensures high-quality detections.","https://about.gitlab.com/blog/automating-cybersecurity-threat-detections-with-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automating cybersecurity threat detections with GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mitra Jozenazemian\"}],\n        \"datePublished\": \"2025-01-29\",\n      }",{"title":3085,"description":3086,"authors":3090,"heroImage":2530,"date":3091,"category":790,"tags":3092},[2208],"2025-01-29",[790,772,574,543,110],{"slug":3094,"featured":6,"template":736},"automating-cybersecurity-threat-detections-with-gitlab-ci-cd","content:en-us:blog:automating-cybersecurity-threat-detections-with-gitlab-ci-cd.yml","Automating Cybersecurity Threat Detections With Gitlab Ci Cd","en-us/blog/automating-cybersecurity-threat-detections-with-gitlab-ci-cd.yml","en-us/blog/automating-cybersecurity-threat-detections-with-gitlab-ci-cd",{"_path":3100,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3101,"content":3107,"config":3111,"_id":3113,"_type":16,"title":3114,"_source":17,"_file":3115,"_stem":3116,"_extension":20},"/en-us/blog/improve-ai-security-in-gitlab-with-composite-identities",{"title":3102,"description":3103,"ogTitle":3102,"ogDescription":3103,"noIndex":6,"ogImage":3104,"ogUrl":3105,"ogSiteName":995,"ogType":996,"canonicalUrls":3105,"schema":3106},"Improve AI security in GitLab with composite identities","Learn how to implement AI features responsibly by applying authentication best practices with service accounts for AI agents in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664638/Blog/Hero%20Images/applicationsecurity.png","https://about.gitlab.com/blog/improve-ai-security-in-gitlab-with-composite-identities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improve AI security in GitLab with composite identities\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grzegorz Bizon\"}],\n        \"datePublished\": \"2025-01-29\",\n      }",{"title":3102,"description":3103,"authors":3108,"heroImage":3104,"date":3091,"category":790,"tags":3110},[3109],"Grzegorz Bizon",[728,574,790],{"slug":3112,"featured":6,"template":736},"improve-ai-security-in-gitlab-with-composite-identities","content:en-us:blog:improve-ai-security-in-gitlab-with-composite-identities.yml","Improve Ai Security In Gitlab With Composite Identities","en-us/blog/improve-ai-security-in-gitlab-with-composite-identities.yml","en-us/blog/improve-ai-security-in-gitlab-with-composite-identities",{"_path":3118,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3119,"content":3125,"config":3128,"_id":3130,"_type":16,"title":3131,"_source":17,"_file":3132,"_stem":3133,"_extension":20},"/en-us/blog/improve-security-auditing-with-gitlab-operational-container-scanning",{"title":3120,"description":3121,"ogTitle":3120,"ogDescription":3121,"noIndex":6,"ogImage":3122,"ogUrl":3123,"ogSiteName":995,"ogType":996,"canonicalUrls":3123,"schema":3124},"Improve security auditing with GitLab Operational Container Scanning","Learn how to conduct container vulnerability scans post-deployment to raise awareness of existing threats and to track resolution of vulnerabilities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664654/Blog/Hero%20Images/AdobeStock_1172300481.jpg","https://about.gitlab.com/blog/improve-security-auditing-with-gitlab-operational-container-scanning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improve security auditing with GitLab Operational Container Scanning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Helfand\"}],\n        \"datePublished\": \"2025-01-29\",\n      }",{"title":3120,"description":3121,"authors":3126,"heroImage":3122,"date":3091,"category":790,"tags":3127},[856],[730,574,772,790,731],{"slug":3129,"featured":6,"template":736},"improve-security-auditing-with-gitlab-operational-container-scanning","content:en-us:blog:improve-security-auditing-with-gitlab-operational-container-scanning.yml","Improve Security Auditing With Gitlab Operational Container Scanning","en-us/blog/improve-security-auditing-with-gitlab-operational-container-scanning.yml","en-us/blog/improve-security-auditing-with-gitlab-operational-container-scanning",{"_path":3135,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3136,"content":3142,"config":3147,"_id":3149,"_type":16,"title":3150,"_source":17,"_file":3151,"_stem":3152,"_extension":20},"/en-us/blog/deploy-a-server-using-go-with-gitlab-google-cloud",{"title":3137,"description":3138,"ogTitle":3137,"ogDescription":3138,"noIndex":6,"ogImage":3139,"ogUrl":3140,"ogSiteName":995,"ogType":996,"canonicalUrls":3140,"schema":3141},"Deploy a server using Go with GitLab + Google Cloud","This tutorial shows how to use GitLab’s Google Cloud integration to deploy a Golang server in less than 10 minutes, helping developers become more independent and efficient.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098028/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945_fJKX41PJHKCfSOWw4xQxm_1750098028126.png","https://about.gitlab.com/blog/deploy-a-server-using-go-with-gitlab-google-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Deploy a server using Go with GitLab + Google Cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Claire Champernowne\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2025-01-28\",\n      }",{"title":3137,"description":3138,"authors":3143,"heroImage":3139,"date":3145,"category":731,"tags":3146},[3144,2997],"Claire Champernowne","2025-01-28",[574,543,772,2889,731,730],{"slug":3148,"featured":6,"template":736},"deploy-a-server-using-go-with-gitlab-google-cloud","content:en-us:blog:deploy-a-server-using-go-with-gitlab-google-cloud.yml","Deploy A Server Using Go With Gitlab Google Cloud","en-us/blog/deploy-a-server-using-go-with-gitlab-google-cloud.yml","en-us/blog/deploy-a-server-using-go-with-gitlab-google-cloud",{"_path":3154,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3155,"content":3161,"config":3165,"_id":3167,"_type":16,"title":3168,"_source":17,"_file":3169,"_stem":3170,"_extension":20},"/en-us/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab",{"title":3156,"description":3157,"ogTitle":3156,"ogDescription":3157,"noIndex":6,"ogImage":3158,"ogUrl":3159,"ogSiteName":995,"ogType":996,"canonicalUrls":3159,"schema":3160},"From code to production: A guide to continuous deployment with GitLab","Learn how to get started building a robust continuous deployment pipeline in GitLab. Follow these step-by-step instructions, practical examples, and best practices.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659478/Blog/Hero%20Images/REFERENCE_-_Use_this_page_as_a_reference_for_thumbnail_sizes.png","https://about.gitlab.com/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"From code to production: A guide to continuous deployment with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Benjamin Skierlak\"},{\"@type\":\"Person\",\"name\":\"James Wormwell\"}],\n        \"datePublished\": \"2025-01-28\",\n      }",{"title":3156,"description":3157,"authors":3162,"heroImage":3158,"date":3145,"category":731,"tags":3164},[3163,1877],"Benjamin Skierlak",[2098,110,730,731,772],{"slug":3166,"featured":6,"template":736},"from-code-to-production-a-guide-to-continuous-deployment-with-gitlab","content:en-us:blog:from-code-to-production-a-guide-to-continuous-deployment-with-gitlab.yml","From Code To Production A Guide To Continuous Deployment With Gitlab","en-us/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab.yml","en-us/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab",{"_path":3172,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3173,"content":3179,"config":3183,"_id":3185,"_type":16,"title":3186,"_source":17,"_file":3187,"_stem":3188,"_extension":20},"/en-us/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab",{"title":3174,"description":3175,"ogTitle":3174,"ogDescription":3175,"noIndex":6,"ogImage":3176,"ogUrl":3177,"ogSiteName":995,"ogType":996,"canonicalUrls":3177,"schema":3178},"Getting started with GitLab: How to import your projects to GitLab","Learn how to import your projects from various sources, including Bitbucket, Gitea, GitHub, and GitLab Self-Managed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097248/Blog/Hero%20Images/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25_cFwd8DYFLekdnOLmbbChp_1750097247785.png","https://about.gitlab.com/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab: How to import your projects to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2025-01-28\",\n      }",{"title":3174,"description":3175,"authors":3180,"heroImage":3176,"date":3145,"category":731,"tags":3182},[3181],"Abubakar Siddiq Ango",[731,772,543],{"slug":3184,"featured":6,"template":736},"getting-started-with-gitlab-how-to-import-your-projects-to-gitlab","content:en-us:blog:getting-started-with-gitlab-how-to-import-your-projects-to-gitlab.yml","Getting Started With Gitlab How To Import Your Projects To Gitlab","en-us/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab.yml","en-us/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab",{"_path":3190,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3191,"content":3196,"config":3200,"_id":3202,"_type":16,"title":3203,"_source":17,"_file":3204,"_stem":3205,"_extension":20},"/en-us/blog/secure-compliant-and-ai-powered-get-to-know-3-new-gitlab-features",{"title":3192,"description":3193,"ogTitle":3192,"ogDescription":3193,"noIndex":6,"ogImage":1440,"ogUrl":3194,"ogSiteName":995,"ogType":996,"canonicalUrls":3194,"schema":3195},"Secure, compliant, and AI-powered: Get to know 3 new GitLab features","Enhance security, leverage new AI capabilities, and protect sensitive data with our latest platform improvements.","https://about.gitlab.com/blog/secure-compliant-and-ai-powered-get-to-know-3-new-gitlab-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure, compliant, and AI-powered: Get to know 3 new GitLab features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jessica Hurwitz\"}],\n        \"datePublished\": \"2025-01-27\",\n      }",{"title":3192,"description":3193,"authors":3197,"heroImage":1440,"date":3198,"category":731,"tags":3199},[1912],"2025-01-27",[574,543,730,731,790],{"slug":3201,"featured":92,"template":736},"secure-compliant-and-ai-powered-get-to-know-3-new-gitlab-features","content:en-us:blog:secure-compliant-and-ai-powered-get-to-know-3-new-gitlab-features.yml","Secure Compliant And Ai Powered Get To Know 3 New Gitlab Features","en-us/blog/secure-compliant-and-ai-powered-get-to-know-3-new-gitlab-features.yml","en-us/blog/secure-compliant-and-ai-powered-get-to-know-3-new-gitlab-features",{"_path":3207,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3208,"content":3214,"config":3219,"_id":3221,"_type":16,"title":3222,"_source":17,"_file":3223,"_stem":3224,"_extension":20},"/en-us/blog/hosted-runners-for-gitlab-dedicated-now-in-limited-availability",{"title":3209,"description":3210,"ogTitle":3209,"ogDescription":3210,"noIndex":6,"ogImage":3211,"ogUrl":3212,"ogSiteName":995,"ogType":996,"canonicalUrls":3212,"schema":3213},"Hosted runners for GitLab Dedicated: Now in limited availability"," Simplify CI/CD infrastructure management with hosted runners for GitLab Dedicated, a fully managed solution that handles all aspects of runner infrastructure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664751/Blog/Hero%20Images/AdobeStock_640077932.jpg","https://about.gitlab.com/blog/hosted-runners-for-gitlab-dedicated-now-in-limited-availability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Hosted runners for GitLab Dedicated: Now in limited availability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Engel\"}],\n        \"datePublished\": \"2025-01-23\",\n      }",{"title":3209,"description":3210,"authors":3215,"heroImage":3211,"date":3217,"category":731,"tags":3218},[3216],"Gabriel Engel","2025-01-23",[574,543,730,1049,110,186],{"slug":3220,"featured":6,"template":736},"hosted-runners-for-gitlab-dedicated-now-in-limited-availability","content:en-us:blog:hosted-runners-for-gitlab-dedicated-now-in-limited-availability.yml","Hosted Runners For Gitlab Dedicated Now In Limited Availability","en-us/blog/hosted-runners-for-gitlab-dedicated-now-in-limited-availability.yml","en-us/blog/hosted-runners-for-gitlab-dedicated-now-in-limited-availability",{"_path":3226,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3227,"content":3233,"config":3237,"_id":3239,"_type":16,"title":3240,"_source":17,"_file":3241,"_stem":3242,"_extension":20},"/en-us/blog/how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id",{"title":3228,"description":3229,"ogTitle":3228,"ogDescription":3229,"noIndex":6,"ogImage":3230,"ogUrl":3231,"ogSiteName":995,"ogType":996,"canonicalUrls":3231,"schema":3232},"How-to: GitLab Single Sign-on with SAML, SCIM, and Azure’s Entra ID","Follow this detailed walk-through of the configuration steps required to configure GitLab Single Sign-on, using Microsoft Azure’s Entra ID as the identity provider.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098047/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1097303277_6gTk7M1DNx0tFuovupVFB1_1750098046895.jpg","https://about.gitlab.com/blog/how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How-to: GitLab Single Sign-on with SAML, SCIM, and Azure’s Entra ID\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rob Jackson\"}],\n        \"datePublished\": \"2025-01-23\",\n      }",{"title":3228,"description":3229,"authors":3234,"heroImage":3230,"date":3217,"category":790,"tags":3236},[3235],"Rob Jackson",[772,790,543,574,2889],{"slug":3238,"featured":6,"template":736},"how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id","content:en-us:blog:how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id.yml","How To Gitlab Single Sign On With Saml Scim And Azures Entra Id","en-us/blog/how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id.yml","en-us/blog/how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id",{"_path":3244,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3245,"content":3251,"config":3255,"_id":3257,"_type":16,"title":3258,"_source":17,"_file":3259,"_stem":3260,"_extension":20},"/en-us/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab",{"title":3246,"description":3247,"ogTitle":3246,"ogDescription":3247,"noIndex":6,"ogImage":3248,"ogUrl":3249,"ogSiteName":995,"ogType":996,"canonicalUrls":3249,"schema":3250},"Guide to fulfilling SOC 2 security requirements with GitLab","Understand the application security features in the GitLab DevSecOps platform that map to System and Organization Controls 2 requirements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099576/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1172300481_IGPi3TS4VzFgcqhvEdBlR_1750099575518.jpg","https://about.gitlab.com/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Guide to fulfilling SOC 2 security requirements with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-01-22\",\n      }",{"title":3246,"description":3247,"authors":3252,"heroImage":3248,"date":3253,"category":790,"tags":3254},[1097],"2025-01-22",[772,790,543,730,731],{"slug":3256,"featured":92,"template":736},"guide-to-fulfilling-soc-2-security-requirements-with-gitlab","content:en-us:blog:guide-to-fulfilling-soc-2-security-requirements-with-gitlab.yml","Guide To Fulfilling Soc 2 Security Requirements With Gitlab","en-us/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab.yml","en-us/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab",{"_path":3262,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3263,"content":3269,"config":3273,"_id":3275,"_type":16,"title":3276,"_source":17,"_file":3277,"_stem":3278,"_extension":20},"/en-us/blog/tutorial-advanced-use-case-for-gitlab-pipeline-execution-policies",{"title":3264,"description":3265,"ogTitle":3264,"ogDescription":3265,"noIndex":6,"ogImage":3266,"ogUrl":3267,"ogSiteName":995,"ogType":996,"canonicalUrls":3267,"schema":3268},"Tutorial: Advanced use case for GitLab Pipeline Execution Policies","Learn how new GitLab Ultimate functionality can enforce a standardized pipeline across an organization for improved compliance.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098083/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_397632156_3Ldy1urjMStQCl4qnOBvE0_1750098083312.jpg","https://about.gitlab.com/blog/tutorial-advanced-use-case-for-gitlab-pipeline-execution-policies","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Advanced use case for GitLab Pipeline Execution Policies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dan Rabinovitz\"}],\n        \"datePublished\": \"2025-01-22\",\n      }",{"title":3264,"description":3265,"authors":3270,"heroImage":3266,"date":3253,"category":790,"tags":3272},[3271],"Dan Rabinovitz",[790,772,186,543,110,730],{"slug":3274,"featured":6,"template":736},"tutorial-advanced-use-case-for-gitlab-pipeline-execution-policies","content:en-us:blog:tutorial-advanced-use-case-for-gitlab-pipeline-execution-policies.yml","Tutorial Advanced Use Case For Gitlab Pipeline Execution Policies","en-us/blog/tutorial-advanced-use-case-for-gitlab-pipeline-execution-policies.yml","en-us/blog/tutorial-advanced-use-case-for-gitlab-pipeline-execution-policies",{"_path":3280,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3281,"content":3287,"config":3293,"_id":3295,"_type":16,"title":3296,"_source":17,"_file":3297,"_stem":3298,"_extension":20},"/en-us/blog/introducing-gitlab-advanced-vulnerability-tracking",{"title":3282,"description":3283,"ogTitle":3282,"ogDescription":3283,"noIndex":6,"ogImage":3284,"ogUrl":3285,"ogSiteName":995,"ogType":996,"canonicalUrls":3285,"schema":3286},"Introducing GitLab Advanced Vulnerability Tracking","Learn how this security feature improves the efficiency of vulnerability management by reducing futile auditing time (includes data from a new study).","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664844/Blog/Hero%20Images/AdobeStock_941867776.jpg","https://about.gitlab.com/blog/introducing-gitlab-advanced-vulnerability-tracking","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab Advanced Vulnerability Tracking\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julian Thome\"}],\n        \"datePublished\": \"2025-01-21\",\n      }",{"title":3282,"description":3283,"authors":3288,"heroImage":3284,"date":3290,"category":790,"tags":3291},[3289],"Julian Thome","2025-01-21",[790,3292,730,543],"security research",{"slug":3294,"featured":6,"template":736},"introducing-gitlab-advanced-vulnerability-tracking","content:en-us:blog:introducing-gitlab-advanced-vulnerability-tracking.yml","Introducing Gitlab Advanced Vulnerability Tracking","en-us/blog/introducing-gitlab-advanced-vulnerability-tracking.yml","en-us/blog/introducing-gitlab-advanced-vulnerability-tracking",{"_path":3300,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3301,"content":3306,"config":3309,"_id":3311,"_type":16,"title":3312,"_source":17,"_file":3313,"_stem":3314,"_extension":20},"/en-us/blog/secure-and-publish-python-packages-a-guide-to-ci-integration",{"title":3302,"description":3303,"ogTitle":3302,"ogDescription":3303,"noIndex":6,"ogImage":2603,"ogUrl":3304,"ogSiteName":995,"ogType":996,"canonicalUrls":3304,"schema":3305},"Secure and publish Python packages: A guide to CI integration","Learn how to implement a secure CI/CD pipeline across five stages with the GitLab DevSecOps platform.","https://about.gitlab.com/blog/secure-and-publish-python-packages-a-guide-to-ci-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure and publish Python packages: A guide to CI integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2025-01-21\",\n      }",{"title":3302,"description":3303,"authors":3307,"heroImage":2603,"date":3290,"category":790,"tags":3308},[907],[790,233,284,730,2097,110,543,772,2889],{"slug":3310,"featured":92,"template":736},"secure-and-publish-python-packages-a-guide-to-ci-integration","content:en-us:blog:secure-and-publish-python-packages-a-guide-to-ci-integration.yml","Secure And Publish Python Packages A Guide To Ci Integration","en-us/blog/secure-and-publish-python-packages-a-guide-to-ci-integration.yml","en-us/blog/secure-and-publish-python-packages-a-guide-to-ci-integration",{"_path":3316,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3317,"content":3322,"config":3327,"_id":3329,"_type":16,"title":3330,"_source":17,"_file":3331,"_stem":3332,"_extension":20},"/en-us/blog/devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws",{"title":3318,"description":3319,"ogTitle":3318,"ogDescription":3319,"noIndex":6,"ogImage":768,"ogUrl":3320,"ogSiteName":995,"ogType":996,"canonicalUrls":3320,"schema":3321},"DevSecOps + Agentic AI: Now on GitLab Self-Managed Ultimate on AWS","Start using AI-powered, DevSecOps-enhanced agents in your AWS GitLab Self-Managed Ultimate instance. Enjoy the benefits of GitLab Duo and Amazon Q in your organization.","https://about.gitlab.com/blog/devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps + Agentic AI: Now on GitLab Self-Managed Ultimate on AWS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jackie Porter\"}],\n        \"datePublished\": \"2025-01-16\",\n      }",{"title":3318,"description":3319,"authors":3323,"heroImage":768,"date":3325,"category":769,"tags":3326},[3324],"Jackie Porter","2025-01-16",[728,543,731,771,1049],{"slug":3328,"featured":6,"template":736},"devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws","content:en-us:blog:devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws.yml","Devsecops Agentic Ai Now On Gitlab Self Managed Ultimate On Aws","en-us/blog/devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws.yml","en-us/blog/devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws",{"_path":3334,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3335,"content":3341,"config":3347,"_id":3349,"_type":16,"title":3350,"_source":17,"_file":3351,"_stem":3352,"_extension":20},"/en-us/blog/google-cloud-integrations-for-secure-cloud-run-deployments-at-gitlab",{"title":3336,"description":3337,"ogTitle":3336,"ogDescription":3337,"noIndex":6,"ogImage":3338,"ogUrl":3339,"ogSiteName":995,"ogType":996,"canonicalUrls":3339,"schema":3340},"Google Cloud integrations for secure Cloud Run deployments at GitLab","This tutorial demonstrates how to use GitLab’s Google Artifact Management integration to deploy to Google Cloud Run, a serverless runtime for containers application.\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099336/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945_fJKX41PJHKCfSOWw4xQxm_1750099336757.png","https://about.gitlab.com/blog/google-cloud-integrations-for-secure-cloud-run-deployments-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Google Cloud integrations for secure Cloud Run deployments at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"},{\"@type\":\"Person\",\"name\":\"Matt Genelin\"}],\n        \"datePublished\": \"2025-01-15\",\n      }",{"title":3336,"description":3337,"authors":3342,"heroImage":3338,"date":3344,"category":731,"tags":3345},[1727,3343],"Matt Genelin","2025-01-15",[233,1730,3346,772,2889],"GKE",{"slug":3348,"featured":6,"template":736},"google-cloud-integrations-for-secure-cloud-run-deployments-at-gitlab","content:en-us:blog:google-cloud-integrations-for-secure-cloud-run-deployments-at-gitlab.yml","Google Cloud Integrations For Secure Cloud Run Deployments At Gitlab","en-us/blog/google-cloud-integrations-for-secure-cloud-run-deployments-at-gitlab.yml","en-us/blog/google-cloud-integrations-for-secure-cloud-run-deployments-at-gitlab",{"_path":3354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3355,"content":3361,"config":3365,"_id":3367,"_type":16,"title":3368,"_source":17,"_file":3369,"_stem":3370,"_extension":20},"/en-us/blog/what-the-digital-operational-resilience-act-means-for-banks",{"title":3356,"description":3357,"ogTitle":3356,"ogDescription":3357,"noIndex":6,"ogImage":3358,"ogUrl":3359,"ogSiteName":995,"ogType":996,"canonicalUrls":3359,"schema":3360},"What the Digital Operational Resilience Act means for banks","Find out why financial institutions need to understand the DORA legislative framework introduced in the European Union to strengthen operational resilience.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098149/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750098149751.png","https://about.gitlab.com/blog/what-the-digital-operational-resilience-act-means-for-banks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What the Digital Operational Resilience Act means for banks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joshua Carroll\"},{\"@type\":\"Person\",\"name\":\"Allie Holland\"}],\n        \"datePublished\": \"2025-01-15\",\n      }",{"title":3356,"description":3357,"authors":3362,"heroImage":3358,"date":3344,"category":790,"tags":3364},[3363,1406],"Joshua Carroll",[636,790,543,574],{"slug":3366,"featured":6,"template":736},"what-the-digital-operational-resilience-act-means-for-banks","content:en-us:blog:what-the-digital-operational-resilience-act-means-for-banks.yml","What The Digital Operational Resilience Act Means For Banks","en-us/blog/what-the-digital-operational-resilience-act-means-for-banks.yml","en-us/blog/what-the-digital-operational-resilience-act-means-for-banks",{"_path":3372,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3373,"content":3379,"config":3383,"_id":3385,"_type":16,"title":3386,"_source":17,"_file":3387,"_stem":3388,"_extension":20},"/en-us/blog/getting-started-with-gitlab-how-to-manage-users",{"title":3374,"description":3375,"ogTitle":3374,"ogDescription":3375,"noIndex":6,"ogImage":3376,"ogUrl":3377,"ogSiteName":995,"ogType":996,"canonicalUrls":3377,"schema":3378},"Getting started with GitLab: How to manage users","Learn how to manage users using groups, roles, and permissions. Walk through the setup of secure collaboration with proper project access.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097273/Blog/Hero%20Images/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25_cFwd8DYFLekdnOLmbbChp_1750097273817.png","https://about.gitlab.com/blog/getting-started-with-gitlab-how-to-manage-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab: How to manage users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2025-01-14\",\n      }",{"title":3374,"description":3375,"authors":3380,"heroImage":3376,"date":3381,"category":731,"tags":3382},[3181],"2025-01-14",[543,730,772,729,731],{"slug":3384,"featured":92,"template":736},"getting-started-with-gitlab-how-to-manage-users","content:en-us:blog:getting-started-with-gitlab-how-to-manage-users.yml","Getting Started With Gitlab How To Manage Users","en-us/blog/getting-started-with-gitlab-how-to-manage-users.yml","en-us/blog/getting-started-with-gitlab-how-to-manage-users",{"_path":3390,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3391,"content":3397,"config":3402,"_id":3404,"_type":16,"title":3405,"_source":17,"_file":3406,"_stem":3407,"_extension":20},"/en-us/blog/deploy-a-nodejs-express-app-with-gitlabs-cloud-run-integration",{"title":3392,"description":3393,"ogTitle":3392,"ogDescription":3393,"noIndex":6,"ogImage":3394,"ogUrl":3395,"ogSiteName":995,"ogType":996,"canonicalUrls":3395,"schema":3396},"Deploy a NodeJS Express app with GitLab's Cloud Run integration","This tutorial will show you how to use NodeJS and Express to deploy an application to Google Cloud. This step-by-step guide will have you up and running in less than 10 minutes with the Cloud Run integration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097892/Blog/Hero%20Images/Blog/Hero%20Images/speedlights_speedlights.png_1750097891963.png","https://about.gitlab.com/blog/deploy-a-nodejs-express-app-with-gitlabs-cloud-run-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Deploy a NodeJS Express app with GitLab's Cloud Run integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Matthies\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2025-01-13\",\n      }",{"title":3392,"description":3393,"authors":3398,"heroImage":3394,"date":3400,"category":858,"tags":3401},[3399,2997],"Sarah Matthies","2025-01-13",[110,1730,233,2889,772],{"slug":3403,"featured":92,"template":736},"deploy-a-nodejs-express-app-with-gitlabs-cloud-run-integration","content:en-us:blog:deploy-a-nodejs-express-app-with-gitlabs-cloud-run-integration.yml","Deploy A Nodejs Express App With Gitlabs Cloud Run Integration","en-us/blog/deploy-a-nodejs-express-app-with-gitlabs-cloud-run-integration.yml","en-us/blog/deploy-a-nodejs-express-app-with-gitlabs-cloud-run-integration",{"_path":3409,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3410,"content":3416,"config":3421,"_id":3423,"_type":16,"title":3424,"_source":17,"_file":3425,"_stem":3426,"_extension":20},"/en-us/blog/whats-new-in-git-2-48-0",{"title":3411,"description":3412,"ogTitle":3411,"ogDescription":3412,"noIndex":6,"ogImage":3413,"ogUrl":3414,"ogSiteName":995,"ogType":996,"canonicalUrls":3414,"schema":3415},"What’s new in Git 2.48.0?","Learn about the latest version of Git, including a new build system and optimization in the new reftable backend. Discover contributions from GitLab's Git team and the Git community.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663691/Blog/Hero%20Images/AdobeStock_752438815.jpg","https://about.gitlab.com/blog/whats-new-in-git-2-48-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What’s new in Git 2.48.0?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Couder\"}],\n        \"datePublished\": \"2025-01-10\",\n      }",{"title":3411,"description":3412,"authors":3417,"heroImage":3413,"date":3419,"category":1388,"tags":3420},[3418],"Christian Couder","2025-01-10",[1195,1265,269],{"slug":3422,"featured":92,"template":736},"whats-new-in-git-2-48-0","content:en-us:blog:whats-new-in-git-2-48-0.yml","Whats New In Git 2 48 0","en-us/blog/whats-new-in-git-2-48-0.yml","en-us/blog/whats-new-in-git-2-48-0",{"_path":3428,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3429,"content":3435,"config":3439,"_id":3441,"_type":16,"title":3442,"_source":17,"_file":3443,"_stem":3444,"_extension":20},"/en-us/blog/gitlab-supports-banks-in-navigating-regulatory-challenges",{"title":3430,"description":3431,"ogTitle":3430,"ogDescription":3431,"noIndex":6,"ogImage":3432,"ogUrl":3433,"ogSiteName":995,"ogType":996,"canonicalUrls":3433,"schema":3434},"GitLab supports banks in navigating regulatory challenges","Learn the upcoming changes to key frameworks, how they impact organizations, and the DevSecOps platform features that can help address them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664874/Blog/Hero%20Images/AdobeStock_880918603.jpg","https://about.gitlab.com/blog/gitlab-supports-banks-in-navigating-regulatory-challenges","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab supports banks in navigating regulatory challenges\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"George Kichukov\"},{\"@type\":\"Person\",\"name\":\"Allie Holland\"}],\n        \"datePublished\": \"2025-01-09\",\n      }",{"title":3430,"description":3431,"authors":3436,"heroImage":3432,"date":3437,"category":790,"tags":3438},[1405,1406],"2025-01-09",[636,574,543,790],{"slug":3440,"featured":6,"template":736},"gitlab-supports-banks-in-navigating-regulatory-challenges","content:en-us:blog:gitlab-supports-banks-in-navigating-regulatory-challenges.yml","Gitlab Supports Banks In Navigating Regulatory Challenges","en-us/blog/gitlab-supports-banks-in-navigating-regulatory-challenges.yml","en-us/blog/gitlab-supports-banks-in-navigating-regulatory-challenges",{"_path":3446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3447,"content":3452,"config":3456,"_id":3458,"_type":16,"title":3459,"_source":17,"_file":3460,"_stem":3461,"_extension":20},"/en-us/blog/reduce-supply-chain-risk-with-smarter-vulnerability-prioritization",{"title":3448,"description":3449,"ogTitle":3448,"ogDescription":3449,"noIndex":6,"ogImage":2676,"ogUrl":3450,"ogSiteName":995,"ogType":996,"canonicalUrls":3450,"schema":3451},"Reduce supply chain risk with smarter vulnerability prioritization","New software composition analysis features use risk-based intelligence so developers and security teams can prioritize critical vulnerabilities for targeted remediation.","https://about.gitlab.com/blog/reduce-supply-chain-risk-with-smarter-vulnerability-prioritization","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Reduce supply chain risk with smarter vulnerability prioritization\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Salman Ladha\"}],\n        \"datePublished\": \"2025-01-07\",\n      }",{"title":3448,"description":3449,"authors":3453,"heroImage":2676,"date":3454,"category":790,"tags":3455},[787],"2025-01-07",[790,730,543,731],{"slug":3457,"featured":92,"template":736},"reduce-supply-chain-risk-with-smarter-vulnerability-prioritization","content:en-us:blog:reduce-supply-chain-risk-with-smarter-vulnerability-prioritization.yml","Reduce Supply Chain Risk With Smarter Vulnerability Prioritization","en-us/blog/reduce-supply-chain-risk-with-smarter-vulnerability-prioritization.yml","en-us/blog/reduce-supply-chain-risk-with-smarter-vulnerability-prioritization",{"_path":3463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3464,"content":3469,"config":3472,"_id":3474,"_type":16,"title":3475,"_source":17,"_file":3476,"_stem":3477,"_extension":20},"/en-us/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab",{"title":3465,"description":3466,"ogTitle":3465,"ogDescription":3466,"noIndex":6,"ogImage":1245,"ogUrl":3467,"ogSiteName":995,"ogType":996,"canonicalUrls":3467,"schema":3468},"Streamline the path to CMMC Level 2 compliance with GitLab","Learn how GitLab’s comprehensive, AI-powered DevSecOps platform can help organizations meet Cybersecurity Maturity Model Certification Level 2 compliance requirements.","https://about.gitlab.com/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Streamline the path to CMMC Level 2 compliance with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2025-01-07\",\n      }",{"title":3465,"description":3466,"authors":3470,"heroImage":1245,"date":3454,"category":790,"tags":3471},[1949],[790,543,186],{"slug":3473,"featured":6,"template":736},"streamline-the-path-to-cmmc-level-2-compliance-with-gitlab","content:en-us:blog:streamline-the-path-to-cmmc-level-2-compliance-with-gitlab.yml","Streamline The Path To Cmmc Level 2 Compliance With Gitlab","en-us/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab.yml","en-us/blog/streamline-the-path-to-cmmc-level-2-compliance-with-gitlab",{"_path":3479,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3480,"content":3485,"config":3490,"_id":3492,"_type":16,"title":3493,"_source":17,"_file":3494,"_stem":3495,"_extension":20},"/en-us/blog/gitlabs-2024-bug-bounty-year-in-review",{"title":3481,"description":3482,"ogTitle":3481,"ogDescription":3482,"noIndex":6,"ogImage":3284,"ogUrl":3483,"ogSiteName":995,"ogType":996,"canonicalUrls":3483,"schema":3484},"GitLab's 2024 bug bounty year in review","Who were the 2024 top 5 bug reporters? Find out in this look back at 12 months of bug hunting. Also learn how to participate in 2025's bug bounty program.","https://about.gitlab.com/blog/gitlabs-2024-bug-bounty-year-in-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's 2024 bug bounty year in review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ottilia Westerlund\"}],\n        \"datePublished\": \"2025-01-06\",\n      }",{"title":3481,"description":3482,"authors":3486,"heroImage":3284,"date":3488,"category":790,"tags":3489},[3487],"Ottilia Westerlund","2025-01-06",[2483,790,269],{"slug":3491,"featured":6,"template":736},"gitlabs-2024-bug-bounty-year-in-review","content:en-us:blog:gitlabs-2024-bug-bounty-year-in-review.yml","Gitlabs 2024 Bug Bounty Year In Review","en-us/blog/gitlabs-2024-bug-bounty-year-in-review.yml","en-us/blog/gitlabs-2024-bug-bounty-year-in-review",{"_path":3497,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3498,"content":3504,"config":3508,"_id":3510,"_type":16,"title":3511,"_source":17,"_file":3512,"_stem":3513,"_extension":20},"/en-us/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation",{"title":3499,"description":3500,"ogTitle":3499,"ogDescription":3500,"noIndex":6,"ogImage":3501,"ogUrl":3502,"ogSiteName":995,"ogType":996,"canonicalUrls":3502,"schema":3503},"Ultimate guide to CI/CD: Fundamentals to advanced implementation","Learn how to modernize continuous integration/continuous deployment, including automating the development, delivery, and security of pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660151/Blog/Hero%20Images/blog-image-template-1800x945__26_.png","https://about.gitlab.com/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ultimate guide to CI/CD: Fundamentals to advanced implementation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2025-01-06\",\n      }",{"title":3499,"description":3500,"authors":3505,"heroImage":3501,"date":3488,"category":577,"tags":3507},[3506],"Sandra Gittlen",[110,574,543,772,790,731],{"slug":3509,"featured":92,"template":736},"ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation","content:en-us:blog:ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation.yml","Ultimate Guide To Ci Cd Fundamentals To Advanced Implementation","en-us/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation.yml","en-us/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation",{"_path":3515,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3516,"content":3521,"config":3526,"_id":3528,"_type":16,"title":3529,"_source":17,"_file":3530,"_stem":3531,"_extension":20},"/en-us/blog/3-signs-your-team-is-ready-to-uplevel-security-controls-in-gitlab",{"title":3517,"description":3518,"ogTitle":3517,"ogDescription":3518,"noIndex":6,"ogImage":2752,"ogUrl":3519,"ogSiteName":995,"ogType":996,"canonicalUrls":3519,"schema":3520},"3 signs your team is ready to uplevel security controls in GitLab","Learn when to upgrade your GitLab security practices, from permission management to compliance adherence. Discover key features in GitLab Premium that scale with your team.","https://about.gitlab.com/blog/3-signs-your-team-is-ready-to-uplevel-security-controls-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 signs your team is ready to uplevel security controls in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julie Griffin\"}],\n        \"datePublished\": \"2024-12-18\",\n      }",{"title":3517,"description":3518,"authors":3522,"heroImage":2752,"date":3524,"category":790,"tags":3525},[3523],"Julie Griffin","2024-12-18",[790,543,730],{"slug":3527,"featured":92,"template":736},"3-signs-your-team-is-ready-to-uplevel-security-controls-in-gitlab","content:en-us:blog:3-signs-your-team-is-ready-to-uplevel-security-controls-in-gitlab.yml","3 Signs Your Team Is Ready To Uplevel Security Controls In Gitlab","en-us/blog/3-signs-your-team-is-ready-to-uplevel-security-controls-in-gitlab.yml","en-us/blog/3-signs-your-team-is-ready-to-uplevel-security-controls-in-gitlab",{"_path":3533,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3534,"content":3539,"config":3542,"_id":3544,"_type":16,"title":3545,"_source":17,"_file":3546,"_stem":3547,"_extension":20},"/en-us/blog/5-gitlab-premium-features-to-help-your-team-scale",{"title":3535,"description":3536,"ogTitle":3535,"ogDescription":3536,"noIndex":6,"ogImage":909,"ogUrl":3537,"ogSiteName":995,"ogType":996,"canonicalUrls":3537,"schema":3538},"5 GitLab Premium features to help your team scale","Explore how GitLab Premium boosts team collaboration and productivity, enabling organizations to scale with streamlined workflows and advanced capabilities.","https://about.gitlab.com/blog/5-gitlab-premium-features-to-help-your-team-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 GitLab Premium features to help your team scale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julie Griffin\"}],\n        \"datePublished\": \"2024-12-18\",\n      }",{"title":3535,"description":3536,"authors":3540,"heroImage":909,"date":3524,"category":731,"tags":3541},[3523],[543,730],{"slug":3543,"featured":6,"template":736},"5-gitlab-premium-features-to-help-your-team-scale","content:en-us:blog:5-gitlab-premium-features-to-help-your-team-scale.yml","5 Gitlab Premium Features To Help Your Team Scale","en-us/blog/5-gitlab-premium-features-to-help-your-team-scale.yml","en-us/blog/5-gitlab-premium-features-to-help-your-team-scale",{"_path":3549,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3550,"content":3555,"config":3560,"_id":3562,"_type":16,"title":3563,"_source":17,"_file":3564,"_stem":3565,"_extension":20},"/en-us/blog/automating-with-gitlab-duo-part-3-validating-testing",{"title":3551,"description":3552,"ogTitle":3551,"ogDescription":3552,"noIndex":6,"ogImage":876,"ogUrl":3553,"ogSiteName":995,"ogType":996,"canonicalUrls":3553,"schema":3554},"Automating with GitLab Duo, Part 3: Validating testing","Discover what test we ran to validate the impact of GitLab Duo on our team’s automated testing – and the results we achieved.","https://about.gitlab.com/blog/automating-with-gitlab-duo-part-3-validating-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automating with GitLab Duo, Part 3: Validating testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-17\",\n      }",{"title":3551,"description":3552,"authors":3556,"heroImage":876,"date":3558,"category":769,"tags":3559},[3557],"Byron Boots","2024-12-17",[728,964,543,730],{"slug":3561,"featured":6,"template":736},"automating-with-gitlab-duo-part-3-validating-testing","content:en-us:blog:automating-with-gitlab-duo-part-3-validating-testing.yml","Automating With Gitlab Duo Part 3 Validating Testing","en-us/blog/automating-with-gitlab-duo-part-3-validating-testing.yml","en-us/blog/automating-with-gitlab-duo-part-3-validating-testing",{"_path":3567,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3568,"content":3574,"config":3578,"_id":3580,"_type":16,"title":3581,"_source":17,"_file":3582,"_stem":3583,"_extension":20},"/en-us/blog/git-command-line-on-windows-with-git-bash",{"title":3569,"description":3570,"ogTitle":3569,"ogDescription":3570,"noIndex":6,"ogImage":3571,"ogUrl":3572,"ogSiteName":995,"ogType":996,"canonicalUrls":3572,"schema":3573},"Git command line on Windows with Git Bash","Learn about Git Bash, how it works, how to install it, and the main commands you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660028/Blog/Hero%20Images/blog-image-template-1800x945__25_.png","https://about.gitlab.com/blog/git-command-line-on-windows-with-git-bash","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git command line on Windows with Git Bash\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2024-12-16\",\n      }",{"title":3569,"description":3570,"authors":3575,"heroImage":3571,"date":3576,"category":1388,"tags":3577},[1000],"2024-12-16",[1195,1265],{"slug":3579,"featured":6,"template":736},"git-command-line-on-windows-with-git-bash","content:en-us:blog:git-command-line-on-windows-with-git-bash.yml","Git Command Line On Windows With Git Bash","en-us/blog/git-command-line-on-windows-with-git-bash.yml","en-us/blog/git-command-line-on-windows-with-git-bash",{"_path":3585,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3586,"content":3591,"config":3595,"_id":3597,"_type":16,"title":3598,"_source":17,"_file":3599,"_stem":3600,"_extension":20},"/en-us/blog/transform-code-quality-and-compliance-with-automated-processes",{"title":3587,"description":3588,"ogTitle":3587,"ogDescription":3588,"noIndex":6,"ogImage":3501,"ogUrl":3589,"ogSiteName":995,"ogType":996,"canonicalUrls":3589,"schema":3590},"Transform code quality and compliance with automated processes","Learn how GitLab Premium features address the technical debt and security vulnerability challenges that plague traditional approaches.","https://about.gitlab.com/blog/transform-code-quality-and-compliance-with-automated-processes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Transform code quality and compliance with automated processes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jessica Hurwitz\"}],\n        \"datePublished\": \"2024-12-13\",\n      }",{"title":3587,"description":3588,"authors":3592,"heroImage":3501,"date":3593,"category":731,"tags":3594},[1912],"2024-12-13",[2097,1932,543,731,790,730],{"slug":3596,"featured":6,"template":736},"transform-code-quality-and-compliance-with-automated-processes","content:en-us:blog:transform-code-quality-and-compliance-with-automated-processes.yml","Transform Code Quality And Compliance With Automated Processes","en-us/blog/transform-code-quality-and-compliance-with-automated-processes.yml","en-us/blog/transform-code-quality-and-compliance-with-automated-processes",{"_path":3602,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3603,"content":3609,"config":3613,"_id":3615,"_type":16,"title":3616,"_source":17,"_file":3617,"_stem":3618,"_extension":20},"/en-us/blog/ask-a-hacker-a-conversation-with-ahacker1",{"title":3604,"description":3605,"ogTitle":3604,"ogDescription":3605,"noIndex":6,"ogImage":3606,"ogUrl":3607,"ogSiteName":995,"ogType":996,"canonicalUrls":3607,"schema":3608},"Ask a hacker: A conversation with ahacker1","Alexander Siyou Tan, also known as ahacker1, joined us for an AMA to discuss how he got into hacking and some of his best bug bounty hunting strategies.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098255/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%282%29_5kE1qyriiwHs6cpvIwuyB_1750098255490.png","https://about.gitlab.com/blog/ask-a-hacker-a-conversation-with-ahacker1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ask a hacker: A conversation with ahacker1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ottilia Westerlund\"}],\n        \"datePublished\": \"2024-12-12\",\n      }",{"title":3604,"description":3605,"authors":3610,"heroImage":3606,"date":3611,"category":1388,"tags":3612},[3487],"2024-12-12",[2483,790,1265,269],{"slug":3614,"featured":92,"template":736},"ask-a-hacker-a-conversation-with-ahacker1","content:en-us:blog:ask-a-hacker-a-conversation-with-ahacker1.yml","Ask A Hacker A Conversation With Ahacker1","en-us/blog/ask-a-hacker-a-conversation-with-ahacker1.yml","en-us/blog/ask-a-hacker-a-conversation-with-ahacker1",{"_path":3620,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3621,"content":3627,"config":3631,"_id":3633,"_type":16,"title":3634,"_source":17,"_file":3635,"_stem":3636,"_extension":20},"/en-us/blog/modernizing-a-simple-c-application-to-java-with-gitlab-duo",{"title":3622,"description":3623,"ogTitle":3622,"ogDescription":3623,"noIndex":6,"ogImage":3624,"ogUrl":3625,"ogSiteName":995,"ogType":996,"canonicalUrls":3625,"schema":3626},"Modernizing a simple C++ application to Java with GitLab Duo","Learn how to refactor code from memory unsafe languages to memory safe languages with the help of GitLab's AI capabilities, saving time and effort on application modernization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659507/Blog/Hero%20Images/AdobeStock_623844718.jpg","https://about.gitlab.com/blog/modernizing-a-simple-c-application-to-java-with-gitlab-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Modernizing a simple C++ application to Java with GitLab Duo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2024-12-11\",\n      }",{"title":3622,"description":3623,"authors":3628,"heroImage":3624,"date":3629,"category":769,"tags":3630},[767],"2024-12-11",[728,543,772,186],{"slug":3632,"featured":6,"template":736},"modernizing-a-simple-c-application-to-java-with-gitlab-duo","content:en-us:blog:modernizing-a-simple-c-application-to-java-with-gitlab-duo.yml","Modernizing A Simple C Application To Java With Gitlab Duo","en-us/blog/modernizing-a-simple-c-application-to-java-with-gitlab-duo.yml","en-us/blog/modernizing-a-simple-c-application-to-java-with-gitlab-duo",{"_path":3638,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3639,"content":3645,"config":3649,"_id":3651,"_type":16,"title":3652,"_source":17,"_file":3653,"_stem":3654,"_extension":20},"/en-us/blog/automating-with-gitlab-duo-part-2-complex-testing",{"title":3640,"description":3641,"ogTitle":3640,"ogDescription":3641,"noIndex":6,"ogImage":3642,"ogUrl":3643,"ogSiteName":995,"ogType":996,"canonicalUrls":3643,"schema":3644},"Automating with GitLab Duo, Part 2: Complex testing","Find out how the GitLab team addressed more complex testing situations using GitLab Duo's AI capabilities, including ensuring that code testing followed standards.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099243/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750099243011.png","https://about.gitlab.com/blog/automating-with-gitlab-duo-part-2-complex-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automating with GitLab Duo, Part 2: Complex testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-10\",\n      }",{"title":3640,"description":3641,"authors":3646,"heroImage":3642,"date":3647,"category":769,"tags":3648},[3557],"2024-12-10",[728,964,543],{"slug":3650,"featured":6,"template":736},"automating-with-gitlab-duo-part-2-complex-testing","content:en-us:blog:automating-with-gitlab-duo-part-2-complex-testing.yml","Automating With Gitlab Duo Part 2 Complex Testing","en-us/blog/automating-with-gitlab-duo-part-2-complex-testing.yml","en-us/blog/automating-with-gitlab-duo-part-2-complex-testing",{"_path":3656,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3657,"content":3662,"config":3666,"_id":3668,"_type":16,"title":3669,"_source":17,"_file":3670,"_stem":3671,"_extension":20},"/en-us/blog/how-to-deploy-a-php-app-using-gitlabs-cloud-run-integration",{"title":3658,"description":3659,"ogTitle":3658,"ogDescription":3659,"noIndex":6,"ogImage":1193,"ogUrl":3660,"ogSiteName":995,"ogType":996,"canonicalUrls":3660,"schema":3661},"How to deploy a PHP app using GitLab's Cloud Run integration","Are you using PHP and want an easy way to deploy your application to Google Cloud? Follow this guide to deploy your app with Google Cloud Run in under 10 minutes.","https://about.gitlab.com/blog/how-to-deploy-a-php-app-using-gitlabs-cloud-run-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to deploy a PHP app using GitLab's Cloud Run integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Nnachi\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2024-12-10\",\n      }",{"title":3658,"description":3659,"authors":3663,"heroImage":1193,"date":3647,"category":858,"tags":3665},[3664,2997],"Christian Nnachi",[2889,772,1730,233],{"slug":3667,"featured":6,"template":736},"how-to-deploy-a-php-app-using-gitlabs-cloud-run-integration","content:en-us:blog:how-to-deploy-a-php-app-using-gitlabs-cloud-run-integration.yml","How To Deploy A Php App Using Gitlabs Cloud Run Integration","en-us/blog/how-to-deploy-a-php-app-using-gitlabs-cloud-run-integration.yml","en-us/blog/how-to-deploy-a-php-app-using-gitlabs-cloud-run-integration",{"_path":3673,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3674,"content":3680,"config":3685,"_id":3687,"_type":16,"title":3688,"_source":17,"_file":3689,"_stem":3690,"_extension":20},"/en-us/blog/how-gitlab-empowers-translators-with-more-context",{"title":3675,"description":3676,"ogTitle":3675,"ogDescription":3676,"noIndex":6,"ogImage":3677,"ogUrl":3678,"ogSiteName":995,"ogType":996,"canonicalUrls":3678,"schema":3679},"How GitLab empowers translators with more context","Learn about the new translation context enhancement feature in GitLab. Join our translation community and help translate GitLab to your language.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097922/Blog/Hero%20Images/Blog/Hero%20Images/gitlabflatlogomap_gitlabflatlogomap.png_1750097921899.png","https://about.gitlab.com/blog/how-gitlab-empowers-translators-with-more-context","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab empowers translators with more context\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Oleksandr Pysaryuk\"}],\n        \"datePublished\": \"2024-12-09\",\n      }",{"title":3675,"description":3676,"authors":3681,"heroImage":3677,"date":3683,"category":1388,"tags":3684},[3682],"Oleksandr Pysaryuk","2024-12-09",[269,2815,731,3074],{"slug":3686,"featured":6,"template":736},"how-gitlab-empowers-translators-with-more-context","content:en-us:blog:how-gitlab-empowers-translators-with-more-context.yml","How Gitlab Empowers Translators With More Context","en-us/blog/how-gitlab-empowers-translators-with-more-context.yml","en-us/blog/how-gitlab-empowers-translators-with-more-context",{"_path":3692,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3693,"content":3699,"config":3704,"_id":3706,"_type":16,"title":3707,"_source":17,"_file":3708,"_stem":3709,"_extension":20},"/en-us/blog/gitlab-names-bill-staples-as-new-ceo",{"title":3694,"description":3695,"ogTitle":3694,"ogDescription":3695,"noIndex":6,"ogImage":3696,"ogUrl":3697,"ogSiteName":995,"ogType":996,"canonicalUrls":3697,"schema":3698},"GitLab names Bill Staples as new CEO","Co-founder Sid Sijbrandij transitions to Executive Chair of the Board.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665388/Blog/Hero%20Images/Revised2.png","https://about.gitlab.com/blog/gitlab-names-bill-staples-as-new-ceo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab names Bill Staples as new CEO\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2024-12-05\",\n      }",{"title":3694,"description":3695,"authors":3700,"heroImage":3696,"date":3702,"category":301,"tags":3703,"updatedDate":3702},[3701],"Sid Sijbrandij","2024-12-05",[1049],{"slug":3705,"featured":92,"template":736},"gitlab-names-bill-staples-as-new-ceo","content:en-us:blog:gitlab-names-bill-staples-as-new-ceo.yml","Gitlab Names Bill Staples As New Ceo","en-us/blog/gitlab-names-bill-staples-as-new-ceo.yml","en-us/blog/gitlab-names-bill-staples-as-new-ceo",{"_path":3711,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3712,"content":3718,"config":3722,"_id":3724,"_type":16,"title":3725,"_source":17,"_file":3726,"_stem":3727,"_extension":20},"/en-us/blog/icymi-key-ai-and-security-insights-from-our-developer-community",{"title":3713,"description":3714,"ogTitle":3713,"ogDescription":3714,"noIndex":6,"ogImage":3715,"ogUrl":3716,"ogSiteName":995,"ogType":996,"canonicalUrls":3716,"schema":3717},"ICYMI: Key AI and security insights from our developer community","Our latest LinkedIn Live highlights the hottest trends in AI, security, DevSecOps, and more. Also get a taste of the GitLab community contributions that are making an impact.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098331/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%286%29_55zMmdJIUpfh5qaPW9dtVA_1750098331584.png","https://about.gitlab.com/blog/icymi-key-ai-and-security-insights-from-our-developer-community","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ICYMI: Key AI and security insights from our developer community\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2024-12-05\",\n      }",{"title":3713,"description":3714,"authors":3719,"heroImage":3715,"date":3702,"category":577,"tags":3720},[1439],[728,790,269,772,3721],"webcast",{"slug":3723,"featured":6,"template":736},"icymi-key-ai-and-security-insights-from-our-developer-community","content:en-us:blog:icymi-key-ai-and-security-insights-from-our-developer-community.yml","Icymi Key Ai And Security Insights From Our Developer Community","en-us/blog/icymi-key-ai-and-security-insights-from-our-developer-community.yml","en-us/blog/icymi-key-ai-and-security-insights-from-our-developer-community",{"_path":3729,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3730,"content":3735,"config":3738,"_id":3740,"_type":16,"title":3741,"_source":17,"_file":3742,"_stem":3743,"_extension":20},"/en-us/blog/streamline-devsecops-engineering-workflows-with-gitlab-duo",{"title":3731,"description":3732,"ogTitle":3731,"ogDescription":3732,"noIndex":6,"ogImage":993,"ogUrl":3733,"ogSiteName":995,"ogType":996,"canonicalUrls":3733,"schema":3734},"Streamline DevSecOps engineering workflows with GitLab Duo","Learn all the ways GitLab Duo's AI capabilities can improve the efficiency of development workflows. Includes in-depth tutorials and demos.","https://about.gitlab.com/blog/streamline-devsecops-engineering-workflows-with-gitlab-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Streamline DevSecOps engineering workflows with GitLab Duo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2024-12-05\",\n      }",{"title":3731,"description":3732,"authors":3736,"heroImage":993,"date":3702,"category":769,"tags":3737},[3181],[728,110,574,543,772,731],{"slug":3739,"featured":92,"template":736},"streamline-devsecops-engineering-workflows-with-gitlab-duo","content:en-us:blog:streamline-devsecops-engineering-workflows-with-gitlab-duo.yml","Streamline Devsecops Engineering Workflows With Gitlab Duo","en-us/blog/streamline-devsecops-engineering-workflows-with-gitlab-duo.yml","en-us/blog/streamline-devsecops-engineering-workflows-with-gitlab-duo",{"_path":3745,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3746,"content":3751,"config":3755,"_id":3757,"_type":16,"title":3758,"_source":17,"_file":3759,"_stem":3760,"_extension":20},"/en-us/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai",{"title":3747,"description":3748,"ogTitle":3747,"ogDescription":3748,"noIndex":6,"ogImage":768,"ogUrl":3749,"ogSiteName":995,"ogType":996,"canonicalUrls":3749,"schema":3750},"GitLab Duo with Amazon Q: DevSecOps meets agentic AI","AI-powered DevSecOps enhanced with autonomous AI agents accelerates developer productivity, application modernization, and innovation.","https://about.gitlab.com/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo with Amazon Q: DevSecOps meets agentic AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilio Salvador\"}],\n        \"datePublished\": \"2024-12-03\",\n      }",{"title":3747,"description":3748,"authors":3752,"heroImage":768,"date":3753,"category":769,"tags":3754},[940],"2024-12-03",[1049,771,728,543,233],{"slug":3756,"featured":92,"template":736},"gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai","content:en-us:blog:gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai.yml","Gitlab Duo With Amazon Q Devsecops Meets Agentic Ai","en-us/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai.yml","en-us/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai",{"_path":3762,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3763,"content":3769,"config":3773,"_id":3775,"_type":16,"title":3776,"_source":17,"_file":3777,"_stem":3778,"_extension":20},"/en-us/blog/how-to-leverage-gitlab-duo-for-enhanced-security-reporting",{"title":3764,"description":3765,"ogTitle":3764,"ogDescription":3765,"noIndex":6,"ogImage":3766,"ogUrl":3767,"ogSiteName":995,"ogType":996,"canonicalUrls":3767,"schema":3768},"How to leverage GitLab Duo for enhanced security reporting","Learn how GitLab Duo enables efficient, real-world security reporting for development, operations, and security teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098339/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%285%29_1iy516k40hwBDChKcUJ2zb_1750098339103.png","https://about.gitlab.com/blog/how-to-leverage-gitlab-duo-for-enhanced-security-reporting","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to leverage GitLab Duo for enhanced security reporting\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valentine Mairet\"},{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-12-03\",\n      }",{"title":3764,"description":3765,"authors":3770,"heroImage":3766,"date":3753,"category":769,"tags":3772},[3771,3053],"Valentine Mairet",[728,772,790,730,543],{"slug":3774,"featured":6,"template":736},"how-to-leverage-gitlab-duo-for-enhanced-security-reporting","content:en-us:blog:how-to-leverage-gitlab-duo-for-enhanced-security-reporting.yml","How To Leverage Gitlab Duo For Enhanced Security Reporting","en-us/blog/how-to-leverage-gitlab-duo-for-enhanced-security-reporting.yml","en-us/blog/how-to-leverage-gitlab-duo-for-enhanced-security-reporting",{"_path":3780,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3781,"content":3787,"config":3790,"_id":3792,"_type":16,"title":3793,"_source":17,"_file":3794,"_stem":3795,"_extension":20},"/en-us/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai",{"title":3782,"description":3783,"ogTitle":3782,"ogDescription":3783,"noIndex":6,"ogImage":3784,"ogUrl":3785,"ogSiteName":995,"ogType":996,"canonicalUrls":3785,"schema":3786},"Quickly resolve broken CI/CD pipelines with AI","When your CI/CD pipeline fails, it leads to delays, decreased productivity, and stress. AI-powered Root Cause Analysis makes problem-solving faster and smarter.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097355/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_78Dav6FR9EGjhebHWuBVan_1750097355230.png","https://about.gitlab.com/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Quickly resolve broken CI/CD pipelines with AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2024-12-03\",\n      }",{"title":3782,"description":3783,"authors":3788,"heroImage":3784,"date":3753,"category":769,"tags":3789},[1016],[728,543,772,730],{"slug":3791,"featured":6,"template":736},"quickly-resolve-broken-ci-cd-pipelines-with-ai","content:en-us:blog:quickly-resolve-broken-ci-cd-pipelines-with-ai.yml","Quickly Resolve Broken Ci Cd Pipelines With Ai","en-us/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai.yml","en-us/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai",{"_path":3797,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3798,"content":3804,"config":3808,"_id":3810,"_type":16,"title":3811,"_source":17,"_file":3812,"_stem":3813,"_extension":20},"/en-us/blog/automating-with-gitlab-duo-part-1-generating-tests",{"title":3799,"description":3800,"ogTitle":3799,"ogDescription":3800,"noIndex":6,"ogImage":3801,"ogUrl":3802,"ogSiteName":995,"ogType":996,"canonicalUrls":3802,"schema":3803},"Automating with GitLab Duo, Part 1: Generating tests","Learn how we used the AI-driven DevSecOps platform to generate automated tests and improve our development speed and quality.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097480/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097480784.png","https://about.gitlab.com/blog/automating-with-gitlab-duo-part-1-generating-tests","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automating with GitLab Duo, Part 1: Generating tests\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-02\",\n      }",{"title":3799,"description":3800,"authors":3805,"heroImage":3801,"date":3806,"category":769,"tags":3807},[3557],"2024-12-02",[728,772,964,543,730],{"slug":3809,"featured":6,"template":736},"automating-with-gitlab-duo-part-1-generating-tests","content:en-us:blog:automating-with-gitlab-duo-part-1-generating-tests.yml","Automating With Gitlab Duo Part 1 Generating Tests","en-us/blog/automating-with-gitlab-duo-part-1-generating-tests.yml","en-us/blog/automating-with-gitlab-duo-part-1-generating-tests",{"_path":3815,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3816,"content":3821,"config":3826,"_id":3828,"_type":16,"title":3829,"_source":17,"_file":3830,"_stem":3831,"_extension":20},"/en-us/blog/unveiling-the-guard-framework-to-automate-security-detections-at-gitlab",{"title":3817,"description":3818,"ogTitle":3817,"ogDescription":3818,"noIndex":6,"ogImage":1944,"ogUrl":3819,"ogSiteName":995,"ogType":996,"canonicalUrls":3819,"schema":3820},"Unveiling the GUARD framework to automate security detections at GitLab","The GitLab Universal Automated Response and Detection (GUARD) framework spans creation, maintenance, alert routing and handling, rich metrics collection, and more.","https://about.gitlab.com/blog/unveiling-the-guard-framework-to-automate-security-detections-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unveiling the GUARD framework to automate security detections at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Harjeet Sharma\"},{\"@type\":\"Person\",\"name\":\"Valentine Mairet\"},{\"@type\":\"Person\",\"name\":\"Matt Coons\"}],\n        \"datePublished\": \"2024-11-26\",\n      }",{"title":3817,"description":3818,"authors":3822,"heroImage":1944,"date":3824,"category":790,"tags":3825,"updatedDate":3824},[3823,3771,2116],"Harjeet Sharma","2024-11-26",[790,730,543],{"slug":3827,"featured":92,"template":736},"unveiling-the-guard-framework-to-automate-security-detections-at-gitlab","content:en-us:blog:unveiling-the-guard-framework-to-automate-security-detections-at-gitlab.yml","Unveiling The Guard Framework To Automate Security Detections At Gitlab","en-us/blog/unveiling-the-guard-framework-to-automate-security-detections-at-gitlab.yml","en-us/blog/unveiling-the-guard-framework-to-automate-security-detections-at-gitlab",{"_path":3833,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3834,"content":3839,"config":3843,"_id":3845,"_type":16,"title":3846,"_source":17,"_file":3847,"_stem":3848,"_extension":20},"/en-us/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams",{"title":3835,"description":3836,"ogTitle":3835,"ogDescription":3836,"noIndex":6,"ogImage":2585,"ogUrl":3837,"ogSiteName":995,"ogType":996,"canonicalUrls":3837,"schema":3838},"Introducing GitLab’s new Planner role for Agile planning teams","Learn how GitLab’s new Planner role helps Agile teams manage planning workflows, with tailored access across SaaS, Dedicated, and Self-managed solutions.","https://about.gitlab.com/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab’s new Planner role for Agile planning teams\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-11-25\",\n      }",{"title":3835,"description":3836,"authors":3840,"heroImage":2585,"date":3841,"category":726,"tags":3842},[734],"2024-11-25",[729,543,730,731],{"slug":3844,"featured":92,"template":736},"introducing-gitlabs-new-planner-role-for-agile-planning-teams","content:en-us:blog:introducing-gitlabs-new-planner-role-for-agile-planning-teams.yml","Introducing Gitlabs New Planner Role For Agile Planning Teams","en-us/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams.yml","en-us/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams",{"_path":3850,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3851,"content":3857,"config":3860,"_id":3862,"_type":16,"title":3863,"_source":17,"_file":3864,"_stem":3865,"_extension":20},"/en-us/blog/streamline-migrations-with-user-contribution-and-membership-mapping",{"title":3852,"description":3853,"ogTitle":3852,"ogDescription":3853,"noIndex":6,"ogImage":3854,"ogUrl":3855,"ogSiteName":995,"ogType":996,"canonicalUrls":3855,"schema":3856},"Streamline migrations with user contribution and membership mapping","New GitLab feature enhances project imports, allowing post-import user contribution mapping and greater flexibility and control.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663670/Blog/Hero%20Images/blog-image-template-1800x945__13_.png","https://about.gitlab.com/blog/streamline-migrations-with-user-contribution-and-membership-mapping","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Streamline migrations with user contribution and membership mapping\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Magdalena Frankiewicz\"}],\n        \"datePublished\": \"2024-11-25\",\n      }",{"title":3852,"description":3853,"authors":3858,"heroImage":3854,"date":3841,"category":731,"tags":3859},[1530],[543,730,731],{"slug":3861,"featured":6,"template":736},"streamline-migrations-with-user-contribution-and-membership-mapping","content:en-us:blog:streamline-migrations-with-user-contribution-and-membership-mapping.yml","Streamline Migrations With User Contribution And Membership Mapping","en-us/blog/streamline-migrations-with-user-contribution-and-membership-mapping.yml","en-us/blog/streamline-migrations-with-user-contribution-and-membership-mapping",{"_path":3867,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3868,"content":3874,"config":3878,"_id":3880,"_type":16,"title":3881,"_source":17,"_file":3882,"_stem":3883,"_extension":20},"/en-us/blog/chat-about-your-merge-request-with-gitlab-duo",{"title":3869,"description":3870,"ogTitle":3869,"ogDescription":3870,"noIndex":6,"ogImage":3871,"ogUrl":3872,"ogSiteName":995,"ogType":996,"canonicalUrls":3872,"schema":3873},"Chat about your merge request with GitLab Duo","Learn how to use AI-powered Chat to quickly understand complex merge requests by asking about implementation choices, potential risks, and architectural decisions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675536/Blog/Hero%20Images/blog-image-template-1800x945__2_.png","https://about.gitlab.com/blog/chat-about-your-merge-request-with-gitlab-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Chat about your merge request with GitLab Duo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Torsten Linz\"}],\n        \"datePublished\": \"2024-11-22\",\n      }",{"title":3869,"description":3870,"authors":3875,"heroImage":3871,"date":3876,"category":769,"tags":3877},[2058],"2024-11-22",[728,543,730,772,731,1335],{"slug":3879,"featured":6,"template":736},"chat-about-your-merge-request-with-gitlab-duo","content:en-us:blog:chat-about-your-merge-request-with-gitlab-duo.yml","Chat About Your Merge Request With Gitlab Duo","en-us/blog/chat-about-your-merge-request-with-gitlab-duo.yml","en-us/blog/chat-about-your-merge-request-with-gitlab-duo",{"_path":3885,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3886,"content":3892,"config":3897,"_id":3899,"_type":16,"title":3900,"_source":17,"_file":3901,"_stem":3902,"_extension":20},"/en-us/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards",{"title":3887,"description":3888,"ogTitle":3887,"ogDescription":3888,"noIndex":6,"ogImage":3889,"ogUrl":3890,"ogSiteName":995,"ogType":996,"canonicalUrls":3890,"schema":3891},"Data-driven DevSecOps: Exploring GitLab Insights Dashboards","Learn how to leverage GitLab Insights Dashboards to visualize key metrics, track project progress, and boost team productivity with customizable, data-driven views.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097210/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_78Dav6FR9EGjhebHWuBVan_1750097210214.png","https://about.gitlab.com/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Data-driven DevSecOps: Exploring GitLab Insights Dashboards\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ricardo Amarilla Villalba\"}],\n        \"datePublished\": \"2024-11-20\",\n      }",{"title":3887,"description":3888,"authors":3893,"heroImage":3889,"date":3895,"category":731,"tags":3896},[3894],"Ricardo Amarilla Villalba","2024-11-20",[110,543,731,730,772,2889],{"slug":3898,"featured":92,"template":736},"data-driven-devsecops-exploring-gitlab-insights-dashboards","content:en-us:blog:data-driven-devsecops-exploring-gitlab-insights-dashboards.yml","Data Driven Devsecops Exploring Gitlab Insights Dashboards","en-us/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards.yml","en-us/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards",{"_path":3904,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3905,"content":3911,"config":3915,"_id":3917,"_type":16,"title":3918,"_source":17,"_file":3919,"_stem":3920,"_extension":20},"/en-us/blog/enable-secure-sudo-access-for-gitlab-remote-development-workspaces",{"title":3906,"description":3907,"ogTitle":3906,"ogDescription":3907,"noIndex":6,"ogImage":3908,"ogUrl":3909,"ogSiteName":995,"ogType":996,"canonicalUrls":3909,"schema":3910},"Enable secure sudo access for GitLab Remote Development workspaces","Learn how to allow support for sudo commands using Sysbox, Kata Containers, and user namespaces in this easy-to-follow tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675033/Blog/Hero%20Images/blog-image-template-1800x945.png","https://about.gitlab.com/blog/enable-secure-sudo-access-for-gitlab-remote-development-workspaces","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Enable secure sudo access for GitLab Remote Development workspaces\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vishal Tak\"}],\n        \"datePublished\": \"2024-11-20\",\n      }",{"title":3906,"description":3907,"authors":3912,"heroImage":3908,"date":3895,"category":790,"tags":3913},[2794],[790,772,3914,543,2815],"remote work",{"slug":3916,"featured":92,"template":736},"enable-secure-sudo-access-for-gitlab-remote-development-workspaces","content:en-us:blog:enable-secure-sudo-access-for-gitlab-remote-development-workspaces.yml","Enable Secure Sudo Access For Gitlab Remote Development Workspaces","en-us/blog/enable-secure-sudo-access-for-gitlab-remote-development-workspaces.yml","en-us/blog/enable-secure-sudo-access-for-gitlab-remote-development-workspaces",{"_path":3922,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3923,"content":3929,"config":3933,"_id":3935,"_type":16,"title":3936,"_source":17,"_file":3937,"_stem":3938,"_extension":20},"/en-us/blog/provision-group-runners-with-google-cloud-platform-and-gitlab-ci",{"title":3924,"description":3925,"ogTitle":3924,"ogDescription":3925,"noIndex":6,"ogImage":3926,"ogUrl":3927,"ogSiteName":995,"ogType":996,"canonicalUrls":3927,"schema":3928},"Provision group runners with Google Cloud Platform and GitLab CI","This tutorial will teach you how to set up a new group runner on GitLab.com using Google Cloud Platform in less than 10 minutes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098300/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_623844718_4E5Fx1Q0DHikigzCsQWhOG_1750098300048.jpg","https://about.gitlab.com/blog/provision-group-runners-with-google-cloud-platform-and-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Provision group runners with Google Cloud Platform and GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Matthies\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2024-11-19\",\n      }",{"title":3924,"description":3925,"authors":3930,"heroImage":3926,"date":3931,"category":858,"tags":3932},[3399,2997],"2024-11-19",[772,543,2097,110,2889,1730,233],{"slug":3934,"featured":6,"template":736},"provision-group-runners-with-google-cloud-platform-and-gitlab-ci","content:en-us:blog:provision-group-runners-with-google-cloud-platform-and-gitlab-ci.yml","Provision Group Runners With Google Cloud Platform And Gitlab Ci","en-us/blog/provision-group-runners-with-google-cloud-platform-and-gitlab-ci.yml","en-us/blog/provision-group-runners-with-google-cloud-platform-and-gitlab-ci",{"_path":3940,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3941,"content":3946,"config":3950,"_id":3952,"_type":16,"title":3953,"_source":17,"_file":3954,"_stem":3955,"_extension":20},"/en-us/blog/gitlab-webhooks-get-smarter-with-self-healing-capabilities",{"title":3942,"description":3943,"ogTitle":3942,"ogDescription":3943,"noIndex":6,"ogImage":1963,"ogUrl":3944,"ogSiteName":995,"ogType":996,"canonicalUrls":3944,"schema":3945},"GitLab Webhooks get smarter with self-healing capabilities","Introducing changes to webhook self-healing behavior, which reduce manual intervention and improve reliability. Discover the impact on your integrations and how to prepare.","https://about.gitlab.com/blog/gitlab-webhooks-get-smarter-with-self-healing-capabilities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Webhooks get smarter with self-healing capabilities\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Magdalena Frankiewicz\"}],\n        \"datePublished\": \"2024-11-14\",\n      }",{"title":3942,"description":3943,"authors":3947,"heroImage":1963,"date":3948,"category":14,"tags":3949,"updatedDate":2590},[1530],"2024-11-14",[269,3074,543,730],{"slug":3951,"featured":6,"template":736},"gitlab-webhooks-get-smarter-with-self-healing-capabilities","content:en-us:blog:gitlab-webhooks-get-smarter-with-self-healing-capabilities.yml","Gitlab Webhooks Get Smarter With Self Healing Capabilities","en-us/blog/gitlab-webhooks-get-smarter-with-self-healing-capabilities.yml","en-us/blog/gitlab-webhooks-get-smarter-with-self-healing-capabilities",{"_path":3957,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3958,"content":3964,"config":3967,"_id":3969,"_type":16,"title":3970,"_source":17,"_file":3971,"_stem":3972,"_extension":20},"/en-us/blog/what-is-git-the-ultimate-guide-to-gits-role-and-functionality",{"title":3959,"description":3960,"ogTitle":3959,"ogDescription":3960,"noIndex":6,"ogImage":3961,"ogUrl":3962,"ogSiteName":995,"ogType":996,"canonicalUrls":3962,"schema":3963},"What is Git? The ultimate guide to Git's role and functionality","Want to complete your projects with Git? Discover all of Git's benefits and features in our comprehensive guide.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673991/Blog/Hero%20Images/Git.jpg","https://about.gitlab.com/blog/what-is-git-the-ultimate-guide-to-gits-role-and-functionality","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What is Git? The ultimate guide to Git's role and functionality\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2024-11-14\",\n      }",{"title":3959,"description":3960,"authors":3965,"heroImage":3961,"date":3948,"category":1388,"tags":3966},[1000],[1195,574,1265],{"slug":3968,"featured":6,"template":736},"what-is-git-the-ultimate-guide-to-gits-role-and-functionality","content:en-us:blog:what-is-git-the-ultimate-guide-to-gits-role-and-functionality.yml","What Is Git The Ultimate Guide To Gits Role And Functionality","en-us/blog/what-is-git-the-ultimate-guide-to-gits-role-and-functionality.yml","en-us/blog/what-is-git-the-ultimate-guide-to-gits-role-and-functionality",{"_path":3974,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3975,"content":3980,"config":3984,"_id":3986,"_type":16,"title":3987,"_source":17,"_file":3988,"_stem":3989,"_extension":20},"/en-us/blog/gitlab-ultimates-total-economic-impact-483-roi-over-3-years",{"title":3976,"description":3977,"ogTitle":3976,"ogDescription":3977,"noIndex":6,"ogImage":724,"ogUrl":3978,"ogSiteName":995,"ogType":996,"canonicalUrls":3978,"schema":3979},"GitLab Ultimate's total economic impact: 483% ROI over 3 years","A Forrester Consulting study of GitLab Ultimate finds that the DevSecOps platform enhanced security posture with 5x time saved on security-related activities.\n","https://about.gitlab.com/blog/gitlab-ultimates-total-economic-impact-483-roi-over-3-years","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Ultimate's total economic impact: 483% ROI over 3 years\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2024-11-13\",\n      }",{"title":3976,"description":3977,"authors":3981,"heroImage":724,"date":3982,"category":1049,"tags":3983},[2023],"2024-11-13",[543,2025,1049,790],{"slug":3985,"featured":92,"template":736},"gitlab-ultimates-total-economic-impact-483-roi-over-3-years","content:en-us:blog:gitlab-ultimates-total-economic-impact-483-roi-over-3-years.yml","Gitlab Ultimates Total Economic Impact 483 Roi Over 3 Years","en-us/blog/gitlab-ultimates-total-economic-impact-483-roi-over-3-years.yml","en-us/blog/gitlab-ultimates-total-economic-impact-483-roi-over-3-years",{"_path":3991,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":3992,"content":3997,"config":4002,"_id":4004,"_type":16,"title":4005,"_source":17,"_file":4006,"_stem":4007,"_extension":20},"/en-us/blog/kingfisher-transforming-the-developer-experience-with-gitlab",{"title":3993,"description":3994,"ogTitle":3993,"ogDescription":3994,"noIndex":6,"ogImage":1963,"ogUrl":3995,"ogSiteName":995,"ogType":996,"canonicalUrls":3995,"schema":3996},"Kingfisher transforming the developer experience with GitLab","Learn how the international company focuses on DevSecOps, including automation, to reduce complexity in workflows for better efficiency.","https://about.gitlab.com/blog/kingfisher-transforming-the-developer-experience-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Kingfisher transforming the developer experience with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2024-11-12\",\n      }",{"title":3993,"description":3994,"authors":3998,"heroImage":1963,"date":4000,"category":3072,"tags":4001},[3999],"Sharon Gaudin","2024-11-12",[3075,543,574,1335],{"slug":4003,"featured":92,"template":736},"kingfisher-transforming-the-developer-experience-with-gitlab","content:en-us:blog:kingfisher-transforming-the-developer-experience-with-gitlab.yml","Kingfisher Transforming The Developer Experience With Gitlab","en-us/blog/kingfisher-transforming-the-developer-experience-with-gitlab.yml","en-us/blog/kingfisher-transforming-the-developer-experience-with-gitlab",{"_path":4009,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4010,"content":4016,"config":4020,"_id":4022,"_type":16,"title":4023,"_source":17,"_file":4024,"_stem":4025,"_extension":20},"/en-us/blog/tutorial-how-to-set-up-your-first-gitlab-ci-cd-component",{"title":4011,"description":4012,"ogTitle":4011,"ogDescription":4012,"noIndex":6,"ogImage":4013,"ogUrl":4014,"ogSiteName":995,"ogType":996,"canonicalUrls":4014,"schema":4015},"Tutorial: How to set up your first GitLab CI/CD component","Use Python scripts in your GitLab CI/CD pipelines to improve usability. In this step-by-step guide, you'll learn how to get started building your own CI/CD component.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098410/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2826%29_3lH4gZFVIGCndksN6Rlg85_1750098409928.png","https://about.gitlab.com/blog/tutorial-how-to-set-up-your-first-gitlab-ci-cd-component","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: How to set up your first GitLab CI/CD component\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sophia Manicor\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2024-11-12\",\n      }",{"title":4011,"description":4012,"authors":4017,"heroImage":4013,"date":4000,"category":858,"tags":4019},[4018,2997],"Sophia Manicor",[110,772,574,2889],{"slug":4021,"featured":92,"template":736},"tutorial-how-to-set-up-your-first-gitlab-ci-cd-component","content:en-us:blog:tutorial-how-to-set-up-your-first-gitlab-ci-cd-component.yml","Tutorial How To Set Up Your First Gitlab Ci Cd Component","en-us/blog/tutorial-how-to-set-up-your-first-gitlab-ci-cd-component.yml","en-us/blog/tutorial-how-to-set-up-your-first-gitlab-ci-cd-component",{"_path":4027,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4028,"content":4034,"config":4038,"_id":4040,"_type":16,"title":4041,"_source":17,"_file":4042,"_stem":4043,"_extension":20},"/en-us/blog/fast-python-flask-server-deployment-with-gitlab-google-cloud",{"title":4029,"description":4030,"ogTitle":4029,"ogDescription":4030,"noIndex":6,"ogImage":4031,"ogUrl":4032,"ogSiteName":995,"ogType":996,"canonicalUrls":4032,"schema":4033},"Fast Python Flask server deployment with GitLab + Google Cloud","This tutorial shows how to use GitLab’s Google Cloud integration to deploy a Python Flask server in less than 10 minutes, helping developers become more independent and efficient.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098427/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945_fJKX41PJHKCfSOWw4xQxm_1750098427691.png","https://about.gitlab.com/blog/fast-python-flask-server-deployment-with-gitlab-google-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Fast Python Flask server deployment with GitLab + Google Cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Noah Ing\"},{\"@type\":\"Person\",\"name\":\"Jerez Solis\"}],\n        \"datePublished\": \"2024-11-04\",\n      }",{"title":4029,"description":4030,"authors":4035,"heroImage":4031,"date":4036,"category":858,"tags":4037},[2997,2998],"2024-11-04",[772,582,1730,2889],{"slug":4039,"featured":92,"template":736},"fast-python-flask-server-deployment-with-gitlab-google-cloud","content:en-us:blog:fast-python-flask-server-deployment-with-gitlab-google-cloud.yml","Fast Python Flask Server Deployment With Gitlab Google Cloud","en-us/blog/fast-python-flask-server-deployment-with-gitlab-google-cloud.yml","en-us/blog/fast-python-flask-server-deployment-with-gitlab-google-cloud",{"_path":4045,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4046,"content":4052,"config":4056,"_id":4058,"_type":16,"title":4059,"_source":17,"_file":4060,"_stem":4061,"_extension":20},"/en-us/blog/best-practices-to-keep-secrets-out-of-gitlab-repositories",{"title":4047,"description":4048,"ogTitle":4047,"ogDescription":4048,"noIndex":6,"ogImage":4049,"ogUrl":4050,"ogSiteName":995,"ogType":996,"canonicalUrls":4050,"schema":4051},"Best practices to keep secrets out of GitLab repositories","Learn strategies to secure secrets and what to do if secrets are accidentally leaked in a GitLab repository.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665667/Blog/Hero%20Images/built-in-security.jpg","https://about.gitlab.com/blog/best-practices-to-keep-secrets-out-of-gitlab-repositories","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Best practices to keep secrets out of GitLab repositories\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Coons\"}],\n        \"datePublished\": \"2024-10-31\",\n      }",{"title":4047,"description":4048,"authors":4053,"heroImage":4049,"date":4054,"category":790,"tags":4055},[2116],"2024-10-31",[790],{"slug":4057,"featured":92,"template":736},"best-practices-to-keep-secrets-out-of-gitlab-repositories","content:en-us:blog:best-practices-to-keep-secrets-out-of-gitlab-repositories.yml","Best Practices To Keep Secrets Out Of Gitlab Repositories","en-us/blog/best-practices-to-keep-secrets-out-of-gitlab-repositories.yml","en-us/blog/best-practices-to-keep-secrets-out-of-gitlab-repositories",{"_path":4063,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4064,"content":4070,"config":4074,"_id":4076,"_type":16,"title":4077,"_source":17,"_file":4078,"_stem":4079,"_extension":20},"/en-us/blog/3-gitlab-features-to-level-up-devsecops-workflows",{"title":4065,"description":4066,"ogTitle":4065,"ogDescription":4066,"noIndex":6,"ogImage":4067,"ogUrl":4068,"ogSiteName":995,"ogType":996,"canonicalUrls":4068,"schema":4069},"3 GitLab features to level up DevSecOps workflows","Fix broken pipelines faster, better understand security vulnerabilities, and filter out false positives with our latest platform improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665762/Blog/Hero%20Images/blog-gl17-release-hero-17-0-93-1800x945-fy25__1_.png","https://about.gitlab.com/blog/3-gitlab-features-to-level-up-devsecops-workflows","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 GitLab features to level up DevSecOps workflows\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Salman Ladha\"}],\n        \"datePublished\": \"2024-10-29\",\n      }",{"title":4065,"description":4066,"authors":4071,"heroImage":4067,"date":4072,"category":731,"tags":4073},[787],"2024-10-29",[731,730,574,790,110],{"slug":4075,"featured":92,"template":736},"3-gitlab-features-to-level-up-devsecops-workflows","content:en-us:blog:3-gitlab-features-to-level-up-devsecops-workflows.yml","3 Gitlab Features To Level Up Devsecops Workflows","en-us/blog/3-gitlab-features-to-level-up-devsecops-workflows.yml","en-us/blog/3-gitlab-features-to-level-up-devsecops-workflows",{"_path":4081,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4082,"content":4088,"config":4092,"_id":4094,"_type":16,"title":4095,"_source":17,"_file":4096,"_stem":4097,"_extension":20},"/en-us/blog/introducing-the-source-insights-for-the-future-of-software-development",{"title":4083,"description":4084,"ogTitle":4083,"ogDescription":4084,"noIndex":6,"ogImage":4085,"ogUrl":4086,"ogSiteName":995,"ogType":996,"canonicalUrls":4086,"schema":4087},"Introducing The Source: Insights for the future of software development","Explore our new publication for transformative software development strategies and expert advice on emerging technologies.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674616/Blog/Hero%20Images/blog-image-template-1800x945__1_.png","https://about.gitlab.com/blog/introducing-the-source-insights-for-the-future-of-software-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing The Source: Insights for the future of software development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chandler Gibbons\"}],\n        \"datePublished\": \"2024-10-29\",\n      }",{"title":4083,"description":4084,"authors":4089,"heroImage":4085,"date":4072,"category":1049,"tags":4091},[4090],"Chandler Gibbons",[728,790,1049,574],{"slug":4093,"featured":92,"template":736},"introducing-the-source-insights-for-the-future-of-software-development","content:en-us:blog:introducing-the-source-insights-for-the-future-of-software-development.yml","Introducing The Source Insights For The Future Of Software Development","en-us/blog/introducing-the-source-insights-for-the-future-of-software-development.yml","en-us/blog/introducing-the-source-insights-for-the-future-of-software-development",{"_path":4099,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4100,"content":4106,"config":4111,"_id":4113,"_type":16,"title":4114,"_source":17,"_file":4115,"_stem":4116,"_extension":20},"/en-us/blog/new-cis-gitlab-benchmark-scanner-boosts-security-and-compliance",{"title":4101,"description":4102,"ogTitle":4101,"ogDescription":4102,"noIndex":6,"ogImage":4103,"ogUrl":4104,"ogSiteName":995,"ogType":996,"canonicalUrls":4104,"schema":4105},"New CIS GitLab Benchmark scanner boosts security and compliance","GitLab's gitlabcis scanner determines level of compliance for GitLab projects. Learn how to install and use the tool with this tutorial, as well as what's on the roadmap.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664530/Blog/Hero%20Images/AdobeStock_282096522.jpg","https://about.gitlab.com/blog/new-cis-gitlab-benchmark-scanner-boosts-security-and-compliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New CIS GitLab Benchmark scanner boosts security and compliance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mitra Jozenazemian\"},{\"@type\":\"Person\",\"name\":\"Neil McDonald\"},{\"@type\":\"Person\",\"name\":\"Nate Rosandich\"}],\n        \"datePublished\": \"2024-10-29\",\n      }",{"title":4101,"description":4102,"authors":4107,"heroImage":4103,"date":4072,"category":790,"tags":4110},[2208,4108,4109],"Neil McDonald","Nate Rosandich",[790,730,574],{"slug":4112,"featured":6,"template":736},"new-cis-gitlab-benchmark-scanner-boosts-security-and-compliance","content:en-us:blog:new-cis-gitlab-benchmark-scanner-boosts-security-and-compliance.yml","New Cis Gitlab Benchmark Scanner Boosts Security And Compliance","en-us/blog/new-cis-gitlab-benchmark-scanner-boosts-security-and-compliance.yml","en-us/blog/new-cis-gitlab-benchmark-scanner-boosts-security-and-compliance",{"_path":4118,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4119,"content":4124,"config":4128,"_id":4130,"_type":16,"title":4131,"_source":17,"_file":4132,"_stem":4133,"_extension":20},"/en-us/blog/5-things-to-know-from-our-linkedin-live-security-deep-dive",{"title":4120,"description":4121,"ogTitle":4120,"ogDescription":4121,"noIndex":6,"ogImage":979,"ogUrl":4122,"ogSiteName":995,"ogType":996,"canonicalUrls":4122,"schema":4123},"5 things to know from our LinkedIn Live Security Deep Dive","Security experts and product leaders offered their take on new developments in application security and the latest from GitLab 17.5.","https://about.gitlab.com/blog/5-things-to-know-from-our-linkedin-live-security-deep-dive","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 things to know from our LinkedIn Live Security Deep Dive\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2024-10-28\",\n      }",{"title":4120,"description":4121,"authors":4125,"heroImage":979,"date":4126,"category":790,"tags":4127},[1439],"2024-10-28",[728,790,3721,574,730],{"slug":4129,"featured":92,"template":736},"5-things-to-know-from-our-linkedin-live-security-deep-dive","content:en-us:blog:5-things-to-know-from-our-linkedin-live-security-deep-dive.yml","5 Things To Know From Our Linkedin Live Security Deep Dive","en-us/blog/5-things-to-know-from-our-linkedin-live-security-deep-dive.yml","en-us/blog/5-things-to-know-from-our-linkedin-live-security-deep-dive",{"_path":4135,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4136,"content":4142,"config":4146,"_id":4148,"_type":16,"title":4149,"_source":17,"_file":4150,"_stem":4151,"_extension":20},"/en-us/blog/quick-vulnerability-remediation-with-gitlab-advanced-sast-duo-ai",{"title":4137,"description":4138,"ogTitle":4137,"ogDescription":4138,"noIndex":6,"ogImage":4139,"ogUrl":4140,"ogSiteName":995,"ogType":996,"canonicalUrls":4140,"schema":4141},"Quick vulnerability remediation with GitLab Advanced SAST + Duo AI ","Shorten your mean time to remediation by pairing Advanced SAST and artificial intelligence. This detailed demo shows you how.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098458/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945_24mPf16vAPHORs3d9y62q_1750098458538.png","https://about.gitlab.com/blog/quick-vulnerability-remediation-with-gitlab-advanced-sast-duo-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Quick vulnerability remediation with GitLab Advanced SAST + Duo AI \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-10-22\",\n      }",{"title":4137,"description":4138,"authors":4143,"heroImage":4139,"date":4144,"category":769,"tags":4145},[1097],"2024-10-22",[728,790,772,730,543],{"slug":4147,"featured":92,"template":736},"quick-vulnerability-remediation-with-gitlab-advanced-sast-duo-ai","content:en-us:blog:quick-vulnerability-remediation-with-gitlab-advanced-sast-duo-ai.yml","Quick Vulnerability Remediation With Gitlab Advanced Sast Duo Ai","en-us/blog/quick-vulnerability-remediation-with-gitlab-advanced-sast-duo-ai.yml","en-us/blog/quick-vulnerability-remediation-with-gitlab-advanced-sast-duo-ai",{"_path":4153,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4154,"content":4160,"config":4164,"_id":4166,"_type":16,"title":4167,"_source":17,"_file":4168,"_stem":4169,"_extension":20},"/en-us/blog/guide-to-rest-api",{"title":4155,"description":4156,"ogTitle":4155,"ogDescription":4156,"noIndex":6,"ogImage":4157,"ogUrl":4158,"ogSiteName":995,"ogType":996,"canonicalUrls":4158,"schema":4159},"Guide to REST API","Learn what REST API is, how it works, and what its benefit is in software development. Also find out the underlying principles of this important technology.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098516/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945_2N8JxZDeeDLlzrsJ4boteB_1750098516673.png","https://about.gitlab.com/blog/guide-to-rest-api","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Guide to REST API\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2024-10-18\",\n      }",{"title":4155,"description":4156,"authors":4161,"heroImage":4157,"date":4162,"category":858,"tags":4163},[1000],"2024-10-18",[233,564],{"slug":4165,"featured":6,"template":736},"guide-to-rest-api","content:en-us:blog:guide-to-rest-api.yml","Guide To Rest Api","en-us/blog/guide-to-rest-api.yml","en-us/blog/guide-to-rest-api",{"_path":4171,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4172,"content":4178,"config":4183,"_id":4185,"_type":16,"title":4186,"_source":17,"_file":4187,"_stem":4188,"_extension":20},"/en-us/blog/use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project",{"title":4173,"description":4174,"ogTitle":4173,"ogDescription":4174,"noIndex":6,"ogImage":4175,"ogUrl":4176,"ogSiteName":995,"ogType":996,"canonicalUrls":4176,"schema":4177},"Use GitLab Duo to build and deploy a simple Quarkus-native project","This tutorial shows how a Java application is compiled to machine code and deployed to a Kubernetes cluster using a CI/CD pipeline. See how AI makes the process faster and more efficient.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666069/Blog/Hero%20Images/AdobeStock_639935439.jpg","https://about.gitlab.com/blog/use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Use GitLab Duo to build and deploy a simple Quarkus-native project\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2024-10-17\",\n      }",{"title":4173,"description":4174,"authors":4179,"heroImage":4175,"date":4180,"category":769,"tags":4181},[767],"2024-10-17",[728,772,574,4182,730,731,110],"demo",{"slug":4184,"featured":92,"template":736},"use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project","content:en-us:blog:use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project.yml","Use Gitlab Duo To Build And Deploy A Simple Quarkus Native Project","en-us/blog/use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project.yml","en-us/blog/use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project",{"_path":4190,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4191,"content":4197,"config":4201,"_id":4203,"_type":16,"title":4204,"_source":17,"_file":4205,"_stem":4206,"_extension":20},"/en-us/blog/how-to-include-file-references-in-your-ci-cd-components",{"title":4192,"description":4193,"ogTitle":4192,"ogDescription":4193,"noIndex":6,"ogImage":4194,"ogUrl":4195,"ogSiteName":995,"ogType":996,"canonicalUrls":4195,"schema":4196},"How to include file references in your CI/CD components","Learn how to include scripts and dependencies in your CI/CD components to minimize duplications and simplify maintenance. This tutorial takes you step-by-step through the process.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664595/Blog/Hero%20Images/blog-image-template-1800x945__9_.png","https://about.gitlab.com/blog/how-to-include-file-references-in-your-ci-cd-components","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to include file references in your CI/CD components\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2024-10-16\",\n      }",{"title":4192,"description":4193,"authors":4198,"heroImage":4194,"date":4199,"category":731,"tags":4200},[1016],"2024-10-16",[110,564,730,731],{"slug":4202,"featured":6,"template":736},"how-to-include-file-references-in-your-ci-cd-components","content:en-us:blog:how-to-include-file-references-in-your-ci-cd-components.yml","How To Include File References In Your Ci Cd Components","en-us/blog/how-to-include-file-references-in-your-ci-cd-components.yml","en-us/blog/how-to-include-file-references-in-your-ci-cd-components",{"_path":4208,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4209,"content":4215,"config":4222,"_id":4224,"_type":16,"title":4225,"_source":17,"_file":4226,"_stem":4227,"_extension":20},"/en-us/blog/gitlab-dark-mode-is-getting-a-new-look",{"title":4210,"description":4211,"ogTitle":4210,"ogDescription":4211,"noIndex":6,"ogImage":4212,"ogUrl":4213,"ogSiteName":995,"ogType":996,"canonicalUrls":4213,"schema":4214},"GitLab dark mode is getting a new look","GitLab is enhancing dark mode for a cleaner, more polished experience, with incremental updates to improve usability and visual consistency. Get a sneak peek at this new design.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098523/Blog/Hero%20Images/Blog/Hero%20Images/hero%20%282%29_7nhIrZ08jWcLxhaH9rfbk1_1750098523498.png","https://about.gitlab.com/blog/gitlab-dark-mode-is-getting-a-new-look","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab dark mode is getting a new look\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sascha Eggenberger\"},{\"@type\":\"Person\",\"name\":\"Chris Micek\"},{\"@type\":\"Person\",\"name\":\"Jeremy Elder\"}],\n        \"datePublished\": \"2024-10-15\",\n      }",{"title":4210,"description":4211,"authors":4216,"heroImage":4212,"date":4220,"category":731,"tags":4221},[4217,4218,4219],"Sascha Eggenberger","Chris Micek","Jeremy Elder","2024-10-15",[2702,2703,731,543],{"slug":4223,"featured":92,"template":736},"gitlab-dark-mode-is-getting-a-new-look","content:en-us:blog:gitlab-dark-mode-is-getting-a-new-look.yml","Gitlab Dark Mode Is Getting A New Look","en-us/blog/gitlab-dark-mode-is-getting-a-new-look.yml","en-us/blog/gitlab-dark-mode-is-getting-a-new-look",{"_path":4229,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4230,"content":4235,"config":4240,"_id":4242,"_type":16,"title":4243,"_source":17,"_file":4244,"_stem":4245,"_extension":20},"/en-us/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale",{"title":4231,"description":4232,"ogTitle":4231,"ogDescription":4232,"noIndex":6,"ogImage":2956,"ogUrl":4233,"ogSiteName":995,"ogType":996,"canonicalUrls":4233,"schema":4234},"Seamlessly migrate from Jira to GitLab with Jira2Lab at scale","Discover how Jira2GitLab simplifies large-scale Jira-to-GitLab migrations by handling complex data transfers, improving scalability, and ensuring efficient integration.","https://about.gitlab.com/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Seamlessly migrate from Jira to GitLab with Jira2Lab at scale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Maximilien Belinga\"}],\n        \"datePublished\": \"2024-10-10\",\n      }",{"title":4231,"description":4232,"authors":4236,"heroImage":2956,"date":4238,"category":726,"tags":4239},[4237],"Maximilien Belinga","2024-10-10",[729,110,574,730,731],{"slug":4241,"featured":92,"template":736},"seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale","content:en-us:blog:seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale.yml","Seamlessly Migrate From Jira To Gitlab With Jira2lab At Scale","en-us/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale.yml","en-us/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale",{"_path":4247,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4248,"content":4254,"config":4259,"_id":4261,"_type":16,"title":4262,"_source":17,"_file":4263,"_stem":4264,"_extension":20},"/en-us/blog/tutorial-integrate-gitlab-merge-request-approvals-with-external-systems",{"title":4249,"description":4250,"ogTitle":4249,"ogDescription":4250,"noIndex":6,"ogImage":4251,"ogUrl":4252,"ogSiteName":995,"ogType":996,"canonicalUrls":4252,"schema":4253},"Tutorial: Integrate GitLab Merge Request approvals with external systems","Learn how to improve GitLab extensibility and integration with external applications in this demo. The result: a seamless integration that provides more control over merge requests.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749676011/Blog/Hero%20Images/blog-image-template-1800x945.svg","https://about.gitlab.com/blog/tutorial-integrate-gitlab-merge-request-approvals-with-external-systems","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Integrate GitLab Merge Request approvals with external systems\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Samer Akkoub\"}],\n        \"datePublished\": \"2024-10-08\",\n      }",{"title":4249,"description":4250,"authors":4255,"heroImage":4251,"date":4257,"category":731,"tags":4258},[4256],"Samer Akkoub","2024-10-08",[772,731,730,110],{"slug":4260,"featured":6,"template":736},"tutorial-integrate-gitlab-merge-request-approvals-with-external-systems","content:en-us:blog:tutorial-integrate-gitlab-merge-request-approvals-with-external-systems.yml","Tutorial Integrate Gitlab Merge Request Approvals With External Systems","en-us/blog/tutorial-integrate-gitlab-merge-request-approvals-with-external-systems.yml","en-us/blog/tutorial-integrate-gitlab-merge-request-approvals-with-external-systems",{"_path":4266,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4267,"content":4272,"config":4276,"_id":4278,"_type":16,"title":4279,"_source":17,"_file":4280,"_stem":4281,"_extension":20},"/en-us/blog/whats-new-in-git-2-47-0",{"title":4268,"description":4269,"ogTitle":4268,"ogDescription":4269,"noIndex":6,"ogImage":3413,"ogUrl":4270,"ogSiteName":995,"ogType":996,"canonicalUrls":4270,"schema":4271},"What's new in Git 2.47.0?","Learn about the latest version of Git, including new global variables to configure reference and object hash formats. Discover contributions from GitLab's Git team and the wider Git community.","https://about.gitlab.com/blog/whats-new-in-git-2-47-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What's new in Git 2.47.0?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Justin Tobler\"}],\n        \"datePublished\": \"2024-10-07\",\n      }",{"title":4268,"description":4269,"authors":4273,"heroImage":3413,"date":4274,"category":1388,"tags":4275},[1893],"2024-10-07",[1195,1265,269],{"slug":4277,"featured":92,"template":736},"whats-new-in-git-2-47-0","content:en-us:blog:whats-new-in-git-2-47-0.yml","Whats New In Git 2 47 0","en-us/blog/whats-new-in-git-2-47-0.yml","en-us/blog/whats-new-in-git-2-47-0",{"_path":4283,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4284,"content":4290,"config":4295,"_id":4297,"_type":16,"title":4298,"_source":17,"_file":4299,"_stem":4300,"_extension":20},"/en-us/blog/gitlab-duo-chat-get-to-know-productivity-boosting-ai-enhancements",{"title":4285,"description":4286,"ogTitle":4285,"ogDescription":4286,"noIndex":6,"ogImage":4287,"ogUrl":4288,"ogSiteName":995,"ogType":996,"canonicalUrls":4288,"schema":4289},"GitLab Duo Chat: Get to know productivity-boosting AI enhancements","Learn about Chat's new capabilities, including migration to Claude 3.5 Sonnet, new slash command helpers, and the integration of Root Cause Analysis and Explain Vulnerability features.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098629/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%281%29_77JeTV9gAmbXM0224acirV_1750098628882.png","https://about.gitlab.com/blog/gitlab-duo-chat-get-to-know-productivity-boosting-ai-enhancements","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Chat: Get to know productivity-boosting AI enhancements\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jannik Lehmann\"},{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-10-03\",\n      }",{"title":4285,"description":4286,"authors":4291,"heroImage":4287,"date":4293,"category":769,"tags":4294},[4292,3053],"Jannik Lehmann","2024-10-03",[728,574,730,731],{"slug":4296,"featured":6,"template":736},"gitlab-duo-chat-get-to-know-productivity-boosting-ai-enhancements","content:en-us:blog:gitlab-duo-chat-get-to-know-productivity-boosting-ai-enhancements.yml","Gitlab Duo Chat Get To Know Productivity Boosting Ai Enhancements","en-us/blog/gitlab-duo-chat-get-to-know-productivity-boosting-ai-enhancements.yml","en-us/blog/gitlab-duo-chat-get-to-know-productivity-boosting-ai-enhancements",{"_path":4302,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4303,"content":4309,"config":4314,"_id":4316,"_type":16,"title":4317,"_source":17,"_file":4318,"_stem":4319,"_extension":20},"/en-us/blog/how-we-designed-the-gitlab-reference-architectures",{"title":4304,"description":4305,"ogTitle":4304,"ogDescription":4305,"noIndex":6,"ogImage":4306,"ogUrl":4307,"ogSiteName":995,"ogType":996,"canonicalUrls":4307,"schema":4308},"How we designed the GitLab Reference Architectures","Take a look back with us as we dive into our Reference Architectures design journey to help users easily deploy GitLab at scale. Learn our goals, process, and what's happened in the five years since.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098651/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%282%29_52vS9ne2Hu3TElOeHep0AF_1750098651525.png","https://about.gitlab.com/blog/how-we-designed-the-gitlab-reference-architectures","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we designed the GitLab Reference Architectures\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grant Young\"}],\n        \"datePublished\": \"2024-10-02\",\n      }",{"title":4304,"description":4305,"authors":4310,"heroImage":4306,"date":4312,"category":858,"tags":4313},[4311],"Grant Young","2024-10-02",[2097,574,1988,1569,3075],{"slug":4315,"featured":92,"template":736},"how-we-designed-the-gitlab-reference-architectures","content:en-us:blog:how-we-designed-the-gitlab-reference-architectures.yml","How We Designed The Gitlab Reference Architectures","en-us/blog/how-we-designed-the-gitlab-reference-architectures.yml","en-us/blog/how-we-designed-the-gitlab-reference-architectures",{"_path":4321,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4322,"content":4328,"config":4333,"_id":4335,"_type":16,"title":4336,"_source":17,"_file":4337,"_stem":4338,"_extension":20},"/en-us/blog/why-gitlab-is-deprecating-compliance-pipelines-in-favor-of-security-policies",{"title":4323,"description":4324,"ogTitle":4323,"ogDescription":4324,"noIndex":6,"ogImage":4325,"ogUrl":4326,"ogSiteName":995,"ogType":996,"canonicalUrls":4326,"schema":4327},"GitLab moves from compliance pipelines to security policies","Learn about our decision to deprecate compliance pipelines and how to migrate to pipeline execution policies. The process is detailed in this tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098128/Blog/Hero%20Images/Blog/Hero%20Images/security-checklist_security-checklist.png_1750098128272.png","https://about.gitlab.com/blog/why-gitlab-is-deprecating-compliance-pipelines-in-favor-of-security-policies","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab is deprecating compliance pipelines in favor of security policies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ian Khor\"}],\n        \"datePublished\": \"2024-10-01\",\n      }",{"title":4329,"description":4324,"authors":4330,"heroImage":4325,"date":4331,"category":790,"tags":4332},"Why GitLab is deprecating compliance pipelines in favor of security policies",[2355],"2024-10-01",[790,772,574,110],{"slug":4334,"featured":92,"template":736},"why-gitlab-is-deprecating-compliance-pipelines-in-favor-of-security-policies","content:en-us:blog:why-gitlab-is-deprecating-compliance-pipelines-in-favor-of-security-policies.yml","Why Gitlab Is Deprecating Compliance Pipelines In Favor Of Security Policies","en-us/blog/why-gitlab-is-deprecating-compliance-pipelines-in-favor-of-security-policies.yml","en-us/blog/why-gitlab-is-deprecating-compliance-pipelines-in-favor-of-security-policies",{"_path":4340,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4341,"content":4347,"config":4351,"_id":4353,"_type":16,"title":4354,"_source":17,"_file":4355,"_stem":4356,"_extension":20},"/en-us/blog/what-is-gitflow",{"title":4342,"description":4343,"ogTitle":4342,"ogDescription":4343,"noIndex":6,"ogImage":4344,"ogUrl":4345,"ogSiteName":995,"ogType":996,"canonicalUrls":4345,"schema":4346},"What is GitFlow?","This article introduces the differences between GitFlow and GitLab Flow, explains what GitFlow is, how it works, its benefits, and answers frequently asked questions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659838/Blog/Hero%20Images/AdobeStock_662057734.jpg","https://about.gitlab.com/blog/what-is-gitflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What is GitFlow?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2024-09-27\",\n      }",{"title":4342,"description":4343,"authors":4348,"heroImage":4344,"date":4349,"category":1388,"tags":4350},[2094],"2024-09-27",[1195,1265],{"slug":4352,"featured":6,"template":736},"what-is-gitflow","content:en-us:blog:what-is-gitflow.yml","What Is Gitflow","en-us/blog/what-is-gitflow.yml","en-us/blog/what-is-gitflow",{"_path":4358,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4359,"content":4365,"config":4369,"_id":4371,"_type":16,"title":4372,"_source":17,"_file":4373,"_stem":4374,"_extension":20},"/en-us/blog/using-child-pipelines-to-continuously-deploy-to-five-environments",{"title":4360,"description":4361,"ogTitle":4360,"ogDescription":4361,"noIndex":6,"ogImage":4362,"ogUrl":4363,"ogSiteName":995,"ogType":996,"canonicalUrls":4363,"schema":4364},"Using child pipelines to continuously deploy to five environments","Learn how to manage continuous deployment to multiple environments, including temporary, on-the-fly sandboxes, with a minimalist GitLab workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097012/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_397632156_3Ldy1urjMStQCl4qnOBvE0_1750097011626.jpg","https://about.gitlab.com/blog/using-child-pipelines-to-continuously-deploy-to-five-environments","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using child pipelines to continuously deploy to five environments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Olivier Dupré\"}],\n        \"datePublished\": \"2024-09-26\",\n      }",{"title":4360,"description":4361,"authors":4366,"heroImage":4362,"date":4367,"category":858,"tags":4368},[1458],"2024-09-26",[110,2097,2098,543,772],{"slug":4370,"featured":6,"template":736},"using-child-pipelines-to-continuously-deploy-to-five-environments","content:en-us:blog:using-child-pipelines-to-continuously-deploy-to-five-environments.yml","Using Child Pipelines To Continuously Deploy To Five Environments","en-us/blog/using-child-pipelines-to-continuously-deploy-to-five-environments.yml","en-us/blog/using-child-pipelines-to-continuously-deploy-to-five-environments",{"_path":4376,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4377,"content":4383,"config":4387,"_id":4389,"_type":16,"title":4390,"_source":17,"_file":4391,"_stem":4392,"_extension":20},"/en-us/blog/5-ways-gitlab-duo-chat-ai-can-supercharge-product-management",{"title":4378,"description":4379,"ogTitle":4378,"ogDescription":4379,"noIndex":6,"ogImage":4380,"ogUrl":4381,"ogSiteName":995,"ogType":996,"canonicalUrls":4381,"schema":4382},"5 ways GitLab Duo Chat AI can supercharge product management","Discover how to transform all aspects of product management, boosting efficiency and improving decision-making. Learn practical tips for leveraging AI throughout your PM workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666405/Blog/Hero%20Images/GitLab_Duo_Blog_Hero_1800x945_r2_B__1_.png","https://about.gitlab.com/blog/5-ways-gitlab-duo-chat-ai-can-supercharge-product-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 ways GitLab Duo Chat AI can supercharge product management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2024-09-25\",\n      }",{"title":4378,"description":4379,"authors":4384,"heroImage":4380,"date":4385,"category":769,"tags":4386},[907],"2024-09-25",[728,731,1335],{"slug":4388,"featured":92,"template":736},"5-ways-gitlab-duo-chat-ai-can-supercharge-product-management","content:en-us:blog:5-ways-gitlab-duo-chat-ai-can-supercharge-product-management.yml","5 Ways Gitlab Duo Chat Ai Can Supercharge Product Management","en-us/blog/5-ways-gitlab-duo-chat-ai-can-supercharge-product-management.yml","en-us/blog/5-ways-gitlab-duo-chat-ai-can-supercharge-product-management",{"_path":4394,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4395,"content":4400,"config":4404,"_id":4406,"_type":16,"title":4407,"_source":17,"_file":4408,"_stem":4409,"_extension":20},"/en-us/blog/git-pull-vs-git-fetch-whats-the-difference",{"title":4396,"description":4397,"ogTitle":4396,"ogDescription":4397,"noIndex":6,"ogImage":3571,"ogUrl":4398,"ogSiteName":995,"ogType":996,"canonicalUrls":4398,"schema":4399},"Git pull vs. git fetch: What's the difference? ","Git pull is a Git command that performs both git fetch and git merge simultaneously. This article outlines the characteristics and appropriate uses of each.","https://about.gitlab.com/blog/git-pull-vs-git-fetch-whats-the-difference","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git pull vs. git fetch: What's the difference? \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2024-09-24\",\n      }",{"title":4396,"description":4397,"authors":4401,"heroImage":3571,"date":4402,"category":1388,"tags":4403},[1000],"2024-09-24",[1195,1265],{"slug":4405,"featured":6,"template":736},"git-pull-vs-git-fetch-whats-the-difference","content:en-us:blog:git-pull-vs-git-fetch-whats-the-difference.yml","Git Pull Vs Git Fetch Whats The Difference","en-us/blog/git-pull-vs-git-fetch-whats-the-difference.yml","en-us/blog/git-pull-vs-git-fetch-whats-the-difference",{"_path":4411,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4412,"content":4418,"config":4424,"_id":4426,"_type":16,"title":4427,"_source":17,"_file":4428,"_stem":4429,"_extension":20},"/en-us/blog/gitlab-pages-features-review-apps-and-multiple-website-deployment",{"title":4413,"description":4414,"ogTitle":4413,"ogDescription":4414,"noIndex":6,"ogImage":4415,"ogUrl":4416,"ogSiteName":995,"ogType":996,"canonicalUrls":4416,"schema":4417},"GitLab Pages features review apps and multiple website deployment","GitLab Pages helps organizations reap the rewards of knowledge management, including better collaboration and accessibility. Learn how to use a new feature, Parallel Deployments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674550/Blog/Hero%20Images/blog-image-template-1800x945__1_.png","https://about.gitlab.com/blog/gitlab-pages-features-review-apps-and-multiple-website-deployment","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Pages features review apps and multiple website deployment\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matthew Macfarlane\"},{\"@type\":\"Person\",\"name\":\"Janis Altherr\"}],\n        \"datePublished\": \"2024-09-23\",\n      }",{"title":4413,"description":4414,"authors":4419,"heroImage":4415,"date":4421,"category":731,"tags":4422,"updatedDate":4423},[1330,4420],"Janis Altherr","2024-09-23",[729,110,574,730,731,772],"2025-04-09",{"slug":4425,"featured":6,"template":736},"gitlab-pages-features-review-apps-and-multiple-website-deployment","content:en-us:blog:gitlab-pages-features-review-apps-and-multiple-website-deployment.yml","Gitlab Pages Features Review Apps And Multiple Website Deployment","en-us/blog/gitlab-pages-features-review-apps-and-multiple-website-deployment.yml","en-us/blog/gitlab-pages-features-review-apps-and-multiple-website-deployment",{"_path":4431,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4432,"content":4438,"config":4443,"_id":4445,"_type":16,"title":4446,"_source":17,"_file":4447,"_stem":4448,"_extension":20},"/en-us/blog/gitlab-advanced-sast-is-now-generally-available",{"title":4433,"description":4434,"ogTitle":4433,"ogDescription":4434,"noIndex":6,"ogImage":4435,"ogUrl":4436,"ogSiteName":995,"ogType":996,"canonicalUrls":4436,"schema":4437},"GitLab Advanced SAST is now generally available","Reduce false positives, shorten remediation time, and improve development velocity with a proprietary solution built into GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665917/Blog/Hero%20Images/blog-advanced-sast-creative-imagery-0390-1800x945-fy25.png","https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Advanced SAST is now generally available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Salman Ladha\"},{\"@type\":\"Person\",\"name\":\"Connor Gilbert\"}],\n        \"datePublished\": \"2024-09-19\",\n      }",{"title":4433,"description":4434,"authors":4439,"heroImage":4435,"date":4441,"category":790,"tags":4442},[787,4440],"Connor Gilbert","2024-09-19",[790,1049,730,574,731],{"slug":4444,"featured":92,"template":736},"gitlab-advanced-sast-is-now-generally-available","content:en-us:blog:gitlab-advanced-sast-is-now-generally-available.yml","Gitlab Advanced Sast Is Now Generally Available","en-us/blog/gitlab-advanced-sast-is-now-generally-available.yml","en-us/blog/gitlab-advanced-sast-is-now-generally-available",{"_path":4450,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4451,"content":4457,"config":4462,"_id":4464,"_type":16,"title":4465,"_source":17,"_file":4466,"_stem":4467,"_extension":20},"/en-us/blog/gitlab-linux-package-being-upgraded-to-openssl-3",{"title":4452,"description":4453,"ogTitle":4452,"ogDescription":4453,"noIndex":6,"ogImage":4454,"ogUrl":4455,"ogSiteName":995,"ogType":996,"canonicalUrls":4455,"schema":4456},"GitLab Linux package being upgraded to OpenSSL 3 in GitLab 17.7","OpenSSL 1 is now end-of-life. Learn which GitLab instances will be impacted, and how to update your external endpoints to support OpenSSL 3.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749676004/Blog/Hero%20Images/blog-image-template-1800x945__6_.png","https://about.gitlab.com/blog/gitlab-linux-package-being-upgraded-to-openssl-3","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Linux package being upgraded to OpenSSL 3 in GitLab 17.7\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dilan Orrino\"}],\n        \"datePublished\": \"2024-09-18\",\n      }",{"title":4452,"description":4453,"authors":4458,"heroImage":4454,"date":4460,"category":14,"tags":4461},[4459],"Dilan Orrino","2024-09-18",[790,731],{"slug":4463,"featured":6,"template":736},"gitlab-linux-package-being-upgraded-to-openssl-3","content:en-us:blog:gitlab-linux-package-being-upgraded-to-openssl-3.yml","Gitlab Linux Package Being Upgraded To Openssl 3","en-us/blog/gitlab-linux-package-being-upgraded-to-openssl-3.yml","en-us/blog/gitlab-linux-package-being-upgraded-to-openssl-3",{"_path":4469,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4470,"content":4476,"config":4481,"_id":4483,"_type":16,"title":4484,"_source":17,"_file":4485,"_stem":4486,"_extension":20},"/en-us/blog/navigate-application-architecture-drift-and-organizational-alignment",{"title":4471,"description":4472,"ogTitle":4471,"ogDescription":4472,"noIndex":6,"ogImage":4473,"ogUrl":4474,"ogSiteName":995,"ogType":996,"canonicalUrls":4474,"schema":4475},"Navigate application architecture drift and organizational alignment","Explore how to manage architecture drift by balancing simplification and team realignment using the FINE Analysis. Ensure efficiency and agility throughout an application's lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749676151/Blog/Hero%20Images/navigation.jpg","https://about.gitlab.com/blog/navigate-application-architecture-drift-and-organizational-alignment","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Navigate application architecture drift and organizational alignment\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stephen Walters\"},{\"@type\":\"Person\",\"name\":\"Lee Faus\"}],\n        \"datePublished\": \"2024-09-18\",\n      }",{"title":4471,"description":4472,"authors":4477,"heroImage":4473,"date":4460,"category":858,"tags":4480},[4478,4479],"Stephen Walters","Lee Faus",[574,2702],{"slug":4482,"featured":92,"template":736},"navigate-application-architecture-drift-and-organizational-alignment","content:en-us:blog:navigate-application-architecture-drift-and-organizational-alignment.yml","Navigate Application Architecture Drift And Organizational Alignment","en-us/blog/navigate-application-architecture-drift-and-organizational-alignment.yml","en-us/blog/navigate-application-architecture-drift-and-organizational-alignment",{"_path":4488,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4489,"content":4494,"config":4500,"_id":4502,"_type":16,"title":4503,"_source":17,"_file":4504,"_stem":4505,"_extension":20},"/en-us/blog/build-an-ml-app-pipeline-with-gitlab-model-registry-using-mlflow",{"title":4490,"description":4491,"ogTitle":4490,"ogDescription":4491,"noIndex":6,"ogImage":3501,"ogUrl":4492,"ogSiteName":995,"ogType":996,"canonicalUrls":4492,"schema":4493},"Build an ML app pipeline with GitLab Model Registry using MLflow","Learn how to manage your ML apps entirely through GitLab with this tutorial. Also discover the role machine learning operations, or MLOps, plays in automating the DevSecOps lifecycle.","https://about.gitlab.com/blog/build-an-ml-app-pipeline-with-gitlab-model-registry-using-mlflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Build an ML app pipeline with GitLab Model Registry using MLflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gufran Yeşilyurt, OBSS\"},{\"@type\":\"Person\",\"name\":\"Péter Bozsó\"}],\n        \"datePublished\": \"2024-09-17\",\n      }",{"title":4490,"description":4491,"authors":4495,"heroImage":3501,"date":4498,"category":769,"tags":4499},[4496,4497],"Gufran Yeşilyurt, OBSS","Péter Bozsó","2024-09-17",[728,772,110,284],{"slug":4501,"featured":92,"template":736},"build-an-ml-app-pipeline-with-gitlab-model-registry-using-mlflow","content:en-us:blog:build-an-ml-app-pipeline-with-gitlab-model-registry-using-mlflow.yml","Build An Ml App Pipeline With Gitlab Model Registry Using Mlflow","en-us/blog/build-an-ml-app-pipeline-with-gitlab-model-registry-using-mlflow.yml","en-us/blog/build-an-ml-app-pipeline-with-gitlab-model-registry-using-mlflow",{"_path":4507,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4508,"content":4514,"config":4519,"_id":4521,"_type":16,"title":4522,"_source":17,"_file":4523,"_stem":4524,"_extension":20},"/en-us/blog/building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features",{"title":4509,"description":4510,"ogTitle":4509,"ogDescription":4510,"noIndex":6,"ogImage":4511,"ogUrl":4512,"ogSiteName":995,"ogType":996,"canonicalUrls":4512,"schema":4513},"Building GitLab with GitLab: A multi-region service to deliver AI features","Discover how we built our first multi-region deployment for teams at GitLab using the platform's many features, helping create a frictionless developer experience for GitLab Duo users.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098664/Blog/Hero%20Images/Blog/Hero%20Images/building-gitlab-with-gitlab-no-type_building-gitlab-with-gitlab-no-type.png_1750098663794.png","https://about.gitlab.com/blog/building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building GitLab with GitLab: A multi-region service to deliver AI features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chance Feick\"},{\"@type\":\"Person\",\"name\":\"Sam Wiskow\"}],\n        \"datePublished\": \"2024-09-12\",\n      }",{"title":4509,"description":4510,"authors":4515,"heroImage":4511,"date":4517,"category":858,"tags":4518},[4516,2319],"Chance Feick","2024-09-12",[110,2098,2097,1569,772,1988,1730,1195,574,728],{"slug":4520,"featured":92,"template":736},"building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features","content:en-us:blog:building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features.yml","Building Gitlab With Gitlab A Multi Region Service To Deliver Ai Features","en-us/blog/building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features.yml","en-us/blog/building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features",{"_path":4526,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4527,"content":4532,"config":4537,"_id":4539,"_type":16,"title":4540,"_source":17,"_file":4541,"_stem":4542,"_extension":20},"/en-us/blog/navigating-the-ai-frontier-lessons-from-the-cutting-edge",{"title":4528,"description":4529,"ogTitle":4528,"ogDescription":4529,"noIndex":6,"ogImage":1459,"ogUrl":4530,"ogSiteName":995,"ogType":996,"canonicalUrls":4530,"schema":4531},"Navigating the AI frontier: Lessons from the cutting edge","Discover key insights on AI development, from rapid prototyping to production, evaluation frameworks, and emerging industry trends.","https://about.gitlab.com/blog/navigating-the-ai-frontier-lessons-from-the-cutting-edge","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Navigating the AI frontier: Lessons from the cutting edge\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michelle Gill\"},{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-09-10\",\n      }",{"title":4528,"description":4529,"authors":4533,"heroImage":1459,"date":4535,"category":769,"tags":4536},[4534,3053],"Michelle Gill","2024-09-10",[728],{"slug":4538,"featured":6,"template":736},"navigating-the-ai-frontier-lessons-from-the-cutting-edge","content:en-us:blog:navigating-the-ai-frontier-lessons-from-the-cutting-edge.yml","Navigating The Ai Frontier Lessons From The Cutting Edge","en-us/blog/navigating-the-ai-frontier-lessons-from-the-cutting-edge.yml","en-us/blog/navigating-the-ai-frontier-lessons-from-the-cutting-edge",{"_path":4544,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4545,"content":4551,"config":4554,"_id":4556,"_type":16,"title":4557,"_source":17,"_file":4558,"_stem":4559,"_extension":20},"/en-us/blog/secure-open-source-container-infrastructure-with-gitlab-and-chainguard",{"title":4546,"description":4547,"ogTitle":4546,"ogDescription":4547,"noIndex":6,"ogImage":4548,"ogUrl":4549,"ogSiteName":995,"ogType":996,"canonicalUrls":4549,"schema":4550},"Secure open source container infrastructure with GitLab and Chainguard","Learn how GitLab + Chainguard can help deliver secure containerized applications faster. This tutorial includes easy-to-follow code examples.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098693/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2823%29_2w6waL76KROjhJHM2vXet6_1750098693265.png","https://about.gitlab.com/blog/secure-open-source-container-infrastructure-with-gitlab-and-chainguard","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure open source container infrastructure with GitLab and Chainguard\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-09-09\",\n      }",{"title":4546,"description":4547,"authors":4552,"heroImage":4548,"date":4553,"category":790},[1097],"2024-09-09",{"slug":4555,"featured":6,"template":736},"secure-open-source-container-infrastructure-with-gitlab-and-chainguard","content:en-us:blog:secure-open-source-container-infrastructure-with-gitlab-and-chainguard.yml","Secure Open Source Container Infrastructure With Gitlab And Chainguard","en-us/blog/secure-open-source-container-infrastructure-with-gitlab-and-chainguard.yml","en-us/blog/secure-open-source-container-infrastructure-with-gitlab-and-chainguard",{"_path":4561,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4562,"content":4567,"config":4573,"_id":4575,"_type":16,"title":4576,"_source":17,"_file":4577,"_stem":4578,"_extension":20},"/en-us/blog/gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops",{"title":4563,"description":4564,"ogTitle":4563,"ogDescription":4564,"noIndex":6,"ogImage":1017,"ogUrl":4565,"ogSiteName":995,"ogType":996,"canonicalUrls":4565,"schema":4566},"GitLab named 2024 Gartner DevOps Platforms Quadrant leader","GitLab is positioned highest in Ability to Execute and Completeness of Vision, which we believe is recognition of our customers’ success and our continued innovation in the DevOps category.","https://about.gitlab.com/blog/gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named a Leader in the 2024 Gartner Magic Quadrant for DevOps Platforms\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ashley Kramer\"}],\n        \"datePublished\": \"2024-09-05\",\n      }",{"title":4568,"description":4564,"authors":4569,"heroImage":1017,"date":4571,"category":1049,"tags":4572},"GitLab named a Leader in the 2024 Gartner Magic Quadrant for DevOps Platforms",[4570],"Ashley Kramer","2024-09-05",[1049,2025,543,564,574],{"slug":4574,"featured":92,"template":736},"gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops","content:en-us:blog:gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops.yml","Gitlab Named A Leader In The 2024 Gartner Magic Quadrant For Devops","en-us/blog/gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops.yml","en-us/blog/gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops",{"_path":4580,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4581,"content":4587,"config":4593,"_id":4595,"_type":16,"title":4596,"_source":17,"_file":4597,"_stem":4598,"_extension":20},"/en-us/blog/annotate-container-images-with-build-provenance-using-cosign-in-gitlab-ci-cd",{"title":4582,"description":4583,"ogTitle":4582,"ogDescription":4583,"noIndex":6,"ogImage":4584,"ogUrl":4585,"ogSiteName":995,"ogType":996,"canonicalUrls":4585,"schema":4586},"Container image provenance with Cosign in GitLab CI/CD","Use GitLab pipelines to automate building, signing, and annotating Docker images. This tutorial shares code to show you how. Try it out in your own organization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098395/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2823%29_2w6waL76KROjhJHM2vXet6_1750098395162.png","https://about.gitlab.com/blog/annotate-container-images-with-build-provenance-using-cosign-in-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Annotate container images with build provenance using Cosign in GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"João Pereira\"},{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2024-09-04\",\n      }",{"title":4588,"description":4583,"authors":4589,"heroImage":4584,"date":4591,"category":790,"tags":4592},"Annotate container images with build provenance using Cosign in GitLab CI/CD",[4590,907],"João Pereira","2024-09-04",[790,772,731,730],{"slug":4594,"featured":6,"template":736},"annotate-container-images-with-build-provenance-using-cosign-in-gitlab-ci-cd","content:en-us:blog:annotate-container-images-with-build-provenance-using-cosign-in-gitlab-ci-cd.yml","Annotate Container Images With Build Provenance Using Cosign In Gitlab Ci Cd","en-us/blog/annotate-container-images-with-build-provenance-using-cosign-in-gitlab-ci-cd.yml","en-us/blog/annotate-container-images-with-build-provenance-using-cosign-in-gitlab-ci-cd",{"_path":4600,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4601,"content":4607,"config":4611,"_id":4613,"_type":16,"title":4614,"_source":17,"_file":4615,"_stem":4616,"_extension":20},"/en-us/blog/gitlab-duo-enterprise-is-now-available",{"title":4602,"description":4603,"ogTitle":4602,"ogDescription":4603,"noIndex":6,"ogImage":4604,"ogUrl":4605,"ogSiteName":995,"ogType":996,"canonicalUrls":4605,"schema":4606},"GitLab Duo Enterprise is now available","Organizations have an end-to-end AI partner for faster, more secure software development. Learn how GitLab Duo Enterprise supports the entire DevSecOps lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665660/Blog/Hero%20Images/Untitled__1800_x_945_px_.png","https://about.gitlab.com/blog/gitlab-duo-enterprise-is-now-available","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Enterprise is now available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2024-09-03\",\n      }",{"title":4602,"description":4603,"authors":4608,"heroImage":4604,"date":4609,"category":769,"tags":4610},[2188],"2024-09-03",[728,731,543,730,1049],{"slug":4612,"featured":92,"template":736},"gitlab-duo-enterprise-is-now-available","content:en-us:blog:gitlab-duo-enterprise-is-now-available.yml","Gitlab Duo Enterprise Is Now Available","en-us/blog/gitlab-duo-enterprise-is-now-available.yml","en-us/blog/gitlab-duo-enterprise-is-now-available",{"_path":4618,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4619,"content":4624,"config":4628,"_id":4630,"_type":16,"title":4631,"_source":17,"_file":4632,"_stem":4633,"_extension":20},"/en-us/blog/5-videos-and-interactive-tours-to-learn-gitlab-duo-fast",{"title":4620,"description":4621,"ogTitle":4620,"ogDescription":4621,"noIndex":6,"ogImage":979,"ogUrl":4622,"ogSiteName":995,"ogType":996,"canonicalUrls":4622,"schema":4623},"5 videos and interactive tours to learn GitLab Duo fast","Get to know GitLab Duo's capabilities and benefits, and use these visual learning tools to understand how to incorporate AI throughout your software development lifecycle.\n","https://about.gitlab.com/blog/5-videos-and-interactive-tours-to-learn-gitlab-duo-fast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 videos and interactive tours to learn GitLab Duo fast\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2024-08-28\",\n      }",{"title":4620,"description":4621,"authors":4625,"heroImage":979,"date":4626,"category":769,"tags":4627},[767],"2024-08-28",[728,730,772,731],{"slug":4629,"featured":6,"template":736},"5-videos-and-interactive-tours-to-learn-gitlab-duo-fast","content:en-us:blog:5-videos-and-interactive-tours-to-learn-gitlab-duo-fast.yml","5 Videos And Interactive Tours To Learn Gitlab Duo Fast","en-us/blog/5-videos-and-interactive-tours-to-learn-gitlab-duo-fast.yml","en-us/blog/5-videos-and-interactive-tours-to-learn-gitlab-duo-fast",{"_path":4635,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4636,"content":4642,"config":4646,"_id":4648,"_type":16,"title":4649,"_source":17,"_file":4650,"_stem":4651,"_extension":20},"/en-us/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab",{"title":4637,"description":4638,"ogTitle":4637,"ogDescription":4638,"noIndex":6,"ogImage":4639,"ogUrl":4640,"ogSiteName":995,"ogType":996,"canonicalUrls":4640,"schema":4641},"Tutorial: Migrate from Google Cloud Source Repositories to GitLab","Google Cloud is deprecating Cloud Source Repositories. Learn how to migrate a CSR source code repository to GitLab, along with best practices.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097739/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2813%29_1zdtbfPDHZVe6JC2AbdHmb_1750097738370.png","https://about.gitlab.com/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Migrate from Google Cloud Source Repositories to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tsukasa Komatsubara\"},{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"}],\n        \"datePublished\": \"2024-08-28\",\n      }",{"title":4637,"description":4638,"authors":4643,"heroImage":4639,"date":4626,"category":731,"tags":4645},[4644,1727],"Tsukasa Komatsubara",[772,1730,543],{"slug":4647,"featured":6,"template":736},"tutorial-migrate-from-google-cloud-source-repositories-to-gitlab","content:en-us:blog:tutorial-migrate-from-google-cloud-source-repositories-to-gitlab.yml","Tutorial Migrate From Google Cloud Source Repositories To Gitlab","en-us/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab.yml","en-us/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab",{"_path":4653,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4654,"content":4660,"config":4666,"_id":4668,"_type":16,"title":4669,"_source":17,"_file":4670,"_stem":4671,"_extension":20},"/en-us/blog/how-indeed-transformed-its-ci-platform-with-gitlab",{"title":4655,"description":4656,"ogTitle":4655,"ogDescription":4656,"noIndex":6,"ogImage":4657,"ogUrl":4658,"ogSiteName":995,"ogType":996,"canonicalUrls":4658,"schema":4659},"How Indeed transformed its CI platform with GitLab","The world's #1 job site migrated thousands of projects to GitLab CI, boosting productivity and cutting costs. Learn the benefits they realized, including a 79% increase in daily pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099351/Blog/Hero%20Images/Blog/Hero%20Images/Indeed-blog-cover-image-2_4AgA1DkWLtHwBlFGvMffbC_1750099350771.png","https://about.gitlab.com/blog/how-indeed-transformed-its-ci-platform-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Indeed transformed its CI platform with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Carl Myers\"}],\n        \"datePublished\": \"2024-08-27\",\n      }",{"title":4655,"description":4656,"authors":4661,"heroImage":4657,"date":4663,"category":3072,"tags":4664},[4662],"Carl Myers","2024-08-27",[3075,110,4665,543],"user stories",{"slug":4667,"featured":92,"template":736},"how-indeed-transformed-its-ci-platform-with-gitlab","content:en-us:blog:how-indeed-transformed-its-ci-platform-with-gitlab.yml","How Indeed Transformed Its Ci Platform With Gitlab","en-us/blog/how-indeed-transformed-its-ci-platform-with-gitlab.yml","en-us/blog/how-indeed-transformed-its-ci-platform-with-gitlab",{"_path":4673,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4674,"content":4680,"config":4685,"_id":4687,"_type":16,"title":4688,"_source":17,"_file":4689,"_stem":4690,"_extension":20},"/en-us/blog/how-to-choose-the-right-security-scanning-approach",{"title":4675,"description":4676,"ogTitle":4675,"ogDescription":4676,"noIndex":6,"ogImage":4677,"ogUrl":4678,"ogSiteName":995,"ogType":996,"canonicalUrls":4678,"schema":4679},"How to choose the right security scanning approach","GitLab offers multiple scanning methods for CI/CD pipelines, including compliance frameworks and scan and pipeline execution policies. Learn the basics, configurations, and advantages/disadvantages.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097969/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_282096522_securitycompliance.jpeg_1750097968823.jpg","https://about.gitlab.com/blog/how-to-choose-the-right-security-scanning-approach","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to choose the right security scanning approach\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Genelin\"},{\"@type\":\"Person\",\"name\":\"Mathias Ewald\"}],\n        \"datePublished\": \"2024-08-26\",\n      }",{"title":4675,"description":4676,"authors":4681,"heroImage":4677,"date":4683,"category":790,"tags":4684},[3343,4682],"Mathias Ewald","2024-08-26",[790,772,110],{"slug":4686,"featured":92,"template":736},"how-to-choose-the-right-security-scanning-approach","content:en-us:blog:how-to-choose-the-right-security-scanning-approach.yml","How To Choose The Right Security Scanning Approach","en-us/blog/how-to-choose-the-right-security-scanning-approach.yml","en-us/blog/how-to-choose-the-right-security-scanning-approach",{"_path":4692,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4693,"content":4698,"config":4701,"_id":4703,"_type":16,"title":4704,"_source":17,"_file":4705,"_stem":4706,"_extension":20},"/en-us/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo",{"title":4694,"description":4695,"ogTitle":4694,"ogDescription":4695,"noIndex":6,"ogImage":1227,"ogUrl":4696,"ogSiteName":995,"ogType":996,"canonicalUrls":4696,"schema":4697},"Refactor code into modern languages with AI-powered GitLab Duo ","This detailed tutorial helps developers use AI to modernize code by switching to a new programming language and gain knowledge about new features in the same language.","https://about.gitlab.com/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Refactor code into modern languages with AI-powered GitLab Duo \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2024-08-26\",\n      }",{"title":4694,"description":4695,"authors":4699,"heroImage":1227,"date":4683,"category":769,"tags":4700},[1424],[728,772,574],{"slug":4702,"featured":6,"template":736},"refactor-code-into-modern-languages-with-ai-powered-gitlab-duo","content:en-us:blog:refactor-code-into-modern-languages-with-ai-powered-gitlab-duo.yml","Refactor Code Into Modern Languages With Ai Powered Gitlab Duo","en-us/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo.yml","en-us/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo",{"_path":4708,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4709,"content":4715,"config":4719,"_id":4721,"_type":16,"title":4722,"_source":17,"_file":4723,"_stem":4724,"_extension":20},"/en-us/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",{"title":4710,"description":4711,"ogTitle":4710,"ogDescription":4711,"noIndex":6,"ogImage":4712,"ogUrl":4713,"ogSiteName":995,"ogType":996,"canonicalUrls":4713,"schema":4714},"Ultimate guide to migrating from AWS CodeCommit to GitLab","Learn how to migrate from AWS Services to GitLab and seamlessly integrate with the DevSecOps platform in this comprehensive tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097810/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2828%29_4mi0l4wzUa5VI4wtf8gInx_1750097810027.png","https://about.gitlab.com/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ultimate guide to migrating from AWS CodeCommit to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tsukasa Komatsubara\"},{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"},{\"@type\":\"Person\",\"name\":\"Samer Akkoub\"},{\"@type\":\"Person\",\"name\":\"Bart Zhang\"}],\n        \"datePublished\": \"2024-08-26\",\n      }",{"title":4710,"description":4711,"authors":4716,"heroImage":4712,"date":4683,"category":731,"tags":4718},[4644,959,4256,4717],"Bart Zhang",[110,771,543,772,2889,731,233],{"slug":4720,"featured":92,"template":736},"ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab","content:en-us:blog:ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab.yml","Ultimate Guide To Migrating From Aws Codecommit To Gitlab","en-us/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab.yml","en-us/blog/ultimate-guide-to-migrating-from-aws-codecommit-to-gitlab",{"_path":4726,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4727,"content":4732,"config":4736,"_id":4738,"_type":16,"title":4739,"_source":17,"_file":4740,"_stem":4741,"_extension":20},"/en-us/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants",{"title":4728,"description":4729,"ogTitle":4728,"ogDescription":4729,"noIndex":6,"ogImage":1440,"ogUrl":4730,"ogSiteName":995,"ogType":996,"canonicalUrls":4730,"schema":4731},"GitLab named a Leader in 2024 Gartner Magic Quadrant for AI Code Assistants","In the first Gartner® Magic Quadrant™ for this category, GitLab is recognized for its ability to execute and completeness of vision in AI code assistant technology.","https://about.gitlab.com/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named a Leader in 2024 Gartner Magic Quadrant for AI Code Assistants\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2024-08-22\",\n      }",{"title":4728,"description":4729,"authors":4733,"heroImage":1440,"date":4734,"category":769,"tags":4735},[2023],"2024-08-22",[1049,728,574,2025],{"slug":4737,"featured":92,"template":736},"gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants","content:en-us:blog:gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants.yml","Gitlab Named A Leader In 2024 Gartner Magic Quadrant For Ai Code Assistants","en-us/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants.yml","en-us/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants",{"_path":4743,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4744,"content":4749,"config":4753,"_id":4755,"_type":16,"title":4756,"_source":17,"_file":4757,"_stem":4758,"_extension":20},"/en-us/blog/how-gitlab-helps-meet-nis2-requirements",{"title":4745,"description":4746,"ogTitle":4745,"ogDescription":4746,"noIndex":6,"ogImage":2312,"ogUrl":4747,"ogSiteName":995,"ogType":996,"canonicalUrls":4747,"schema":4748},"How GitLab helps meet NIS2 requirements","The EU's NIS2 cybersecurity legislation focuses on resilience, incident response, and risk management. Learn how GitLab's DevSecOps platform helps meet these compliance requirements.","https://about.gitlab.com/blog/how-gitlab-helps-meet-nis2-requirements","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab helps meet NIS2 requirements\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2024-08-20\",\n      }",{"title":4745,"description":4746,"authors":4750,"heroImage":2312,"date":4751,"category":790,"tags":4752},[1949],"2024-08-20",[543,790,731],{"slug":4754,"featured":92,"template":736},"how-gitlab-helps-meet-nis2-requirements","content:en-us:blog:how-gitlab-helps-meet-nis2-requirements.yml","How Gitlab Helps Meet Nis2 Requirements","en-us/blog/how-gitlab-helps-meet-nis2-requirements.yml","en-us/blog/how-gitlab-helps-meet-nis2-requirements",{"_path":4760,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4761,"content":4767,"config":4772,"_id":4774,"_type":16,"title":4775,"_source":17,"_file":4776,"_stem":4777,"_extension":20},"/en-us/blog/gitlab-now-supports-sha256-repositories",{"title":4762,"description":4763,"ogTitle":4762,"ogDescription":4763,"noIndex":6,"ogImage":4764,"ogUrl":4765,"ogSiteName":995,"ogType":996,"canonicalUrls":4765,"schema":4766},"GitLab now supports SHA256 repositories","Try this experimental security feature to create test projects.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667390/Blog/Hero%20Images/blog-image-template-1800x945__19_.png","https://about.gitlab.com/blog/gitlab-now-supports-sha256-repositories","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab now supports SHA256 repositories\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Cai\"}],\n        \"datePublished\": \"2024-08-19\",\n      }",{"title":4762,"description":4763,"authors":4768,"heroImage":4764,"date":4770,"category":14,"tags":4771},[4769],"John Cai","2024-08-19",[790,1195,186,730],{"slug":4773,"featured":6,"template":736},"gitlab-now-supports-sha256-repositories","content:en-us:blog:gitlab-now-supports-sha256-repositories.yml","Gitlab Now Supports Sha256 Repositories","en-us/blog/gitlab-now-supports-sha256-repositories.yml","en-us/blog/gitlab-now-supports-sha256-repositories",{"_path":4779,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4780,"content":4785,"config":4788,"_id":4790,"_type":16,"title":4791,"_source":17,"_file":4792,"_stem":4793,"_extension":20},"/en-us/blog/how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes",{"title":4781,"description":4782,"ogTitle":4781,"ogDescription":4782,"noIndex":6,"ogImage":2937,"ogUrl":4783,"ogSiteName":995,"ogType":996,"canonicalUrls":4783,"schema":4784},"How to stream logs through the GitLab Dashboard for Kubernetes","In GitLab 17.2, users can now view Kubernetes pod and container logs directly via the GitLab UI. This tutorial shows how to use this new feature to simplify monitoring Kubernetes infrastructure.","https://about.gitlab.com/blog/how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to stream logs through the GitLab Dashboard for Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Helfand\"}],\n        \"datePublished\": \"2024-08-19\",\n      }",{"title":4781,"description":4782,"authors":4786,"heroImage":2937,"date":4770,"category":858,"tags":4787},[856],[730,559,2908,772],{"slug":4789,"featured":92,"template":736},"how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes","content:en-us:blog:how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes.yml","How To Stream Logs Through The Gitlab Dashboard For Kubernetes","en-us/blog/how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes.yml","en-us/blog/how-to-stream-logs-through-the-gitlab-dashboard-for-kubernetes",{"_path":4795,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4796,"content":4802,"config":4808,"_id":4810,"_type":16,"title":4811,"_source":17,"_file":4812,"_stem":4813,"_extension":20},"/en-us/blog/finserv-how-to-implement-gitlabs-separation-of-duties-features",{"title":4797,"description":4798,"ogTitle":4797,"ogDescription":4798,"noIndex":6,"ogImage":4799,"ogUrl":4800,"ogSiteName":995,"ogType":996,"canonicalUrls":4800,"schema":4801},"FinServ: How to implement GitLab's separation of duties features","Learn how GitLab ensures secure, compliant software development with separation of duties in the financial services sector, including features that help adhere to regulatory frameworks.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097688/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%286%29_6vL96ttKF8zJLLqfPpvFs_1750097687913.png","https://about.gitlab.com/blog/finserv-how-to-implement-gitlabs-separation-of-duties-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"FinServ: How to implement GitLab's separation of duties features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cherry Han\"},{\"@type\":\"Person\",\"name\":\"Gavin Peltz\"}],\n        \"datePublished\": \"2024-08-13\",\n      }",{"title":4797,"description":4798,"authors":4803,"heroImage":4799,"date":4806,"category":790,"tags":4807},[4804,4805],"Cherry Han","Gavin Peltz","2024-08-13",[790,543,731,636],{"slug":4809,"featured":6,"template":736},"finserv-how-to-implement-gitlabs-separation-of-duties-features","content:en-us:blog:finserv-how-to-implement-gitlabs-separation-of-duties-features.yml","Finserv How To Implement Gitlabs Separation Of Duties Features","en-us/blog/finserv-how-to-implement-gitlabs-separation-of-duties-features.yml","en-us/blog/finserv-how-to-implement-gitlabs-separation-of-duties-features",{"_path":4815,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4816,"content":4821,"config":4825,"_id":4827,"_type":16,"title":4828,"_source":17,"_file":4829,"_stem":4830,"_extension":20},"/en-us/blog/mastering-gitlab-admin-tasks-with-gitlab-duo-chat",{"title":4817,"description":4818,"ogTitle":4817,"ogDescription":4818,"noIndex":6,"ogImage":4380,"ogUrl":4819,"ogSiteName":995,"ogType":996,"canonicalUrls":4819,"schema":4820},"Mastering GitLab admin tasks with GitLab Duo Chat","Learn how to use Chat to streamline administrative tasks on self-managed instances, improving efficiency and problem-solving capabilities.","https://about.gitlab.com/blog/mastering-gitlab-admin-tasks-with-gitlab-duo-chat","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Mastering GitLab admin tasks with GitLab Duo Chat\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-08-09\",\n      }",{"title":4817,"description":4818,"authors":4822,"heroImage":4380,"date":4823,"category":769,"tags":4824},[3053],"2024-08-09",[728,772,543,730,731],{"slug":4826,"featured":92,"template":736},"mastering-gitlab-admin-tasks-with-gitlab-duo-chat","content:en-us:blog:mastering-gitlab-admin-tasks-with-gitlab-duo-chat.yml","Mastering Gitlab Admin Tasks With Gitlab Duo Chat","en-us/blog/mastering-gitlab-admin-tasks-with-gitlab-duo-chat.yml","en-us/blog/mastering-gitlab-admin-tasks-with-gitlab-duo-chat",{"_path":4832,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4833,"content":4838,"config":4842,"_id":4844,"_type":16,"title":4845,"_source":17,"_file":4846,"_stem":4847,"_extension":20},"/en-us/blog/how-gitlab-supports-the-fedramp-authorization-journey",{"title":4834,"description":4835,"ogTitle":4834,"ogDescription":4835,"noIndex":6,"ogImage":1944,"ogUrl":4836,"ogSiteName":995,"ogType":996,"canonicalUrls":4836,"schema":4837},"How GitLab supports the FedRAMP authorization journey","This comprehensive guide dives into the FedRAMP certification process, explaining how GitLab offers guidance and best practices for configuration and compliance.","https://about.gitlab.com/blog/how-gitlab-supports-the-fedramp-authorization-journey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab supports the FedRAMP authorization journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Nnachi\"}],\n        \"datePublished\": \"2024-08-07\",\n      }",{"title":4834,"description":4835,"authors":4839,"heroImage":1944,"date":4840,"category":790,"tags":4841},[3664],"2024-08-07",[772,186,574],{"slug":4843,"featured":92,"template":736},"how-gitlab-supports-the-fedramp-authorization-journey","content:en-us:blog:how-gitlab-supports-the-fedramp-authorization-journey.yml","How Gitlab Supports The Fedramp Authorization Journey","en-us/blog/how-gitlab-supports-the-fedramp-authorization-journey.yml","en-us/blog/how-gitlab-supports-the-fedramp-authorization-journey",{"_path":4849,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4850,"content":4855,"config":4860,"_id":4862,"_type":16,"title":4863,"_source":17,"_file":4864,"_stem":4865,"_extension":20},"/en-us/blog/introducing-ci-cd-steps-a-programming-language-for-devsecops-automation",{"title":4851,"description":4852,"ogTitle":4851,"ogDescription":4852,"noIndex":6,"ogImage":909,"ogUrl":4853,"ogSiteName":995,"ogType":996,"canonicalUrls":4853,"schema":4854},"Introducing CI/CD Steps, a programming language for DevSecOps automation","Inside GitLab’s vision for CI/CD programmability and a look at how we simplified workflow automation.","https://about.gitlab.com/blog/introducing-ci-cd-steps-a-programming-language-for-devsecops-automation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing CI/CD Steps, a programming language for DevSecOps automation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2024-08-06\",\n      }",{"title":4851,"description":4852,"authors":4856,"heroImage":909,"date":4858,"category":731,"tags":4859},[4857],"Darren Eastman","2024-08-06",[543,110,2098,2097,730],{"slug":4861,"featured":92,"template":736},"introducing-ci-cd-steps-a-programming-language-for-devsecops-automation","content:en-us:blog:introducing-ci-cd-steps-a-programming-language-for-devsecops-automation.yml","Introducing Ci Cd Steps A Programming Language For Devsecops Automation","en-us/blog/introducing-ci-cd-steps-a-programming-language-for-devsecops-automation.yml","en-us/blog/introducing-ci-cd-steps-a-programming-language-for-devsecops-automation",{"_path":4867,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4868,"content":4874,"config":4878,"_id":4880,"_type":16,"title":4881,"_source":17,"_file":4882,"_stem":4883,"_extension":20},"/en-us/blog/faq-gitlab-ci-cd-catalog",{"title":4869,"description":4870,"ogTitle":4869,"ogDescription":4870,"noIndex":6,"ogImage":4871,"ogUrl":4872,"ogSiteName":995,"ogType":996,"canonicalUrls":4872,"schema":4873},"FAQ: GitLab CI/CD Catalog","Unlock the full potential of the CI/CD Catalog with expert tips and answers to common questions, including how to create and share components.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098783/Blog/Hero%20Images/Blog/Hero%20Images/cicdcover_5vLe737i4QfvAqv6PnqUaR_1750098782745.png","https://about.gitlab.com/blog/faq-gitlab-ci-cd-catalog","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"FAQ: GitLab CI/CD Catalog\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"},{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2024-08-01\",\n      }",{"title":4869,"description":4870,"authors":4875,"heroImage":4871,"date":4876,"category":858,"tags":4877},[1016,1712],"2024-08-01",[110,574],{"slug":4879,"featured":92,"template":736},"faq-gitlab-ci-cd-catalog","content:en-us:blog:faq-gitlab-ci-cd-catalog.yml","Faq Gitlab Ci Cd Catalog","en-us/blog/faq-gitlab-ci-cd-catalog.yml","en-us/blog/faq-gitlab-ci-cd-catalog",{"_path":4885,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4886,"content":4891,"config":4896,"_id":4898,"_type":16,"title":4899,"_source":17,"_file":4900,"_stem":4901,"_extension":20},"/en-us/blog/building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way",{"title":4887,"description":4888,"ogTitle":4887,"ogDescription":4888,"noIndex":6,"ogImage":3501,"ogUrl":4889,"ogSiteName":995,"ogType":996,"canonicalUrls":4889,"schema":4890},"Building a GitLab CI/CD pipeline for a monorepo the easy way","Learn how to create a GitLab CI/CD pipeline for a monorepo to host multiple applications in one repository.","https://about.gitlab.com/blog/building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building a GitLab CI/CD pipeline for a monorepo the easy way\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Morris\"}],\n        \"datePublished\": \"2024-07-30\",\n      }",{"title":4887,"description":4888,"authors":4892,"heroImage":3501,"date":4894,"category":858,"tags":4895},[4893],"Sam Morris","2024-07-30",[110,772],{"slug":4897,"featured":6,"template":736},"building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way","content:en-us:blog:building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way.yml","Building A Gitlab Ci Cd Pipeline For A Monorepo The Easy Way","en-us/blog/building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way.yml","en-us/blog/building-a-gitlab-ci-cd-pipeline-for-a-monorepo-the-easy-way",{"_path":4903,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4904,"content":4909,"config":4913,"_id":4915,"_type":16,"title":4916,"_source":17,"_file":4917,"_stem":4918,"_extension":20},"/en-us/blog/whats-new-in-git-2-46-0",{"title":4905,"description":4906,"ogTitle":4905,"ogDescription":4906,"noIndex":6,"ogImage":3571,"ogUrl":4907,"ogSiteName":995,"ogType":996,"canonicalUrls":4907,"schema":4908},"What’s new in Git 2.46.0?","Here are highlights of release contributions from GitLab's Git team and the wider Git community, including reference backend migration tooling and transactional symbolic reference updates.","https://about.gitlab.com/blog/whats-new-in-git-2-46-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What’s new in Git 2.46.0?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Justin Tobler\"}],\n        \"datePublished\": \"2024-07-29\",\n      }",{"title":4905,"description":4906,"authors":4910,"heroImage":3571,"date":4911,"category":1388,"tags":4912},[1893],"2024-07-29",[1195,1265,269],{"slug":4914,"featured":92,"template":736},"whats-new-in-git-2-46-0","content:en-us:blog:whats-new-in-git-2-46-0.yml","Whats New In Git 2 46 0","en-us/blog/whats-new-in-git-2-46-0.yml","en-us/blog/whats-new-in-git-2-46-0",{"_path":4920,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4921,"content":4927,"config":4932,"_id":4934,"_type":16,"title":4935,"_source":17,"_file":4936,"_stem":4937,"_extension":20},"/en-us/blog/how-visualization-improves-the-gitlab-merge-train-experience",{"title":4922,"description":4923,"ogTitle":4922,"ogDescription":4923,"noIndex":6,"ogImage":4924,"ogUrl":4925,"ogSiteName":995,"ogType":996,"canonicalUrls":4925,"schema":4926},"How visualization improves the GitLab merge train experience","Merge train visualization lets users closely track merge train activities and take actions with a better understanding of the impact on other MRs in the queue.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098825/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2824%29_1KuzZLH1aSgBZsGVXGPIjf_1750098824773.png","https://about.gitlab.com/blog/how-visualization-improves-the-gitlab-merge-train-experience","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How visualization improves the GitLab merge train experience\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Payton Burdette\"},{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2024-07-25\",\n      }",{"title":4922,"description":4923,"authors":4928,"heroImage":4924,"date":4930,"category":731,"tags":4931},[1163,4929],"Veethika Mishra","2024-07-25",[110,730,731],{"slug":4933,"featured":92,"template":736},"how-visualization-improves-the-gitlab-merge-train-experience","content:en-us:blog:how-visualization-improves-the-gitlab-merge-train-experience.yml","How Visualization Improves The Gitlab Merge Train Experience","en-us/blog/how-visualization-improves-the-gitlab-merge-train-experience.yml","en-us/blog/how-visualization-improves-the-gitlab-merge-train-experience",{"_path":4939,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4940,"content":4946,"config":4949,"_id":4951,"_type":16,"title":4952,"_source":17,"_file":4953,"_stem":4954,"_extension":20},"/en-us/blog/kubernetes-the-container-orchestration-solution",{"title":4941,"description":4942,"ogTitle":4941,"ogDescription":4942,"noIndex":6,"ogImage":4943,"ogUrl":4944,"ogSiteName":995,"ogType":996,"canonicalUrls":4944,"schema":4945},"Kubernetes: Get to know the container orchestration solution","Kubernetes, also known as K8s, is a must-have solution for deploying and maintaining applications, especially in the cloud. Learn the basics of Kubernetes with this introductory guide.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660215/Blog/Hero%20Images/kubernetes-container-orchestration-solution.jpg","https://about.gitlab.com/blog/kubernetes-the-container-orchestration-solution","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Kubernetes: Get to know the container orchestration solution\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2024-07-25\",\n      }",{"title":4941,"description":4942,"authors":4947,"heroImage":4943,"date":4930,"category":1388,"tags":4948,"updatedDate":4734},[2094],[2908,1265],{"slug":4950,"featured":6,"template":736},"kubernetes-the-container-orchestration-solution","content:en-us:blog:kubernetes-the-container-orchestration-solution.yml","Kubernetes The Container Orchestration Solution","en-us/blog/kubernetes-the-container-orchestration-solution.yml","en-us/blog/kubernetes-the-container-orchestration-solution",{"_path":4956,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4957,"content":4963,"config":4968,"_id":4970,"_type":16,"title":4971,"_source":17,"_file":4972,"_stem":4973,"_extension":20},"/en-us/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace",{"title":4958,"description":4959,"ogTitle":4958,"ogDescription":4959,"noIndex":6,"ogImage":4960,"ogUrl":4961,"ogSiteName":995,"ogType":996,"canonicalUrls":4961,"schema":4962},"Use GitLab AI features out-of-the-box in a GitLab Workspace","GitLab Workspaces now ships with the GitLab workflow extension preinstalled, providing access to powerful AI features like GitLab Duo Chat and Code Suggestions for increased productivity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098843/Blog/Hero%20Images/Blog/Hero%20Images/securitylifecycle-light_securitylifecycle-light.png_1750098843047.png","https://about.gitlab.com/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Use GitLab AI features out-of-the-box in a GitLab Workspace\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Safwan Ahmed\"}],\n        \"datePublished\": \"2024-07-24\",\n      }",{"title":4958,"description":4959,"authors":4964,"heroImage":4960,"date":4966,"category":769,"tags":4967},[4965],"Safwan Ahmed","2024-07-24",[728,1335,233,730],{"slug":4969,"featured":92,"template":736},"use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace","content:en-us:blog:use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace.yml","Use Gitlab Ai Features Out Of The Box In A Gitlab Workspace","en-us/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace.yml","en-us/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace",{"_path":4975,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4976,"content":4981,"config":4985,"_id":4987,"_type":16,"title":4988,"_source":17,"_file":4989,"_stem":4990,"_extension":20},"/en-us/blog/next-generation-gitlab-container-registry-goes-ga",{"title":4977,"description":4978,"ogTitle":4977,"ogDescription":4978,"noIndex":6,"ogImage":2920,"ogUrl":4979,"ogSiteName":995,"ogType":996,"canonicalUrls":4979,"schema":4980},"Next-generation GitLab container registry goes GA","Starting in GitLab 17.3, GitLab self-managed instances can access the generally available container registry, which features efficient zero-downtime garbage collection and other benefits.","https://about.gitlab.com/blog/next-generation-gitlab-container-registry-goes-ga","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Next-generation GitLab container registry goes GA\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2024-07-23\",\n      }",{"title":4977,"description":4978,"authors":4982,"heroImage":2920,"date":4983,"category":731,"tags":4984},[907],"2024-07-23",[543,730,582,731],{"slug":4986,"featured":92,"template":736},"next-generation-gitlab-container-registry-goes-ga","content:en-us:blog:next-generation-gitlab-container-registry-goes-ga.yml","Next Generation Gitlab Container Registry Goes Ga","en-us/blog/next-generation-gitlab-container-registry-goes-ga.yml","en-us/blog/next-generation-gitlab-container-registry-goes-ga",{"_path":4992,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":4993,"content":4999,"config":5003,"_id":5005,"_type":16,"title":5006,"_source":17,"_file":5007,"_stem":5008,"_extension":20},"/en-us/blog/best-practices-to-set-up-organizational-hierarchies-that-scale",{"title":4994,"description":4995,"ogTitle":4994,"ogDescription":4995,"noIndex":6,"ogImage":4996,"ogUrl":4997,"ogSiteName":995,"ogType":996,"canonicalUrls":4997,"schema":4998},"Best practices to set up organizational hierarchies that scale","Learn how to model organizational hierarchy in GitLab. Create structures with clear lines of communication, strategic alignment, and more, while following Agile principles.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098165/Blog/Hero%20Images/Blog/Hero%20Images/agile_agile.png_1750098164666.png","https://about.gitlab.com/blog/best-practices-to-set-up-organizational-hierarchies-that-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Best practices to set up organizational hierarchies that scale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-07-22\",\n      }",{"title":4994,"description":4995,"authors":5000,"heroImage":4996,"date":5001,"category":726,"tags":5002},[734],"2024-07-22",[729,730,543],{"slug":5004,"featured":6,"template":736},"best-practices-to-set-up-organizational-hierarchies-that-scale","content:en-us:blog:best-practices-to-set-up-organizational-hierarchies-that-scale.yml","Best Practices To Set Up Organizational Hierarchies That Scale","en-us/blog/best-practices-to-set-up-organizational-hierarchies-that-scale.yml","en-us/blog/best-practices-to-set-up-organizational-hierarchies-that-scale",{"_path":5010,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5011,"content":5017,"config":5021,"_id":5023,"_type":16,"title":5024,"_source":17,"_file":5025,"_stem":5026,"_extension":20},"/en-us/blog/get-to-know-the-gitlab-wiki-for-effective-knowledge-management",{"title":5012,"description":5013,"ogTitle":5012,"ogDescription":5013,"noIndex":6,"ogImage":5014,"ogUrl":5015,"ogSiteName":995,"ogType":996,"canonicalUrls":5015,"schema":5016},"Get to know the GitLab Wiki for effective knowledge management","The GitLab Wiki helps organizations benefit from Agile planning and knowledge management. Learn best practices for using this powerful tool in your DevSecOps environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660011/Blog/Hero%20Images/blog-image-template-1800x945__21_.png","https://about.gitlab.com/blog/get-to-know-the-gitlab-wiki-for-effective-knowledge-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get to know the GitLab Wiki for effective knowledge management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matthew Macfarlane\"}],\n        \"datePublished\": \"2024-07-17\",\n      }",{"title":5012,"description":5013,"authors":5018,"heroImage":5014,"date":5019,"category":726,"tags":5020},[1330],"2024-07-17",[729,543,731],{"slug":5022,"featured":6,"template":736},"get-to-know-the-gitlab-wiki-for-effective-knowledge-management","content:en-us:blog:get-to-know-the-gitlab-wiki-for-effective-knowledge-management.yml","Get To Know The Gitlab Wiki For Effective Knowledge Management","en-us/blog/get-to-know-the-gitlab-wiki-for-effective-knowledge-management.yml","en-us/blog/get-to-know-the-gitlab-wiki-for-effective-knowledge-management",{"_path":5028,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5029,"content":5035,"config":5038,"_id":5040,"_type":16,"title":5041,"_source":17,"_file":5042,"_stem":5043,"_extension":20},"/en-us/blog/get-to-know-the-security-and-governance-updates-in-gitlab-17-17-1",{"title":5030,"description":5031,"ogTitle":5030,"ogDescription":5031,"noIndex":6,"ogImage":5032,"ogUrl":5033,"ogSiteName":995,"ogType":996,"canonicalUrls":5033,"schema":5034},"Get to know the security and governance updates in GitLab 17, 17.1","Dive deep into the new enhancements that can strengthen your organization's security posture, including how-to videos for SAST, DAST, API security, container registry, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098858/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_282096522_securitycompliance.jpeg_1750098857843.jpg","https://about.gitlab.com/blog/get-to-know-the-security-and-governance-updates-in-gitlab-17-17-1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get to know the security and governance updates in GitLab 17, 17.1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-07-17\",\n      }",{"title":5030,"description":5031,"authors":5036,"heroImage":5032,"date":5019,"category":790,"tags":5037},[1097],[790,731,772,543,730],{"slug":5039,"featured":92,"template":736},"get-to-know-the-security-and-governance-updates-in-gitlab-17-17-1","content:en-us:blog:get-to-know-the-security-and-governance-updates-in-gitlab-17-17-1.yml","Get To Know The Security And Governance Updates In Gitlab 17 17 1","en-us/blog/get-to-know-the-security-and-governance-updates-in-gitlab-17-17-1.yml","en-us/blog/get-to-know-the-security-and-governance-updates-in-gitlab-17-17-1",{"_path":5045,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5046,"content":5052,"config":5056,"_id":5058,"_type":16,"title":5059,"_source":17,"_file":5060,"_stem":5061,"_extension":20},"/en-us/blog/how-gitlab-agile-planning-improves-collaborative-project-management",{"title":5047,"description":5048,"ogTitle":5047,"ogDescription":5048,"noIndex":6,"ogImage":5049,"ogUrl":5050,"ogSiteName":995,"ogType":996,"canonicalUrls":5050,"schema":5051},"How GitLab Agile planning improves collaborative project management","The transformation that GitLab brings to project management is not just about using a tool; it’s about fostering a culture of collaboration and continuous improvement. Find out how.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097041/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2822%29_718ZuurL0op4weunB2fBlD_1750097040694.png","https://about.gitlab.com/blog/how-gitlab-agile-planning-improves-collaborative-project-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab Agile planning improves collaborative project management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-07-16\",\n      }",{"title":5047,"description":5048,"authors":5053,"heroImage":5049,"date":5054,"category":726,"tags":5055},[734],"2024-07-16",[729],{"slug":5057,"featured":92,"template":736},"how-gitlab-agile-planning-improves-collaborative-project-management","content:en-us:blog:how-gitlab-agile-planning-improves-collaborative-project-management.yml","How Gitlab Agile Planning Improves Collaborative Project Management","en-us/blog/how-gitlab-agile-planning-improves-collaborative-project-management.yml","en-us/blog/how-gitlab-agile-planning-improves-collaborative-project-management",{"_path":5063,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5064,"content":5070,"config":5075,"_id":5077,"_type":16,"title":5078,"_source":17,"_file":5079,"_stem":5080,"_extension":20},"/en-us/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities",{"title":5065,"description":5066,"ogTitle":5065,"ogDescription":5066,"noIndex":6,"ogImage":5067,"ogUrl":5068,"ogSiteName":995,"ogType":996,"canonicalUrls":5068,"schema":5069},"Developing GitLab Duo: Use AI to remediate security vulnerabilities ","This tutorial shows how GitLab Duo Vulnerability Explanation and GitLab Duo Vulnerability Resolution, along with our other AI-powered features, can help to address vulnerabilities quickly.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098106/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098106040.png","https://about.gitlab.com/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo: Use AI to remediate security vulnerabilities \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"},{\"@type\":\"Person\",\"name\":\"Alana Bellucci\"}],\n        \"datePublished\": \"2024-07-15\",\n      }",{"title":5065,"description":5066,"authors":5071,"heroImage":5067,"date":5073,"category":769,"tags":5074},[1424,5072],"Alana Bellucci","2024-07-15",[728,790,731,730,772],{"slug":5076,"featured":92,"template":736},"developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities","content:en-us:blog:developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities.yml","Developing Gitlab Duo Use Ai To Remediate Security Vulnerabilities","en-us/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities.yml","en-us/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities",{"_path":5082,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5083,"content":5089,"config":5093,"_id":5095,"_type":16,"title":5096,"_source":17,"_file":5097,"_stem":5098,"_extension":20},"/en-us/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements",{"title":5084,"description":5085,"ogTitle":5084,"ogDescription":5085,"noIndex":6,"ogImage":5086,"ogUrl":5087,"ogSiteName":995,"ogType":996,"canonicalUrls":5087,"schema":5088},"Developing GitLab Duo: A roundup of recent Chat enhancements","Discover the latest improvements to GitLab Duo Chat, including a new integration, prompt cancellation, and architectural upgrades.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098374/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098374059.png","https://about.gitlab.com/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo: A roundup of recent Chat enhancements\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jannik Lehmann\"},{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-07-10\",\n      }",{"title":5084,"description":5085,"authors":5090,"heroImage":5086,"date":5091,"category":769,"tags":5092},[4292,3053],"2024-07-10",[728,730,731],{"slug":5094,"featured":92,"template":736},"developing-gitlab-duo-a-roundup-of-recent-chat-enhancements","content:en-us:blog:developing-gitlab-duo-a-roundup-of-recent-chat-enhancements.yml","Developing Gitlab Duo A Roundup Of Recent Chat Enhancements","en-us/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements.yml","en-us/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements",{"_path":5100,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5101,"content":5106,"config":5111,"_id":5113,"_type":16,"title":5114,"_source":17,"_file":5115,"_stem":5116,"_extension":20},"/en-us/blog/faq-the-regresshion-vulnerability-and-gitlab",{"title":5102,"description":5103,"ogTitle":5102,"ogDescription":5103,"noIndex":6,"ogImage":1873,"ogUrl":5104,"ogSiteName":995,"ogType":996,"canonicalUrls":5104,"schema":5105},"FAQ: The RegreSSHion vulnerability and GitLab","Find out what CVE-2024-6387 is, how it impacts GitLab, and what you need to know to mitigate it in your GitLab environment.","https://about.gitlab.com/blog/faq-the-regresshion-vulnerability-and-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"FAQ: The RegreSSHion vulnerability and GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2024-07-09\",\n      }",{"title":5102,"description":5103,"authors":5107,"heroImage":1873,"date":5109,"category":790,"tags":5110},[5108],"Mark Loveless","2024-07-09",[790],{"slug":5112,"featured":92,"template":736},"faq-the-regresshion-vulnerability-and-gitlab","content:en-us:blog:faq-the-regresshion-vulnerability-and-gitlab.yml","Faq The Regresshion Vulnerability And Gitlab","en-us/blog/faq-the-regresshion-vulnerability-and-gitlab.yml","en-us/blog/faq-the-regresshion-vulnerability-and-gitlab",{"_path":5118,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5119,"content":5124,"config":5128,"_id":5130,"_type":16,"title":5131,"_source":17,"_file":5132,"_stem":5133,"_extension":20},"/en-us/blog/unveiling-a-new-epic-experience-for-improved-agile-planning",{"title":5120,"description":5121,"ogTitle":5120,"ogDescription":5121,"noIndex":6,"ogImage":5014,"ogUrl":5122,"ogSiteName":995,"ogType":996,"canonicalUrls":5122,"schema":5123},"Unveiling a new epic experience for improved Agile planning","Explore the update for GitLab epics that enhances planning and improves workflows – all with seamless migration for better project management.","https://about.gitlab.com/blog/unveiling-a-new-epic-experience-for-improved-agile-planning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unveiling a new epic experience for improved Agile planning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-07-03\",\n      }",{"title":5120,"description":5121,"authors":5125,"heroImage":5014,"date":5126,"category":726,"tags":5127},[734],"2024-07-03",[729,543,730,731,1335],{"slug":5129,"featured":6,"template":736},"unveiling-a-new-epic-experience-for-improved-agile-planning","content:en-us:blog:unveiling-a-new-epic-experience-for-improved-agile-planning.yml","Unveiling A New Epic Experience For Improved Agile Planning","en-us/blog/unveiling-a-new-epic-experience-for-improved-agile-planning.yml","en-us/blog/unveiling-a-new-epic-experience-for-improved-agile-planning",{"_path":5135,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5136,"content":5141,"config":5145,"_id":5147,"_type":16,"title":5148,"_source":17,"_file":5149,"_stem":5150,"_extension":20},"/en-us/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci",{"title":5137,"description":5138,"ogTitle":5137,"ogDescription":5138,"noIndex":6,"ogImage":1944,"ogUrl":5139,"ogSiteName":995,"ogType":996,"canonicalUrls":5139,"schema":5140},"Develop C++ unit testing with Catch2, JUnit, and GitLab CI","Learn how to set up, write, and automate C++ unit tests using Catch2 with GitLab CI/CD. See examples from a working air quality app project and AI-powered help from GitLab Duo.","https://about.gitlab.com/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Develop C++ unit testing with Catch2, JUnit, and GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2024-07-02\",\n      }",{"title":5137,"description":5138,"authors":5142,"heroImage":1944,"date":5143,"category":577,"tags":5144},[1439],"2024-07-02",[772,964,2097,728,574],{"slug":5146,"featured":92,"template":736},"develop-c-unit-testing-with-catch2-junit-and-gitlab-ci","content:en-us:blog:develop-c-unit-testing-with-catch2-junit-and-gitlab-ci.yml","Develop C Unit Testing With Catch2 Junit And Gitlab Ci","en-us/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci.yml","en-us/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci",{"_path":5152,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5153,"content":5158,"config":5162,"_id":5164,"_type":16,"title":5165,"_source":17,"_file":5166,"_stem":5167,"_extension":20},"/en-us/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development",{"title":5154,"description":5155,"ogTitle":5154,"ogDescription":5155,"noIndex":6,"ogImage":993,"ogUrl":5156,"ogSiteName":995,"ogType":996,"canonicalUrls":5156,"schema":5157},"Meet GitLab Duo Workflow - the future of AI-driven development","Workflow, our autonomous AI agent, will transform the way teams build and ship software – our first bold step towards AI-driven DevSecOps.","https://about.gitlab.com/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet GitLab Duo Workflow - the future of AI-driven development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2024-06-27\",\n      }",{"title":5154,"description":5155,"authors":5159,"heroImage":993,"date":5160,"category":769,"tags":5161},[2188],"2024-06-27",[728,543,574,1049,1335],{"slug":5163,"featured":92,"template":736},"meet-gitlab-duo-workflow-the-future-of-ai-driven-development","content:en-us:blog:meet-gitlab-duo-workflow-the-future-of-ai-driven-development.yml","Meet Gitlab Duo Workflow The Future Of Ai Driven Development","en-us/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development.yml","en-us/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development",{"_path":5169,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5170,"content":5175,"config":5181,"_id":5183,"_type":16,"title":5184,"_source":17,"_file":5185,"_stem":5186,"_extension":20},"/en-us/blog/introducing-gitlab-dedicated-for-government",{"title":5171,"description":5172,"ogTitle":5171,"ogDescription":5172,"noIndex":6,"ogImage":1549,"ogUrl":5173,"ogSiteName":995,"ogType":996,"canonicalUrls":5173,"schema":5174},"Introducing GitLab Dedicated for Government","Learn how our single-tenant SaaS offering, along with our new FedRAMP \"In Process\" designation, will help public sector customers securely advance their modernization objectives.","https://about.gitlab.com/blog/introducing-gitlab-dedicated-for-government","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab Dedicated for Government\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Balane\"},{\"@type\":\"Person\",\"name\":\"Corey Oas\"}],\n        \"datePublished\": \"2024-06-25\",\n      }",{"title":5171,"description":5172,"authors":5176,"heroImage":1549,"date":5179,"category":731,"tags":5180},[5177,5178],"Chris Balane","Corey Oas","2024-06-25",[186,790,1049,543,731],{"slug":5182,"featured":92,"template":736},"introducing-gitlab-dedicated-for-government","content:en-us:blog:introducing-gitlab-dedicated-for-government.yml","Introducing Gitlab Dedicated For Government","en-us/blog/introducing-gitlab-dedicated-for-government.yml","en-us/blog/introducing-gitlab-dedicated-for-government",{"_path":5188,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5189,"content":5195,"config":5201,"_id":5203,"_type":16,"title":5204,"_source":17,"_file":5205,"_stem":5206,"_extension":20},"/en-us/blog/prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection",{"title":5190,"description":5191,"ogTitle":5190,"ogDescription":5191,"noIndex":6,"ogImage":5192,"ogUrl":5193,"ogSiteName":995,"ogType":996,"canonicalUrls":5193,"schema":5194},"Prevent secret leaks in source code with GitLab Secret Push Protection","Learn how Secret Push Protection, now generally available, adds to a defense-in-depth detection strategy and decreases the resources needed to remediate secret leaks.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097761/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%286%29_6vL96ttKF8zJLLqfPpvFs_1750097761137.png","https://about.gitlab.com/blog/prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Prevent secret leaks in source code with GitLab Secret Push Protection\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amar Patel\"},{\"@type\":\"Person\",\"name\":\"Sara Meadzinger\"}],\n        \"datePublished\": \"2024-06-24\",\n      }",{"title":5190,"description":5191,"authors":5196,"heroImage":5192,"date":5199,"category":790,"tags":5200,"updatedDate":4180},[5197,5198],"Amar Patel","Sara Meadzinger","2024-06-24",[790,772,730,543,731],{"slug":5202,"featured":6,"template":736},"prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection","content:en-us:blog:prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection.yml","Prevent Secret Leaks In Source Code With Gitlab Secret Push Protection","en-us/blog/prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection.yml","en-us/blog/prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection",{"_path":5208,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5209,"content":5215,"config":5220,"_id":5222,"_type":16,"title":5223,"_source":17,"_file":5224,"_stem":5225,"_extension":20},"/en-us/blog/kubernetes-overview-operate-cluster-data-on-the-frontend",{"title":5210,"description":5211,"ogTitle":5210,"ogDescription":5211,"noIndex":6,"ogImage":5212,"ogUrl":5213,"ogSiteName":995,"ogType":996,"canonicalUrls":5213,"schema":5214},"Kubernetes overview: Operate cluster data on the frontend","GitLab offers a built-in solution for monitoring your Kubernetes cluster health. Learn more about the technical design and functionality with this detailed guide.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099045/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2816%29_3L7ZP4GxJrShu6qImuS4Wo_1750099045397.png","https://about.gitlab.com/blog/kubernetes-overview-operate-cluster-data-on-the-frontend","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Kubernetes overview: Operate cluster data on the frontend\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Anna Vovchenko\"}],\n        \"datePublished\": \"2024-06-20\",\n      }",{"title":5210,"description":5211,"authors":5216,"heroImage":5212,"date":5218,"updatedDate":1098,"category":858,"tags":5219},[5217],"Anna Vovchenko","2024-06-20",[2908,730,772],{"slug":5221,"featured":92,"template":736},"kubernetes-overview-operate-cluster-data-on-the-frontend","content:en-us:blog:kubernetes-overview-operate-cluster-data-on-the-frontend.yml","Kubernetes Overview Operate Cluster Data On The Frontend","en-us/blog/kubernetes-overview-operate-cluster-data-on-the-frontend.yml","en-us/blog/kubernetes-overview-operate-cluster-data-on-the-frontend",{"_path":5227,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5228,"content":5234,"config":5237,"_id":5239,"_type":16,"title":5240,"_source":17,"_file":5241,"_stem":5242,"_extension":20},"/en-us/blog/new-scheduled-reports-generation-tool-simplifies-value-stream-management",{"title":5229,"description":5230,"ogTitle":5229,"ogDescription":5230,"noIndex":6,"ogImage":5231,"ogUrl":5232,"ogSiteName":995,"ogType":996,"canonicalUrls":5232,"schema":5233},"New Scheduled Reports Generation tool simplifies value stream management","Proactively receive the most recent metrics from the GitLab Value Streams Dashboard, streamlining the reporting process. This walkthrough shows you how.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669134/Blog/Hero%20Images/blog-image-template-1800x945__17_.png","https://about.gitlab.com/blog/new-scheduled-reports-generation-tool-simplifies-value-stream-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New Scheduled Reports Generation tool simplifies value stream management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2024-06-20\",\n      }",{"title":5229,"description":5230,"authors":5235,"heroImage":5231,"date":5218,"category":577,"tags":5236},[2886],[730,543,1049],{"slug":5238,"featured":6,"template":736},"new-scheduled-reports-generation-tool-simplifies-value-stream-management","content:en-us:blog:new-scheduled-reports-generation-tool-simplifies-value-stream-management.yml","New Scheduled Reports Generation Tool Simplifies Value Stream Management","en-us/blog/new-scheduled-reports-generation-tool-simplifies-value-stream-management.yml","en-us/blog/new-scheduled-reports-generation-tool-simplifies-value-stream-management",{"_path":5244,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5245,"content":5250,"config":5255,"_id":5257,"_type":16,"title":5258,"_source":17,"_file":5259,"_stem":5260,"_extension":20},"/en-us/blog/first-look-the-new-agile-planning-experience-in-gitlab",{"title":5246,"description":5247,"ogTitle":5246,"ogDescription":5247,"noIndex":6,"ogImage":1325,"ogUrl":5248,"ogSiteName":995,"ogType":996,"canonicalUrls":5248,"schema":5249},"First look: The new Agile planning experience in GitLab","Learn about new capabilities, including a brand-new framework, that will support a more unified and flexible user experience – and find out what's coming next.","https://about.gitlab.com/blog/first-look-the-new-agile-planning-experience-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"First look: The new Agile planning experience in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Ushakov\"}],\n        \"datePublished\": \"2024-06-18\",\n      }",{"title":5246,"description":5247,"authors":5251,"heroImage":1325,"date":5253,"category":726,"tags":5254},[5252],"Melissa Ushakov","2024-06-18",[729,730],{"slug":5256,"featured":92,"template":736},"first-look-the-new-agile-planning-experience-in-gitlab","content:en-us:blog:first-look-the-new-agile-planning-experience-in-gitlab.yml","First Look The New Agile Planning Experience In Gitlab","en-us/blog/first-look-the-new-agile-planning-experience-in-gitlab.yml","en-us/blog/first-look-the-new-agile-planning-experience-in-gitlab",{"_path":5262,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5263,"content":5268,"config":5271,"_id":5273,"_type":16,"title":5274,"_source":17,"_file":5275,"_stem":5276,"_extension":20},"/en-us/blog/gitlab-receives-ally-technology-partner-award-for-operational-excellence",{"title":5264,"description":5265,"ogTitle":5264,"ogDescription":5265,"noIndex":6,"ogImage":1164,"ogUrl":5266,"ogSiteName":995,"ogType":996,"canonicalUrls":5266,"schema":5267},"GitLab receives Ally Technology Partner Award for Operational Excellence","Financial firm recognizes GitLab for its ability to deliver lean, automated, and streamlined business models that drive simplified and resilient solutions for Ally and its customers.","https://about.gitlab.com/blog/gitlab-receives-ally-technology-partner-award-for-operational-excellence","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab receives Ally Technology Partner Award for Operational Excellence\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2024-06-18\",\n      }",{"title":5264,"description":5265,"authors":5269,"heroImage":1164,"date":5253,"category":1049,"tags":5270},[3506],[284,1049,543],{"slug":5272,"featured":6,"template":736},"gitlab-receives-ally-technology-partner-award-for-operational-excellence","content:en-us:blog:gitlab-receives-ally-technology-partner-award-for-operational-excellence.yml","Gitlab Receives Ally Technology Partner Award For Operational Excellence","en-us/blog/gitlab-receives-ally-technology-partner-award-for-operational-excellence.yml","en-us/blog/gitlab-receives-ally-technology-partner-award-for-operational-excellence",{"_path":5278,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5279,"content":5285,"config":5290,"_id":5292,"_type":16,"title":5293,"_source":17,"_file":5294,"_stem":5295,"_extension":20},"/en-us/blog/monitor-application-performance-with-distributed-tracing",{"title":5280,"description":5281,"ogTitle":5280,"ogDescription":5281,"noIndex":6,"ogImage":5282,"ogUrl":5283,"ogSiteName":995,"ogType":996,"canonicalUrls":5283,"schema":5284},"Monitor application performance with Distributed Tracing","Learn how Distributed Tracing helps troubleshoot application performance issues by providing end-to-end visibility and seamless collaboration across your organization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098000/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%288%29_5x6kH5vwjz8cwKgSBh1w11_1750098000511.png","https://about.gitlab.com/blog/monitor-application-performance-with-distributed-tracing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Monitor application performance with Distributed Tracing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sacha Guyon\"}],\n        \"datePublished\": \"2024-06-13\",\n      }",{"title":5280,"description":5281,"authors":5286,"heroImage":5282,"date":5288,"category":731,"tags":5289},[5287],"Sacha Guyon","2024-06-13",[1988,730,1049,543,2815],{"slug":5291,"featured":92,"template":736},"monitor-application-performance-with-distributed-tracing","content:en-us:blog:monitor-application-performance-with-distributed-tracing.yml","Monitor Application Performance With Distributed Tracing","en-us/blog/monitor-application-performance-with-distributed-tracing.yml","en-us/blog/monitor-application-performance-with-distributed-tracing",{"_path":5297,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5298,"content":5304,"config":5308,"_id":5310,"_type":16,"title":5311,"_source":17,"_file":5312,"_stem":5313,"_extension":20},"/en-us/blog/online-retailer-bol-tackles-growing-compliance-needs-with-gitlab",{"title":5299,"description":5300,"ogTitle":5299,"ogDescription":5300,"noIndex":6,"ogImage":5301,"ogUrl":5302,"ogSiteName":995,"ogType":996,"canonicalUrls":5302,"schema":5303},"Online retailer bol tackles growing compliance needs with GitLab","Learn how GitLab helps the major international company adhere to regulations while increasing development efficiency.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665465/Blog/Hero%20Images/blog-image-template-1800x945__15_.png","https://about.gitlab.com/blog/online-retailer-bol-tackles-growing-compliance-needs-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Online retailer bol tackles growing compliance needs with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julie Griffin\"}],\n        \"datePublished\": \"2024-06-12\",\n      }",{"title":5299,"description":5300,"authors":5305,"heroImage":5301,"date":5306,"category":3072,"tags":5307},[3523],"2024-06-12",[110,790,3075,543],{"slug":5309,"featured":6,"template":736},"online-retailer-bol-tackles-growing-compliance-needs-with-gitlab","content:en-us:blog:online-retailer-bol-tackles-growing-compliance-needs-with-gitlab.yml","Online Retailer Bol Tackles Growing Compliance Needs With Gitlab","en-us/blog/online-retailer-bol-tackles-growing-compliance-needs-with-gitlab.yml","en-us/blog/online-retailer-bol-tackles-growing-compliance-needs-with-gitlab",{"_path":5315,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5316,"content":5321,"config":5325,"_id":5327,"_type":16,"title":5328,"_source":17,"_file":5329,"_stem":5330,"_extension":20},"/en-us/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo",{"title":5317,"description":5318,"ogTitle":5317,"ogDescription":5318,"noIndex":6,"ogImage":1809,"ogUrl":5319,"ogSiteName":995,"ogType":996,"canonicalUrls":5319,"schema":5320},"Top tips for efficient AI-powered Code Suggestions with GitLab Duo","Explore best practices  for using Code Suggestions and how to combine it with our other AI features to greatly improve the developer experience (includes real-world exercises).","https://about.gitlab.com/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top tips for efficient AI-powered Code Suggestions with GitLab Duo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2024-06-11\",\n      }",{"title":5317,"description":5318,"authors":5322,"heroImage":1809,"date":5323,"category":769,"tags":5324},[1424],"2024-06-11",[728,730,772],{"slug":5326,"featured":92,"template":736},"top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo","content:en-us:blog:top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo.yml","Top Tips For Efficient Ai Powered Code Suggestions With Gitlab Duo","en-us/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo.yml","en-us/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo",{"_path":5332,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5333,"content":5338,"config":5343,"_id":5345,"_type":16,"title":5346,"_source":17,"_file":5347,"_stem":5348,"_extension":20},"/en-us/blog/combine-gitlab-webhooks-and-twilio-for-sms-alerts-on-devsecops-platform",{"title":5334,"description":5335,"ogTitle":5334,"ogDescription":5335,"noIndex":6,"ogImage":1839,"ogUrl":5336,"ogSiteName":995,"ogType":996,"canonicalUrls":5336,"schema":5337},"Combine GitLab webhooks and Twilio for SMS alerts on DevSecOps platform","Configure GitLab webhooks with SMS alerts to instantly get feedback on new and existing issues within a project and enable teams to react quickly to project- and group-level changes.","https://about.gitlab.com/blog/combine-gitlab-webhooks-and-twilio-for-sms-alerts-on-devsecops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Combine GitLab webhooks and Twilio for SMS alerts on DevSecOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ted Gieschen\"}],\n        \"datePublished\": \"2024-06-10\",\n      }",{"title":5334,"description":5335,"authors":5339,"heroImage":1839,"date":5341,"category":577,"tags":5342},[5340],"Ted Gieschen","2024-06-10",[730,772,731,790,543],{"slug":5344,"featured":92,"template":736},"combine-gitlab-webhooks-and-twilio-for-sms-alerts-on-devsecops-platform","content:en-us:blog:combine-gitlab-webhooks-and-twilio-for-sms-alerts-on-devsecops-platform.yml","Combine Gitlab Webhooks And Twilio For Sms Alerts On Devsecops Platform","en-us/blog/combine-gitlab-webhooks-and-twilio-for-sms-alerts-on-devsecops-platform.yml","en-us/blog/combine-gitlab-webhooks-and-twilio-for-sms-alerts-on-devsecops-platform",{"_path":5350,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5351,"content":5357,"config":5363,"_id":5365,"_type":16,"title":5366,"_source":17,"_file":5367,"_stem":5368,"_extension":20},"/en-us/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",{"title":5352,"description":5353,"ogTitle":5352,"ogDescription":5353,"noIndex":6,"ogImage":5354,"ogUrl":5355,"ogSiteName":995,"ogType":996,"canonicalUrls":5355,"schema":5356},"GitLab Duo: AI-powered CI/CD pipeline root cause analysis","Discover how we've infused Root Cause Analysis with AI to help remedy broken CI/CD pipelines, including example scenarios and take-away exercises.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097321/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750097321081.png","https://about.gitlab.com/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo: Blending AI and Root Cause Analysis to fix CI/CD pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rutvik Shah\"},{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2024-06-06\",\n      }",{"title":5358,"description":5353,"authors":5359,"heroImage":5354,"date":5361,"category":769,"tags":5362},"Developing GitLab Duo: Blending AI and Root Cause Analysis to fix CI/CD pipelines",[5360,1424],"Rutvik Shah","2024-06-06",[728,772,574,543,730],{"slug":5364,"featured":92,"template":736},"developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","content:en-us:blog:developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd.yml","Developing Gitlab Duo Blending Ai And Root Cause Analysis To Fix Ci Cd","en-us/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd.yml","en-us/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",{"_path":5370,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5371,"content":5376,"config":5381,"_id":5383,"_type":16,"title":5384,"_source":17,"_file":5385,"_stem":5386,"_extension":20},"/en-us/blog/gitlab-support-to-require-sign-in-to-create-support-tickets",{"title":5372,"description":5373,"ogTitle":5372,"ogDescription":5373,"noIndex":6,"ogImage":1164,"ogUrl":5374,"ogSiteName":995,"ogType":996,"canonicalUrls":5374,"schema":5375},"GitLab Support to require sign-in to create support tickets","Find out why this change is occurring and what you need to do.","https://about.gitlab.com/blog/gitlab-support-to-require-sign-in-to-create-support-tickets","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Support to require sign-in to create support tickets\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lyle Kozloff\"}],\n        \"datePublished\": \"2024-06-05\",\n      }",{"title":5372,"description":5373,"authors":5377,"heroImage":1164,"date":5379,"category":14,"tags":5380},[5378],"Lyle Kozloff","2024-06-05",[731,3075,1049],{"slug":5382,"featured":6,"template":736},"gitlab-support-to-require-sign-in-to-create-support-tickets","content:en-us:blog:gitlab-support-to-require-sign-in-to-create-support-tickets.yml","Gitlab Support To Require Sign In To Create Support Tickets","en-us/blog/gitlab-support-to-require-sign-in-to-create-support-tickets.yml","en-us/blog/gitlab-support-to-require-sign-in-to-create-support-tickets",{"_path":5388,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5389,"content":5394,"config":5397,"_id":5399,"_type":16,"title":5400,"_source":17,"_file":5401,"_stem":5402,"_extension":20},"/en-us/blog/secure-by-design-principles-meet-devsecops-innovation-in-gitlab-17",{"title":5390,"description":5391,"ogTitle":5390,"ogDescription":5391,"noIndex":6,"ogImage":4454,"ogUrl":5392,"ogSiteName":995,"ogType":996,"canonicalUrls":5392,"schema":5393},"Secure by Design principles meet DevSecOps innovation in GitLab 17","GitLab reinforced a commitment to Secure by Design principles across key aspects of the software development lifecycle in latest release, further protecting the software supply chain.","https://about.gitlab.com/blog/secure-by-design-principles-meet-devsecops-innovation-in-gitlab-17","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure by Design principles meet DevSecOps innovation in GitLab 17\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Elisabeth Burrows\"}],\n        \"datePublished\": \"2024-06-05\",\n      }",{"title":5390,"description":5391,"authors":5395,"heroImage":4454,"date":5379,"category":790,"tags":5396},[1913],[186,790,543,574],{"slug":5398,"featured":92,"template":736},"secure-by-design-principles-meet-devsecops-innovation-in-gitlab-17","content:en-us:blog:secure-by-design-principles-meet-devsecops-innovation-in-gitlab-17.yml","Secure By Design Principles Meet Devsecops Innovation In Gitlab 17","en-us/blog/secure-by-design-principles-meet-devsecops-innovation-in-gitlab-17.yml","en-us/blog/secure-by-design-principles-meet-devsecops-innovation-in-gitlab-17",{"_path":5404,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5405,"content":5410,"config":5414,"_id":5416,"_type":16,"title":5417,"_source":17,"_file":5418,"_stem":5419,"_extension":20},"/en-us/blog/a-ci-component-builders-journey",{"title":5406,"description":5407,"ogTitle":5406,"ogDescription":5407,"noIndex":6,"ogImage":2789,"ogUrl":5408,"ogSiteName":995,"ogType":996,"canonicalUrls":5408,"schema":5409},"A CI/CD component builder's journey","Learn how a creator of shared, includable templates upskilled by migrating the templates to GitLab CI/CD components and the CI/CD Catalog.","https://about.gitlab.com/blog/a-ci-component-builders-journey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A CI/CD component builder's journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2024-06-04\",\n      }",{"title":5406,"description":5407,"authors":5411,"heroImage":2789,"date":5412,"category":1388,"tags":5413},[959],"2024-06-04",[110,2097,2098],{"slug":5415,"featured":6,"template":736},"a-ci-component-builders-journey","content:en-us:blog:a-ci-component-builders-journey.yml","A Ci Component Builders Journey","en-us/blog/a-ci-component-builders-journey.yml","en-us/blog/a-ci-component-builders-journey",{"_path":5421,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5422,"content":5427,"config":5431,"_id":5433,"_type":16,"title":5434,"_source":17,"_file":5435,"_stem":5436,"_extension":20},"/en-us/blog/developing-gitlab-duo-series",{"title":5423,"description":5424,"ogTitle":5423,"ogDescription":5424,"noIndex":6,"ogImage":979,"ogUrl":5425,"ogSiteName":995,"ogType":996,"canonicalUrls":5425,"schema":5426},"Developing GitLab Duo series","Our unique blog series, written by our Product and Engineering teams, takes you behind the scenes of our AI innovation and guides you through our newest AI features powering your DevSecOps workflow.","https://about.gitlab.com/blog/developing-gitlab-duo-series","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo series\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2024-06-03\",\n      }",{"title":5423,"description":5424,"authors":5428,"heroImage":979,"date":5429,"category":769,"tags":5430},[2094],"2024-06-03",[728,730,574,543],{"slug":5432,"featured":6,"template":736},"developing-gitlab-duo-series","content:en-us:blog:developing-gitlab-duo-series.yml","Developing Gitlab Duo Series","en-us/blog/developing-gitlab-duo-series.yml","en-us/blog/developing-gitlab-duo-series",{"_path":5438,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5439,"content":5445,"config":5450,"_id":5452,"_type":16,"title":5453,"_source":17,"_file":5454,"_stem":5455,"_extension":20},"/en-us/blog/inside-look-how-gitlabs-test-platform-team-validates-ai-features",{"title":5440,"description":5441,"ogTitle":5440,"ogDescription":5441,"noIndex":6,"ogImage":5442,"ogUrl":5443,"ogSiteName":995,"ogType":996,"canonicalUrls":5443,"schema":5444},"Inside look: How GitLab's Test Platform team validates AI features","Learn how we continuously analyze AI feature performance, including testing latency worldwide, and get to know our new AI continuous analysis tool.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099033/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_78Dav6FR9EGjhebHWuBVan_1750099033422.png","https://about.gitlab.com/blog/inside-look-how-gitlabs-test-platform-team-validates-ai-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside look: How GitLab's Test Platform team validates AI features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Lapierre\"},{\"@type\":\"Person\",\"name\":\"Vincy Wilson\"}],\n        \"datePublished\": \"2024-06-03\",\n      }",{"title":5440,"description":5441,"authors":5446,"heroImage":5442,"date":5429,"category":769,"tags":5449},[5447,5448],"Mark Lapierre","Vincy Wilson",[728,730,543,1569,964,1988],{"slug":5451,"featured":92,"template":736},"inside-look-how-gitlabs-test-platform-team-validates-ai-features","content:en-us:blog:inside-look-how-gitlabs-test-platform-team-validates-ai-features.yml","Inside Look How Gitlabs Test Platform Team Validates Ai Features","en-us/blog/inside-look-how-gitlabs-test-platform-team-validates-ai-features.yml","en-us/blog/inside-look-how-gitlabs-test-platform-team-validates-ai-features",{"_path":5457,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5458,"content":5464,"config":5469,"_id":5471,"_type":16,"title":5472,"_source":17,"_file":5473,"_stem":5474,"_extension":20},"/en-us/blog/gitlab-extends-omnibus-package-signing-key-expiration-to-2025",{"title":5459,"description":5460,"ogTitle":5459,"ogDescription":5460,"noIndex":6,"ogImage":5461,"ogUrl":5462,"ogSiteName":995,"ogType":996,"canonicalUrls":5462,"schema":5463},"GitLab extends Omnibus package signing key expiration to 2025","Our GNU Privacy Guard (GPG) key will now expire on July 1, 2025. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662877/Blog/Hero%20Images/security-cover-new.png","https://about.gitlab.com/blog/gitlab-extends-omnibus-package-signing-key-expiration-to-2025","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab extends Omnibus package signing key expiration to 2025\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Patterson\"}],\n        \"datePublished\": \"2024-05-31\",\n      }",{"title":5459,"description":5460,"authors":5465,"heroImage":5461,"date":5467,"category":14,"tags":5468},[5466],"Andrew Patterson","2024-05-31",[731,1049,790],{"slug":5470,"featured":6,"template":736},"gitlab-extends-omnibus-package-signing-key-expiration-to-2025","content:en-us:blog:gitlab-extends-omnibus-package-signing-key-expiration-to-2025.yml","Gitlab Extends Omnibus Package Signing Key Expiration To 2025","en-us/blog/gitlab-extends-omnibus-package-signing-key-expiration-to-2025.yml","en-us/blog/gitlab-extends-omnibus-package-signing-key-expiration-to-2025",{"_path":5476,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5477,"content":5482,"config":5486,"_id":5488,"_type":16,"title":5489,"_source":17,"_file":5490,"_stem":5491,"_extension":20},"/en-us/blog/a-beginners-guide-to-the-git-reftable-format",{"title":5478,"description":5479,"ogTitle":5478,"ogDescription":5479,"noIndex":6,"ogImage":4194,"ogUrl":5480,"ogSiteName":995,"ogType":996,"canonicalUrls":5480,"schema":5481},"A beginner's guide to the Git reftable format","In Git 2.45.0, GitLab upstreamed the reftable backend to Git, which completely changes how references are stored. Get an in-depth look at the inner workings of this new format.","https://about.gitlab.com/blog/a-beginners-guide-to-the-git-reftable-format","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A beginner's guide to the Git reftable format\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Steinhardt\"}],\n        \"datePublished\": \"2024-05-30\",\n      }",{"title":5478,"description":5479,"authors":5483,"heroImage":4194,"date":5484,"category":1388,"tags":5485},[2390],"2024-05-30",[1195,772,1265,1988],{"slug":5487,"featured":92,"template":736},"a-beginners-guide-to-the-git-reftable-format","content:en-us:blog:a-beginners-guide-to-the-git-reftable-format.yml","A Beginners Guide To The Git Reftable Format","en-us/blog/a-beginners-guide-to-the-git-reftable-format.yml","en-us/blog/a-beginners-guide-to-the-git-reftable-format",{"_path":5493,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5494,"content":5499,"config":5502,"_id":5504,"_type":16,"title":5505,"_source":17,"_file":5506,"_stem":5507,"_extension":20},"/en-us/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code",{"title":5495,"description":5496,"ogTitle":5495,"ogDescription":5496,"noIndex":6,"ogImage":824,"ogUrl":5497,"ogSiteName":995,"ogType":996,"canonicalUrls":5497,"schema":5498},"Developing GitLab Duo: Secure and thoroughly test AI-generated code","Learn step-by-step how to enhance AI-generated code reliability and security using GitLab Duo and GitLab Pages (includes code samples and prompts).","https://about.gitlab.com/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo: Secure and thoroughly test AI-generated code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-05-30\",\n      }",{"title":5495,"description":5496,"authors":5500,"heroImage":824,"date":5484,"category":769,"tags":5501},[3053],[728,574,772,790],{"slug":5503,"featured":6,"template":736},"how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code","content:en-us:blog:how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code.yml","How Gitlab Duo Helps Secure And Thoroughly Test Ai Generated Code","en-us/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code.yml","en-us/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code",{"_path":5509,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5510,"content":5516,"config":5520,"_id":5522,"_type":16,"title":5523,"_source":17,"_file":5524,"_stem":5525,"_extension":20},"/en-us/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant",{"title":5511,"description":5512,"ogTitle":5511,"ogDescription":5512,"noIndex":6,"ogImage":5513,"ogUrl":5514,"ogSiteName":995,"ogType":996,"canonicalUrls":5514,"schema":5515},"GitLab Duo Chat 101: Get more done on GitLab with our AI assistant","In this first article in our series learn how Chat can improve developer productivity – for example, by summarizing issues – and how to improve prompts to get better answers faster.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099126/Blog/Hero%20Images/Blog/Hero%20Images/GitLab_Duo_Blog_Hero_1800x945_r2_B%20%281%29_6a2UB7TOQk3JKxyb5yqYtc_1750099126039.png","https://about.gitlab.com/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Chat 101: Get more done on GitLab with our AI assistant\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2024-05-29\",\n      }",{"title":5511,"description":5512,"authors":5517,"heroImage":5513,"date":5518,"category":769,"tags":5519},[3181],"2024-05-29",[728,543,574,772],{"slug":5521,"featured":92,"template":736},"gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant","content:en-us:blog:gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant.yml","Gitlab Duo Chat 101 Get More Done On Gitlab With Our Ai Assistant","en-us/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant.yml","en-us/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant",{"_path":5527,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5528,"content":5533,"config":5537,"_id":5539,"_type":16,"title":5540,"_source":17,"_file":5541,"_stem":5542,"_extension":20},"/en-us/blog/3-tips-to-improve-your-security-risk-management-program",{"title":5529,"description":5530,"ogTitle":5529,"ogDescription":5530,"noIndex":6,"ogImage":4049,"ogUrl":5531,"ogSiteName":995,"ogType":996,"canonicalUrls":5531,"schema":5532},"3 tips to improve your security risk management program","Establishing a security risk management program is more than just checking the compliance box. Here are a few ways to help better protect information and support strategic decision-making.","https://about.gitlab.com/blog/3-tips-to-improve-your-security-risk-management-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 tips to improve your security risk management program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kyle Smith\"}],\n        \"datePublished\": \"2024-05-28\",\n      }",{"title":5529,"description":5530,"authors":5534,"heroImage":4049,"date":5535,"category":790,"tags":5536},[2757],"2024-05-28",[790,574],{"slug":5538,"featured":92,"template":736},"3-tips-to-improve-your-security-risk-management-program","content:en-us:blog:3-tips-to-improve-your-security-risk-management-program.yml","3 Tips To Improve Your Security Risk Management Program","en-us/blog/3-tips-to-improve-your-security-risk-management-program.yml","en-us/blog/3-tips-to-improve-your-security-risk-management-program",{"_path":5544,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5545,"content":5551,"config":5556,"_id":5558,"_type":16,"title":5559,"_source":17,"_file":5560,"_stem":5561,"_extension":20},"/en-us/blog/7-steps-to-enhance-application-security-without-slowing-developer-velocity",{"title":5546,"description":5547,"ogTitle":5546,"ogDescription":5547,"noIndex":6,"ogImage":5548,"ogUrl":5549,"ogSiteName":995,"ogType":996,"canonicalUrls":5549,"schema":5550},"7 steps to enhance application security without slowing developer velocity","Learn how to incrementally enable scanning to successfully shift-left security while keeping development at pace.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099154/Blog/Hero%20Images/Blog/Hero%20Images/applicationsecurity_applicationsecurity.png_1750099154308.png","https://about.gitlab.com/blog/7-steps-to-enhance-application-security-without-slowing-developer-velocity","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"7 steps to enhance application security without slowing developer velocity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julie Byrne\"}],\n        \"datePublished\": \"2024-05-21\",\n      }",{"title":5546,"description":5547,"authors":5552,"heroImage":5548,"date":5554,"category":790,"tags":5555},[5553],"Julie Byrne","2024-05-21",[790,574],{"slug":5557,"featured":92,"template":736},"7-steps-to-enhance-application-security-without-slowing-developer-velocity","content:en-us:blog:7-steps-to-enhance-application-security-without-slowing-developer-velocity.yml","7 Steps To Enhance Application Security Without Slowing Developer Velocity","en-us/blog/7-steps-to-enhance-application-security-without-slowing-developer-velocity.yml","en-us/blog/7-steps-to-enhance-application-security-without-slowing-developer-velocity",{"_path":5563,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5564,"content":5570,"config":5574,"_id":5576,"_type":16,"title":5577,"_source":17,"_file":5578,"_stem":5579,"_extension":20},"/en-us/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features",{"title":5565,"description":5566,"ogTitle":5565,"ogDescription":5566,"noIndex":6,"ogImage":5567,"ogUrl":5568,"ogSiteName":995,"ogType":996,"canonicalUrls":5568,"schema":5569},"Developing GitLab Duo: How we are dogfooding our AI features","As part of our blog series, we share real-world examples of how we integrate AI throughout our software development lifecycle and how we use metrics to gauge their success.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098360/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098360821.png","https://about.gitlab.com/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo: How we are dogfooding our AI features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-05-20\",\n      }",{"title":5565,"description":5566,"authors":5571,"heroImage":5567,"date":5572,"category":769,"tags":5573},[3053],"2024-05-20",[728,1932,730,543,1335],{"slug":5575,"featured":92,"template":736},"developing-gitlab-duo-how-we-are-dogfooding-our-ai-features","content:en-us:blog:developing-gitlab-duo-how-we-are-dogfooding-our-ai-features.yml","Developing Gitlab Duo How We Are Dogfooding Our Ai Features","en-us/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features.yml","en-us/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features",{"_path":5581,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5582,"content":5587,"config":5592,"_id":5594,"_type":16,"title":5595,"_source":17,"_file":5596,"_stem":5597,"_extension":20},"/en-us/blog/gitlab-native-secrets-manager-to-give-software-supply-chain-security-a-boost",{"title":5583,"description":5584,"ogTitle":5583,"ogDescription":5584,"noIndex":6,"ogImage":4103,"ogUrl":5585,"ogSiteName":995,"ogType":996,"canonicalUrls":5585,"schema":5586},"GitLab native secrets manager boosts supply chain security","GitLab is building a secrets manager that is key to providing an end-to-end, cloud-agnostic approach to the management of sensitive information.","https://about.gitlab.com/blog/gitlab-native-secrets-manager-to-give-software-supply-chain-security-a-boost","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab native secrets manager to give software supply chain security a boost\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jocelyn Eillis\"}],\n        \"datePublished\": \"2024-05-20\",\n      }",{"title":5588,"description":5584,"authors":5589,"heroImage":4103,"date":5572,"category":790,"tags":5591},"GitLab native secrets manager to give software supply chain security a boost",[5590],"Jocelyn Eillis",[790,730,543],{"slug":5593,"featured":6,"template":736},"gitlab-native-secrets-manager-to-give-software-supply-chain-security-a-boost","content:en-us:blog:gitlab-native-secrets-manager-to-give-software-supply-chain-security-a-boost.yml","Gitlab Native Secrets Manager To Give Software Supply Chain Security A Boost","en-us/blog/gitlab-native-secrets-manager-to-give-software-supply-chain-security-a-boost.yml","en-us/blog/gitlab-native-secrets-manager-to-give-software-supply-chain-security-a-boost",{"_path":5599,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5600,"content":5606,"config":5610,"_id":5612,"_type":16,"title":5613,"_source":17,"_file":5614,"_stem":5615,"_extension":20},"/en-us/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai",{"title":5601,"description":5602,"ogTitle":5601,"ogDescription":5602,"noIndex":6,"ogImage":5603,"ogUrl":5604,"ogSiteName":995,"ogType":996,"canonicalUrls":5604,"schema":5605},"Developing GitLab Duo: AI Impact analytics dashboard measures the ROI of AI","Our blog series continues spotlighting a new feature that provides detailed metrics, such as the Code Suggestions Usage Rate, to help understand the effectiveness of AI investments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098611/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098611370.png","https://about.gitlab.com/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo: AI Impact analytics dashboard measures the ROI of AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2024-05-15\",\n      }",{"title":5601,"description":5602,"authors":5607,"heroImage":5603,"date":5608,"category":769,"tags":5609},[2886],"2024-05-15",[728,1988,730],{"slug":5611,"featured":92,"template":736},"developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai","content:en-us:blog:developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai.yml","Developing Gitlab Duo Ai Impact Analytics Dashboard Measures The Roi Of Ai","en-us/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai.yml","en-us/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai",{"_path":5617,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5618,"content":5624,"config":5628,"_id":5630,"_type":16,"title":5631,"_source":17,"_file":5632,"_stem":5633,"_extension":20},"/en-us/blog/rate-limitations-announced-for-projects-groups-and-users-apis",{"title":5619,"description":5620,"ogTitle":5619,"ogDescription":5620,"noIndex":6,"ogImage":5621,"ogUrl":5622,"ogSiteName":995,"ogType":996,"canonicalUrls":5622,"schema":5623},"Rate limitations announced for Projects, Groups, and Users APIs","Learn why these changes are being made, when they go into effect, and what to expect.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662504/Blog/Hero%20Images/devsecops-automated-security.jpg","https://about.gitlab.com/blog/rate-limitations-announced-for-projects-groups-and-users-apis","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Rate limitations announced for Projects, Groups, and Users APIs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Lohr\"}],\n        \"datePublished\": \"2024-05-14\",\n      }",{"title":5619,"description":5620,"authors":5625,"heroImage":5621,"date":5626,"category":14,"tags":5627,"updatedDate":2245},[1664],"2024-05-14",[543,731],{"slug":5629,"featured":6,"template":736},"rate-limitations-announced-for-projects-groups-and-users-apis","content:en-us:blog:rate-limitations-announced-for-projects-groups-and-users-apis.yml","Rate Limitations Announced For Projects Groups And Users Apis","en-us/blog/rate-limitations-announced-for-projects-groups-and-users-apis.yml","en-us/blog/rate-limitations-announced-for-projects-groups-and-users-apis",{"_path":5635,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5636,"content":5642,"config":5646,"_id":5648,"_type":16,"title":5649,"_source":17,"_file":5650,"_stem":5651,"_extension":20},"/en-us/blog/detect-application-vulnerabilities-with-gitlabs-browser-based-dast",{"title":5637,"description":5638,"ogTitle":5637,"ogDescription":5638,"noIndex":6,"ogImage":5639,"ogUrl":5640,"ogSiteName":995,"ogType":996,"canonicalUrls":5640,"schema":5641},"Detect application vulnerabilities with GitLab’s browser-based DAST","Learn why you should include dynamic application security testing as part of a defense-in-depth strategy for software development, and how to migrate from proxy-based DAST.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664923/Blog/Hero%20Images/security-checklist.png","https://about.gitlab.com/blog/detect-application-vulnerabilities-with-gitlabs-browser-based-dast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Detect application vulnerabilities with GitLab’s browser-based DAST\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Meadzinger\"}],\n        \"datePublished\": \"2024-05-13\",\n      }",{"title":5637,"description":5638,"authors":5643,"heroImage":5639,"date":5644,"category":790,"tags":5645},[5198],"2024-05-13",[790,964,730,731],{"slug":5647,"featured":92,"template":736},"detect-application-vulnerabilities-with-gitlabs-browser-based-dast","content:en-us:blog:detect-application-vulnerabilities-with-gitlabs-browser-based-dast.yml","Detect Application Vulnerabilities With Gitlabs Browser Based Dast","en-us/blog/detect-application-vulnerabilities-with-gitlabs-browser-based-dast.yml","en-us/blog/detect-application-vulnerabilities-with-gitlabs-browser-based-dast",{"_path":5653,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5654,"content":5659,"config":5663,"_id":5665,"_type":16,"title":5666,"_source":17,"_file":5667,"_stem":5668,"_extension":20},"/en-us/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",{"title":5655,"description":5656,"ogTitle":5655,"ogDescription":5656,"noIndex":6,"ogImage":979,"ogUrl":5657,"ogSiteName":995,"ogType":996,"canonicalUrls":5657,"schema":5658},"Developing GitLab Duo: How we validate and test AI models at scale","Our blog series debuts with a behind-the-scenes look at how we evaluate LLMs, match them to use cases, and fine-tune them to produce better responses for users.","https://about.gitlab.com/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing GitLab Duo: How we validate and test AI models at scale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Susie Bitters\"}],\n        \"datePublished\": \"2024-05-09\",\n      }",{"title":5655,"description":5656,"authors":5660,"heroImage":979,"date":5661,"category":769,"tags":5662},[1808],"2024-05-09",[728,574,543,730,1569],{"slug":5664,"featured":92,"template":736},"developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","content:en-us:blog:developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","Developing Gitlab Duo How We Validate And Test Ai Models At Scale","en-us/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","en-us/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",{"_path":5670,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5671,"content":5677,"config":5681,"_id":5683,"_type":16,"title":5684,"_source":17,"_file":5685,"_stem":5686,"_extension":20},"/en-us/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch",{"title":5672,"description":5673,"ogTitle":5672,"ogDescription":5673,"noIndex":6,"ogImage":5674,"ogUrl":5675,"ogSiteName":995,"ogType":996,"canonicalUrls":5675,"schema":5676},"CI/CD Catalog goes GA: No more building pipelines from scratch","The CI/CD Catalog becomes generally available in GitLab 17.0. Get to know the capabilities for discovering and sharing pipeline building blocks to help standardize and scale pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098794/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%289%29_DoeBNJVrhv9FpF3WCsHNc_1750098793762.png","https://about.gitlab.com/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CI/CD Catalog goes GA: No more building pipelines from scratch\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2024-05-08\",\n      }",{"title":5672,"description":5673,"authors":5678,"heroImage":5674,"date":5679,"category":731,"tags":5680},[1712],"2024-05-08",[110,574,543,730],{"slug":5682,"featured":92,"template":736},"ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch","content:en-us:blog:ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch.yml","Ci Cd Catalog Goes Ga No More Building Pipelines From Scratch","en-us/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch.yml","en-us/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch",{"_path":5688,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5689,"content":5695,"config":5699,"_id":5701,"_type":16,"title":5702,"_source":17,"_file":5703,"_stem":5704,"_extension":20},"/en-us/blog/debug-web-apps-quickly-within-gitlab",{"title":5690,"description":5691,"ogTitle":5690,"ogDescription":5691,"noIndex":6,"ogImage":5692,"ogUrl":5693,"ogSiteName":995,"ogType":996,"canonicalUrls":5693,"schema":5694},"Debug Web apps quickly within GitLab","Jam for GitLab, a browser extension, creates GitLab issues with critical context such as browser info, console/network logs, and reproduction steps - in one click.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099168/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2810%29_arHGAEPyRHF7euCvaxE0S_1750099168482.png","https://about.gitlab.com/blog/debug-web-apps-quickly-within-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Debug Web apps quickly within GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ivanha Paz\"}],\n        \"datePublished\": \"2024-05-08\",\n      }",{"title":5690,"description":5691,"authors":5696,"heroImage":5692,"date":5679,"category":858,"tags":5698},[5697],"Ivanha Paz",[233,1932,574],{"slug":5700,"featured":6,"template":736},"debug-web-apps-quickly-within-gitlab","content:en-us:blog:debug-web-apps-quickly-within-gitlab.yml","Debug Web Apps Quickly Within Gitlab","en-us/blog/debug-web-apps-quickly-within-gitlab.yml","en-us/blog/debug-web-apps-quickly-within-gitlab",{"_path":5706,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5707,"content":5712,"config":5716,"_id":5718,"_type":16,"title":5719,"_source":17,"_file":5720,"_stem":5721,"_extension":20},"/en-us/blog/tutorial-install-vs-code-on-a-cloud-provider-vm-and-set-up-remote-access",{"title":5708,"description":5709,"ogTitle":5708,"ogDescription":5709,"noIndex":6,"ogImage":1728,"ogUrl":5710,"ogSiteName":995,"ogType":996,"canonicalUrls":5710,"schema":5711},"Tutorial: Install VS Code on a cloud provider VM and set up remote access","Learn how to automate the installation of VS Code on a VM running on a cloud provider and how to access it from your local laptop.","https://about.gitlab.com/blog/tutorial-install-vs-code-on-a-cloud-provider-vm-and-set-up-remote-access","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Install VS Code on a cloud provider VM and set up remote access\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2024-05-06\",\n      }",{"title":5708,"description":5709,"authors":5713,"heroImage":1728,"date":5714,"category":858,"tags":5715},[767],"2024-05-06",[582,772,1265],{"slug":5717,"featured":92,"template":736},"tutorial-install-vs-code-on-a-cloud-provider-vm-and-set-up-remote-access","content:en-us:blog:tutorial-install-vs-code-on-a-cloud-provider-vm-and-set-up-remote-access.yml","Tutorial Install Vs Code On A Cloud Provider Vm And Set Up Remote Access","en-us/blog/tutorial-install-vs-code-on-a-cloud-provider-vm-and-set-up-remote-access.yml","en-us/blog/tutorial-install-vs-code-on-a-cloud-provider-vm-and-set-up-remote-access",{"_path":5723,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5724,"content":5729,"config":5734,"_id":5736,"_type":16,"title":5737,"_source":17,"_file":5738,"_stem":5739,"_extension":20},"/en-us/blog/migration-guide-github-advanced-security-to-gitlab-ultimate",{"title":5725,"description":5726,"ogTitle":5725,"ogDescription":5726,"noIndex":6,"ogImage":2148,"ogUrl":5727,"ogSiteName":995,"ogType":996,"canonicalUrls":5727,"schema":5728},"Migration guide: GitHub Advanced Security to GitLab Ultimate","Understand the similarities and differences between GitLab Ultimate and GitHub Advanced Security. Then follow this in-depth tutorial to make the move to the GitLab DevSecOps platform.","https://about.gitlab.com/blog/migration-guide-github-advanced-security-to-gitlab-ultimate","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migration guide: GitHub Advanced Security to GitLab Ultimate\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-05-01\",\n      }",{"title":5725,"description":5726,"authors":5730,"heroImage":2148,"date":5731,"category":790,"tags":5732},[1097],"2024-05-01",[772,5733,790,543,964],"zero trust",{"slug":5735,"featured":92,"template":736},"migration-guide-github-advanced-security-to-gitlab-ultimate","content:en-us:blog:migration-guide-github-advanced-security-to-gitlab-ultimate.yml","Migration Guide Github Advanced Security To Gitlab Ultimate","en-us/blog/migration-guide-github-advanced-security-to-gitlab-ultimate.yml","en-us/blog/migration-guide-github-advanced-security-to-gitlab-ultimate",{"_path":5741,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5742,"content":5747,"config":5752,"_id":5754,"_type":16,"title":5755,"_source":17,"_file":5756,"_stem":5757,"_extension":20},"/en-us/blog/happy-birthday-secure-by-design",{"title":5743,"description":5744,"ogTitle":5743,"ogDescription":5744,"noIndex":6,"ogImage":4103,"ogUrl":5745,"ogSiteName":995,"ogType":996,"canonicalUrls":5745,"schema":5746},"Happy birthday, Secure by Design!","The U.S. government's initiative to ensure greater security in software products turns one. Find out what GitLab has done to align with this critical effort.","https://about.gitlab.com/blog/happy-birthday-secure-by-design","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Happy birthday, Secure by Design!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joel Krooswyk\"}],\n        \"datePublished\": \"2024-04-30\",\n      }",{"title":5743,"description":5744,"authors":5748,"heroImage":4103,"date":5750,"category":790,"tags":5751},[5749],"Joel Krooswyk","2024-04-30",[790,543,574,5733,186],{"slug":5753,"featured":92,"template":736},"happy-birthday-secure-by-design","content:en-us:blog:happy-birthday-secure-by-design.yml","Happy Birthday Secure By Design","en-us/blog/happy-birthday-secure-by-design.yml","en-us/blog/happy-birthday-secure-by-design",{"_path":5759,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5760,"content":5765,"config":5768,"_id":5770,"_type":16,"title":5771,"_source":17,"_file":5772,"_stem":5773,"_extension":20},"/en-us/blog/whats-new-in-git-2-45-0",{"title":5761,"description":5762,"ogTitle":5761,"ogDescription":5762,"noIndex":6,"ogImage":3624,"ogUrl":5763,"ogSiteName":995,"ogType":996,"canonicalUrls":5763,"schema":5764},"What’s new in Git 2.45.0?","Here are some highlights of contributions from GitLab's Git team and the wider Git community to the latest Git release, including reftables and better tooling for references.\n","https://about.gitlab.com/blog/whats-new-in-git-2-45-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What’s new in Git 2.45.0?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Steinhardt\"}],\n        \"datePublished\": \"2024-04-30\",\n      }",{"title":5761,"description":5762,"authors":5766,"heroImage":3624,"date":5750,"category":1388,"tags":5767},[2390],[1195,269],{"slug":5769,"featured":6,"template":736},"whats-new-in-git-2-45-0","content:en-us:blog:whats-new-in-git-2-45-0.yml","Whats New In Git 2 45 0","en-us/blog/whats-new-in-git-2-45-0.yml","en-us/blog/whats-new-in-git-2-45-0",{"_path":5775,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5776,"content":5782,"config":5787,"_id":5789,"_type":16,"title":5790,"_source":17,"_file":5791,"_stem":5792,"_extension":20},"/en-us/blog/meet-the-2024-gitlab-partner-of-the-year-award-winners",{"title":5777,"description":5778,"ogTitle":5777,"ogDescription":5778,"noIndex":6,"ogImage":5779,"ogUrl":5780,"ogSiteName":995,"ogType":996,"canonicalUrls":5780,"schema":5781},"Meet the 2024 GitLab Partner of the Year award winners","Find out who was recognized across our channel, technology, and cloud partners for their collaboration and contributions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099196/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%285%29_3Ap5GS9mcSfiVI0dAVDRHg_1750099195945.png","https://about.gitlab.com/blog/meet-the-2024-gitlab-partner-of-the-year-award-winners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet the 2024 GitLab Partner of the Year award winners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Weber\"}],\n        \"datePublished\": \"2024-04-25\",\n      }",{"title":5777,"description":5778,"authors":5783,"heroImage":5779,"date":5785,"category":1049,"tags":5786},[5784],"Chris Weber","2024-04-25",[1049,284],{"slug":5788,"featured":6,"template":736},"meet-the-2024-gitlab-partner-of-the-year-award-winners","content:en-us:blog:meet-the-2024-gitlab-partner-of-the-year-award-winners.yml","Meet The 2024 Gitlab Partner Of The Year Award Winners","en-us/blog/meet-the-2024-gitlab-partner-of-the-year-award-winners.yml","en-us/blog/meet-the-2024-gitlab-partner-of-the-year-award-winners",{"_path":5794,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5795,"content":5800,"config":5804,"_id":5806,"_type":16,"title":5807,"_source":17,"_file":5808,"_stem":5809,"_extension":20},"/en-us/blog/a-developers-guide-to-building-an-ai-security-governance-framework",{"title":5796,"description":5797,"ogTitle":5796,"ogDescription":5797,"noIndex":6,"ogImage":3104,"ogUrl":5798,"ogSiteName":995,"ogType":996,"canonicalUrls":5798,"schema":5799},"A developer's guide to building an AI security governance framework","Learn the strategies and practices to adopt for secure and responsible development and use of AI.","https://about.gitlab.com/blog/a-developers-guide-to-building-an-ai-security-governance-framework","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A developer's guide to building an AI security governance framework\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ayoub Fandi\"}],\n        \"datePublished\": \"2024-04-23\",\n      }",{"title":5796,"description":5797,"authors":5801,"heroImage":3104,"date":5802,"category":769,"tags":5803},[2758],"2024-04-23",[728,574,790,186],{"slug":5805,"featured":92,"template":736},"a-developers-guide-to-building-an-ai-security-governance-framework","content:en-us:blog:a-developers-guide-to-building-an-ai-security-governance-framework.yml","A Developers Guide To Building An Ai Security Governance Framework","en-us/blog/a-developers-guide-to-building-an-ai-security-governance-framework.yml","en-us/blog/a-developers-guide-to-building-an-ai-security-governance-framework",{"_path":5811,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5812,"content":5818,"config":5823,"_id":5825,"_type":16,"title":5826,"_source":17,"_file":5827,"_stem":5828,"_extension":20},"/en-us/blog/gitlab-duo-chat-now-generally-available",{"title":5813,"description":5814,"ogTitle":5813,"ogDescription":5814,"noIndex":6,"ogImage":5815,"ogUrl":5816,"ogSiteName":995,"ogType":996,"canonicalUrls":5816,"schema":5817},"GitLab Duo Chat, your at-the-ready AI assistant, is now generally available","Explore a real-world example of how our versatile conversational interface for GitLab Duo helps developers onboard faster and write secure code more efficiently.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671806/Blog/Hero%20Images/GitLab-Duo-Chat-Thumbnail.png","https://about.gitlab.com/blog/gitlab-duo-chat-now-generally-available","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Chat, your at-the-ready AI assistant, is now generally available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Torsten Linz\"},{\"@type\":\"Person\",\"name\":\"Laurena Alves\"}],\n        \"datePublished\": \"2024-04-18\",\n      }",{"title":5813,"description":5814,"authors":5819,"heroImage":5815,"date":5821,"category":769,"tags":5822},[2058,5820],"Laurena Alves","2024-04-18",[728,731,543,1049],{"slug":5824,"featured":92,"template":736},"gitlab-duo-chat-now-generally-available","content:en-us:blog:gitlab-duo-chat-now-generally-available.yml","Gitlab Duo Chat Now Generally Available","en-us/blog/gitlab-duo-chat-now-generally-available.yml","en-us/blog/gitlab-duo-chat-now-generally-available",{"_path":5830,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5831,"content":5836,"config":5840,"_id":5842,"_type":16,"title":5843,"_source":17,"_file":5844,"_stem":5845,"_extension":20},"/en-us/blog/gitlab-introduces-new-cis-benchmark-for-improved-security",{"title":5832,"description":5833,"ogTitle":5832,"ogDescription":5833,"noIndex":6,"ogImage":5639,"ogUrl":5834,"ogSiteName":995,"ogType":996,"canonicalUrls":5834,"schema":5835},"GitLab introduces new CIS Benchmark for improved security","Learn why CIS Benchmarks matter, how the CIS GitLab Benchmark was created, and how to use it to properly secure your GitLab installation.","https://about.gitlab.com/blog/gitlab-introduces-new-cis-benchmark-for-improved-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab introduces new CIS Benchmark for improved security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Meadzinger\"},{\"@type\":\"Person\",\"name\":\"Ayoub Fandi\"}],\n        \"datePublished\": \"2024-04-17\",\n      }",{"title":5832,"description":5833,"authors":5837,"heroImage":5639,"date":5838,"category":790,"tags":5839},[5198,2758],"2024-04-17",[790],{"slug":5841,"featured":6,"template":736},"gitlab-introduces-new-cis-benchmark-for-improved-security","content:en-us:blog:gitlab-introduces-new-cis-benchmark-for-improved-security.yml","Gitlab Introduces New Cis Benchmark For Improved Security","en-us/blog/gitlab-introduces-new-cis-benchmark-for-improved-security.yml","en-us/blog/gitlab-introduces-new-cis-benchmark-for-improved-security",{"_path":5847,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5848,"content":5854,"config":5858,"_id":5860,"_type":16,"title":5861,"_source":17,"_file":5862,"_stem":5863,"_extension":20},"/en-us/blog/interactive-take-a-guided-tour-of-the-devsecops-workflow",{"title":5849,"description":5850,"ogTitle":5849,"ogDescription":5850,"noIndex":6,"ogImage":5851,"ogUrl":5852,"ogSiteName":995,"ogType":996,"canonicalUrls":5852,"schema":5853},"Interactive: Take a guided tour of the DevSecOps workflow","Explore GitLab's recommended best practices for DevSecOps with a detailed visual depiction of the main steps in the development lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668969/Blog/Hero%20Images/blog-image-template-1800x945__1800_x_945_px_.png","https://about.gitlab.com/blog/interactive-take-a-guided-tour-of-the-devsecops-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Interactive: Take a guided tour of the DevSecOps workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2024-04-16\",\n      }",{"title":5849,"description":5850,"authors":5855,"heroImage":5851,"date":5856,"category":577,"tags":5857},[1016],"2024-04-16",[574,1335,110],{"slug":5859,"featured":92,"template":736},"interactive-take-a-guided-tour-of-the-devsecops-workflow","content:en-us:blog:interactive-take-a-guided-tour-of-the-devsecops-workflow.yml","Interactive Take A Guided Tour Of The Devsecops Workflow","en-us/blog/interactive-take-a-guided-tour-of-the-devsecops-workflow.yml","en-us/blog/interactive-take-a-guided-tour-of-the-devsecops-workflow",{"_path":5865,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5866,"content":5872,"config":5876,"_id":5878,"_type":16,"title":5879,"_source":17,"_file":5880,"_stem":5881,"_extension":20},"/en-us/blog/introducing-the-gitlab-ai-transparency-center",{"title":5867,"description":5868,"ogTitle":5867,"ogDescription":5868,"noIndex":6,"ogImage":5869,"ogUrl":5870,"ogSiteName":995,"ogType":996,"canonicalUrls":5870,"schema":5871},"Introducing the GitLab AI Transparency Center","This new initiative will help our community understand how we uphold governance and transparency in our AI products.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098448/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945_4YvWyVQu8Q1g31ZVjlDOkH_1750098447812.png","https://about.gitlab.com/blog/introducing-the-gitlab-ai-transparency-center","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing the GitLab AI Transparency Center\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Robin Schulman\"}],\n        \"datePublished\": \"2024-04-11\",\n      }",{"title":5867,"description":5868,"authors":5873,"heroImage":5869,"date":5874,"category":769,"tags":5875},[1279],"2024-04-11",[728,1569,1049],{"slug":5877,"featured":6,"template":736},"introducing-the-gitlab-ai-transparency-center","content:en-us:blog:introducing-the-gitlab-ai-transparency-center.yml","Introducing The Gitlab Ai Transparency Center","en-us/blog/introducing-the-gitlab-ai-transparency-center.yml","en-us/blog/introducing-the-gitlab-ai-transparency-center",{"_path":5883,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5884,"content":5889,"config":5893,"_id":5895,"_type":16,"title":5896,"_source":17,"_file":5897,"_stem":5898,"_extension":20},"/en-us/blog/a-guide-to-the-high-impact-breaking-changes-in-gitlab-17-0",{"title":5885,"description":5886,"ogTitle":5885,"ogDescription":5886,"noIndex":6,"ogImage":1164,"ogUrl":5887,"ogSiteName":995,"ogType":996,"canonicalUrls":5887,"schema":5888},"A guide to the high-impact breaking changes in GitLab 17.0","Find, assess, and mitigate the impact of deprecations and breaking changes in this year’s major release.","https://about.gitlab.com/blog/a-guide-to-the-high-impact-breaking-changes-in-gitlab-17-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A guide to the high-impact breaking changes in GitLab 17.0\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Martin Brümmer\"},{\"@type\":\"Person\",\"name\":\"Sam Wiskow\"}],\n        \"datePublished\": \"2024-04-10\",\n      }",{"title":5885,"description":5886,"authors":5890,"heroImage":1164,"date":5891,"category":14,"tags":5892},[2317,2319],"2024-04-10",[543,731,892],{"slug":5894,"featured":92,"template":736},"a-guide-to-the-high-impact-breaking-changes-in-gitlab-17-0","content:en-us:blog:a-guide-to-the-high-impact-breaking-changes-in-gitlab-17-0.yml","A Guide To The High Impact Breaking Changes In Gitlab 17 0","en-us/blog/a-guide-to-the-high-impact-breaking-changes-in-gitlab-17-0.yml","en-us/blog/a-guide-to-the-high-impact-breaking-changes-in-gitlab-17-0",{"_path":5900,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5901,"content":5906,"config":5910,"_id":5912,"_type":16,"title":5913,"_source":17,"_file":5914,"_stem":5915,"_extension":20},"/en-us/blog/gitlab-google-cloud-integrations-now-in-public-beta",{"title":5902,"description":5903,"ogTitle":5902,"ogDescription":5903,"noIndex":6,"ogImage":2404,"ogUrl":5904,"ogSiteName":995,"ogType":996,"canonicalUrls":5904,"schema":5905},"GitLab-Google Cloud integrations now in public beta","The multiple integrations streamline authentication, automate CI/CD, and reduce context switching across GitLab and Google Cloud.","https://about.gitlab.com/blog/gitlab-google-cloud-integrations-now-in-public-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab-Google Cloud integrations now in public beta\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jackie Porter\"}],\n        \"datePublished\": \"2024-04-09\",\n      }",{"title":5902,"description":5903,"authors":5907,"heroImage":2404,"date":5908,"category":1049,"tags":5909},[3324],"2024-04-09",[1730,233,1049],{"slug":5911,"featured":92,"template":736},"gitlab-google-cloud-integrations-now-in-public-beta","content:en-us:blog:gitlab-google-cloud-integrations-now-in-public-beta.yml","Gitlab Google Cloud Integrations Now In Public Beta","en-us/blog/gitlab-google-cloud-integrations-now-in-public-beta.yml","en-us/blog/gitlab-google-cloud-integrations-now-in-public-beta",{"_path":5917,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5918,"content":5924,"config":5927,"_id":5929,"_type":16,"title":5930,"_source":17,"_file":5931,"_stem":5932,"_extension":20},"/en-us/blog/top-10-gitlab-workflow-hacks-you-need-to-know",{"title":5919,"description":5920,"ogTitle":5919,"ogDescription":5920,"noIndex":6,"ogImage":5921,"ogUrl":5922,"ogSiteName":995,"ogType":996,"canonicalUrls":5922,"schema":5923},"Top 10 GitLab workflow hacks you need to know","A GitLab product manager shares her favorite tricks to navigate quickly and efficiently around the GitLab DevSecOps Platform and to boost team collaboration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099361/Blog/Hero%20Images/Blog/Hero%20Images/lightvisibility_lightvisibility.png_1750099361252.png","https://about.gitlab.com/blog/top-10-gitlab-workflow-hacks-you-need-to-know","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 10 GitLab workflow hacks you need to know\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-04-09\",\n      }",{"title":5919,"description":5920,"authors":5925,"heroImage":5921,"date":5908,"category":577,"tags":5926},[734],[772,543,730,1335],{"slug":5928,"featured":6,"template":736},"top-10-gitlab-workflow-hacks-you-need-to-know","content:en-us:blog:top-10-gitlab-workflow-hacks-you-need-to-know.yml","Top 10 Gitlab Workflow Hacks You Need To Know","en-us/blog/top-10-gitlab-workflow-hacks-you-need-to-know.yml","en-us/blog/top-10-gitlab-workflow-hacks-you-need-to-know",{"_path":5934,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5935,"content":5941,"config":5945,"_id":5947,"_type":16,"title":5948,"_source":17,"_file":5949,"_stem":5950,"_extension":20},"/en-us/blog/integrate-external-security-scanners-into-your-devsecops-workflow",{"title":5936,"description":5937,"ogTitle":5936,"ogDescription":5937,"noIndex":6,"ogImage":5938,"ogUrl":5939,"ogSiteName":995,"ogType":996,"canonicalUrls":5939,"schema":5940},"Integrate external security scanners into your DevSecOps workflow","Learn how to bring Snyk scan results into the merge request widget by parsing JSON artifacts and leveraging the SARIF file format.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098768/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%282%29_1khno1AUtxuL6zzmEmjK7v_1750098768560.png","https://about.gitlab.com/blog/integrate-external-security-scanners-into-your-devsecops-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Integrate external security scanners into your DevSecOps workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Morris\"}],\n        \"datePublished\": \"2024-04-08\",\n      }",{"title":5936,"description":5937,"authors":5942,"heroImage":5938,"date":5943,"category":790,"tags":5944},[4893],"2024-04-08",[790,772,964],{"slug":5946,"featured":6,"template":736},"integrate-external-security-scanners-into-your-devsecops-workflow","content:en-us:blog:integrate-external-security-scanners-into-your-devsecops-workflow.yml","Integrate External Security Scanners Into Your Devsecops Workflow","en-us/blog/integrate-external-security-scanners-into-your-devsecops-workflow.yml","en-us/blog/integrate-external-security-scanners-into-your-devsecops-workflow",{"_path":5952,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5953,"content":5959,"config":5963,"_id":5965,"_type":16,"title":5966,"_source":17,"_file":5967,"_stem":5968,"_extension":20},"/en-us/blog/building-gitlab-with-gitlab-expanding-our-security-certification-portfolio",{"title":5954,"description":5955,"ogTitle":5954,"ogDescription":5955,"noIndex":6,"ogImage":5956,"ogUrl":5957,"ogSiteName":995,"ogType":996,"canonicalUrls":5957,"schema":5958},"Building GitLab with GitLab: Expanding our security certification portfolio","Learn how the Security Compliance team uses the Agile planning and security features in the GitLab DevSecOps Platform to manage the certification process.\n\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659740/Blog/Hero%20Images/building-gitlab-with-gitlab-no-type.png","https://about.gitlab.com/blog/building-gitlab-with-gitlab-expanding-our-security-certification-portfolio","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building GitLab with GitLab: Expanding our security certification portfolio\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Madeline Lake\"}],\n        \"datePublished\": \"2024-04-04\",\n      }",{"title":5954,"description":5955,"authors":5960,"heroImage":5956,"date":5961,"category":726,"tags":5962},[1565],"2024-04-04",[729,790,963],{"slug":5964,"featured":6,"template":736},"building-gitlab-with-gitlab-expanding-our-security-certification-portfolio","content:en-us:blog:building-gitlab-with-gitlab-expanding-our-security-certification-portfolio.yml","Building Gitlab With Gitlab Expanding Our Security Certification Portfolio","en-us/blog/building-gitlab-with-gitlab-expanding-our-security-certification-portfolio.yml","en-us/blog/building-gitlab-with-gitlab-expanding-our-security-certification-portfolio",{"_path":5970,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5971,"content":5977,"config":5980,"_id":5982,"_type":16,"title":5983,"_source":17,"_file":5984,"_stem":5985,"_extension":20},"/en-us/blog/how-to-successfully-deliver-your-software-development-roadmap",{"title":5972,"description":5973,"ogTitle":5972,"ogDescription":5973,"noIndex":6,"ogImage":5974,"ogUrl":5975,"ogSiteName":995,"ogType":996,"canonicalUrls":5975,"schema":5976},"How to successfully deliver your software development roadmap","Here are three common blockers and how to overcome them to fully realize the ROI of a DevSecOps platform investment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669103/Blog/Hero%20Images/AdobeStock_243118595.jpg","https://about.gitlab.com/blog/how-to-successfully-deliver-your-software-development-roadmap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to successfully deliver your software development roadmap\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2024-04-04\",\n      }",{"title":5972,"description":5973,"authors":5978,"heroImage":5974,"date":5961,"category":577,"tags":5979},[2188],[728,574,543,790],{"slug":5981,"featured":92,"template":736},"how-to-successfully-deliver-your-software-development-roadmap","content:en-us:blog:how-to-successfully-deliver-your-software-development-roadmap.yml","How To Successfully Deliver Your Software Development Roadmap","en-us/blog/how-to-successfully-deliver-your-software-development-roadmap.yml","en-us/blog/how-to-successfully-deliver-your-software-development-roadmap",{"_path":5987,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":5988,"content":5994,"config":5998,"_id":6000,"_type":16,"title":6001,"_source":17,"_file":6002,"_stem":6003,"_extension":20},"/en-us/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat",{"title":5989,"description":5990,"ogTitle":5989,"ogDescription":5990,"noIndex":6,"ogImage":5991,"ogUrl":5992,"ogSiteName":995,"ogType":996,"canonicalUrls":5992,"schema":5993},"10 best practices for using AI-powered GitLab Duo Chat","Explore tips and tricks for integrating GitLab Duo Chat into your AI-powered DevSecOps workflows. Plus, expert advice on how to refine chat prompts for the best results.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097639/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%281%29_77JeTV9gAmbXM0224acirV_1750097638765.png","https://about.gitlab.com/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"10 best practices for using AI-powered GitLab Duo Chat\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2024-04-02\",\n      }",{"title":5989,"description":5990,"authors":5995,"heroImage":5991,"date":5996,"category":769,"tags":5997},[1424],"2024-04-02",[728,772,543,730],{"slug":5999,"featured":92,"template":736},"10-best-practices-for-using-ai-powered-gitlab-duo-chat","content:en-us:blog:10-best-practices-for-using-ai-powered-gitlab-duo-chat.yml","10 Best Practices For Using Ai Powered Gitlab Duo Chat","en-us/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat.yml","en-us/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat",{"_path":6005,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6006,"content":6011,"config":6016,"_id":6018,"_type":16,"title":6019,"_source":17,"_file":6020,"_stem":6021,"_extension":20},"/en-us/blog/important-information-regarding-xz-utils-cve-2024-3094",{"title":6007,"description":6008,"ogTitle":6007,"ogDescription":6008,"noIndex":6,"ogImage":1873,"ogUrl":6009,"ogSiteName":995,"ogType":996,"canonicalUrls":6009,"schema":6010},"Important information regarding xz-utils (CVE-2024-3094)","Affected software not used for GitLab.com, GitLab Dedicated, or default self-hosted software packages.","https://about.gitlab.com/blog/important-information-regarding-xz-utils-cve-2024-3094","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Important information regarding xz-utils (CVE-2024-3094)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Shrishti Choudhary\"}],\n        \"datePublished\": \"2024-03-30\",\n      }",{"title":6007,"description":6008,"authors":6012,"heroImage":1873,"date":6014,"category":790,"tags":6015},[6013],"Shrishti Choudhary","2024-03-30",[790,1049],{"slug":6017,"featured":92,"template":736},"important-information-regarding-xz-utils-cve-2024-3094","content:en-us:blog:important-information-regarding-xz-utils-cve-2024-3094.yml","Important Information Regarding Xz Utils Cve 2024 3094","en-us/blog/important-information-regarding-xz-utils-cve-2024-3094.yml","en-us/blog/important-information-regarding-xz-utils-cve-2024-3094",{"_path":6023,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6024,"content":6029,"config":6033,"_id":6035,"_type":16,"title":6036,"_source":17,"_file":6037,"_stem":6038,"_extension":20},"/en-us/blog/coming-soon-gitlab-dependency-firewall",{"title":6025,"description":6026,"ogTitle":6025,"ogDescription":6026,"noIndex":6,"ogImage":4049,"ogUrl":6027,"ogSiteName":995,"ogType":996,"canonicalUrls":6027,"schema":6028},"Coming soon: GitLab dependency firewall","Learn how this new feature will help organizations avoid supply chain software attacks by warning them or blocking the download based on a project's policy.","https://about.gitlab.com/blog/coming-soon-gitlab-dependency-firewall","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Coming soon: GitLab dependency firewall\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2024-03-26\",\n      }",{"title":6025,"description":6026,"authors":6030,"heroImage":4049,"date":6031,"category":790,"tags":6032},[907],"2024-03-26",[790,1049,730,110],{"slug":6034,"featured":6,"template":736},"coming-soon-gitlab-dependency-firewall","content:en-us:blog:coming-soon-gitlab-dependency-firewall.yml","Coming Soon Gitlab Dependency Firewall","en-us/blog/coming-soon-gitlab-dependency-firewall.yml","en-us/blog/coming-soon-gitlab-dependency-firewall",{"_path":6040,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6041,"content":6046,"config":6049,"_id":6051,"_type":16,"title":6052,"_source":17,"_file":6053,"_stem":6054,"_extension":20},"/en-us/blog/were-combining-patch-and-security-releases",{"title":6042,"description":6043,"ogTitle":6042,"ogDescription":6043,"noIndex":6,"ogImage":1873,"ogUrl":6044,"ogSiteName":995,"ogType":996,"canonicalUrls":6044,"schema":6045},"We’re combining patch and security releases","This improvement in our release process matches the industry standard and will help GitLab users get information about security and bug fixes sooner.","https://about.gitlab.com/blog/were-combining-patch-and-security-releases","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We’re combining patch and security releases\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Wiskow\"}],\n        \"datePublished\": \"2024-03-26\",\n      }",{"title":6042,"description":6043,"authors":6047,"heroImage":1873,"date":6031,"category":790,"tags":6048},[2319],[752,790,1049,751],{"slug":6050,"featured":6,"template":736},"were-combining-patch-and-security-releases","content:en-us:blog:were-combining-patch-and-security-releases.yml","Were Combining Patch And Security Releases","en-us/blog/were-combining-patch-and-security-releases.yml","en-us/blog/were-combining-patch-and-security-releases",{"_path":6056,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6057,"content":6063,"config":6068,"_id":6070,"_type":16,"title":6071,"_source":17,"_file":6072,"_stem":6073,"_extension":20},"/en-us/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities",{"title":6058,"description":6059,"ogTitle":6058,"ogDescription":6059,"noIndex":6,"ogImage":6060,"ogUrl":6061,"ogSiteName":995,"ogType":996,"canonicalUrls":6061,"schema":6062},"Oxeye joins GitLab to advance application security capabilities ","The initial focus will be on accelerating GitLab's Static Application Security (SAST) roadmap.\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671969/Blog/Hero%20Images/gitlab-oxeye-blog-1800x945.png","https://about.gitlab.com/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Oxeye joins GitLab to advance application security capabilities \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"},{\"@type\":\"Person\",\"name\":\"Dean Agron, co-founder and CEO, Oxeye\"}],\n        \"datePublished\": \"2024-03-20\",\n      }",{"title":6058,"description":6059,"authors":6064,"heroImage":6060,"date":6066,"category":1049,"tags":6067},[2188,6065],"Dean Agron, co-founder and CEO, Oxeye","2024-03-20",[790,1049,574],{"slug":6069,"featured":92,"template":736},"oxeye-joins-gitlab-to-advance-application-security-capabilities","content:en-us:blog:oxeye-joins-gitlab-to-advance-application-security-capabilities.yml","Oxeye Joins Gitlab To Advance Application Security Capabilities","en-us/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities.yml","en-us/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities",{"_path":6075,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6076,"content":6081,"config":6085,"_id":6087,"_type":16,"title":6088,"_source":17,"_file":6089,"_stem":6090,"_extension":20},"/en-us/blog/simplify-your-cloud-account-management-for-kubernetes-access",{"title":6077,"description":6078,"ogTitle":6077,"ogDescription":6078,"noIndex":6,"ogImage":1728,"ogUrl":6079,"ogSiteName":995,"ogType":996,"canonicalUrls":6079,"schema":6080},"Simplify your cloud account management for Kubernetes access","In this tutorial, learn how to use the GitLab agent for Kubernetes and its user impersonation features for secure cluster access.\n\n","https://about.gitlab.com/blog/simplify-your-cloud-account-management-for-kubernetes-access","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Simplify your cloud account management for Kubernetes access\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2024-03-19\",\n      }",{"title":6077,"description":6078,"authors":6082,"heroImage":1728,"date":6083,"category":790,"tags":6084},[2942],"2024-03-19",[582,790,2908,772],{"slug":6086,"featured":92,"template":736},"simplify-your-cloud-account-management-for-kubernetes-access","content:en-us:blog:simplify-your-cloud-account-management-for-kubernetes-access.yml","Simplify Your Cloud Account Management For Kubernetes Access","en-us/blog/simplify-your-cloud-account-management-for-kubernetes-access.yml","en-us/blog/simplify-your-cloud-account-management-for-kubernetes-access",{"_path":6092,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6093,"content":6099,"config":6103,"_id":6105,"_type":16,"title":6106,"_source":17,"_file":6107,"_stem":6108,"_extension":20},"/en-us/blog/ditch-your-legacy-planning-tool-get-agile-with-gitlab",{"title":6094,"description":6095,"ogTitle":6094,"ogDescription":6095,"noIndex":6,"ogImage":6096,"ogUrl":6097,"ogSiteName":995,"ogType":996,"canonicalUrls":6097,"schema":6098},"Ditch your legacy planning tool: Get Agile with GitLab","Discover how Agile planning in a DevSecOps platform unlocks traceability from idea to implementation, providing a holistic view of your strategy in action.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099116/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%282%29_6IiTrEHgXVZcOI2rcPfg21_1750099116301.png","https://about.gitlab.com/blog/ditch-your-legacy-planning-tool-get-agile-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ditch your legacy planning tool: Get Agile with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-03-14\",\n      }",{"title":6094,"description":6095,"authors":6100,"heroImage":6096,"date":6101,"category":726,"tags":6102},[734],"2024-03-14",[729,574,543],{"slug":6104,"featured":92,"template":736},"ditch-your-legacy-planning-tool-get-agile-with-gitlab","content:en-us:blog:ditch-your-legacy-planning-tool-get-agile-with-gitlab.yml","Ditch Your Legacy Planning Tool Get Agile With Gitlab","en-us/blog/ditch-your-legacy-planning-tool-get-agile-with-gitlab.yml","en-us/blog/ditch-your-legacy-planning-tool-get-agile-with-gitlab",{"_path":6110,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6111,"content":6117,"config":6123,"_id":6125,"_type":16,"title":6126,"_source":17,"_file":6127,"_stem":6128,"_extension":20},"/en-us/blog/developer-relations-at-gitlab-what-weve-learned-since-our-start",{"title":6112,"description":6113,"ogTitle":6112,"ogDescription":6113,"noIndex":6,"ogImage":6114,"ogUrl":6115,"ogSiteName":995,"ogType":996,"canonicalUrls":6115,"schema":6116},"Developer Relations at GitLab: What we've learned since our start","DevRel is key to success for many tech companies. Find out how GitLab's DevRel program has evolved to stay aligned with the industry and our customers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672008/Blog/Hero%20Images/AdobeStock_204527293.jpg","https://about.gitlab.com/blog/developer-relations-at-gitlab-what-weve-learned-since-our-start","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developer Relations at GitLab: What we've learned since our start\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2024-03-13\",\n      }",{"title":6112,"description":6113,"authors":6118,"heroImage":6114,"date":6120,"category":6121,"tags":6122},[6119],"John Coghlan","2024-03-13","culture",[564,574,1569],{"slug":6124,"featured":92,"template":736},"developer-relations-at-gitlab-what-weve-learned-since-our-start","content:en-us:blog:developer-relations-at-gitlab-what-weve-learned-since-our-start.yml","Developer Relations At Gitlab What Weve Learned Since Our Start","en-us/blog/developer-relations-at-gitlab-what-weve-learned-since-our-start.yml","en-us/blog/developer-relations-at-gitlab-what-weve-learned-since-our-start",{"_path":6130,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6131,"content":6137,"config":6141,"_id":6143,"_type":16,"title":6144,"_source":17,"_file":6145,"_stem":6146,"_extension":20},"/en-us/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab",{"title":6132,"description":6133,"ogTitle":6132,"ogDescription":6133,"noIndex":6,"ogImage":6134,"ogUrl":6135,"ogSiteName":995,"ogType":996,"canonicalUrls":6135,"schema":6136},"The ultimate guide to least privilege access with GitLab","This tutorial demonstrates how to achieve least privilege access using custom roles, security policies, compliance pipelines, branch protections, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099438/Blog/Hero%20Images/Blog/Hero%20Images/built-in-security_built-in-security.jpeg_1750099438377.jpg","https://about.gitlab.com/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The ultimate guide to least privilege access with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-03-06\",\n      }",{"title":6132,"description":6133,"authors":6138,"heroImage":6134,"date":6139,"category":790,"tags":6140},[1097],"2024-03-06",[5733,772,790,730],{"slug":6142,"featured":92,"template":736},"the-ultimate-guide-to-least-privilege-access-with-gitlab","content:en-us:blog:the-ultimate-guide-to-least-privilege-access-with-gitlab.yml","The Ultimate Guide To Least Privilege Access With Gitlab","en-us/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab.yml","en-us/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab",{"_path":6148,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6149,"content":6155,"config":6159,"_id":6161,"_type":16,"title":6162,"_source":17,"_file":6163,"_stem":6164,"_extension":20},"/en-us/blog/enhancing-gitlab-with-improved-data-filtering-and-visualizations",{"title":6150,"description":6151,"ogTitle":6150,"ogDescription":6151,"noIndex":6,"ogImage":6152,"ogUrl":6153,"ogSiteName":995,"ogType":996,"canonicalUrls":6153,"schema":6154},"Enhancing GitLab with improved data filtering and visualizations","Discover how GitLab's new data views will streamline your workflow and power decision-making.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099097/Blog/Hero%20Images/Blog/Hero%20Images/agile_agile.png_1750099097133.png","https://about.gitlab.com/blog/enhancing-gitlab-with-improved-data-filtering-and-visualizations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Enhancing GitLab with improved data filtering and visualizations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-03-05\",\n      }",{"title":6150,"description":6151,"authors":6156,"heroImage":6152,"date":6157,"category":726,"tags":6158},[734],"2024-03-05",[729,543,2815,731],{"slug":6160,"featured":6,"template":736},"enhancing-gitlab-with-improved-data-filtering-and-visualizations","content:en-us:blog:enhancing-gitlab-with-improved-data-filtering-and-visualizations.yml","Enhancing Gitlab With Improved Data Filtering And Visualizations","en-us/blog/enhancing-gitlab-with-improved-data-filtering-and-visualizations.yml","en-us/blog/enhancing-gitlab-with-improved-data-filtering-and-visualizations",{"_path":6166,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6167,"content":6173,"config":6176,"_id":6178,"_type":16,"title":6179,"_source":17,"_file":6180,"_stem":6181,"_extension":20},"/en-us/blog/the-continued-support-of-fluxcd-at-gitlab",{"title":6168,"description":6169,"ogTitle":6168,"ogDescription":6169,"noIndex":6,"ogImage":6170,"ogUrl":6171,"ogSiteName":995,"ogType":996,"canonicalUrls":6171,"schema":6172},"The continued support of FluxCD at GitLab","GitLab is committed to working with other partners to make sure that Flux remains a stable, reliable, and mature Cloud Native Computing Foundation project.\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664472/Blog/Hero%20Images/gitlabflatlogomap.png","https://about.gitlab.com/blog/the-continued-support-of-fluxcd-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The continued support of FluxCD at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2024-03-05\",\n      }",{"title":6168,"description":6169,"authors":6174,"heroImage":6170,"date":6157,"category":1049,"tags":6175},[2942],[582,1049,1265,1569],{"slug":6177,"featured":92,"template":736},"the-continued-support-of-fluxcd-at-gitlab","content:en-us:blog:the-continued-support-of-fluxcd-at-gitlab.yml","The Continued Support Of Fluxcd At Gitlab","en-us/blog/the-continued-support-of-fluxcd-at-gitlab.yml","en-us/blog/the-continued-support-of-fluxcd-at-gitlab",{"_path":6183,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6184,"content":6190,"config":6194,"_id":6196,"_type":16,"title":6197,"_source":17,"_file":6198,"_stem":6199,"_extension":20},"/en-us/blog/refactoring-a-ci-cd-template-to-a-ci-cd-component",{"title":6185,"description":6186,"ogTitle":6185,"ogDescription":6186,"noIndex":6,"ogImage":6187,"ogUrl":6188,"ogSiteName":995,"ogType":996,"canonicalUrls":6188,"schema":6189},"Refactoring a CI/CD template to a CI/CD component","CI/CD components are the next generation of CI/CD templates, enhancing pipeline creation and maintenance. Learn how to transition from templates to components.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665989/Blog/Hero%20Images/AdobeStock_618473457.jpg","https://about.gitlab.com/blog/refactoring-a-ci-cd-template-to-a-ci-cd-component","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Refactoring a CI/CD template to a CI/CD component\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2024-03-04\",\n      }",{"title":6185,"description":6186,"authors":6191,"heroImage":6187,"date":6192,"category":858,"tags":6193},[1016],"2024-03-04",[110,574,772],{"slug":6195,"featured":92,"template":736},"refactoring-a-ci-cd-template-to-a-ci-cd-component","content:en-us:blog:refactoring-a-ci-cd-template-to-a-ci-cd-component.yml","Refactoring A Ci Cd Template To A Ci Cd Component","en-us/blog/refactoring-a-ci-cd-template-to-a-ci-cd-component.yml","en-us/blog/refactoring-a-ci-cd-template-to-a-ci-cd-component",{"_path":6201,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6202,"content":6208,"config":6213,"_id":6215,"_type":16,"title":6216,"_source":17,"_file":6217,"_stem":6218,"_extension":20},"/en-us/blog/how-to-detecting-secrets-in-video",{"title":6203,"description":6204,"ogTitle":6203,"ogDescription":6204,"noIndex":6,"ogImage":6205,"ogUrl":6206,"ogSiteName":995,"ogType":996,"canonicalUrls":6206,"schema":6207},"How-to: Detecting secrets in video content ","GitLab’s Security team identifies and mitigates security risks in video content by searching for API keys or other sensitive tokens. Here's how we do it (with an assist from AI) and how you can, too.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099421/Blog/Hero%20Images/Blog/Hero%20Images/security-checklist_security-checklist.png_1750099421443.png","https://about.gitlab.com/blog/how-to-detecting-secrets-in-video-content","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How-to: Detecting secrets in video content \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dennis Appelt\"}],\n        \"datePublished\": \"2024-02-29\",\n      }",{"title":6203,"description":6204,"authors":6209,"heroImage":6205,"date":6211,"category":790,"tags":6212},[6210],"Dennis Appelt","2024-02-29",[772,1265,790],{"slug":6214,"featured":92,"template":736},"how-to-detecting-secrets-in-video","content:en-us:blog:how-to-detecting-secrets-in-video.yml","How To Detecting Secrets In Video","en-us/blog/how-to-detecting-secrets-in-video.yml","en-us/blog/how-to-detecting-secrets-in-video",{"_path":6220,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6221,"content":6227,"config":6231,"_id":6233,"_type":16,"title":6234,"_source":17,"_file":6235,"_stem":6236,"_extension":20},"/en-us/blog/how-to-integrate-custom-security-scanners-into-gitlab",{"title":6222,"description":6223,"ogTitle":6222,"ogDescription":6223,"noIndex":6,"ogImage":6224,"ogUrl":6225,"ogSiteName":995,"ogType":996,"canonicalUrls":6225,"schema":6226},"How to integrate custom security scanners into GitLab","Learn how to extend the DevSecOps platform by adding custom security scanners to your workflows (includes an easy-to-follow tutorial).","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097082/Blog/Hero%20Images/Blog/Hero%20Images/securitycheck_securitycheck.png_1750097081856.png","https://about.gitlab.com/blog/how-to-integrate-custom-security-scanners-into-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to integrate custom security scanners into GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-02-27\",\n      }",{"title":6222,"description":6223,"authors":6228,"heroImage":6224,"date":6229,"category":790,"tags":6230},[1097],"2024-02-27",[772,790,964,543],{"slug":6232,"featured":92,"template":736},"how-to-integrate-custom-security-scanners-into-gitlab","content:en-us:blog:how-to-integrate-custom-security-scanners-into-gitlab.yml","How To Integrate Custom Security Scanners Into Gitlab","en-us/blog/how-to-integrate-custom-security-scanners-into-gitlab.yml","en-us/blog/how-to-integrate-custom-security-scanners-into-gitlab",{"_path":6238,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6239,"content":6244,"config":6248,"_id":6250,"_type":16,"title":6251,"_source":17,"_file":6252,"_stem":6253,"_extension":20},"/en-us/blog/gitlabs-contributions-to-git-2-44-0",{"title":6240,"description":6241,"ogTitle":6240,"ogDescription":6241,"noIndex":6,"ogImage":4175,"ogUrl":6242,"ogSiteName":995,"ogType":996,"canonicalUrls":6242,"schema":6243},"GitLab's contributions to Git 2.44.0","Find out the topics that GitLab’s Git team – as well as the wider community – contributed to the latest Git release, including fast scripted rebases via git-replay.","https://about.gitlab.com/blog/gitlabs-contributions-to-git-2-44-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's contributions to Git 2.44.0\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Steinhardt\"}],\n        \"datePublished\": \"2024-02-26\",\n      }",{"title":6240,"description":6241,"authors":6245,"heroImage":4175,"date":6246,"category":1388,"tags":6247},[2390],"2024-02-26",[1195,1265,2097],{"slug":6249,"featured":6,"template":736},"gitlabs-contributions-to-git-2-44-0","content:en-us:blog:gitlabs-contributions-to-git-2-44-0.yml","Gitlabs Contributions To Git 2 44 0","en-us/blog/gitlabs-contributions-to-git-2-44-0.yml","en-us/blog/gitlabs-contributions-to-git-2-44-0",{"_path":6255,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6256,"content":6262,"config":6265,"_id":6267,"_type":16,"title":6268,"_source":17,"_file":6269,"_stem":6270,"_extension":20},"/en-us/blog/revisiting-the-variables-management-workflow",{"title":6257,"description":6258,"ogTitle":6257,"ogDescription":6258,"noIndex":6,"ogImage":6259,"ogUrl":6260,"ogSiteName":995,"ogType":996,"canonicalUrls":6260,"schema":6261},"Revisiting the variables management workflow","Our users helped us identify the hurdles in the variables management experience and we used those insights to guide improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098484/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_618473457_nd5Dr8kfGdrlTWLOPmDjb_1750098483284.jpg","https://about.gitlab.com/blog/revisiting-the-variables-management-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Revisiting the variables management workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2024-02-26\",\n      }",{"title":6257,"description":6258,"authors":6263,"heroImage":6259,"date":6246,"category":858,"tags":6264},[4929],[110,2703,574,564],{"slug":6266,"featured":92,"template":736},"revisiting-the-variables-management-workflow","content:en-us:blog:revisiting-the-variables-management-workflow.yml","Revisiting The Variables Management Workflow","en-us/blog/revisiting-the-variables-management-workflow.yml","en-us/blog/revisiting-the-variables-management-workflow",{"_path":6272,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6273,"content":6279,"config":6283,"_id":6285,"_type":16,"title":6286,"_source":17,"_file":6287,"_stem":6288,"_extension":20},"/en-us/blog/how-to-translate-bamboo-agent-capabilities-to-gitlab-runner-tags",{"title":6274,"description":6275,"ogTitle":6274,"ogDescription":6275,"noIndex":6,"ogImage":6276,"ogUrl":6277,"ogSiteName":995,"ogType":996,"canonicalUrls":6277,"schema":6278},"How to translate Bamboo agent capabilities to GitLab Runner tags  ","This tutorial demonstrates how to use tags to organize GitLab Runners when building complex CI/CD pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663019/Blog/Hero%20Images/AdobeStock_519147119.jpg","https://about.gitlab.com/blog/how-to-translate-bamboo-agent-capabilities-to-gitlab-runner-tags","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to translate Bamboo agent capabilities to GitLab Runner tags  \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2024-02-22\",\n      }",{"title":6274,"description":6275,"authors":6280,"heroImage":6276,"date":6281,"category":858,"tags":6282},[3181],"2024-02-22",[110,2097,772],{"slug":6284,"featured":92,"template":736},"how-to-translate-bamboo-agent-capabilities-to-gitlab-runner-tags","content:en-us:blog:how-to-translate-bamboo-agent-capabilities-to-gitlab-runner-tags.yml","How To Translate Bamboo Agent Capabilities To Gitlab Runner Tags","en-us/blog/how-to-translate-bamboo-agent-capabilities-to-gitlab-runner-tags.yml","en-us/blog/how-to-translate-bamboo-agent-capabilities-to-gitlab-runner-tags",{"_path":6290,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6291,"content":6297,"config":6302,"_id":6304,"_type":16,"title":6305,"_source":17,"_file":6306,"_stem":6307,"_extension":20},"/en-us/blog/measuring-ai-effectiveness-beyond-developer-productivity-metrics",{"title":6292,"description":6293,"ogTitle":6292,"ogDescription":6293,"noIndex":6,"ogImage":6294,"ogUrl":6295,"ogSiteName":995,"ogType":996,"canonicalUrls":6295,"schema":6296},"Measuring AI effectiveness beyond developer productivity metrics ","AI assistants are here, yet measuring AI's impact on productivity isn’t figured out. Here’s why it’s a difficult problem and how GitLab is solving it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671994/Blog/Hero%20Images/AdobeStock_700757695.jpg","https://about.gitlab.com/blog/measuring-ai-effectiveness-beyond-developer-productivity-metrics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Measuring AI effectiveness beyond developer productivity metrics \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2024-02-20\",\n      }",{"title":6292,"description":6293,"authors":6298,"heroImage":6294,"date":6300,"category":769,"tags":6301},[6299],"Taylor McCaslin","2024-02-20",[728,543,574,731],{"slug":6303,"featured":92,"template":736},"measuring-ai-effectiveness-beyond-developer-productivity-metrics","content:en-us:blog:measuring-ai-effectiveness-beyond-developer-productivity-metrics.yml","Measuring Ai Effectiveness Beyond Developer Productivity Metrics","en-us/blog/measuring-ai-effectiveness-beyond-developer-productivity-metrics.yml","en-us/blog/measuring-ai-effectiveness-beyond-developer-productivity-metrics",{"_path":6309,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6310,"content":6316,"config":6321,"_id":6323,"_type":16,"title":6324,"_source":17,"_file":6325,"_stem":6326,"_extension":20},"/en-us/blog/compose-readers-and-writers-in-golang-applications",{"title":6311,"description":6312,"ogTitle":6311,"ogDescription":6312,"noIndex":6,"ogImage":6313,"ogUrl":6314,"ogSiteName":995,"ogType":996,"canonicalUrls":6314,"schema":6315},"Compose Readers and Writers in Golang applications","GitLab streams terabytes of Git data every hour using Golang abstractions of I/O implementations. Learn how to compose Readers and Writers in Golang apps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099464/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_639935439_3oqldo5Yt5wPonEJYZOLTM_1750099464124.jpg","https://about.gitlab.com/blog/compose-readers-and-writers-in-golang-applications","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Compose Readers and Writers in Golang applications\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Igor Drozdov\"}],\n        \"datePublished\": \"2024-02-15\",\n      }",{"title":6311,"description":6312,"authors":6317,"heroImage":6313,"date":6319,"category":858,"tags":6320},[6318],"Igor Drozdov","2024-02-15",[772,1195,1569,1988],{"slug":6322,"featured":6,"template":736},"compose-readers-and-writers-in-golang-applications","content:en-us:blog:compose-readers-and-writers-in-golang-applications.yml","Compose Readers And Writers In Golang Applications","en-us/blog/compose-readers-and-writers-in-golang-applications.yml","en-us/blog/compose-readers-and-writers-in-golang-applications",{"_path":6328,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6329,"content":6334,"config":6339,"_id":6341,"_type":16,"title":6342,"_source":17,"_file":6343,"_stem":6344,"_extension":20},"/en-us/blog/new-report-on-ai-assisted-tools-points-to-rising-stakes-for-devsecops",{"title":6330,"description":6331,"ogTitle":6330,"ogDescription":6331,"noIndex":6,"ogImage":3048,"ogUrl":6332,"ogSiteName":995,"ogType":996,"canonicalUrls":6332,"schema":6333},"New report on AI-assisted tools points to rising stakes for DevSecOps","Read the key findings from the \"Omdia Market Radar: AI-Assisted Software Development, 2023-24\" report, including the state of AI-based code assistants.","https://about.gitlab.com/blog/new-report-on-ai-assisted-tools-points-to-rising-stakes-for-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New report on AI-assisted tools points to rising stakes for DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rusty Weston, Guest Contributor\"}],\n        \"datePublished\": \"2024-02-14\",\n      }",{"title":6330,"description":6331,"authors":6335,"heroImage":3048,"date":6337,"category":769,"tags":6338},[6336],"Rusty Weston, Guest Contributor","2024-02-14",[728,574,1049],{"slug":6340,"featured":92,"template":736},"new-report-on-ai-assisted-tools-points-to-rising-stakes-for-devsecops","content:en-us:blog:new-report-on-ai-assisted-tools-points-to-rising-stakes-for-devsecops.yml","New Report On Ai Assisted Tools Points To Rising Stakes For Devsecops","en-us/blog/new-report-on-ai-assisted-tools-points-to-rising-stakes-for-devsecops.yml","en-us/blog/new-report-on-ai-assisted-tools-points-to-rising-stakes-for-devsecops",{"_path":6346,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6347,"content":6353,"config":6358,"_id":6360,"_type":16,"title":6361,"_source":17,"_file":6362,"_stem":6363,"_extension":20},"/en-us/blog/how-to-tailor-gitlab-access-with-custom-roles",{"title":6348,"description":6349,"ogTitle":6348,"ogDescription":6349,"noIndex":6,"ogImage":6350,"ogUrl":6351,"ogSiteName":995,"ogType":996,"canonicalUrls":6351,"schema":6352},"How to tailor GitLab access with custom roles","Find out the current capabilities of custom roles and what's to come, including initial grouping of permissions and templating from default roles.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098975/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_729993502_1Xe0pzHPX4C3b1Ycs2q7RP_1750098974565.jpg","https://about.gitlab.com/blog/how-to-tailor-gitlab-access-with-custom-roles","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to tailor GitLab access with custom roles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joe Randazzo\"},{\"@type\":\"Person\",\"name\":\"Hannah Sutor\"}],\n        \"datePublished\": \"2024-02-13\",\n      }",{"title":6348,"description":6349,"authors":6354,"heroImage":6350,"date":6356,"category":577,"tags":6357},[1295,6355],"Hannah Sutor","2024-02-13",[731,790,574,730],{"slug":6359,"featured":92,"template":736},"how-to-tailor-gitlab-access-with-custom-roles","content:en-us:blog:how-to-tailor-gitlab-access-with-custom-roles.yml","How To Tailor Gitlab Access With Custom Roles","en-us/blog/how-to-tailor-gitlab-access-with-custom-roles.yml","en-us/blog/how-to-tailor-gitlab-access-with-custom-roles",{"_path":6365,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6366,"content":6372,"config":6377,"_id":6379,"_type":16,"title":6380,"_source":17,"_file":6381,"_stem":6382,"_extension":20},"/en-us/blog/ci-cd-automation-maximize-deploy-freeze-impact-across-gitlab-groups",{"title":6367,"description":6368,"ogTitle":6367,"ogDescription":6368,"noIndex":6,"ogImage":6369,"ogUrl":6370,"ogSiteName":995,"ogType":996,"canonicalUrls":6370,"schema":6371},"CI/CD automation: Maximize 'deploy freeze' impact across GitLab groups","Learn the benefits of managing deploy freezes at the group level and follow step-by-step guidance on implementation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667913/Blog/Hero%20Images/clocks.jpg","https://about.gitlab.com/blog/ci-cd-automation-maximize-deploy-freeze-impact-across-gitlab-groups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CI/CD automation: Maximize 'deploy freeze' impact across GitLab groups\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Nnachi\"}],\n        \"datePublished\": \"2024-02-08\",\n      }",{"title":6367,"description":6368,"authors":6373,"heroImage":6369,"date":6374,"category":577,"tags":6375},[3664],"2024-02-08",[110,731,6376,772],"production",{"slug":6378,"featured":6,"template":736},"ci-cd-automation-maximize-deploy-freeze-impact-across-gitlab-groups","content:en-us:blog:ci-cd-automation-maximize-deploy-freeze-impact-across-gitlab-groups.yml","Ci Cd Automation Maximize Deploy Freeze Impact Across Gitlab Groups","en-us/blog/ci-cd-automation-maximize-deploy-freeze-impact-across-gitlab-groups.yml","en-us/blog/ci-cd-automation-maximize-deploy-freeze-impact-across-gitlab-groups",{"_path":6384,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6385,"content":6391,"config":6395,"_id":6397,"_type":16,"title":6398,"_source":17,"_file":6399,"_stem":6400,"_extension":20},"/en-us/blog/unlocking-agile-excellence-gitlab-epics-for-seamless-portfolio-management",{"title":6386,"description":6387,"ogTitle":6386,"ogDescription":6387,"noIndex":6,"ogImage":6388,"ogUrl":6389,"ogSiteName":995,"ogType":996,"canonicalUrls":6389,"schema":6390},"Unlocking Agile excellence: GitLab Epics for seamless portfolio management","Explore how GitLab's multi-level epics revolutionize Agile portfolio management, offering a structured yet flexible approach for strategic planning and efficient execution.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098713/Blog/Hero%20Images/Blog/Hero%20Images/agile_agile.png_1750098713577.png","https://about.gitlab.com/blog/unlocking-agile-excellence-gitlab-epics-for-seamless-portfolio-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unlocking Agile excellence: GitLab Epics for seamless portfolio management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"},{\"@type\":\"Person\",\"name\":\"Melissa Ushakov\"}],\n        \"datePublished\": \"2024-02-06\",\n      }",{"title":6386,"description":6387,"authors":6392,"heroImage":6388,"date":6393,"category":726,"tags":6394},[734,5252],"2024-02-06",[729,574,543],{"slug":6396,"featured":92,"template":736},"unlocking-agile-excellence-gitlab-epics-for-seamless-portfolio-management","content:en-us:blog:unlocking-agile-excellence-gitlab-epics-for-seamless-portfolio-management.yml","Unlocking Agile Excellence Gitlab Epics For Seamless Portfolio Management","en-us/blog/unlocking-agile-excellence-gitlab-epics-for-seamless-portfolio-management.yml","en-us/blog/unlocking-agile-excellence-gitlab-epics-for-seamless-portfolio-management",{"_path":6402,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6403,"content":6409,"config":6414,"_id":6416,"_type":16,"title":6417,"_source":17,"_file":6418,"_stem":6419,"_extension":20},"/en-us/blog/how-carrefour-and-thales-are-evolving-their-ci-cd-platforms",{"title":6404,"description":6405,"ogTitle":6404,"ogDescription":6405,"noIndex":6,"ogImage":6406,"ogUrl":6407,"ogSiteName":995,"ogType":996,"canonicalUrls":6407,"schema":6408},"How Carrefour and Thales are evolving their CI/CD platforms","Learn how a large retailer and an aerospace and defense company are using GitLab to evolve their CI/CD platforms to increase developer productivity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662061/Blog/Hero%20Images/cicdcover.png","https://about.gitlab.com/blog/how-carrefour-and-thales-are-evolving-their-ci-cd-platforms","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Carrefour and Thales are evolving their CI/CD platforms\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kristina Weis\"}],\n        \"datePublished\": \"2024-02-05\",\n      }",{"title":6404,"description":6405,"authors":6410,"heroImage":6406,"date":6412,"category":3072,"tags":6413},[6411],"Kristina Weis","2024-02-05",[110,3075,574],{"slug":6415,"featured":92,"template":736},"how-carrefour-and-thales-are-evolving-their-ci-cd-platforms","content:en-us:blog:how-carrefour-and-thales-are-evolving-their-ci-cd-platforms.yml","How Carrefour And Thales Are Evolving Their Ci Cd Platforms","en-us/blog/how-carrefour-and-thales-are-evolving-their-ci-cd-platforms.yml","en-us/blog/how-carrefour-and-thales-are-evolving-their-ci-cd-platforms",{"_path":6421,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6422,"content":6427,"config":6431,"_id":6433,"_type":16,"title":6434,"_source":17,"_file":6435,"_stem":6436,"_extension":20},"/en-us/blog/jenkins-to-gitlab-migration-made-easy",{"title":6423,"description":6424,"ogTitle":6423,"ogDescription":6424,"noIndex":6,"ogImage":6276,"ogUrl":6425,"ogSiteName":995,"ogType":996,"canonicalUrls":6425,"schema":6426},"Jenkins-to-GitLab migration made easy","Learn why and how to migrate from Jenkins to GitLab with ease by following this step-by-step guide.","https://about.gitlab.com/blog/jenkins-to-gitlab-migration-made-easy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Jenkins-to-GitLab migration made easy\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2024-02-01\",\n      }",{"title":6423,"description":6424,"authors":6428,"heroImage":6276,"date":6429,"category":577,"tags":6430},[1097],"2024-02-01",[110,574],{"slug":6432,"featured":92,"template":736},"jenkins-to-gitlab-migration-made-easy","content:en-us:blog:jenkins-to-gitlab-migration-made-easy.yml","Jenkins To Gitlab Migration Made Easy","en-us/blog/jenkins-to-gitlab-migration-made-easy.yml","en-us/blog/jenkins-to-gitlab-migration-made-easy",{"_path":6438,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6439,"content":6445,"config":6449,"_id":6451,"_type":16,"title":6452,"_source":17,"_file":6453,"_stem":6454,"_extension":20},"/en-us/blog/hosted-runners-for-gitlab-dedicated-available-in-beta",{"title":6440,"description":6441,"ogTitle":6440,"ogDescription":6441,"noIndex":6,"ogImage":6442,"ogUrl":6443,"ogSiteName":995,"ogType":996,"canonicalUrls":6443,"schema":6444},"Hosted Runners for GitLab Dedicated available in Beta","GitLab Dedicated customers can now scale their CI/CD workloads with no maintenance overhead.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663948/Blog/Hero%20Images/dedicatedcoverimage.png","https://about.gitlab.com/blog/hosted-runners-for-gitlab-dedicated-available-in-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Hosted Runners for GitLab Dedicated available in Beta\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabian Zimmer\"}],\n        \"datePublished\": \"2024-01-31\",\n      }",{"title":6440,"description":6441,"authors":6446,"heroImage":6442,"date":6447,"category":1049,"tags":6448},[2318],"2024-01-31",[730,731,110],{"slug":6450,"featured":6,"template":736},"hosted-runners-for-gitlab-dedicated-available-in-beta","content:en-us:blog:hosted-runners-for-gitlab-dedicated-available-in-beta.yml","Hosted Runners For Gitlab Dedicated Available In Beta","en-us/blog/hosted-runners-for-gitlab-dedicated-available-in-beta.yml","en-us/blog/hosted-runners-for-gitlab-dedicated-available-in-beta",{"_path":6456,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6457,"content":6462,"config":6466,"_id":6468,"_type":16,"title":6469,"_source":17,"_file":6470,"_stem":6471,"_extension":20},"/en-us/blog/quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform",{"title":6458,"description":6459,"ogTitle":6458,"ogDescription":6459,"noIndex":6,"ogImage":6187,"ogUrl":6460,"ogSiteName":995,"ogType":996,"canonicalUrls":6460,"schema":6461},"Quick setup of a GKE Cluster with ArgoCD pre-installed using Terraform","Use this tutorial as a great starting point to manage your cluster entirely through GitOps.","https://about.gitlab.com/blog/quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Quick setup of a GKE Cluster with ArgoCD pre-installed using Terraform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Noah Ing\"},{\"@type\":\"Person\",\"name\":\"Siddharth Mathur\"}],\n        \"datePublished\": \"2024-01-31\",\n      }",{"title":6458,"description":6459,"authors":6463,"heroImage":6187,"date":6447,"category":858,"tags":6465},[2997,6464],"Siddharth Mathur",[559,3346,110,574,2889],{"slug":6467,"featured":6,"template":736},"quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform","content:en-us:blog:quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform.yml","Quick Setup Of A Gke Cluster With Argocd Pre Installed Using Terraform","en-us/blog/quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform.yml","en-us/blog/quick-setup-of-a-gke-cluster-with-argocd-pre-installed-using-terraform",{"_path":6473,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6474,"content":6480,"config":6486,"_id":6488,"_type":16,"title":6489,"_source":17,"_file":6490,"_stem":6491,"_extension":20},"/en-us/blog/gitlab-drives-automotive-industry-information-security-with-tisax",{"title":6475,"description":6476,"ogTitle":6475,"ogDescription":6476,"noIndex":6,"ogImage":6477,"ogUrl":6478,"ogSiteName":995,"ogType":996,"canonicalUrls":6478,"schema":6479},"GitLab secures automotive industry with TISAX certification","Learn why we pursued this certification and how it will help GitLab customers in the automotive industry.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659703/Blog/Hero%20Images/AdobeStock_577940357.jpg","https://about.gitlab.com/blog/gitlab-drives-automotive-industry-information-security-with-tisax","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab drives automotive industry information security with TISAX certification\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Liz Coleman\"}],\n        \"datePublished\": \"2024-01-30\",\n      }",{"title":6481,"description":6476,"authors":6482,"heroImage":6477,"date":6484,"category":790,"tags":6485},"GitLab drives automotive industry information security with TISAX certification",[6483],"Liz Coleman","2024-01-30",[790,1049,3075,963],{"slug":6487,"featured":6,"template":736},"gitlab-drives-automotive-industry-information-security-with-tisax","content:en-us:blog:gitlab-drives-automotive-industry-information-security-with-tisax.yml","Gitlab Drives Automotive Industry Information Security With Tisax","en-us/blog/gitlab-drives-automotive-industry-information-security-with-tisax.yml","en-us/blog/gitlab-drives-automotive-industry-information-security-with-tisax",{"_path":6493,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6494,"content":6500,"config":6503,"_id":6505,"_type":16,"title":6506,"_source":17,"_file":6507,"_stem":6508,"_extension":20},"/en-us/blog/southwest-looking-to-help-developers-take-flight",{"title":6495,"description":6496,"ogTitle":6495,"ogDescription":6496,"noIndex":6,"ogImage":6497,"ogUrl":6498,"ogSiteName":995,"ogType":996,"canonicalUrls":6498,"schema":6499},"Southwest looking to help developers take flight","Learn how the airline's DevOps teams are dramatically increasing their ability to detect and resolve problems with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665272/Blog/Hero%20Images/AdobeStock_380312133.jpg","https://about.gitlab.com/blog/southwest-looking-to-help-developers-take-flight","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Southwest looking to help developers take flight\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2024-01-30\",\n      }",{"title":6495,"description":6496,"authors":6501,"heroImage":6497,"date":6484,"category":3072,"tags":6502},[3999],[564,1050,728,3075],{"slug":6504,"featured":6,"template":736},"southwest-looking-to-help-developers-take-flight","content:en-us:blog:southwest-looking-to-help-developers-take-flight.yml","Southwest Looking To Help Developers Take Flight","en-us/blog/southwest-looking-to-help-developers-take-flight.yml","en-us/blog/southwest-looking-to-help-developers-take-flight",{"_path":6510,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6511,"content":6516,"config":6520,"_id":6522,"_type":16,"title":6523,"_source":17,"_file":6524,"_stem":6525,"_extension":20},"/en-us/blog/ai-powered-growth-transform-every-stage-of-software-delivery",{"title":6512,"description":6513,"ogTitle":6512,"ogDescription":6513,"noIndex":6,"ogImage":1809,"ogUrl":6514,"ogSiteName":995,"ogType":996,"canonicalUrls":6514,"schema":6515},"AI-powered growth: Transform every stage of software delivery","Find out how the latest developments in the GitLab AI-powered DevSecOps Platform boost efficiency throughout the software development lifecycle.","https://about.gitlab.com/blog/ai-powered-growth-transform-every-stage-of-software-delivery","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AI-powered growth: Transform every stage of software delivery\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Laurena Alves\"}],\n        \"datePublished\": \"2024-01-29\",\n      }",{"title":6512,"description":6513,"authors":6517,"heroImage":1809,"date":6518,"category":769,"tags":6519},[5820],"2024-01-29",[728,543,731],{"slug":6521,"featured":92,"template":736},"ai-powered-growth-transform-every-stage-of-software-delivery","content:en-us:blog:ai-powered-growth-transform-every-stage-of-software-delivery.yml","Ai Powered Growth Transform Every Stage Of Software Delivery","en-us/blog/ai-powered-growth-transform-every-stage-of-software-delivery.yml","en-us/blog/ai-powered-growth-transform-every-stage-of-software-delivery",{"_path":6527,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6528,"content":6534,"config":6537,"_id":6539,"_type":16,"title":6540,"_source":17,"_file":6541,"_stem":6542,"_extension":20},"/en-us/blog/building-a-more-inclusive-and-welcoming-open-source-community-on-gitlab",{"title":6529,"description":6530,"ogTitle":6529,"ogDescription":6530,"noIndex":6,"ogImage":6531,"ogUrl":6532,"ogSiteName":995,"ogType":996,"canonicalUrls":6532,"schema":6533},"Building a more inclusive and welcoming open source community on GitLab","Open source projects using GitLab can now easily apply for CHAOSS DEI badges.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683305/Blog/Hero%20Images/AdobeStock_449040869.jpg","https://about.gitlab.com/blog/building-a-more-inclusive-and-welcoming-open-source-community-on-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building a more inclusive and welcoming open source community on GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilio Salvador\"}],\n        \"datePublished\": \"2024-01-29\",\n      }",{"title":6529,"description":6530,"authors":6535,"heroImage":6531,"date":6518,"category":1049,"tags":6536},[940],[1049,543,574],{"slug":6538,"featured":6,"template":736},"building-a-more-inclusive-and-welcoming-open-source-community-on-gitlab","content:en-us:blog:building-a-more-inclusive-and-welcoming-open-source-community-on-gitlab.yml","Building A More Inclusive And Welcoming Open Source Community On Gitlab","en-us/blog/building-a-more-inclusive-and-welcoming-open-source-community-on-gitlab.yml","en-us/blog/building-a-more-inclusive-and-welcoming-open-source-community-on-gitlab",{"_path":6544,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6545,"content":6551,"config":6556,"_id":6558,"_type":16,"title":6559,"_source":17,"_file":6560,"_stem":6561,"_extension":20},"/en-us/blog/inside-the-improved-ci-logs-management-experience-for-multi-line-commands",{"title":6546,"description":6547,"ogTitle":6546,"ogDescription":6547,"noIndex":6,"ogImage":6548,"ogUrl":6549,"ogSiteName":995,"ogType":996,"canonicalUrls":6549,"schema":6550},"Inside the improved CI logs management experience for multi-line commands","Reviewing log output for CI/CD jobs with multi-line commands is now easier than ever. Find out why, how to configure your pipelines, and what's ahead.\n\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099499/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_639935439_3oqldo5Yt5wPonEJYZOLTM_1750099498739.jpg","https://about.gitlab.com/blog/inside-the-improved-ci-logs-management-experience-for-multi-line-commands","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside the improved CI logs management experience for multi-line commands\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Romuald Atchadé\"}],\n        \"datePublished\": \"2024-01-25\",\n      }",{"title":6546,"description":6547,"authors":6552,"heroImage":6548,"date":6554,"category":858,"tags":6555},[6553],"Romuald Atchadé","2024-01-25",[2097,2098,110,772],{"slug":6557,"featured":92,"template":736},"inside-the-improved-ci-logs-management-experience-for-multi-line-commands","content:en-us:blog:inside-the-improved-ci-logs-management-experience-for-multi-line-commands.yml","Inside The Improved Ci Logs Management Experience For Multi Line Commands","en-us/blog/inside-the-improved-ci-logs-management-experience-for-multi-line-commands.yml","en-us/blog/inside-the-improved-ci-logs-management-experience-for-multi-line-commands",{"_path":6563,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6564,"content":6570,"config":6574,"_id":6576,"_type":16,"title":6577,"_source":17,"_file":6578,"_stem":6579,"_extension":20},"/en-us/blog/write-terraform-plans-faster-with-gitlab-duo-code-suggestions",{"title":6565,"description":6566,"ogTitle":6565,"ogDescription":6566,"noIndex":6,"ogImage":6567,"ogUrl":6568,"ogSiteName":995,"ogType":996,"canonicalUrls":6568,"schema":6569},"Write Terraform plans faster with GitLab Duo Code Suggestions","Follow this tutorial to learn how to use AI-powered code creation to manage your infrastructure with Terraform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679194/Blog/Hero%20Images/duo-blog-post.png","https://about.gitlab.com/blog/write-terraform-plans-faster-with-gitlab-duo-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Write Terraform plans faster with GitLab Duo Code Suggestions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2024-01-24\",\n      }",{"title":6565,"description":6566,"authors":6571,"heroImage":6567,"date":6572,"category":769,"tags":6573},[3181],"2024-01-24",[543,728,772],{"slug":6575,"featured":92,"template":736},"write-terraform-plans-faster-with-gitlab-duo-code-suggestions","content:en-us:blog:write-terraform-plans-faster-with-gitlab-duo-code-suggestions.yml","Write Terraform Plans Faster With Gitlab Duo Code Suggestions","en-us/blog/write-terraform-plans-faster-with-gitlab-duo-code-suggestions.yml","en-us/blog/write-terraform-plans-faster-with-gitlab-duo-code-suggestions",{"_path":6581,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6582,"content":6588,"config":6593,"_id":6595,"_type":16,"title":6596,"_source":17,"_file":6597,"_stem":6598,"_extension":20},"/en-us/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes",{"title":6583,"description":6584,"ogTitle":6583,"ogDescription":6584,"noIndex":6,"ogImage":6585,"ogUrl":6586,"ogSiteName":995,"ogType":996,"canonicalUrls":6586,"schema":6587},"Pair GitLab and The Good Docs Project template to improve release notes","Creating compelling, detailed, human-readable notes for software releases is important. Using GitLab and this template from The Good Docs Project makes it easier.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099541/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_432673748_5xWPNsktdz2QChWhl16jGq_1750099540656.jpg","https://about.gitlab.com/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pair GitLab and The Good Docs Project template to improve release notes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aaron Peters, Member, Good Docs Project\"}],\n        \"datePublished\": \"2024-01-23\",\n      }",{"title":6583,"description":6584,"authors":6589,"heroImage":6585,"date":6591,"category":1388,"tags":6592},[6590],"Aaron Peters, Member, Good Docs Project","2024-01-23",[1265,543,269,772],{"slug":6594,"featured":92,"template":736},"pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes","content:en-us:blog:pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes.yml","Pair Gitlab And The Good Docs Project Template To Improve Release Notes","en-us/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes.yml","en-us/blog/pair-gitlab-and-the-good-docs-project-template-to-improve-release-notes",{"_path":6600,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6601,"content":6607,"config":6611,"_id":6613,"_type":16,"title":6614,"_source":17,"_file":6615,"_stem":6616,"_extension":20},"/en-us/blog/windows-2022-support-for-gitlab-saas-runners",{"title":6602,"description":6603,"ogTitle":6602,"ogDescription":6603,"noIndex":6,"ogImage":6604,"ogUrl":6605,"ogSiteName":995,"ogType":996,"canonicalUrls":6605,"schema":6606},"Windows 2022 support for GitLab SaaS runners now available","Along with this announcement comes the deprecation of Windows 2019 and the existing tags on Windows runners with GitLab 17.0.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098940/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_674148848_4qGCRe0NRFou2mFHkNhv7m_1750098939992.jpg","https://about.gitlab.com/blog/windows-2022-support-for-gitlab-saas-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Windows 2022 support for GitLab SaaS runners now available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Engel\"}],\n        \"datePublished\": \"2024-01-22\",\n      }",{"title":6602,"description":6603,"authors":6608,"heroImage":6604,"date":6609,"category":577,"tags":6610},[3216],"2024-01-22",[543,731,1049],{"slug":6612,"featured":6,"template":736},"windows-2022-support-for-gitlab-saas-runners","content:en-us:blog:windows-2022-support-for-gitlab-saas-runners.yml","Windows 2022 Support For Gitlab Saas Runners","en-us/blog/windows-2022-support-for-gitlab-saas-runners.yml","en-us/blog/windows-2022-support-for-gitlab-saas-runners",{"_path":6618,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6619,"content":6625,"config":6629,"_id":6631,"_type":16,"title":6632,"_source":17,"_file":6633,"_stem":6634,"_extension":20},"/en-us/blog/inside-dora-performers-score-in-gitlab-value-streams-dashboard",{"title":6620,"description":6621,"ogTitle":6620,"ogDescription":6621,"noIndex":6,"ogImage":6622,"ogUrl":6623,"ogSiteName":995,"ogType":996,"canonicalUrls":6623,"schema":6624},"Inside DORA Performers score in GitLab Value Streams Dashboard ","Learn how four key metrics drive DevOps maturity, helping teams optimize workflows and achieve DevOps excellence.\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098908/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_644947854_248JIrEOCaGJdfJdiSjYde_1750098907747.jpg","https://about.gitlab.com/blog/inside-dora-performers-score-in-gitlab-value-streams-dashboard","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside DORA Performers score in GitLab Value Streams Dashboard \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2024-01-18\",\n      }",{"title":6620,"description":6621,"authors":6626,"heroImage":6622,"date":6627,"category":577,"tags":6628},[2886],"2024-01-18",[564,574,543,731,1988],{"slug":6630,"featured":6,"template":736},"inside-dora-performers-score-in-gitlab-value-streams-dashboard","content:en-us:blog:inside-dora-performers-score-in-gitlab-value-streams-dashboard.yml","Inside Dora Performers Score In Gitlab Value Streams Dashboard","en-us/blog/inside-dora-performers-score-in-gitlab-value-streams-dashboard.yml","en-us/blog/inside-dora-performers-score-in-gitlab-value-streams-dashboard",{"_path":6636,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6637,"content":6642,"config":6646,"_id":6648,"_type":16,"title":6649,"_source":17,"_file":6650,"_stem":6651,"_extension":20},"/en-us/blog/registration-features-program-expands-by-16-free-features",{"title":6638,"description":6639,"ogTitle":6638,"ogDescription":6639,"noIndex":6,"ogImage":2312,"ogUrl":6640,"ogSiteName":995,"ogType":996,"canonicalUrls":6640,"schema":6641},"Registration Features program expands by 16 free features","More features now available at no cost to free self-managed Enterprise Edition DevSecOps platform customers who register and turn on their Service Ping.","https://about.gitlab.com/blog/registration-features-program-expands-by-16-free-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Registration Features program expands by 16 free features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ian Pedowitz\"}],\n        \"datePublished\": \"2024-01-18\",\n      }",{"title":6638,"description":6639,"authors":6643,"heroImage":2312,"date":6627,"category":731,"tags":6645},[6644],"Ian Pedowitz",[110,730,731,1049],{"slug":6647,"featured":6,"template":736},"registration-features-program-expands-by-16-free-features","content:en-us:blog:registration-features-program-expands-by-16-free-features.yml","Registration Features Program Expands By 16 Free Features","en-us/blog/registration-features-program-expands-by-16-free-features.yml","en-us/blog/registration-features-program-expands-by-16-free-features",{"_path":6653,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6654,"content":6659,"config":6664,"_id":6666,"_type":16,"title":6667,"_source":17,"_file":6668,"_stem":6669,"_extension":20},"/en-us/blog/gitlab-duo-pro",{"title":6655,"description":6656,"ogTitle":6655,"ogDescription":6656,"noIndex":6,"ogImage":1809,"ogUrl":6657,"ogSiteName":995,"ogType":996,"canonicalUrls":6657,"schema":6658}," GitLab Duo Pro combines Code Suggestions, Chat, and organizational controls","AI-powered code completion, code generation, chat, and per-user assignment come to the GitLab DevSecOps Platform as a secure add-on.","https://about.gitlab.com/blog/gitlab-duo-pro","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \" GitLab Duo Pro combines Code Suggestions, Chat, and organizational controls\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hillary Benson\"},{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2024-01-17\",\n      }",{"title":6655,"description":6656,"authors":6660,"heroImage":1809,"date":6662,"category":769,"tags":6663},[6661,2023],"Hillary Benson","2024-01-17",[728,543,574],{"slug":6665,"featured":92,"template":736},"gitlab-duo-pro","content:en-us:blog:gitlab-duo-pro.yml","Gitlab Duo Pro","en-us/blog/gitlab-duo-pro.yml","en-us/blog/gitlab-duo-pro",{"_path":6671,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6672,"content":6677,"config":6681,"_id":6683,"_type":16,"title":6684,"_source":17,"_file":6685,"_stem":6686,"_extension":20},"/en-us/blog/gitlab-package-roadmap-for-2024",{"title":6673,"description":6674,"ogTitle":6673,"ogDescription":6674,"noIndex":6,"ogImage":5974,"ogUrl":6675,"ogSiteName":995,"ogType":996,"canonicalUrls":6675,"schema":6676},"GitLab Package roadmap for 2024","GitLab is launching new package and container registry features to help enterprise customers consolidate on GitLab for artifact management.\n","https://about.gitlab.com/blog/gitlab-package-roadmap-for-2024","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Package roadmap for 2024\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2024-01-16\",\n      }",{"title":6673,"description":6674,"authors":6678,"heroImage":5974,"date":6679,"category":731,"tags":6680},[907],"2024-01-16",[731,1049,730,574],{"slug":6682,"featured":6,"template":736},"gitlab-package-roadmap-for-2024","content:en-us:blog:gitlab-package-roadmap-for-2024.yml","Gitlab Package Roadmap For 2024","en-us/blog/gitlab-package-roadmap-for-2024.yml","en-us/blog/gitlab-package-roadmap-for-2024",{"_path":6688,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6689,"content":6694,"config":6698,"_id":6700,"_type":16,"title":6701,"_source":17,"_file":6702,"_stem":6703,"_extension":20},"/en-us/blog/gitlab-uses-anthropic-for-smart-safe-ai-assisted-code-generation",{"title":6690,"description":6691,"ogTitle":6690,"ogDescription":6691,"noIndex":6,"ogImage":1809,"ogUrl":6692,"ogSiteName":995,"ogType":996,"canonicalUrls":6692,"schema":6693},"GitLab uses Anthropic for smart, safe AI-assisted code generation","Anthropic’s Claude AI model supports the delivery of helpful, trusted code in GitLab Duo Code Suggestions.","https://about.gitlab.com/blog/gitlab-uses-anthropic-for-smart-safe-ai-assisted-code-generation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab uses Anthropic for smart, safe AI-assisted code generation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kevin Chu\"}],\n        \"datePublished\": \"2024-01-16\",\n      }",{"title":6690,"description":6691,"authors":6695,"heroImage":1809,"date":6679,"category":769,"tags":6697},[6696],"Kevin Chu",[728,233,574,564],{"slug":6699,"featured":92,"template":736},"gitlab-uses-anthropic-for-smart-safe-ai-assisted-code-generation","content:en-us:blog:gitlab-uses-anthropic-for-smart-safe-ai-assisted-code-generation.yml","Gitlab Uses Anthropic For Smart Safe Ai Assisted Code Generation","en-us/blog/gitlab-uses-anthropic-for-smart-safe-ai-assisted-code-generation.yml","en-us/blog/gitlab-uses-anthropic-for-smart-safe-ai-assisted-code-generation",{"_path":6705,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6706,"content":6712,"config":6716,"_id":6718,"_type":16,"title":6719,"_source":17,"_file":6720,"_stem":6721,"_extension":20},"/en-us/blog/gitlab-is-now-available-as-an-aws-codestar-connections-provider",{"title":6707,"description":6708,"ogTitle":6707,"ogDescription":6708,"noIndex":6,"ogImage":6709,"ogUrl":6710,"ogSiteName":995,"ogType":996,"canonicalUrls":6710,"schema":6711},"GitLab is now available as an AWS CodeStar Connections provider","AWS released native CodePipeline integration for GitLab projects and repos, helping to ensure a best-in-class experience when using GitLab and AWS together.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098884/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_397632156_3Ldy1urjMStQCl4qnOBvE0_1750098884409.jpg","https://about.gitlab.com/blog/gitlab-is-now-available-as-an-aws-codestar-connections-provider","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is now available as an AWS CodeStar Connections provider\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2024-01-11\",\n      }",{"title":6707,"description":6708,"authors":6713,"heroImage":6709,"date":6714,"category":577,"tags":6715},[959],"2024-01-11",[771,110,284,233],{"slug":6717,"featured":6,"template":736},"gitlab-is-now-available-as-an-aws-codestar-connections-provider","content:en-us:blog:gitlab-is-now-available-as-an-aws-codestar-connections-provider.yml","Gitlab Is Now Available As An Aws Codestar Connections Provider","en-us/blog/gitlab-is-now-available-as-an-aws-codestar-connections-provider.yml","en-us/blog/gitlab-is-now-available-as-an-aws-codestar-connections-provider",{"_path":6723,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6724,"content":6729,"config":6732,"_id":6734,"_type":16,"title":6735,"_source":17,"_file":6736,"_stem":6737,"_extension":20},"/en-us/blog/the-contributions-we-made-to-the-git-2-43-release",{"title":6725,"description":6726,"ogTitle":6725,"ogDescription":6726,"noIndex":6,"ogImage":3624,"ogUrl":6727,"ogSiteName":995,"ogType":996,"canonicalUrls":6727,"schema":6728},"The contributions we made to the Git 2.43 release","Git 2.43 included some improvements from GitLab's Git team. Here are some highlights from the work the team has done on Git and why it matters.","https://about.gitlab.com/blog/the-contributions-we-made-to-the-git-2-43-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The contributions we made to the Git 2.43 release\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Cai\"}],\n        \"datePublished\": \"2024-01-11\",\n      }",{"title":6725,"description":6726,"authors":6730,"heroImage":3624,"date":6714,"category":1388,"tags":6731},[4769],[269,1265,1195],{"slug":6733,"featured":6,"template":736},"the-contributions-we-made-to-the-git-2-43-release","content:en-us:blog:the-contributions-we-made-to-the-git-2-43-release.yml","The Contributions We Made To The Git 2 43 Release","en-us/blog/the-contributions-we-made-to-the-git-2-43-release.yml","en-us/blog/the-contributions-we-made-to-the-git-2-43-release",{"_path":6739,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6740,"content":6746,"config":6751,"_id":6753,"_type":16,"title":6754,"_source":17,"_file":6755,"_stem":6756,"_extension":20},"/en-us/blog/managing-gitlab-resources-with-pulumi",{"title":6741,"description":6742,"ogTitle":6741,"ogDescription":6742,"noIndex":6,"ogImage":6743,"ogUrl":6744,"ogSiteName":995,"ogType":996,"canonicalUrls":6744,"schema":6745},"Managing GitLab resources with Pulumi","Learn how Pulumi's infrastructure-as-code tool helps streamline the automation of GitLab CI/CD workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683430/Blog/Hero%20Images/AdobeStock_293854129__1_.jpg","https://about.gitlab.com/blog/managing-gitlab-resources-with-pulumi","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Managing GitLab resources with Pulumi\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Josh Kodroff, Pulumi\"}],\n        \"datePublished\": \"2024-01-10\",\n      }",{"title":6741,"description":6742,"authors":6747,"heroImage":6743,"date":6749,"category":577,"tags":6750},[6748],"Josh Kodroff, Pulumi","2024-01-10",[110,574,284,233],{"slug":6752,"featured":6,"template":736},"managing-gitlab-resources-with-pulumi","content:en-us:blog:managing-gitlab-resources-with-pulumi.yml","Managing Gitlab Resources With Pulumi","en-us/blog/managing-gitlab-resources-with-pulumi.yml","en-us/blog/managing-gitlab-resources-with-pulumi",{"_path":6758,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6759,"content":6764,"config":6768,"_id":6770,"_type":16,"title":6771,"_source":17,"_file":6772,"_stem":6773,"_extension":20},"/en-us/blog/gitlab-trust-center-welcome-to-self-service-customer-assurance",{"title":6760,"description":6761,"ogTitle":6760,"ogDescription":6761,"noIndex":6,"ogImage":1648,"ogUrl":6762,"ogSiteName":995,"ogType":996,"canonicalUrls":6762,"schema":6763},"GitLab Trust Center: Welcome to self-service customer assurance","The single, unified trust center provides access to security and privacy collateral, streamlined questionnaire submissions, an interactive knowledge base, and GitLab updates.","https://about.gitlab.com/blog/gitlab-trust-center-welcome-to-self-service-customer-assurance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Trust Center: Welcome to self-service customer assurance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2024-01-09\",\n      }",{"title":6760,"description":6761,"authors":6765,"heroImage":1648,"date":6766,"category":790,"tags":6767},[1949],"2024-01-09",[543,3075,790],{"slug":6769,"featured":92,"template":736},"gitlab-trust-center-welcome-to-self-service-customer-assurance","content:en-us:blog:gitlab-trust-center-welcome-to-self-service-customer-assurance.yml","Gitlab Trust Center Welcome To Self Service Customer Assurance","en-us/blog/gitlab-trust-center-welcome-to-self-service-customer-assurance.yml","en-us/blog/gitlab-trust-center-welcome-to-self-service-customer-assurance",{"_path":6775,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6776,"content":6781,"config":6784,"_id":6786,"_type":16,"title":6787,"_source":17,"_file":6788,"_stem":6789,"_extension":20},"/en-us/blog/top-10-gitlab-technical-blogs-of-2023",{"title":6777,"description":6778,"ogTitle":6777,"ogDescription":6778,"noIndex":6,"ogImage":1164,"ogUrl":6779,"ogSiteName":995,"ogType":996,"canonicalUrls":6779,"schema":6780},"Top 10 GitLab technical blogs of 2023","2023 was a big year! Catch up on expert insights into DevSecOps, AI, CI/CD, and more.","https://about.gitlab.com/blog/top-10-gitlab-technical-blogs-of-2023","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 10 GitLab technical blogs of 2023\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2024-01-09\",\n      }",{"title":6777,"description":6778,"authors":6782,"heroImage":1164,"date":6766,"category":577,"tags":6783},[3506],[728,110,543,574,790,772],{"slug":6785,"featured":92,"template":736},"top-10-gitlab-technical-blogs-of-2023","content:en-us:blog:top-10-gitlab-technical-blogs-of-2023.yml","Top 10 Gitlab Technical Blogs Of 2023","en-us/blog/top-10-gitlab-technical-blogs-of-2023.yml","en-us/blog/top-10-gitlab-technical-blogs-of-2023",{"_path":6791,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6792,"content":6797,"config":6801,"_id":6803,"_type":16,"title":6804,"_source":17,"_file":6805,"_stem":6806,"_extension":20},"/en-us/blog/the-2023-bug-bounty-year-in-review",{"title":6793,"description":6794,"ogTitle":6793,"ogDescription":6794,"noIndex":6,"ogImage":1873,"ogUrl":6795,"ogSiteName":995,"ogType":996,"canonicalUrls":6795,"schema":6796},"The 2023 bug bounty year in review","GitLab's bug bounty program had an incredible year. Learn more about the prizes awarded and the bug reporters who won them.","https://about.gitlab.com/blog/the-2023-bug-bounty-year-in-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The 2023 bug bounty year in review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ottilia Westerlund\"}],\n        \"datePublished\": \"2024-01-04\",\n      }",{"title":6793,"description":6794,"authors":6798,"heroImage":1873,"date":6799,"category":790,"tags":6800},[3487],"2024-01-04",[2483,790],{"slug":6802,"featured":6,"template":736},"the-2023-bug-bounty-year-in-review","content:en-us:blog:the-2023-bug-bounty-year-in-review.yml","The 2023 Bug Bounty Year In Review","en-us/blog/the-2023-bug-bounty-year-in-review.yml","en-us/blog/the-2023-bug-bounty-year-in-review",{"_path":6808,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6809,"content":6815,"config":6819,"_id":6821,"_type":16,"title":6822,"_source":17,"_file":6823,"_stem":6824,"_extension":20},"/en-us/blog/can-your-ci-cd-environment-support-ai-powered-devsecops",{"title":6810,"description":6811,"ogTitle":6810,"ogDescription":6811,"noIndex":6,"ogImage":6812,"ogUrl":6813,"ogSiteName":995,"ogType":996,"canonicalUrls":6813,"schema":6814},"Can your CI/CD environment support AI-powered DevSecOps? ","Unlock the value of AI-powered software development with a DevSecOps platform capable of supporting CI/CD hyperscale.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683522/Blog/Hero%20Images/AdobeStock_659839979.jpg","https://about.gitlab.com/blog/can-your-ci-cd-environment-support-ai-powered-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Can your CI/CD environment support AI-powered DevSecOps? \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2024-01-03\",\n      }",{"title":6810,"description":6811,"authors":6816,"heroImage":6812,"date":6817,"category":769,"tags":6818},[4857],"2024-01-03",[110,574,728],{"slug":6820,"featured":6,"template":736},"can-your-ci-cd-environment-support-ai-powered-devsecops","content:en-us:blog:can-your-ci-cd-environment-support-ai-powered-devsecops.yml","Can Your Ci Cd Environment Support Ai Powered Devsecops","en-us/blog/can-your-ci-cd-environment-support-ai-powered-devsecops.yml","en-us/blog/can-your-ci-cd-environment-support-ai-powered-devsecops",{"_path":6826,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6827,"content":6832,"config":6836,"_id":6838,"_type":16,"title":6839,"_source":17,"_file":6840,"_stem":6841,"_extension":20},"/en-us/blog/gitlab-duo-code-suggestions-is-generally-available",{"title":6828,"description":6829,"ogTitle":6828,"ogDescription":6829,"noIndex":6,"ogImage":1809,"ogUrl":6830,"ogSiteName":995,"ogType":996,"canonicalUrls":6830,"schema":6831},"GitLab Duo Code Suggestions is generally available","Learn how our AI-powered workflow helps developers write secure code efficiently.\n","https://about.gitlab.com/blog/gitlab-duo-code-suggestions-is-generally-available","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Code Suggestions is generally available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2023-12-22\",\n      }",{"title":6828,"description":6829,"authors":6833,"heroImage":1809,"date":6834,"category":769,"tags":6835},[2188],"2023-12-22",[728,1049,574],{"slug":6837,"featured":92,"template":736},"gitlab-duo-code-suggestions-is-generally-available","content:en-us:blog:gitlab-duo-code-suggestions-is-generally-available.yml","Gitlab Duo Code Suggestions Is Generally Available","en-us/blog/gitlab-duo-code-suggestions-is-generally-available.yml","en-us/blog/gitlab-duo-code-suggestions-is-generally-available",{"_path":6843,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6844,"content":6850,"config":6854,"_id":6856,"_type":16,"title":6857,"_source":17,"_file":6858,"_stem":6859,"_extension":20},"/en-us/blog/introducing-the-gitlab-ci-cd-catalog-beta",{"title":6845,"description":6846,"ogTitle":6845,"ogDescription":6846,"noIndex":6,"ogImage":6847,"ogUrl":6848,"ogSiteName":995,"ogType":996,"canonicalUrls":6848,"schema":6849},"Introducing the GitLab CI/CD Catalog Beta","Discover, reuse, and contribute CI/CD components effortlessly, enhancing collaboration and efficiency when creating pipeline configurations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099399/Blog/Hero%20Images/Blog/Hero%20Images/security-pipelines_4UHVIJlePT8rEzjvYkGYvi_1750099398604.jpg","https://about.gitlab.com/blog/introducing-the-gitlab-ci-cd-catalog-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing the GitLab CI/CD Catalog Beta\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2023-12-21\",\n      }",{"title":6845,"description":6846,"authors":6851,"heroImage":6847,"date":6852,"category":858,"tags":6853},[1016],"2023-12-21",[110,1049,564,772],{"slug":6855,"featured":6,"template":736},"introducing-the-gitlab-ci-cd-catalog-beta","content:en-us:blog:introducing-the-gitlab-ci-cd-catalog-beta.yml","Introducing The Gitlab Ci Cd Catalog Beta","en-us/blog/introducing-the-gitlab-ci-cd-catalog-beta.yml","en-us/blog/introducing-the-gitlab-ci-cd-catalog-beta",{"_path":6861,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6862,"content":6867,"config":6871,"_id":6873,"_type":16,"title":6874,"_source":17,"_file":6875,"_stem":6876,"_extension":20},"/en-us/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare",{"title":6863,"description":6864,"ogTitle":6863,"ogDescription":6864,"noIndex":6,"ogImage":1164,"ogUrl":6865,"ogSiteName":995,"ogType":996,"canonicalUrls":6865,"schema":6866},"Google Summer of Code 2024: Contribute to GitLab and Git to prepare","Learning how to contribute to GitLab and Git can help you get ready to apply for Google's program for open source development.","https://about.gitlab.com/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Google Summer of Code 2024: Contribute to GitLab and Git to prepare\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nick Veenhof\"},{\"@type\":\"Person\",\"name\":\"Christian Couder\"}],\n        \"datePublished\": \"2023-12-20\",\n      }",{"title":6863,"description":6864,"authors":6868,"heroImage":1164,"date":6869,"category":1388,"tags":6870},[1513,3418],"2023-12-20",[1265,269,3074,1195,2815],{"slug":6872,"featured":6,"template":736},"google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare","content:en-us:blog:google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare.yml","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.yml","en-us/blog/google-summer-of-code-2024-contribute-to-gitlab-and-git-to-prepare",{"_path":6878,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6879,"content":6884,"config":6890,"_id":6892,"_type":16,"title":6893,"_source":17,"_file":6894,"_stem":6895,"_extension":20},"/en-us/blog/building-gitlab-with-gitlab-stress-testing-product-analytics",{"title":6880,"description":6881,"ogTitle":6880,"ogDescription":6881,"noIndex":6,"ogImage":5956,"ogUrl":6882,"ogSiteName":995,"ogType":996,"canonicalUrls":6882,"schema":6883},"Building GitLab with GitLab: Stress-testing Product Analytics","We put Product Analytics through its paces internally to prep it for Beta. Find out what that entailed and how it led to feature improvements.","https://about.gitlab.com/blog/building-gitlab-with-gitlab-stress-testing-product-analytics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building GitLab with GitLab: Stress-testing Product Analytics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Heimbuck\"},{\"@type\":\"Person\",\"name\":\"Sam Kerr\"}],\n        \"datePublished\": \"2023-12-14\",\n      }",{"title":6880,"description":6881,"authors":6885,"heroImage":5956,"date":6888,"category":577,"tags":6889},[6886,6887],"James Heimbuck","Sam Kerr","2023-12-14",[574,731,1988,1569],{"slug":6891,"featured":92,"template":736},"building-gitlab-with-gitlab-stress-testing-product-analytics","content:en-us:blog:building-gitlab-with-gitlab-stress-testing-product-analytics.yml","Building Gitlab With Gitlab Stress Testing Product Analytics","en-us/blog/building-gitlab-with-gitlab-stress-testing-product-analytics.yml","en-us/blog/building-gitlab-with-gitlab-stress-testing-product-analytics",{"_path":6897,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6898,"content":6903,"config":6909,"_id":6911,"_type":16,"title":6912,"_source":17,"_file":6913,"_stem":6914,"_extension":20},"/en-us/blog/why-gitlab-self-managed-is-the-perfect-partner-for-the-public-sector",{"ogTitle":6899,"schema":6900,"ogImage":1402,"ogDescription":6901,"ogSiteName":995,"noIndex":6,"ogType":996,"ogUrl":6902,"title":6899,"canonicalUrls":6902,"description":6901},"Why GitLab Self-Managed is the perfect partner for the public sector","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab self-managed is the perfect partner for the public sector\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2023-12-13\",\n      }","GitLab Self-Managed helps state and local governments modernize DevSecOps with secure AI, compliance automation, and cost-efficient toolchain consolidation.","https://about.gitlab.com/blog/why-gitlab-self-managed-is-the-perfect-partner-for-the-public-sector",{"heroImage":1402,"authors":6904,"updatedDate":6906,"date":6907,"title":6899,"tags":6908,"description":6901,"category":731},[1913,6905],"Ashher Syed","2025-07-30","2023-12-13",[186,731],{"slug":6910,"featured":92,"template":736},"why-gitlab-self-managed-is-the-perfect-partner-for-the-public-sector","content:en-us:blog:why-gitlab-self-managed-is-the-perfect-partner-for-the-public-sector.yml","Why Gitlab Self Managed Is The Perfect Partner For The Public Sector","en-us/blog/why-gitlab-self-managed-is-the-perfect-partner-for-the-public-sector.yml","en-us/blog/why-gitlab-self-managed-is-the-perfect-partner-for-the-public-sector",{"_path":6916,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6917,"content":6923,"config":6927,"_id":6929,"_type":16,"title":6930,"_source":17,"_file":6931,"_stem":6932,"_extension":20},"/en-us/blog/u-s-navy-black-pearl-lessons-in-championing-devsecops",{"title":6918,"description":6919,"ogTitle":6918,"ogDescription":6919,"noIndex":6,"ogImage":6920,"ogUrl":6921,"ogSiteName":995,"ogType":996,"canonicalUrls":6921,"schema":6922},"U.S. Navy Black Pearl: Lessons in championing DevSecOps","Sigma Defense built a managed service software factory environment for the military using GitLab as its DevSecOps platform. Here's what they learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658924/Blog/Hero%20Images/securitylifecycle-light.png","https://about.gitlab.com/blog/u-s-navy-black-pearl-lessons-in-championing-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"U.S. Navy Black Pearl: Lessons in championing DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2023-12-12\",\n      }",{"title":6918,"description":6919,"authors":6924,"heroImage":6920,"date":6925,"category":3072,"tags":6926},[3506],"2023-12-12",[574,543,790,269,186],{"slug":6928,"featured":92,"template":736},"u-s-navy-black-pearl-lessons-in-championing-devsecops","content:en-us:blog:u-s-navy-black-pearl-lessons-in-championing-devsecops.yml","U S Navy Black Pearl Lessons In Championing Devsecops","en-us/blog/u-s-navy-black-pearl-lessons-in-championing-devsecops.yml","en-us/blog/u-s-navy-black-pearl-lessons-in-championing-devsecops",{"_path":6934,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6935,"content":6941,"config":6945,"_id":6947,"_type":16,"title":6948,"_source":17,"_file":6949,"_stem":6950,"_extension":20},"/en-us/blog/gitlabs-maven-dependency-proxy-is-available-in-beta",{"title":6936,"description":6937,"ogTitle":6936,"ogDescription":6937,"noIndex":6,"ogImage":6938,"ogUrl":6939,"ogSiteName":995,"ogType":996,"canonicalUrls":6939,"schema":6940},"GitLab's Maven dependency proxy is available in Beta","Enterprises can use new package registry feature to consolidate artifact management on GitLab, increasing the efficiency and speed of CI/CD pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663908/Blog/Hero%20Images/2023-devsecops-report-blog-banner2.png","https://about.gitlab.com/blog/gitlabs-maven-dependency-proxy-is-available-in-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's Maven dependency proxy is available in Beta\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2023-12-11\",\n      }",{"title":6936,"description":6937,"authors":6942,"heroImage":6938,"date":6943,"category":1049,"tags":6944},[907],"2023-12-11",[1049,110,1988,574],{"slug":6946,"featured":92,"template":736},"gitlabs-maven-dependency-proxy-is-available-in-beta","content:en-us:blog:gitlabs-maven-dependency-proxy-is-available-in-beta.yml","Gitlabs Maven Dependency Proxy Is Available In Beta","en-us/blog/gitlabs-maven-dependency-proxy-is-available-in-beta.yml","en-us/blog/gitlabs-maven-dependency-proxy-is-available-in-beta",{"_path":6952,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6953,"content":6958,"config":6962,"_id":6964,"_type":16,"title":6965,"_source":17,"_file":6966,"_stem":6967,"_extension":20},"/en-us/blog/betstudios-cto-on-improving-ci-cd-capabilities-with-gitlab-premium",{"title":6954,"description":6955,"ogTitle":6954,"ogDescription":6955,"noIndex":6,"ogImage":1164,"ogUrl":6956,"ogSiteName":995,"ogType":996,"canonicalUrls":6956,"schema":6957},"Betstudios CTO on improving CI/CD capabilities with GitLab Premium","Read why Betstudios upgraded to GitLab Premium and how their software development process has changed in this Q&A with their CTO Rafael Campuzano.","https://about.gitlab.com/blog/betstudios-cto-on-improving-ci-cd-capabilities-with-gitlab-premium","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Betstudios CTO on improving CI/CD capabilities with GitLab Premium\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kristina Weis\"}],\n        \"datePublished\": \"2023-12-06\",\n      }",{"title":6954,"description":6955,"authors":6959,"heroImage":1164,"date":6960,"category":3072,"tags":6961},[6411],"2023-12-06",[574,543,110,3075],{"slug":6963,"featured":6,"template":736},"betstudios-cto-on-improving-ci-cd-capabilities-with-gitlab-premium","content:en-us:blog:betstudios-cto-on-improving-ci-cd-capabilities-with-gitlab-premium.yml","Betstudios Cto On Improving Ci Cd Capabilities With Gitlab Premium","en-us/blog/betstudios-cto-on-improving-ci-cd-capabilities-with-gitlab-premium.yml","en-us/blog/betstudios-cto-on-improving-ci-cd-capabilities-with-gitlab-premium",{"_path":6969,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6970,"content":6976,"config":6981,"_id":6983,"_type":16,"title":6984,"_source":17,"_file":6985,"_stem":6986,"_extension":20},"/en-us/blog/gitlabs-next-generation-container-registry-is-now-available",{"title":6971,"description":6972,"ogTitle":6971,"ogDescription":6972,"noIndex":6,"ogImage":6973,"ogUrl":6974,"ogSiteName":995,"ogType":996,"canonicalUrls":6974,"schema":6975},"GitLab's next-generation container registry is now available","Self-managed customers can upgrade to the container registry (Beta) and unlock online garbage collection, which can reduce costly downtime and storage.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683098/Blog/Hero%20Images/container-cloud__1_.png","https://about.gitlab.com/blog/gitlabs-next-generation-container-registry-is-now-available","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's next-generation container registry is now available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2023-12-04\",\n      }",{"title":6971,"description":6972,"authors":6977,"heroImage":6973,"date":6978,"category":1049,"tags":6979},[907],"2023-12-04",[6980,1988,731],"careers",{"slug":6982,"featured":92,"template":736},"gitlabs-next-generation-container-registry-is-now-available","content:en-us:blog:gitlabs-next-generation-container-registry-is-now-available.yml","Gitlabs Next Generation Container Registry Is Now Available","en-us/blog/gitlabs-next-generation-container-registry-is-now-available.yml","en-us/blog/gitlabs-next-generation-container-registry-is-now-available",{"_path":6988,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":6989,"content":6995,"config":6999,"_id":7001,"_type":16,"title":7002,"_source":17,"_file":7003,"_stem":7004,"_extension":20},"/en-us/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab",{"title":6990,"description":6991,"ogTitle":6990,"ogDescription":6991,"noIndex":6,"ogImage":6992,"ogUrl":6993,"ogSiteName":995,"ogType":996,"canonicalUrls":6993,"schema":6994},"Enhanced migration from Bitbucket Server and Bitbucket Cloud to GitLab","Learn about performance improvements and more when migrating from Bitbucket Server and Cloud to GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668776/Blog/Hero%20Images/julia-craice-faCwTallTC0-unsplash.jpg","https://about.gitlab.com/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Enhanced migration from Bitbucket Server and Bitbucket Cloud to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Magdalena Frankiewicz\"}],\n        \"datePublished\": \"2023-11-30\",\n      }",{"title":6990,"description":6991,"authors":6996,"heroImage":6992,"date":6997,"category":577,"tags":6998},[1530],"2023-11-30",[543,1050,233],{"slug":7000,"featured":6,"template":736},"enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab","content:en-us:blog:enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab.yml","Enhanced Migration From Bitbucket Server And Bitbucket Cloud To Gitlab","en-us/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab.yml","en-us/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab",{"_path":7006,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7007,"content":7012,"config":7017,"_id":7019,"_type":16,"title":7020,"_source":17,"_file":7021,"_stem":7022,"_extension":20},"/en-us/blog/how-gitlabs-red-team-automates-c2-testing",{"title":7008,"description":7009,"ogTitle":7008,"ogDescription":7009,"noIndex":6,"ogImage":4049,"ogUrl":7010,"ogSiteName":995,"ogType":996,"canonicalUrls":7010,"schema":7011},"How GitLab's Red Team automates C2 testing ","Learn how to apply professional development practices to Red Teams using open source command and control tools.","https://about.gitlab.com/blog/how-gitlabs-red-team-automates-c2-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab's Red Team automates C2 testing \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Josh Feehs\"}],\n        \"datePublished\": \"2023-11-28\",\n      }",{"title":7008,"description":7009,"authors":7013,"heroImage":4049,"date":7015,"category":790,"tags":7016},[7014],"Josh Feehs","2023-11-28",[790,964,233,772],{"slug":7018,"featured":92,"template":736},"how-gitlabs-red-team-automates-c2-testing","content:en-us:blog:how-gitlabs-red-team-automates-c2-testing.yml","How Gitlabs Red Team Automates C2 Testing","en-us/blog/how-gitlabs-red-team-automates-c2-testing.yml","en-us/blog/how-gitlabs-red-team-automates-c2-testing",{"_path":7024,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7025,"content":7030,"config":7034,"_id":7036,"_type":16,"title":7037,"_source":17,"_file":7038,"_stem":7039,"_extension":20},"/en-us/blog/gitlab-at-aws-re-invent-2023",{"title":7026,"description":7027,"ogTitle":7026,"ogDescription":7027,"noIndex":6,"ogImage":6170,"ogUrl":7028,"ogSiteName":995,"ogType":996,"canonicalUrls":7028,"schema":7029},"GitLab at AWS re:Invent 2023","GitLab and AWS have streamlined development and security for DevSecOps teams. Learn how in lightning talks, sessions, live demos, and more.","https://about.gitlab.com/blog/gitlab-at-aws-re-invent-2023","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab at AWS re:Invent 2023\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2023-11-22\",\n      }",{"title":7026,"description":7027,"authors":7031,"heroImage":6170,"date":7032,"category":577,"tags":7033},[959],"2023-11-22",[771,574,543,284],{"slug":7035,"featured":92,"template":736},"gitlab-at-aws-re-invent-2023","content:en-us:blog:gitlab-at-aws-re-invent-2023.yml","Gitlab At Aws Re Invent 2023","en-us/blog/gitlab-at-aws-re-invent-2023.yml","en-us/blog/gitlab-at-aws-re-invent-2023",{"_path":7041,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7042,"content":7047,"config":7051,"_id":7053,"_type":16,"title":7054,"_source":17,"_file":7055,"_stem":7056,"_extension":20},"/en-us/blog/stealth-operations-the-evolution-of-gitlabs-red-team",{"title":7043,"description":7044,"ogTitle":7043,"ogDescription":7044,"noIndex":6,"ogImage":1873,"ogUrl":7045,"ogSiteName":995,"ogType":996,"canonicalUrls":7045,"schema":7046},"Stealth operations: The evolution of GitLab's Red Team","We discuss how GitLab's Red Team has matured over the years, evolving from opportunistic hacking to stealth adversary emulation.","https://about.gitlab.com/blog/stealth-operations-the-evolution-of-gitlabs-red-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Stealth operations: The evolution of GitLab's Red Team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Moberly\"}],\n        \"datePublished\": \"2023-11-20\",\n      }",{"title":7043,"description":7044,"authors":7048,"heroImage":1873,"date":7049,"category":790,"tags":7050},[2720],"2023-11-20",[790,1569],{"slug":7052,"featured":92,"template":736},"stealth-operations-the-evolution-of-gitlabs-red-team","content:en-us:blog:stealth-operations-the-evolution-of-gitlabs-red-team.yml","Stealth Operations The Evolution Of Gitlabs Red Team","en-us/blog/stealth-operations-the-evolution-of-gitlabs-red-team.yml","en-us/blog/stealth-operations-the-evolution-of-gitlabs-red-team",{"_path":7058,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7059,"content":7065,"config":7069,"_id":7071,"_type":16,"title":7072,"_source":17,"_file":7073,"_stem":7074,"_extension":20},"/en-us/blog/dunelm-strengthens-business-by-enhancing-its-devsecops-culture",{"title":7060,"description":7061,"ogTitle":7060,"ogDescription":7061,"noIndex":6,"ogImage":7062,"ogUrl":7063,"ogSiteName":995,"ogType":996,"canonicalUrls":7063,"schema":7064},"Dunelm strengthens business by enhancing its DevSecOps culture","Learn how a major UK retailer is using GitLab to ensure everyone in their DevSecOps teams can work together, increasing speed, security, and trust.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670332/Blog/Hero%20Images/groupcollaboration.jpg","https://about.gitlab.com/blog/dunelm-strengthens-business-by-enhancing-its-devsecops-culture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Dunelm strengthens business by enhancing its DevSecOps culture\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-11-16\",\n      }",{"title":7060,"description":7061,"authors":7066,"heroImage":7062,"date":7067,"category":3072,"tags":7068},[3999],"2023-11-16",[3075,574,543,790],{"slug":7070,"featured":6,"template":736},"dunelm-strengthens-business-by-enhancing-its-devsecops-culture","content:en-us:blog:dunelm-strengthens-business-by-enhancing-its-devsecops-culture.yml","Dunelm Strengthens Business By Enhancing Its Devsecops Culture","en-us/blog/dunelm-strengthens-business-by-enhancing-its-devsecops-culture.yml","en-us/blog/dunelm-strengthens-business-by-enhancing-its-devsecops-culture",{"_path":7076,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7077,"content":7083,"config":7087,"_id":7089,"_type":16,"title":7090,"_source":17,"_file":7091,"_stem":7092,"_extension":20},"/en-us/blog/gitlab-enterprise-agile-planning-add-on-for-all-roles",{"title":7078,"description":7079,"ogTitle":7078,"ogDescription":7079,"noIndex":6,"ogImage":7080,"ogUrl":7081,"ogSiteName":995,"ogType":996,"canonicalUrls":7081,"schema":7082},"Beyond Devs: GitLab Enterprise Agile Planning add-on for all roles","Our new add-on helps you bring non-technical users into the same DevSecOps platform where engineers build, test, secure, and deploy code.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665084/Blog/Hero%20Images/agile.png","https://about.gitlab.com/blog/gitlab-enterprise-agile-planning-add-on-for-all-roles","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Beyond Devs: GitLab Enterprise Agile Planning add-on for all roles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Justin Farris\"},{\"@type\":\"Person\",\"name\":\"Melissa Ushakov\"}],\n        \"datePublished\": \"2023-11-16\",\n      }",{"title":7078,"description":7079,"authors":7084,"heroImage":7080,"date":7067,"category":726,"tags":7086},[7085,5252],"Justin Farris",[729,574,543],{"slug":7088,"featured":92,"template":736},"gitlab-enterprise-agile-planning-add-on-for-all-roles","content:en-us:blog:gitlab-enterprise-agile-planning-add-on-for-all-roles.yml","Gitlab Enterprise Agile Planning Add On For All Roles","en-us/blog/gitlab-enterprise-agile-planning-add-on-for-all-roles.yml","en-us/blog/gitlab-enterprise-agile-planning-add-on-for-all-roles",{"_path":7094,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7095,"content":7100,"config":7104,"_id":7106,"_type":16,"title":7107,"_source":17,"_file":7108,"_stem":7109,"_extension":20},"/en-us/blog/tips-to-configure-browser-based-dast-scans",{"title":7096,"description":7097,"ogTitle":7096,"ogDescription":7097,"noIndex":6,"ogImage":1873,"ogUrl":7098,"ogSiteName":995,"ogType":996,"canonicalUrls":7098,"schema":7099},"Tips to configure browser-based DAST scans","Learn how to use the browser-based analyzer with common dynamic application security testing settings, based on web application attributes, to ensure successful scans.","https://about.gitlab.com/blog/tips-to-configure-browser-based-dast-scans","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tips to configure browser-based DAST scans\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julie Byrne\"},{\"@type\":\"Person\",\"name\":\"Jerez Solis\"}],\n        \"datePublished\": \"2023-11-14\",\n      }",{"title":7096,"description":7097,"authors":7101,"heroImage":1873,"date":7102,"category":790,"tags":7103},[5553,2998],"2023-11-14",[790,964,964,772],{"slug":7105,"featured":6,"template":736},"tips-to-configure-browser-based-dast-scans","content:en-us:blog:tips-to-configure-browser-based-dast-scans.yml","Tips To Configure Browser Based Dast Scans","en-us/blog/tips-to-configure-browser-based-dast-scans.yml","en-us/blog/tips-to-configure-browser-based-dast-scans",{"_path":7111,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7112,"content":7118,"config":7121,"_id":7123,"_type":16,"title":7124,"_source":17,"_file":7125,"_stem":7126,"_extension":20},"/en-us/blog/why-hackerone-gets-love-letters-from-developers",{"title":7113,"description":7114,"ogTitle":7113,"ogDescription":7114,"noIndex":6,"ogImage":7115,"ogUrl":7116,"ogSiteName":995,"ogType":996,"canonicalUrls":7116,"schema":7117},"Why HackerOne gets love letters from its developers","Learn how HackerOne is making developers more productive while ensuring that security is built into their software development processes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662439/Blog/Hero%20Images/codewithheart.png","https://about.gitlab.com/blog/why-hackerone-gets-love-letters-from-developers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why HackerOne gets love letters from its developers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-11-14\",\n      }",{"title":7113,"description":7114,"authors":7119,"heroImage":7115,"date":7102,"category":3072,"tags":7120},[3999],[574,543,728,3075],{"slug":7122,"featured":92,"template":736},"why-hackerone-gets-love-letters-from-developers","content:en-us:blog:why-hackerone-gets-love-letters-from-developers.yml","Why Hackerone Gets Love Letters From Developers","en-us/blog/why-hackerone-gets-love-letters-from-developers.yml","en-us/blog/why-hackerone-gets-love-letters-from-developers",{"_path":7128,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7129,"content":7134,"config":7138,"_id":7140,"_type":16,"title":7141,"_source":17,"_file":7142,"_stem":7143,"_extension":20},"/en-us/blog/gitlab-duo-chat-beta",{"title":7130,"description":7131,"ogTitle":7130,"ogDescription":7131,"noIndex":6,"ogImage":1809,"ogUrl":7132,"ogSiteName":995,"ogType":996,"canonicalUrls":7132,"schema":7133},"Say hello to GitLab Duo Chat: A new level of AI-assisted productivity","Learn how GitLab Duo Chat, releasing Nov. 16 in Beta, can help elevate your coding skills, streamline onboarding, and supercharge team efficiency.","https://about.gitlab.com/blog/gitlab-duo-chat-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Say hello to GitLab Duo Chat: A new level of AI-assisted productivity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Torsten Linz\"}],\n        \"datePublished\": \"2023-11-09\",\n      }",{"title":7130,"description":7131,"authors":7135,"heroImage":1809,"date":7136,"category":769,"tags":7137},[2058],"2023-11-09",[728,574,1049],{"slug":7139,"featured":6,"template":736},"gitlab-duo-chat-beta","content:en-us:blog:gitlab-duo-chat-beta.yml","Gitlab Duo Chat Beta","en-us/blog/gitlab-duo-chat-beta.yml","en-us/blog/gitlab-duo-chat-beta",{"_path":7145,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7146,"content":7151,"config":7154,"_id":7156,"_type":16,"title":7157,"_source":17,"_file":7158,"_stem":7159,"_extension":20},"/en-us/blog/learning-python-with-a-little-help-from-ai-code-suggestions",{"title":7147,"description":7148,"ogTitle":7147,"ogDescription":7148,"noIndex":6,"ogImage":3048,"ogUrl":7149,"ogSiteName":995,"ogType":996,"canonicalUrls":7149,"schema":7150},"Learning Python with a little help from AI","Use this guided tutorial, along with GitLab Duo Code Suggestions, to learn a new programming language.","https://about.gitlab.com/blog/learning-python-with-a-little-help-from-ai-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learning Python with a little help from AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-11-09\",\n      }",{"title":7147,"description":7148,"authors":7152,"heroImage":3048,"date":7136,"category":769,"tags":7153},[1424],[543,772,1335,728],{"slug":7155,"featured":6,"template":736},"learning-python-with-a-little-help-from-ai-code-suggestions","content:en-us:blog:learning-python-with-a-little-help-from-ai-code-suggestions.yml","Learning Python With A Little Help From Ai Code Suggestions","en-us/blog/learning-python-with-a-little-help-from-ai-code-suggestions.yml","en-us/blog/learning-python-with-a-little-help-from-ai-code-suggestions",{"_path":7161,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7162,"content":7168,"config":7174,"_id":7176,"_type":16,"title":7177,"_source":17,"_file":7178,"_stem":7179,"_extension":20},"/en-us/blog/how-we-user-research-transformed-gitlab-runner-fleet-dashboard-visibility-and-metrics",{"title":7163,"description":7164,"ogTitle":7163,"ogDescription":7164,"noIndex":6,"ogImage":7165,"ogUrl":7166,"ogSiteName":995,"ogType":996,"canonicalUrls":7166,"schema":7167},"GitLab Runner Fleet dashboard improved through user research","Learn how GitLab user research drives the product development process when enabling more runner fleet features.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666543/Blog/Hero%20Images/lightvisibility.png","https://about.gitlab.com/blog/how-we-user-research-transformed-gitlab-runner-fleet-dashboard-visibility-and-metrics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How user research transformed GitLab Runner Fleet dashboard visibility and metrics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gina Doyle\"}],\n        \"datePublished\": \"2023-11-07\",\n      }",{"title":7169,"description":7164,"authors":7170,"heroImage":7165,"date":7172,"category":858,"tags":7173},"How user research transformed GitLab Runner Fleet dashboard visibility and metrics",[7171],"Gina Doyle","2023-11-07",[110,2025,2702],{"slug":7175,"featured":6,"template":736},"how-we-user-research-transformed-gitlab-runner-fleet-dashboard-visibility-and-metrics","content:en-us:blog:how-we-user-research-transformed-gitlab-runner-fleet-dashboard-visibility-and-metrics.yml","How We User Research Transformed Gitlab Runner Fleet Dashboard Visibility And Metrics","en-us/blog/how-we-user-research-transformed-gitlab-runner-fleet-dashboard-visibility-and-metrics.yml","en-us/blog/how-we-user-research-transformed-gitlab-runner-fleet-dashboard-visibility-and-metrics",{"_path":7181,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7182,"content":7188,"config":7192,"_id":7194,"_type":16,"title":7195,"_source":17,"_file":7196,"_stem":7197,"_extension":20},"/en-us/blog/rearchitecting-git-object-database-mainentance-for-scale",{"title":7183,"description":7184,"ogTitle":7183,"ogDescription":7184,"noIndex":6,"ogImage":7185,"ogUrl":7186,"ogSiteName":995,"ogType":996,"canonicalUrls":7186,"schema":7187},"Why and how we rearchitected Git object database maintenance for scale","Go in-depth into improvements to maintenance of the Git object database for reduced overhead and increased efficiency.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664413/Blog/Hero%20Images/speedlights.png","https://about.gitlab.com/blog/rearchitecting-git-object-database-mainentance-for-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why and how we rearchitected Git object database maintenance for scale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Steinhardt\"}],\n        \"datePublished\": \"2023-11-02\",\n      }",{"title":7183,"description":7184,"authors":7189,"heroImage":7185,"date":7190,"category":858,"tags":7191},[2390],"2023-11-02",[1195,6376,1988,1265],{"slug":7193,"featured":6,"template":736},"rearchitecting-git-object-database-mainentance-for-scale","content:en-us:blog:rearchitecting-git-object-database-mainentance-for-scale.yml","Rearchitecting Git Object Database Mainentance For Scale","en-us/blog/rearchitecting-git-object-database-mainentance-for-scale.yml","en-us/blog/rearchitecting-git-object-database-mainentance-for-scale",{"_path":7199,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7200,"content":7205,"config":7209,"_id":7211,"_type":16,"title":7212,"_source":17,"_file":7213,"_stem":7214,"_extension":20},"/en-us/blog/jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment",{"title":7201,"description":7202,"ogTitle":7201,"ogDescription":7202,"noIndex":6,"ogImage":1164,"ogUrl":7203,"ogSiteName":995,"ogType":996,"canonicalUrls":7203,"schema":7204},"Jenkins to GitLab: The ultimate guide to modernizing your CI/CD environment","Learn how to migrate from Jenkins to the integrated CI/CD of the GitLab DevSecOps Platform to deliver high-quality software rapidly.","https://about.gitlab.com/blog/jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Jenkins to GitLab: The ultimate guide to modernizing your CI/CD environment\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2023-11-01\",\n      }",{"title":7201,"description":7202,"authors":7206,"heroImage":1164,"date":7207,"category":577,"tags":7208},[1016],"2023-11-01",[772,279,728,233,574,564],{"slug":7210,"featured":6,"template":736},"jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment","content:en-us:blog:jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment.yml","Jenkins Gitlab Ultimate Guide To Modernizing Cicd Environment","en-us/blog/jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment.yml","en-us/blog/jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment",{"_path":7216,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7217,"content":7222,"config":7226,"_id":7228,"_type":16,"title":7229,"_source":17,"_file":7230,"_stem":7231,"_extension":20},"/en-us/blog/tutorial-automated-release-and-release-notes-with-gitlab",{"title":7218,"description":7219,"ogTitle":7218,"ogDescription":7219,"noIndex":6,"ogImage":1759,"ogUrl":7220,"ogSiteName":995,"ogType":996,"canonicalUrls":7220,"schema":7221},"Tutorial: Automate releases and release notes with GitLab","With the GitLab Changelog API, you can automate the generation of release artifacts, release notes, and a comprehensive changelog detailing all user-centric software modifications.","https://about.gitlab.com/blog/tutorial-automated-release-and-release-notes-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Automate releases and release notes with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ben Ridley\"}],\n        \"datePublished\": \"2023-11-01\",\n      }",{"title":7218,"description":7219,"authors":7223,"heroImage":1759,"date":7207,"category":731,"tags":7225,"updatedDate":1968},[7224],"Ben Ridley",[772,2097,110,564,574,1195],{"slug":7227,"featured":6,"template":736},"tutorial-automated-release-and-release-notes-with-gitlab","content:en-us:blog:tutorial-automated-release-and-release-notes-with-gitlab.yml","Tutorial Automated Release And Release Notes With Gitlab","en-us/blog/tutorial-automated-release-and-release-notes-with-gitlab.yml","en-us/blog/tutorial-automated-release-and-release-notes-with-gitlab",{"_path":7233,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7234,"content":7239,"config":7244,"_id":7246,"_type":16,"title":7247,"_source":17,"_file":7248,"_stem":7249,"_extension":20},"/en-us/blog/gitlab-ai-cicd-customization-toolkit",{"title":7235,"description":7236,"ogTitle":7235,"ogDescription":7236,"noIndex":6,"ogImage":6567,"ogUrl":7237,"ogSiteName":995,"ogType":996,"canonicalUrls":7237,"schema":7238},"GitLab AI, CI/CD and customization for secure scaled growth","Find out how the latest developments for the GitLab AI-powered DevSecOps Platform help organizations scale to enterprise levels.","https://about.gitlab.com/blog/gitlab-ai-cicd-customization-toolkit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Drive secure growth at scale: Your GitLab AI, CI/CD, and customization toolkit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Flouton\"}],\n        \"datePublished\": \"2023-10-31\",\n      }",{"title":7240,"description":7236,"authors":7241,"heroImage":6567,"date":7242,"category":769,"tags":7243},"Drive secure growth at scale: Your GitLab AI, CI/CD, and customization toolkit",[1857],"2023-10-31",[731,110,728,730],{"slug":7245,"featured":6,"template":736},"gitlab-ai-cicd-customization-toolkit","content:en-us:blog:gitlab-ai-cicd-customization-toolkit.yml","Gitlab Ai Cicd Customization Toolkit","en-us/blog/gitlab-ai-cicd-customization-toolkit.yml","en-us/blog/gitlab-ai-cicd-customization-toolkit",{"_path":7251,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7252,"content":7257,"config":7261,"_id":7263,"_type":16,"title":7264,"_source":17,"_file":7265,"_stem":7266,"_extension":20},"/en-us/blog/migrating-from-bamboo-to-gitlab-cicd",{"title":7253,"description":7254,"ogTitle":7253,"ogDescription":7254,"noIndex":6,"ogImage":6920,"ogUrl":7255,"ogSiteName":995,"ogType":996,"canonicalUrls":7255,"schema":7256},"How to migrate from Bamboo to GitLab CI/CD","With the fast approaching EOL of Atlassian Server products, including Bamboo, this blog post explains how users of Bamboo can migrate to GitLab CI/CD.","https://about.gitlab.com/blog/migrating-from-bamboo-to-gitlab-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to migrate from Bamboo to GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2023-10-26\",\n      }",{"title":7253,"description":7254,"authors":7258,"heroImage":6920,"date":7259,"category":577,"tags":7260},[3181],"2023-10-26",[574,543],{"slug":7262,"featured":6,"template":736},"migrating-from-bamboo-to-gitlab-cicd","content:en-us:blog:migrating-from-bamboo-to-gitlab-cicd.yml","Migrating From Bamboo To Gitlab Cicd","en-us/blog/migrating-from-bamboo-to-gitlab-cicd.yml","en-us/blog/migrating-from-bamboo-to-gitlab-cicd",{"_path":7268,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7269,"content":7274,"config":7278,"_id":7280,"_type":16,"title":7281,"_source":17,"_file":7282,"_stem":7283,"_extension":20},"/en-us/blog/access-token-lifetime-limits",{"title":7270,"description":7271,"ogTitle":7270,"ogDescription":7271,"noIndex":6,"ogImage":5461,"ogUrl":7272,"ogSiteName":995,"ogType":996,"canonicalUrls":7272,"schema":7273},"Why GitLab access tokens now have lifetime limits","Pre-existing and new personal, group, or project access tokens now have enforced lifetime limits. Find out why and learn how to minimize disruption.","https://about.gitlab.com/blog/access-token-lifetime-limits","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab access tokens now have lifetime limits\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hannah Sutor\"}],\n        \"datePublished\": \"2023-10-25\",\n      }",{"title":7270,"description":7271,"authors":7275,"heroImage":5461,"date":7276,"category":858,"tags":7277},[6355],"2023-10-25",[731,790],{"slug":7279,"featured":6,"template":736},"access-token-lifetime-limits","content:en-us:blog:access-token-lifetime-limits.yml","Access Token Lifetime Limits","en-us/blog/access-token-lifetime-limits.yml","en-us/blog/access-token-lifetime-limits",{"_path":7285,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7286,"content":7291,"config":7295,"_id":7297,"_type":16,"title":7298,"_source":17,"_file":7299,"_stem":7300,"_extension":20},"/en-us/blog/tips-for-a-successful-jira-to-gitlab-migration",{"title":7287,"description":7288,"ogTitle":7287,"ogDescription":7288,"noIndex":6,"ogImage":7080,"ogUrl":7289,"ogSiteName":995,"ogType":996,"canonicalUrls":7289,"schema":7290},"Tips for a successful Jira to GitLab migration","If you are considering a migration to GitLab for Agile planning, this blog is for you! Learn some tips to help in your transition.","https://about.gitlab.com/blog/tips-for-a-successful-jira-to-gitlab-migration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tips for a successful Jira to GitLab migration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Ushakov\"}],\n        \"datePublished\": \"2023-10-24\",\n      }",{"title":7287,"description":7288,"authors":7292,"heroImage":7080,"date":7293,"category":726,"tags":7294},[5252],"2023-10-24",[729,543],{"slug":7296,"featured":6,"template":736},"tips-for-a-successful-jira-to-gitlab-migration","content:en-us:blog:tips-for-a-successful-jira-to-gitlab-migration.yml","Tips For A Successful Jira To Gitlab Migration","en-us/blog/tips-for-a-successful-jira-to-gitlab-migration.yml","en-us/blog/tips-for-a-successful-jira-to-gitlab-migration",{"_path":7302,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7303,"content":7309,"config":7313,"_id":7315,"_type":16,"title":7316,"_source":17,"_file":7317,"_stem":7318,"_extension":20},"/en-us/blog/lendlease-driving-change-with-gitlab",{"title":7304,"description":7305,"ogTitle":7304,"ogDescription":7305,"noIndex":6,"ogImage":7306,"ogUrl":7307,"ogSiteName":995,"ogType":996,"canonicalUrls":7307,"schema":7308},"How global real estate company Lendlease is driving change with GitLab","Learn how Lendlease is using GitLab to improve visibility, foster collaboration, and empower everyone to be responsible for security.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670317/Blog/Hero%20Images/blog-banner-blue-neon.png","https://about.gitlab.com/blog/lendlease-driving-change-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How global real estate company Lendlease is driving change with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-10-23\",\n      }",{"title":7304,"description":7305,"authors":7310,"heroImage":7306,"date":7311,"category":3072,"tags":7312},[3999],"2023-10-23",[3075,2815,790],{"slug":7314,"featured":6,"template":736},"lendlease-driving-change-with-gitlab","content:en-us:blog:lendlease-driving-change-with-gitlab.yml","Lendlease Driving Change With Gitlab","en-us/blog/lendlease-driving-change-with-gitlab.yml","en-us/blog/lendlease-driving-change-with-gitlab",{"_path":7320,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7321,"content":7327,"config":7332,"_id":7334,"_type":16,"title":7335,"_source":17,"_file":7336,"_stem":7337,"_extension":20},"/en-us/blog/how-eclipse-foundation-champions-open-source-with-gitlab",{"title":7322,"description":7323,"ogTitle":7322,"ogDescription":7323,"noIndex":6,"ogImage":7324,"ogUrl":7325,"ogSiteName":995,"ogType":996,"canonicalUrls":7325,"schema":7326},"How the Eclipse Foundation champions open source with GitLab","In this interview, learn how adopting GitLab helps the Eclipse Foundation be a more effective champion for open source.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679184/Blog/Hero%20Images/eclipsefoundationcover.png","https://about.gitlab.com/blog/how-eclipse-foundation-champions-open-source-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the Eclipse Foundation champions open source with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-10-19\",\n      }",{"title":7322,"description":7323,"authors":7328,"heroImage":7324,"date":7330,"category":1388,"tags":7331},[7329],"Bryan Behrenshausen","2023-10-19",[1265,269,730],{"slug":7333,"featured":6,"template":736},"how-eclipse-foundation-champions-open-source-with-gitlab","content:en-us:blog:how-eclipse-foundation-champions-open-source-with-gitlab.yml","How Eclipse Foundation Champions Open Source With Gitlab","en-us/blog/how-eclipse-foundation-champions-open-source-with-gitlab.yml","en-us/blog/how-eclipse-foundation-champions-open-source-with-gitlab",{"_path":7339,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7340,"content":7345,"config":7349,"_id":7351,"_type":16,"title":7352,"_source":17,"_file":7353,"_stem":7354,"_extension":20},"/en-us/blog/five-reasons-to-simplify-agile-planning-tool-configuration-gitlab",{"title":7341,"description":7342,"ogTitle":7341,"ogDescription":7342,"noIndex":6,"ogImage":7080,"ogUrl":7343,"ogSiteName":995,"ogType":996,"canonicalUrls":7343,"schema":7344},"5 reasons to simplify your agile planning tool configuration with GitLab","Get more from your agile planning with a platform that supports automation, protects the user experience, and reduces time spent on tool configurations.","https://about.gitlab.com/blog/five-reasons-to-simplify-agile-planning-tool-configuration-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 reasons to simplify your agile planning tool configuration with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Ushakov\"}],\n        \"datePublished\": \"2023-10-17\",\n      }",{"title":7341,"description":7342,"authors":7346,"heroImage":7080,"date":7347,"category":726,"tags":7348},[5252],"2023-10-17",[729,543,574,731],{"slug":7350,"featured":6,"template":736},"five-reasons-to-simplify-agile-planning-tool-configuration-gitlab","content:en-us:blog:five-reasons-to-simplify-agile-planning-tool-configuration-gitlab.yml","Five Reasons To Simplify Agile Planning Tool Configuration Gitlab","en-us/blog/five-reasons-to-simplify-agile-planning-tool-configuration-gitlab.yml","en-us/blog/five-reasons-to-simplify-agile-planning-tool-configuration-gitlab",{"_path":7356,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7357,"content":7363,"config":7367,"_id":7369,"_type":16,"title":7370,"_source":17,"_file":7371,"_stem":7372,"_extension":20},"/en-us/blog/contributions-to-git-2-42-release",{"title":7358,"description":7359,"ogTitle":7358,"ogDescription":7359,"noIndex":6,"ogImage":7360,"ogUrl":7361,"ogSiteName":995,"ogType":996,"canonicalUrls":7361,"schema":7362},"Git 2.42 release: Here are four of our contributions in detail","Find out how GitLab's Git team helped improve Git 2.42.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667792/Blog/Hero%20Images/git-241.jpg","https://about.gitlab.com/blog/contributions-to-git-2-42-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git 2.42 release: Here are four of our contributions in detail\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Couder\"}],\n        \"datePublished\": \"2023-10-12\",\n      }",{"title":7358,"description":7359,"authors":7364,"heroImage":7360,"date":7365,"category":731,"tags":7366},[3418],"2023-10-12",[1195,1049,1265,269],{"slug":7368,"featured":6,"template":736},"contributions-to-git-2-42-release","content:en-us:blog:contributions-to-git-2-42-release.yml","Contributions To Git 2 42 Release","en-us/blog/contributions-to-git-2-42-release.yml","en-us/blog/contributions-to-git-2-42-release",{"_path":7374,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7375,"content":7381,"config":7385,"_id":7387,"_type":16,"title":7388,"_source":17,"_file":7389,"_stem":7390,"_extension":20},"/en-us/blog/gitlab-response-to-cve-2023-38545",{"title":7376,"description":7377,"ogTitle":7376,"ogDescription":7377,"noIndex":6,"ogImage":7378,"ogUrl":7379,"ogSiteName":995,"ogType":996,"canonicalUrls":7379,"schema":7380},"GitLab's response to curl and libcurl security vulnerability","Learn about CVE-2023-38545, which leverages a heap buffer overflow through the SOCKS5 protocol, and what it means for GitLab customers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672878/Blog/Hero%20Images/securityscreen.jpg","https://about.gitlab.com/blog/gitlab-response-to-cve-2023-38545","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s response to a high severity vulnerability impacting curl and libcurl\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2023-10-12\",\n      }",{"title":7382,"description":7377,"authors":7383,"heroImage":7378,"date":7365,"category":790,"tags":7384},"GitLab’s response to a high severity vulnerability impacting curl and libcurl",[1949],[790,1049],{"slug":7386,"featured":6,"template":736},"gitlab-response-to-cve-2023-38545","content:en-us:blog:gitlab-response-to-cve-2023-38545.yml","Gitlab Response To Cve 2023 38545","en-us/blog/gitlab-response-to-cve-2023-38545.yml","en-us/blog/gitlab-response-to-cve-2023-38545",{"_path":7392,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7393,"content":7398,"config":7401,"_id":7403,"_type":16,"title":7404,"_source":17,"_file":7405,"_stem":7406,"_extension":20},"/en-us/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions",{"title":7394,"description":7395,"ogTitle":7394,"ogDescription":7395,"noIndex":6,"ogImage":7115,"ogUrl":7396,"ogSiteName":995,"ogType":996,"canonicalUrls":7396,"schema":7397},"Learn advanced Rust programming with a little help from AI","Use this guided tutorial, along with AI-powered GitLab Duo Code Suggestions, to continue learning advanced Rust programming.","https://about.gitlab.com/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learn advanced Rust programming with a little help from AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-10-12\",\n      }",{"title":7394,"description":7395,"authors":7399,"heroImage":7115,"date":7365,"category":769,"tags":7400},[1424],[574,6980,772,1335,728],{"slug":7402,"featured":6,"template":736},"learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions","content:en-us:blog:learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions.yml","Learn Advanced Rust Programming With A Little Help From Ai Code Suggestions","en-us/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions.yml","en-us/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions",{"_path":7408,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7409,"content":7414,"config":7419,"_id":7421,"_type":16,"title":7422,"_source":17,"_file":7423,"_stem":7424,"_extension":20},"/en-us/blog/dast-release-first-gitlab-active-check",{"title":7410,"description":7411,"ogTitle":7410,"ogDescription":7411,"noIndex":6,"ogImage":3104,"ogUrl":7412,"ogSiteName":995,"ogType":996,"canonicalUrls":7412,"schema":7413},"Introducing GitLab browser-based active checks in DAST","As of GitLab 16.4, or DAST 4.0.9, browser-based DAST active scans will search for path traversal vulnerabilities using the GitLab check 22.1 instead of the ZAP alert 6.","https://about.gitlab.com/blog/dast-release-first-gitlab-active-check","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab browser-based active checks in DAST\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cameron Swords\"}],\n        \"datePublished\": \"2023-10-10\",\n      }",{"title":7410,"description":7411,"authors":7415,"heroImage":3104,"date":7417,"category":790,"tags":7418},[7416],"Cameron Swords","2023-10-10",[574,731,964,730,790],{"slug":7420,"featured":6,"template":736},"dast-release-first-gitlab-active-check","content:en-us:blog:dast-release-first-gitlab-active-check.yml","Dast Release First Gitlab Active Check","en-us/blog/dast-release-first-gitlab-active-check.yml","en-us/blog/dast-release-first-gitlab-active-check",{"_path":7426,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7427,"content":7432,"config":7437,"_id":7439,"_type":16,"title":7440,"_source":17,"_file":7441,"_stem":7442,"_extension":20},"/en-us/blog/behind-the-scenes-of-gitlab-korean-translation",{"title":7428,"description":7429,"ogTitle":7428,"ogDescription":7429,"noIndex":6,"ogImage":6170,"ogUrl":7430,"ogSiteName":995,"ogType":996,"canonicalUrls":7430,"schema":7431},"Behind the scenes of GitLab's Korean translation","How a student project helped maintain linguistic consistency and deliver a unified user experience for the Korean GitLab community.","https://about.gitlab.com/blog/behind-the-scenes-of-gitlab-korean-translation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Behind the scenes of GitLab's Korean translation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Inchul Yoo, Sunjung Park\"}],\n        \"datePublished\": \"2023-10-05\",\n      }",{"title":7428,"description":7429,"authors":7433,"heroImage":6170,"date":7435,"category":1388,"tags":7436},[7434],"Inchul Yoo, Sunjung Park","2023-10-05",[1265,269,730],{"slug":7438,"featured":6,"template":736},"behind-the-scenes-of-gitlab-korean-translation","content:en-us:blog:behind-the-scenes-of-gitlab-korean-translation.yml","Behind The Scenes Of Gitlab Korean Translation","en-us/blog/behind-the-scenes-of-gitlab-korean-translation.yml","en-us/blog/behind-the-scenes-of-gitlab-korean-translation",{"_path":7444,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7445,"content":7450,"config":7453,"_id":7455,"_type":16,"title":7456,"_source":17,"_file":7457,"_stem":7458,"_extension":20},"/en-us/blog/there-is-no-mlops-without-devsecops",{"title":7446,"description":7447,"ogTitle":7446,"ogDescription":7447,"noIndex":6,"ogImage":5956,"ogUrl":7448,"ogSiteName":995,"ogType":996,"canonicalUrls":7448,"schema":7449},"Building GitLab with GitLab: Why there is no MLOps without DevSecOps","Follow along as data scientists adopt DevSecOps practices and enjoy the benefits of automation, repeatable workflows, standardization, and automatic provisioning of infrastructure.","https://about.gitlab.com/blog/there-is-no-mlops-without-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building GitLab with GitLab: Why there is no MLOps without DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2023-10-05\",\n      }",{"title":7446,"description":7447,"authors":7451,"heroImage":5956,"date":7435,"category":769,"tags":7452},[855],[772,574,543,728],{"slug":7454,"featured":6,"template":736},"there-is-no-mlops-without-devsecops","content:en-us:blog:there-is-no-mlops-without-devsecops.yml","There Is No Mlops Without Devsecops","en-us/blog/there-is-no-mlops-without-devsecops.yml","en-us/blog/there-is-no-mlops-without-devsecops",{"_path":7460,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7461,"content":7467,"config":7471,"_id":7473,"_type":16,"title":7474,"_source":17,"_file":7475,"_stem":7476,"_extension":20},"/en-us/blog/one-billion-pipelines-cicd",{"title":7462,"description":7463,"ogTitle":7462,"ogDescription":7463,"noIndex":6,"ogImage":7464,"ogUrl":7465,"ogSiteName":995,"ogType":996,"canonicalUrls":7465,"schema":7466},"Beyond source code management: 1 billion pipelines of CI/CD innovation","GitLab recently reached a major CI/CD milestone - find out what this means for customer innovation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668799/Blog/Hero%20Images/securitylifecycle.png","https://about.gitlab.com/blog/one-billion-pipelines-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Beyond source code management: 1 billion pipelines of CI/CD innovation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jackie Porter\"}],\n        \"datePublished\": \"2023-10-04\",\n      }",{"title":7462,"description":7463,"authors":7468,"heroImage":7464,"date":7469,"category":1049,"tags":7470},[3324],"2023-10-04",[110,1049,3075],{"slug":7472,"featured":6,"template":736},"one-billion-pipelines-cicd","content:en-us:blog:one-billion-pipelines-cicd.yml","One Billion Pipelines Cicd","en-us/blog/one-billion-pipelines-cicd.yml","en-us/blog/one-billion-pipelines-cicd",{"_path":7478,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7479,"content":7485,"config":7488,"_id":7490,"_type":16,"title":7491,"_source":17,"_file":7492,"_stem":7493,"_extension":20},"/en-us/blog/updating-the-os-version-of-saas-runners-on-linux",{"title":7480,"description":7481,"ogTitle":7480,"ogDescription":7481,"noIndex":6,"ogImage":7482,"ogUrl":7483,"ogSiteName":995,"ogType":996,"canonicalUrls":7483,"schema":7484},"Upgrading the operating system version of our SaaS runners on Linux","With GitLab 17.0, we are updating the operating system version of our SaaS runners on Linux. Learn what will change and how to mitigate potential incompatibilities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669863/Blog/Hero%20Images/security-pipelines.jpg","https://about.gitlab.com/blog/updating-the-os-version-of-saas-runners-on-linux","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Upgrading the operating system version of our SaaS runners on Linux\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Engel\"}],\n        \"datePublished\": \"2023-10-04\",\n      }",{"title":7480,"description":7481,"authors":7486,"heroImage":7482,"date":7469,"category":1049,"tags":7487},[3216],[110,731,1049],{"slug":7489,"featured":6,"template":736},"updating-the-os-version-of-saas-runners-on-linux","content:en-us:blog:updating-the-os-version-of-saas-runners-on-linux.yml","Updating The Os Version Of Saas Runners On Linux","en-us/blog/updating-the-os-version-of-saas-runners-on-linux.yml","en-us/blog/updating-the-os-version-of-saas-runners-on-linux",{"_path":7495,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7496,"content":7502,"config":7506,"_id":7508,"_type":16,"title":7509,"_source":17,"_file":7510,"_stem":7511,"_extension":20},"/en-us/blog/ask-a-hacker",{"title":7497,"description":7498,"ogTitle":7497,"ogDescription":7498,"noIndex":6,"ogImage":7499,"ogUrl":7500,"ogSiteName":995,"ogType":996,"canonicalUrls":7500,"schema":7501},"Ask a hacker - 0xn3va","Vladislav Nechakhin or @0xn3va, one of our top 10 hacker contributors, joined us for an AMA and details his approach and strategy for bug bounty hunting.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683087/Blog/Hero%20Images/cover-fotis-fotopoulos.png","https://about.gitlab.com/blog/ask-a-hacker","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ask a hacker - 0xn3va\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ottilia Westerlund\"}],\n        \"datePublished\": \"2023-10-02\",\n      }",{"title":7497,"description":7498,"authors":7503,"heroImage":7499,"date":7504,"category":790,"tags":7505},[3487],"2023-10-02",[790,2483],{"slug":7507,"featured":6,"template":736},"ask-a-hacker","content:en-us:blog:ask-a-hacker.yml","Ask A Hacker","en-us/blog/ask-a-hacker.yml","en-us/blog/ask-a-hacker",{"_path":7513,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7514,"content":7520,"config":7524,"_id":7526,"_type":16,"title":7527,"_source":17,"_file":7528,"_stem":7529,"_extension":20},"/en-us/blog/gitlab-partner-of-year-emea-apac-award-winners",{"title":7515,"description":7516,"ogTitle":7515,"ogDescription":7516,"noIndex":6,"ogImage":7517,"ogUrl":7518,"ogSiteName":995,"ogType":996,"canonicalUrls":7518,"schema":7519},"Meet the 2023 GitLab Partner of the Year award winners for EMEA and APAC","We recognized our channel, technology, and cloud partners in EMEA and APAC for their collaboration and contributions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679312/Blog/Hero%20Images/awardstars.jpg","https://about.gitlab.com/blog/gitlab-partner-of-year-emea-apac-award-winners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet the 2023 GitLab Partner of the Year award winners for EMEA and APAC\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patty Cheung\"}],\n        \"datePublished\": \"2023-10-02\",\n      }",{"title":7515,"description":7516,"authors":7521,"heroImage":7517,"date":7504,"category":1049,"tags":7523},[7522],"Patty Cheung",[284,1049,2815],{"slug":7525,"featured":6,"template":736},"gitlab-partner-of-year-emea-apac-award-winners","content:en-us:blog:gitlab-partner-of-year-emea-apac-award-winners.yml","Gitlab Partner Of Year Emea Apac Award Winners","en-us/blog/gitlab-partner-of-year-emea-apac-award-winners.yml","en-us/blog/gitlab-partner-of-year-emea-apac-award-winners",{"_path":7531,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7532,"content":7537,"config":7541,"_id":7543,"_type":16,"title":7544,"_source":17,"_file":7545,"_stem":7546,"_extension":20},"/en-us/blog/unmasking-password-attacks-at-gitlab",{"title":7533,"description":7534,"ogTitle":7533,"ogDescription":7534,"noIndex":6,"ogImage":5639,"ogUrl":7535,"ogSiteName":995,"ogType":996,"canonicalUrls":7535,"schema":7536},"Unmasking password attacks at GitLab","Our security team has identified an increased volume of password attacks against GitLab.com on the OAuth API endpoint since September 22, 2023. Learn more.","https://about.gitlab.com/blog/unmasking-password-attacks-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unmasking password attacks at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Security Team\"}],\n        \"datePublished\": \"2023-09-28\",\n      }",{"title":7533,"description":7534,"authors":7538,"heroImage":5639,"date":7539,"category":790,"tags":7540},[2535],"2023-09-28",[790],{"slug":7542,"featured":6,"template":736},"unmasking-password-attacks-at-gitlab","content:en-us:blog:unmasking-password-attacks-at-gitlab.yml","Unmasking Password Attacks At Gitlab","en-us/blog/unmasking-password-attacks-at-gitlab.yml","en-us/blog/unmasking-password-attacks-at-gitlab",{"_path":7548,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7549,"content":7555,"config":7560,"_id":7562,"_type":16,"title":7563,"_source":17,"_file":7564,"_stem":7565,"_extension":20},"/en-us/blog/microcks-and-gitlab-part-one",{"title":7550,"description":7551,"ogTitle":7550,"ogDescription":7551,"noIndex":6,"ogImage":7552,"ogUrl":7553,"ogSiteName":995,"ogType":996,"canonicalUrls":7553,"schema":7554},"Speed up API and microservices delivery with Microcks and GitLab - Part 1","Learn how to configure Microcks for GitLab and what the use cases are for this open source Kubernetes-native tool.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683021/Blog/Hero%20Images/lightsticks.png","https://about.gitlab.com/blog/microcks-and-gitlab-part-one","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Speed up API and microservices delivery with Microcks and GitLab - Part 1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Madou Coulibaly\"}],\n        \"datePublished\": \"2023-09-27\",\n      }",{"title":7550,"description":7551,"authors":7556,"heroImage":7552,"date":7558,"category":858,"tags":7559},[7557],"Madou Coulibaly","2023-09-27",[771,964,110,582,233],{"slug":7561,"featured":6,"template":736},"microcks-and-gitlab-part-one","content:en-us:blog:microcks-and-gitlab-part-one.yml","Microcks And Gitlab Part One","en-us/blog/microcks-and-gitlab-part-one.yml","en-us/blog/microcks-and-gitlab-part-one",{"_path":7567,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7568,"content":7574,"config":7577,"_id":7579,"_type":16,"title":7580,"_source":17,"_file":7581,"_stem":7582,"_extension":20},"/en-us/blog/open-source-tools-for-citizen-journalists",{"title":7569,"description":7570,"ogTitle":7569,"ogDescription":7570,"noIndex":6,"ogImage":7571,"ogUrl":7572,"ogSiteName":995,"ogType":996,"canonicalUrls":7572,"schema":7573},"How the Colmena project uses GitLab to support citizen journalists","Find out why the Colmena project, a GitLab Open Source Partner, relies on a DevSecOps platform to develop and deliver open source tools for citizen journalism.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683016/Blog/Hero%20Images/citizenjournalism.png","https://about.gitlab.com/blog/open-source-tools-for-citizen-journalists","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the Colmena project uses GitLab to support citizen journalists\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-09-27\",\n      }",{"title":7569,"description":7570,"authors":7575,"heroImage":7571,"date":7558,"category":1388,"tags":7576},[7329],[1265,269,730],{"slug":7578,"featured":6,"template":736},"open-source-tools-for-citizen-journalists","content:en-us:blog:open-source-tools-for-citizen-journalists.yml","Open Source Tools For Citizen Journalists","en-us/blog/open-source-tools-for-citizen-journalists.yml","en-us/blog/open-source-tools-for-citizen-journalists",{"_path":7584,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7585,"content":7590,"config":7595,"_id":7597,"_type":16,"title":7598,"_source":17,"_file":7599,"_stem":7600,"_extension":20},"/en-us/blog/atlassian-server-ending-move-to-a-single-devsecops-platform",{"title":7586,"description":7587,"ogTitle":7586,"ogDescription":7587,"noIndex":6,"ogImage":6920,"ogUrl":7588,"ogSiteName":995,"ogType":996,"canonicalUrls":7588,"schema":7589},"Atlassian Server ends: Time to move to integrated DevSecOps","Atlassian is about to end support for Server products. Learn why now is the time to make the upgrade to GitLab’s single DevSecOps platform.","https://about.gitlab.com/blog/atlassian-server-ending-move-to-a-single-devsecops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Atlassian Server ending: Goodbye disjointed toolchain, hello DevSecOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2023-09-26\",\n      }",{"title":7591,"description":7587,"authors":7592,"heroImage":6920,"date":7593,"category":577,"tags":7594},"Atlassian Server ending: Goodbye disjointed toolchain, hello DevSecOps platform",[2023],"2023-09-26",[574,110,790],{"slug":7596,"featured":6,"template":736},"atlassian-server-ending-move-to-a-single-devsecops-platform","content:en-us:blog:atlassian-server-ending-move-to-a-single-devsecops-platform.yml","Atlassian Server Ending Move To A Single Devsecops Platform","en-us/blog/atlassian-server-ending-move-to-a-single-devsecops-platform.yml","en-us/blog/atlassian-server-ending-move-to-a-single-devsecops-platform",{"_path":7602,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7603,"content":7608,"config":7612,"_id":7614,"_type":16,"title":7615,"_source":17,"_file":7616,"_stem":7617,"_extension":20},"/en-us/blog/aws-devsecops-competency-partner",{"title":7604,"description":7605,"ogTitle":7604,"ogDescription":7605,"noIndex":6,"ogImage":7464,"ogUrl":7606,"ogSiteName":995,"ogType":996,"canonicalUrls":7606,"schema":7607},"GitLab achieves the AWS DevSecOps Partner Competency Specialty","The AWS DevSecOps Partner Competency Specialty demonstrates that GitLab is instrumental in helping customers implement better security while continuing to innovate.","https://about.gitlab.com/blog/aws-devsecops-competency-partner","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab achieves the AWS DevSecOps Partner Competency Specialty\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2023-09-25\",\n      }",{"title":7604,"description":7605,"authors":7609,"heroImage":7464,"date":7610,"category":577,"tags":7611},[959],"2023-09-25",[771,284,564],{"slug":7613,"featured":6,"template":736},"aws-devsecops-competency-partner","content:en-us:blog:aws-devsecops-competency-partner.yml","Aws Devsecops Competency Partner","en-us/blog/aws-devsecops-competency-partner.yml","en-us/blog/aws-devsecops-competency-partner",{"_path":7619,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7620,"content":7626,"config":7630,"_id":7632,"_type":16,"title":7633,"_source":17,"_file":7634,"_stem":7635,"_extension":20},"/en-us/blog/gitlab-suggested-reviewers",{"title":7621,"description":7622,"ogTitle":7621,"ogDescription":7622,"noIndex":6,"ogImage":7623,"ogUrl":7624,"ogSiteName":995,"ogType":996,"canonicalUrls":7624,"schema":7625},"Unblock code reviews with GitLab Suggested Reviewers","Identify the right reviewers more quickly, saving time and accelerating the software development lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666316/Blog/Hero%20Images/codereview2.png","https://about.gitlab.com/blog/gitlab-suggested-reviewers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unblock code reviews with GitLab Suggested Reviewers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2023-09-21\",\n      }",{"title":7621,"description":7622,"authors":7627,"heroImage":7623,"date":7628,"category":769,"tags":7629},[1016],"2023-09-21",[1932,2815,728],{"slug":7631,"featured":6,"template":736},"gitlab-suggested-reviewers","content:en-us:blog:gitlab-suggested-reviewers.yml","Gitlab Suggested Reviewers","en-us/blog/gitlab-suggested-reviewers.yml","en-us/blog/gitlab-suggested-reviewers",{"_path":7637,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7638,"content":7644,"config":7648,"_id":7650,"_type":16,"title":7651,"_source":17,"_file":7652,"_stem":7653,"_extension":20},"/en-us/blog/eliminate-risk-with-feature-flags-tutorial",{"title":7639,"description":7640,"ogTitle":7639,"ogDescription":7640,"noIndex":6,"ogImage":7641,"ogUrl":7642,"ogSiteName":995,"ogType":996,"canonicalUrls":7642,"schema":7643},"How to use feature flags to lower risk in deployments","Follow this comprehensive tutorial to learn how to create and use feature flags in your software development environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667743/Blog/Hero%20Images/flags.png","https://about.gitlab.com/blog/eliminate-risk-with-feature-flags-tutorial","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use feature flags to lower risk in deployments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2023-09-20\",\n      }",{"title":7639,"description":7640,"authors":7645,"heroImage":7641,"date":7646,"category":577,"tags":7647},[767],"2023-09-20",[110,730,574],{"slug":7649,"featured":6,"template":736},"eliminate-risk-with-feature-flags-tutorial","content:en-us:blog:eliminate-risk-with-feature-flags-tutorial.yml","Eliminate Risk With Feature Flags Tutorial","en-us/blog/eliminate-risk-with-feature-flags-tutorial.yml","en-us/blog/eliminate-risk-with-feature-flags-tutorial",{"_path":7655,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7656,"content":7661,"config":7666,"_id":7668,"_type":16,"title":7669,"_source":17,"_file":7670,"_stem":7671,"_extension":20},"/en-us/blog/debian-customizes-ci-tooling-with-gitlab",{"title":7657,"description":7658,"ogTitle":7657,"ogDescription":7658,"noIndex":6,"ogImage":1164,"ogUrl":7659,"ogSiteName":995,"ogType":996,"canonicalUrls":7659,"schema":7660},"Debian customizes CI tooling with GitLab","Debian developer Santiago Ruano Rincón explains the Linux distribution's custom solution for improving and expediting the open source software packaging process.","https://about.gitlab.com/blog/debian-customizes-ci-tooling-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Debian customizes CI tooling with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Santiago Ruano Rincón\"}],\n        \"datePublished\": \"2023-09-19\",\n      }",{"title":7657,"description":7658,"authors":7662,"heroImage":1164,"date":7664,"category":1388,"tags":7665},[7663],"Santiago Ruano Rincón","2023-09-19",[1265,269,730],{"slug":7667,"featured":6,"template":736},"debian-customizes-ci-tooling-with-gitlab","content:en-us:blog:debian-customizes-ci-tooling-with-gitlab.yml","Debian Customizes Ci Tooling With Gitlab","en-us/blog/debian-customizes-ci-tooling-with-gitlab.yml","en-us/blog/debian-customizes-ci-tooling-with-gitlab",{"_path":7673,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7674,"content":7680,"config":7683,"_id":7685,"_type":16,"title":7686,"_source":17,"_file":7687,"_stem":7688,"_extension":20},"/en-us/blog/how-gitlab-supports-the-nsa-and-cisa-cicd-security-guidance",{"title":7675,"description":7676,"ogTitle":7675,"ogDescription":7676,"noIndex":6,"ogImage":7677,"ogUrl":7678,"ogSiteName":995,"ogType":996,"canonicalUrls":7678,"schema":7679},"How GitLab supports NSA and CISA CI/CD security guidance","GitLab can support your alignment with NSA and CISA CI/CD recommendations and best practices for cloud-based DevSecOps environments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683032/Blog/Hero%20Images/vaultimage.png","https://about.gitlab.com/blog/how-gitlab-supports-the-nsa-and-cisa-cicd-security-guidance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab supports NSA and CISA CI/CD security guidance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2023-09-19\",\n      }",{"title":7675,"description":7676,"authors":7681,"heroImage":7677,"date":7664,"category":790,"tags":7682},[1949],[790,730,3075,110],{"slug":7684,"featured":6,"template":736},"how-gitlab-supports-the-nsa-and-cisa-cicd-security-guidance","content:en-us:blog:how-gitlab-supports-the-nsa-and-cisa-cicd-security-guidance.yml","How Gitlab Supports The Nsa And Cisa Cicd Security Guidance","en-us/blog/how-gitlab-supports-the-nsa-and-cisa-cicd-security-guidance.yml","en-us/blog/how-gitlab-supports-the-nsa-and-cisa-cicd-security-guidance",{"_path":7690,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7691,"content":7696,"config":7700,"_id":7702,"_type":16,"title":7703,"_source":17,"_file":7704,"_stem":7705,"_extension":20},"/en-us/blog/gitlab-release-date-change",{"title":7692,"description":7693,"ogTitle":7692,"ogDescription":7693,"noIndex":6,"ogImage":1164,"ogUrl":7694,"ogSiteName":995,"ogType":996,"canonicalUrls":7694,"schema":7695},"GitLab releases moving to the third Thursday of the month","This move will create more predictability for our customers in terms of the day of week for the release while continuing our monthly pace of self-managed releases.","https://about.gitlab.com/blog/gitlab-release-date-change","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab releases moving to the third Thursday of the month\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ian Pedowitz\"}],\n        \"datePublished\": \"2023-09-18\",\n      }",{"title":7692,"description":7693,"authors":7697,"heroImage":1164,"date":7698,"category":1049,"tags":7699},[6644],"2023-09-18",[1049,2815,731,892],{"slug":7701,"featured":6,"template":736},"gitlab-release-date-change","content:en-us:blog:gitlab-release-date-change.yml","Gitlab Release Date Change","en-us/blog/gitlab-release-date-change.yml","en-us/blog/gitlab-release-date-change",{"_path":7707,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7708,"content":7713,"config":7717,"_id":7719,"_type":16,"title":7720,"_source":17,"_file":7721,"_stem":7722,"_extension":20},"/en-us/blog/exporting-vulnerability-reports-to-html-pdf-jira",{"title":7709,"description":7710,"ogTitle":7709,"ogDescription":7710,"noIndex":6,"ogImage":5461,"ogUrl":7711,"ogSiteName":995,"ogType":996,"canonicalUrls":7711,"schema":7712},"How to export vulnerability reports to HTML/PDF and Jira","With GitLab's API, it's easy to query vulnerability info and send the report details elsewhere, such as a PDF file or a Jira project.","https://about.gitlab.com/blog/exporting-vulnerability-reports-to-html-pdf-jira","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to export vulnerability reports to HTML/PDF and Jira\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Siddharth Mathur\"}],\n        \"datePublished\": \"2023-09-14\",\n      }",{"title":7709,"description":7710,"authors":7714,"heroImage":5461,"date":7715,"category":858,"tags":7716},[6464],"2023-09-14",[772,2815,790,771],{"slug":7718,"featured":6,"template":736},"exporting-vulnerability-reports-to-html-pdf-jira","content:en-us:blog:exporting-vulnerability-reports-to-html-pdf-jira.yml","Exporting Vulnerability Reports To Html Pdf Jira","en-us/blog/exporting-vulnerability-reports-to-html-pdf-jira.yml","en-us/blog/exporting-vulnerability-reports-to-html-pdf-jira",{"_path":7724,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7725,"content":7731,"config":7735,"_id":7737,"_type":16,"title":7738,"_source":17,"_file":7739,"_stem":7740,"_extension":20},"/en-us/blog/the-ultimate-guide-to-enabling-saml",{"title":7726,"description":7727,"ogTitle":7726,"ogDescription":7727,"noIndex":6,"ogImage":7728,"ogUrl":7729,"ogSiteName":995,"ogType":996,"canonicalUrls":7729,"schema":7730},"The ultimate guide to enabling SAML and SSO on GitLab.com","Learn how to make full use of SAML and SSO security features on the GitLab DevSecOps platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666495/Blog/Hero%20Images/cover-1800x945.png","https://about.gitlab.com/blog/the-ultimate-guide-to-enabling-saml","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The ultimate guide to enabling SAML and SSO on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bradley Lee\"}],\n        \"datePublished\": \"2023-09-14\",\n      }",{"title":7726,"description":7727,"authors":7732,"heroImage":7728,"date":7715,"category":790,"tags":7734},[7733],"Bradley Lee",[790,772,543],{"slug":7736,"featured":6,"template":736},"the-ultimate-guide-to-enabling-saml","content:en-us:blog:the-ultimate-guide-to-enabling-saml.yml","The Ultimate Guide To Enabling Saml","en-us/blog/the-ultimate-guide-to-enabling-saml.yml","en-us/blog/the-ultimate-guide-to-enabling-saml",{"_path":7742,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7743,"content":7749,"config":7753,"_id":7755,"_type":16,"title":7756,"_source":17,"_file":7757,"_stem":7758,"_extension":20},"/en-us/blog/hosting-vuejs-apps-using-gitlab-pages",{"title":7744,"description":7745,"ogTitle":7744,"ogDescription":7745,"noIndex":6,"ogImage":7746,"ogUrl":7747,"ogSiteName":995,"ogType":996,"canonicalUrls":7747,"schema":7748},"How to host VueJS apps using GitLab Pages","Follow this tutorial, including detailed configuration guidance, to quickly get your application up and running for free.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683489/Blog/Hero%20Images/hosting.png","https://about.gitlab.com/blog/hosting-vuejs-apps-using-gitlab-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to host VueJS apps using GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sophia Manicor\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2023-09-13\",\n      }",{"title":7744,"description":7745,"authors":7750,"heroImage":7746,"date":7751,"category":858,"tags":7752},[4018,2997],"2023-09-13",[110,772,2097,2098],{"slug":7754,"featured":6,"template":736},"hosting-vuejs-apps-using-gitlab-pages","content:en-us:blog:hosting-vuejs-apps-using-gitlab-pages.yml","Hosting Vuejs Apps Using Gitlab Pages","en-us/blog/hosting-vuejs-apps-using-gitlab-pages.yml","en-us/blog/hosting-vuejs-apps-using-gitlab-pages",{"_path":7760,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7761,"content":7766,"config":7770,"_id":7772,"_type":16,"title":7773,"_source":17,"_file":7774,"_stem":7775,"_extension":20},"/en-us/blog/keyless-signing-with-cosign",{"title":7762,"description":7763,"ogTitle":7762,"ogDescription":7763,"noIndex":6,"ogImage":5639,"ogUrl":7764,"ogSiteName":995,"ogType":996,"canonicalUrls":7764,"schema":7765},"Streamline security with keyless signing and verification in GitLab","Our partnership with Sigstore means that with just a few lines in a yml file, GitLab customers can make their development environment more secure.","https://about.gitlab.com/blog/keyless-signing-with-cosign","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Streamline security with keyless signing and verification in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam White\"}],\n        \"datePublished\": \"2023-09-13\",\n      }",{"title":7762,"description":7763,"authors":7767,"heroImage":5639,"date":7751,"category":790,"tags":7769},[7768],"Sam White",[790,1049,284,233],{"slug":7771,"featured":6,"template":736},"keyless-signing-with-cosign","content:en-us:blog:keyless-signing-with-cosign.yml","Keyless Signing With Cosign","en-us/blog/keyless-signing-with-cosign.yml","en-us/blog/keyless-signing-with-cosign",{"_path":7777,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7778,"content":7783,"config":7789,"_id":7791,"_type":16,"title":7792,"_source":17,"_file":7793,"_stem":7794,"_extension":20},"/en-us/blog/gitlab-global-devsecops-ai-report",{"title":7779,"description":7780,"ogTitle":7779,"ogDescription":7780,"noIndex":6,"ogImage":6938,"ogUrl":7781,"ogSiteName":995,"ogType":996,"canonicalUrls":7781,"schema":7782},"GitLab DevSecOps AI Report: A new software development era","Our survey found that DevSecOps teams are optimistic about AI, but privacy, security, and training emerged as key challenges to successful AI adoption.","https://about.gitlab.com/blog/gitlab-global-devsecops-ai-report","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Global DevSecOps AI Report: Ushering in a new era of software development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ashley Kramer\"}],\n        \"datePublished\": \"2023-09-12\",\n      }",{"title":7784,"description":7780,"authors":7785,"heroImage":6938,"date":7786,"category":769,"tags":7787},"GitLab Global DevSecOps AI Report: Ushering in a new era of software development",[4570],"2023-09-12",[574,728,7788],"developer survey",{"slug":7790,"featured":6,"template":736},"gitlab-global-devsecops-ai-report","content:en-us:blog:gitlab-global-devsecops-ai-report.yml","Gitlab Global Devsecops Ai Report","en-us/blog/gitlab-global-devsecops-ai-report.yml","en-us/blog/gitlab-global-devsecops-ai-report",{"_path":7796,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7797,"content":7802,"config":7807,"_id":7809,"_type":16,"title":7810,"_source":17,"_file":7811,"_stem":7812,"_extension":20},"/en-us/blog/migrating-arch-linux-packaging-infrastructure-gitlab",{"title":7798,"description":7799,"ogTitle":7798,"ogDescription":7799,"noIndex":6,"ogImage":1164,"ogUrl":7800,"ogSiteName":995,"ogType":996,"canonicalUrls":7800,"schema":7801},"Migrating Arch Linux's packaging infrastructure to GitLab","Arch Linux developer Levente Polyak explains how the project recently migrated its packaging infrastructure to GitLab and what Arch Linux gained as a result.","https://about.gitlab.com/blog/migrating-arch-linux-packaging-infrastructure-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migrating Arch Linux's packaging infrastructure to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Levente Polyak\"}],\n        \"datePublished\": \"2023-09-11\",\n      }",{"title":7798,"description":7799,"authors":7803,"heroImage":1164,"date":7805,"category":1388,"tags":7806},[7804],"Levente Polyak","2023-09-11",[1265,269,730],{"slug":7808,"featured":6,"template":736},"migrating-arch-linux-packaging-infrastructure-gitlab","content:en-us:blog:migrating-arch-linux-packaging-infrastructure-gitlab.yml","Migrating Arch Linux Packaging Infrastructure Gitlab","en-us/blog/migrating-arch-linux-packaging-infrastructure-gitlab.yml","en-us/blog/migrating-arch-linux-packaging-infrastructure-gitlab",{"_path":7814,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7815,"content":7820,"config":7824,"_id":7826,"_type":16,"title":7827,"_source":17,"_file":7828,"_stem":7829,"_extension":20},"/en-us/blog/modern-software-development-problems-require-modern-ai-powered-devsecops",{"title":7816,"description":7817,"ogTitle":7816,"ogDescription":7817,"noIndex":6,"ogImage":1496,"ogUrl":7818,"ogSiteName":995,"ogType":996,"canonicalUrls":7818,"schema":7819},"Modern software development problems require modern AI-powered DevSecOps","Learn how applying AI can help solve common development challenges.","https://about.gitlab.com/blog/modern-software-development-problems-require-modern-ai-powered-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Modern software development problems require modern AI-powered DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2023-09-07\",\n      }",{"title":7816,"description":7817,"authors":7821,"heroImage":1496,"date":7822,"category":769,"tags":7823},[855],"2023-09-07",[574,543,728],{"slug":7825,"featured":6,"template":736},"modern-software-development-problems-require-modern-ai-powered-devsecops","content:en-us:blog:modern-software-development-problems-require-modern-ai-powered-devsecops.yml","Modern Software Development Problems Require Modern Ai Powered Devsecops","en-us/blog/modern-software-development-problems-require-modern-ai-powered-devsecops.yml","en-us/blog/modern-software-development-problems-require-modern-ai-powered-devsecops",{"_path":7831,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7832,"content":7837,"config":7841,"_id":7843,"_type":16,"title":7844,"_source":17,"_file":7845,"_stem":7846,"_extension":20},"/en-us/blog/how-gitlab-can-support-your-iso-compliance-journey",{"title":7833,"description":7834,"ogTitle":7833,"ogDescription":7834,"noIndex":6,"ogImage":5461,"ogUrl":7835,"ogSiteName":995,"ogType":996,"canonicalUrls":7835,"schema":7836},"How GitLab can support your ISO 27001 compliance journey","As a strategic partner, GitLab's software security features can help support your ISO 27001 compliance.","https://about.gitlab.com/blog/how-gitlab-can-support-your-iso-compliance-journey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab can support your ISO 27001 compliance journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Longo\"}],\n        \"datePublished\": \"2023-09-06\",\n      }",{"title":7833,"description":7834,"authors":7838,"heroImage":5461,"date":7839,"category":790,"tags":7840},[1949],"2023-09-06",[790,730,3075],{"slug":7842,"featured":6,"template":736},"how-gitlab-can-support-your-iso-compliance-journey","content:en-us:blog:how-gitlab-can-support-your-iso-compliance-journey.yml","How Gitlab Can Support Your Iso Compliance Journey","en-us/blog/how-gitlab-can-support-your-iso-compliance-journey.yml","en-us/blog/how-gitlab-can-support-your-iso-compliance-journey",{"_path":7848,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7849,"content":7855,"config":7859,"_id":7861,"_type":16,"title":7862,"_source":17,"_file":7863,"_stem":7864,"_extension":20},"/en-us/blog/five-ways-to-streamline-cloud-adoption",{"title":7850,"description":7851,"ogTitle":7850,"ogDescription":7851,"noIndex":6,"ogImage":7852,"ogUrl":7853,"ogSiteName":995,"ogType":996,"canonicalUrls":7853,"schema":7854},"5 ways to streamline your cloud adoption","As companies migrate to the cloud, consider these helpful tips for making the move smoother and more efficient.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663930/Blog/Hero%20Images/daytime-clouds_1800x945.png","https://about.gitlab.com/blog/five-ways-to-streamline-cloud-adoption","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 ways to streamline your cloud adoption\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-09-05\",\n      }",{"title":7850,"description":7851,"authors":7856,"heroImage":7852,"date":7857,"category":577,"tags":7858},[3999],"2023-09-05",[574,582,2097,2098],{"slug":7860,"featured":6,"template":736},"five-ways-to-streamline-cloud-adoption","content:en-us:blog:five-ways-to-streamline-cloud-adoption.yml","Five Ways To Streamline Cloud Adoption","en-us/blog/five-ways-to-streamline-cloud-adoption.yml","en-us/blog/five-ways-to-streamline-cloud-adoption",{"_path":7866,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7867,"content":7873,"config":7876,"_id":7878,"_type":16,"title":7879,"_source":17,"_file":7880,"_stem":7881,"_extension":20},"/en-us/blog/six-reasons-cisco-learning-and-certifications-adopted-gitlab",{"title":7868,"description":7869,"ogTitle":7868,"ogDescription":7869,"noIndex":6,"ogImage":7870,"ogUrl":7871,"ogSiteName":995,"ogType":996,"canonicalUrls":7871,"schema":7872},"6 reasons Cisco Learning and Certifications adopted GitLab","Learn what Cisco Learning and Certifications's principal engineer and lead architect shared about the organization's use of GitLab at our DevSecOps World Tour in Chicago.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670302/Blog/Hero%20Images/lightbulb-book.png","https://about.gitlab.com/blog/six-reasons-cisco-learning-and-certifications-adopted-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"6 reasons Cisco Learning and Certifications adopted GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-09-05\",\n      }",{"title":7868,"description":7869,"authors":7874,"heroImage":7870,"date":7857,"category":3072,"tags":7875},[3999],[574,3075,728],{"slug":7877,"featured":6,"template":736},"six-reasons-cisco-learning-and-certifications-adopted-gitlab","content:en-us:blog:six-reasons-cisco-learning-and-certifications-adopted-gitlab.yml","Six Reasons Cisco Learning And Certifications Adopted Gitlab","en-us/blog/six-reasons-cisco-learning-and-certifications-adopted-gitlab.yml","en-us/blog/six-reasons-cisco-learning-and-certifications-adopted-gitlab",{"_path":7883,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7884,"content":7890,"config":7894,"_id":7896,"_type":16,"title":7897,"_source":17,"_file":7898,"_stem":7899,"_extension":20},"/en-us/blog/cascading-merge-requests-with-gitlab-flow",{"title":7885,"description":7886,"ogTitle":7885,"ogDescription":7886,"noIndex":6,"ogImage":7887,"ogUrl":7888,"ogSiteName":995,"ogType":996,"canonicalUrls":7888,"schema":7889},"How to adopt a cascading merge request strategy with GitLab Flow","This tutorial explains how to consolidate updates in a single branch and propagate them to other branches using ucascade bot.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679851/Blog/Hero%20Images/cascade.jpg","https://about.gitlab.com/blog/cascading-merge-requests-with-gitlab-flow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to adopt a cascading merge request strategy with GitLab Flow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Madou Coulibaly\"}],\n        \"datePublished\": \"2023-08-31\",\n      }",{"title":7885,"description":7886,"authors":7891,"heroImage":7887,"date":7892,"category":858,"tags":7893},[7557],"2023-08-31",[110,1932,1195,772],{"slug":7895,"featured":92,"template":736},"cascading-merge-requests-with-gitlab-flow","content:en-us:blog:cascading-merge-requests-with-gitlab-flow.yml","Cascading Merge Requests With Gitlab Flow","en-us/blog/cascading-merge-requests-with-gitlab-flow.yml","en-us/blog/cascading-merge-requests-with-gitlab-flow",{"_path":7901,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7902,"content":7907,"config":7910,"_id":7912,"_type":16,"title":7913,"_source":17,"_file":7914,"_stem":7915,"_extension":20},"/en-us/blog/remediating-vulnerabilities-with-insights-and-ai",{"title":7903,"description":7904,"ogTitle":7903,"ogDescription":7904,"noIndex":6,"ogImage":5461,"ogUrl":7905,"ogSiteName":995,"ogType":996,"canonicalUrls":7905,"schema":7906},"Remediating vulnerabilities with GitLab's security insights and AI","Learn how to leverage vulnerability insights and the Explain this Vulnerability AI feature to not only resolve a vulnerability, but also understand it.","https://about.gitlab.com/blog/remediating-vulnerabilities-with-insights-and-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Remediating vulnerabilities with GitLab's security insights and AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2023-08-31\",\n      }",{"title":7903,"description":7904,"authors":7908,"heroImage":5461,"date":7892,"category":769,"tags":7909},[1097],[728,790,772],{"slug":7911,"featured":6,"template":736},"remediating-vulnerabilities-with-insights-and-ai","content:en-us:blog:remediating-vulnerabilities-with-insights-and-ai.yml","Remediating Vulnerabilities With Insights And Ai","en-us/blog/remediating-vulnerabilities-with-insights-and-ai.yml","en-us/blog/remediating-vulnerabilities-with-insights-and-ai",{"_path":7917,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7918,"content":7923,"config":7928,"_id":7930,"_type":16,"title":7931,"_source":17,"_file":7932,"_stem":7933,"_extension":20},"/en-us/blog/changes-coming-to-url-structure-follow-deprecations-redirects",{"title":7919,"description":7920,"ogTitle":7919,"ogDescription":7920,"noIndex":6,"ogImage":1164,"ogUrl":7921,"ogSiteName":995,"ogType":996,"canonicalUrls":7921,"schema":7922},"Bookmark these changes: URL structure updates coming in GitLab 17.0","An overview of project and user settings URL changes, including deprecations and redirects, that will happen in 17.0.","https://about.gitlab.com/blog/changes-coming-to-url-structure-follow-deprecations-redirects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Bookmark these changes: URL structure updates coming in GitLab 17.0\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christen Dybenko\"}],\n        \"datePublished\": \"2023-08-30\",\n      }",{"title":7919,"description":7920,"authors":7924,"heroImage":1164,"date":7926,"category":1049,"tags":7927},[7925],"Christen Dybenko","2023-08-30",[1049,730,892,543],{"slug":7929,"featured":6,"template":736},"changes-coming-to-url-structure-follow-deprecations-redirects","content:en-us:blog:changes-coming-to-url-structure-follow-deprecations-redirects.yml","Changes Coming To Url Structure Follow Deprecations Redirects","en-us/blog/changes-coming-to-url-structure-follow-deprecations-redirects.yml","en-us/blog/changes-coming-to-url-structure-follow-deprecations-redirects",{"_path":7935,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7936,"content":7942,"config":7945,"_id":7947,"_type":16,"title":7948,"_source":17,"_file":7949,"_stem":7950,"_extension":20},"/en-us/blog/origin-of-devsecops-platform-category",{"title":7937,"description":7938,"ogTitle":7937,"ogDescription":7938,"noIndex":6,"ogImage":7939,"ogUrl":7940,"ogSiteName":995,"ogType":996,"canonicalUrls":7940,"schema":7941},"Disagree, commit, and disagree: How a lazy solution became a category","Find out the origin story of the DevSecOps category.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679881/Blog/Hero%20Images/flowercomingthroughsidewalkcrack.png","https://about.gitlab.com/blog/origin-of-devsecops-platform-category","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Disagree, commit, and disagree: How a lazy solution became a category\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2023-08-30\",\n      }",{"title":7937,"description":7938,"authors":7943,"heroImage":7939,"date":7926,"category":1049,"tags":7944},[3701],[1049,1569,543,574],{"slug":7946,"featured":6,"template":736},"origin-of-devsecops-platform-category","content:en-us:blog:origin-of-devsecops-platform-category.yml","Origin Of Devsecops Platform Category","en-us/blog/origin-of-devsecops-platform-category.yml","en-us/blog/origin-of-devsecops-platform-category",{"_path":7952,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7953,"content":7959,"config":7963,"_id":7965,"_type":16,"title":7966,"_source":17,"_file":7967,"_stem":7968,"_extension":20},"/en-us/blog/gitlab-google-partnership-s3c",{"title":7954,"description":7955,"ogTitle":7954,"ogDescription":7955,"noIndex":6,"ogImage":7956,"ogUrl":7957,"ogSiteName":995,"ogType":996,"canonicalUrls":7957,"schema":7958},"Better together with GitLab and Google Cloud","GitLab’s DevSecOps workflow now integrates with Google Cloud secure Artifact Registry, security scanning, and deployment toolchains.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679290/Blog/Hero%20Images/gitlabgooglecloud.png","https://about.gitlab.com/blog/gitlab-google-partnership-s3c","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Better together with GitLab and Google Cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jackie Porter\"}],\n        \"datePublished\": \"2023-08-29\",\n      }",{"title":7954,"description":7955,"authors":7960,"heroImage":7956,"date":7961,"category":1049,"tags":7962},[3324],"2023-08-29",[1049,1730,233],{"slug":7964,"featured":6,"template":736},"gitlab-google-partnership-s3c","content:en-us:blog:gitlab-google-partnership-s3c.yml","Gitlab Google Partnership S3c","en-us/blog/gitlab-google-partnership-s3c.yml","en-us/blog/gitlab-google-partnership-s3c",{"_path":7970,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7971,"content":7976,"config":7979,"_id":7981,"_type":16,"title":7982,"_source":17,"_file":7983,"_stem":7984,"_extension":20},"/en-us/blog/why-manjaro-builds-with-gitlab",{"title":7972,"description":7973,"ogTitle":7972,"ogDescription":7973,"noIndex":6,"ogImage":1164,"ogUrl":7974,"ogSiteName":995,"ogType":996,"canonicalUrls":7974,"schema":7975},"Why the Manjaro Linux distribution builds with GitLab","Watch this interview with the Manjaro project to learn why the Linux distribution chooses to build with GitLab.","https://about.gitlab.com/blog/why-manjaro-builds-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why the Manjaro Linux distribution builds with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-08-29\",\n      }",{"title":7972,"description":7973,"authors":7977,"heroImage":1164,"date":7961,"category":1388,"tags":7978},[7329],[1265,269,730],{"slug":7980,"featured":6,"template":736},"why-manjaro-builds-with-gitlab","content:en-us:blog:why-manjaro-builds-with-gitlab.yml","Why Manjaro Builds With Gitlab","en-us/blog/why-manjaro-builds-with-gitlab.yml","en-us/blog/why-manjaro-builds-with-gitlab",{"_path":7986,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":7987,"content":7992,"config":7996,"_id":7998,"_type":16,"title":7999,"_source":17,"_file":8000,"_stem":8001,"_extension":20},"/en-us/blog/sha256-support-in-gitaly",{"title":7988,"description":7989,"ogTitle":7988,"ogDescription":7989,"noIndex":6,"ogImage":7360,"ogUrl":7990,"ogSiteName":995,"ogType":996,"canonicalUrls":7990,"schema":7991},"GitLab Gitaly project now supports the SHA 256 hashing algorithm","Gitaly now supports SHA-256 repositories. Here's why it matters.","https://about.gitlab.com/blog/sha256-support-in-gitaly","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Gitaly project now supports the SHA 256 hashing algorithm\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Cai\"}],\n        \"datePublished\": \"2023-08-28\",\n      }",{"title":7988,"description":7989,"authors":7993,"heroImage":7360,"date":7994,"category":1049,"tags":7995},[4769],"2023-08-28",[1195,1049,1265,269],{"slug":7997,"featured":92,"template":736},"sha256-support-in-gitaly","content:en-us:blog:sha256-support-in-gitaly.yml","Sha256 Support In Gitaly","en-us/blog/sha256-support-in-gitaly.yml","en-us/blog/sha256-support-in-gitaly",{"_path":8003,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8004,"content":8010,"config":8015,"_id":8017,"_type":16,"title":8018,"_source":17,"_file":8019,"_stem":8020,"_extension":20},"/en-us/blog/building-a-text-adventure-using-cplusplus-and-code-suggestions",{"title":8005,"description":8006,"ogTitle":8005,"ogDescription":8006,"noIndex":6,"ogImage":8007,"ogUrl":8008,"ogSiteName":995,"ogType":996,"canonicalUrls":8008,"schema":8009},"Explore the Dragon Realm: Building a C++ adventure game with AI","How to use GitLab Duo Code Suggestions to create a text-based adventure game, including magical locations to visit and items to procure, using C++.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663344/Blog/Hero%20Images/compassinfield.jpg","https://about.gitlab.com/blog/building-a-text-adventure-using-cplusplus-and-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Explore the Dragon Realm: Build a C++ adventure game with a little help from AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2023-08-24\",\n      }",{"title":8011,"description":8006,"authors":8012,"heroImage":8007,"date":8013,"category":769,"tags":8014},"Explore the Dragon Realm: Build a C++ adventure game with a little help from AI",[1439],"2023-08-24",[543,728,1335,574,772],{"slug":8016,"featured":6,"template":736},"building-a-text-adventure-using-cplusplus-and-code-suggestions","content:en-us:blog:building-a-text-adventure-using-cplusplus-and-code-suggestions.yml","Building A Text Adventure Using Cplusplus And Code Suggestions","en-us/blog/building-a-text-adventure-using-cplusplus-and-code-suggestions.yml","en-us/blog/building-a-text-adventure-using-cplusplus-and-code-suggestions",{"_path":8022,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8023,"content":8029,"config":8033,"_id":8035,"_type":16,"title":8036,"_source":17,"_file":8037,"_stem":8038,"_extension":20},"/en-us/blog/coordinating-documentation-projects-gitlab",{"title":8024,"description":8025,"ogTitle":8024,"ogDescription":8025,"noIndex":6,"ogImage":8026,"ogUrl":8027,"ogSiteName":995,"ogType":996,"canonicalUrls":8027,"schema":8028},"Coordinating major documentation projects with GitLab","Members of The Good Docs Project explain how to plan, coordinate, and release major documentation projects using GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669791/Blog/Hero%20Images/abstractprocess.png","https://about.gitlab.com/blog/coordinating-documentation-projects-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Coordinating major documentation projects with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alyssa Rock\"},{\"@type\":\"Person\",\"name\":\"Aaron Peters, Member, Good Docs Project\"}],\n        \"datePublished\": \"2023-08-24\",\n      }",{"title":8024,"description":8025,"authors":8030,"heroImage":8026,"date":8013,"category":1388,"tags":8032},[8031,6590],"Alyssa Rock",[1265,269,730],{"slug":8034,"featured":6,"template":736},"coordinating-documentation-projects-gitlab","content:en-us:blog:coordinating-documentation-projects-gitlab.yml","Coordinating Documentation Projects Gitlab","en-us/blog/coordinating-documentation-projects-gitlab.yml","en-us/blog/coordinating-documentation-projects-gitlab",{"_path":8040,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8041,"content":8047,"config":8051,"_id":8053,"_type":16,"title":8054,"_source":17,"_file":8055,"_stem":8056,"_extension":20},"/en-us/blog/remote-design-sprints",{"title":8042,"description":8043,"ogTitle":8042,"ogDescription":8043,"noIndex":6,"ogImage":8044,"ogUrl":8045,"ogSiteName":995,"ogType":996,"canonicalUrls":8045,"schema":8046},"How to facilitate remote design sprints","Use these tips to help solve big design problems with stakeholders across multiple time zones.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683129/Blog/Hero%20Images/remotedesign.png","https://about.gitlab.com/blog/remote-design-sprints","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to facilitate remote design sprints\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Bauman\"}],\n        \"datePublished\": \"2023-08-23\",\n      }",{"title":8042,"description":8043,"authors":8048,"heroImage":8044,"date":8049,"category":858,"tags":8050},[2699],"2023-08-23",[2703,2702],{"slug":8052,"featured":6,"template":736},"remote-design-sprints","content:en-us:blog:remote-design-sprints.yml","Remote Design Sprints","en-us/blog/remote-design-sprints.yml","en-us/blog/remote-design-sprints",{"_path":8058,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8059,"content":8064,"config":8069,"_id":8071,"_type":16,"title":8072,"_source":17,"_file":8073,"_stem":8074,"_extension":20},"/en-us/blog/gitlab-and-google-together-at-google-cloud-next-23",{"title":8060,"description":8061,"ogTitle":8060,"ogDescription":8061,"noIndex":6,"ogImage":7956,"ogUrl":8062,"ogSiteName":995,"ogType":996,"canonicalUrls":8062,"schema":8063},"GitLab and Google together at Google Cloud Next '23","Here's a roundup of all the GitLab events and announcements at the Next ‘23 conference.","https://about.gitlab.com/blog/gitlab-and-google-together-at-google-cloud-next-23","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and Google together at Google Cloud Next '23\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nima Badiey\"}],\n        \"datePublished\": \"2023-08-22\",\n      }",{"title":8060,"description":8061,"authors":8065,"heroImage":7956,"date":8067,"category":1049,"tags":8068},[8066],"Nima Badiey","2023-08-22",[1049,790,1730,574],{"slug":8070,"featured":6,"template":736},"gitlab-and-google-together-at-google-cloud-next-23","content:en-us:blog:gitlab-and-google-together-at-google-cloud-next-23.yml","Gitlab And Google Together At Google Cloud Next 23","en-us/blog/gitlab-and-google-together-at-google-cloud-next-23.yml","en-us/blog/gitlab-and-google-together-at-google-cloud-next-23",{"_path":8076,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8077,"content":8083,"config":8087,"_id":8089,"_type":16,"title":8090,"_source":17,"_file":8091,"_stem":8092,"_extension":20},"/en-us/blog/how-to-secure-cloud-run-deployment-with-auto-devops",{"title":8078,"description":8079,"ogTitle":8078,"ogDescription":8079,"noIndex":6,"ogImage":8080,"ogUrl":8081,"ogSiteName":995,"ogType":996,"canonicalUrls":8081,"schema":8082},"How to secure Google Cloud Run deployment with GitLab Auto DevOps","This tutorial will help teams speed development, improve security, and harness the power of serverless technology.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682898/Blog/Hero%20Images/cloud-security.png","https://about.gitlab.com/blog/how-to-secure-cloud-run-deployment-with-auto-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to secure Google Cloud Run deployment with GitLab Auto DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"}],\n        \"datePublished\": \"2023-08-21\",\n      }",{"title":8078,"description":8079,"authors":8084,"heroImage":8080,"date":8085,"category":858,"tags":8086},[1727],"2023-08-21",[772,582,790],{"slug":8088,"featured":6,"template":736},"how-to-secure-cloud-run-deployment-with-auto-devops","content:en-us:blog:how-to-secure-cloud-run-deployment-with-auto-devops.yml","How To Secure Cloud Run Deployment With Auto Devops","en-us/blog/how-to-secure-cloud-run-deployment-with-auto-devops.yml","en-us/blog/how-to-secure-cloud-run-deployment-with-auto-devops",{"_path":8094,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8095,"content":8100,"config":8104,"_id":8106,"_type":16,"title":8107,"_source":17,"_file":8108,"_stem":8109,"_extension":20},"/en-us/blog/meet-regulatory-standards-with-gitlab",{"title":8096,"description":8097,"ogTitle":8096,"ogDescription":8097,"noIndex":6,"ogImage":1776,"ogUrl":8098,"ogSiteName":995,"ogType":996,"canonicalUrls":8098,"schema":8099},"Meet regulatory standards with GitLab security and compliance","Compliance is more than one-off audits; it's a continuous process of managing risk by implementing guardrails and monitoring specific metrics. Learn how with this comprehensive guide.","https://about.gitlab.com/blog/meet-regulatory-standards-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet regulatory standards with GitLab security and compliance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2023-08-17\",\n      }",{"title":8096,"description":8097,"authors":8101,"heroImage":1776,"date":8102,"category":790,"tags":8103,"updatedDate":4734},[3181],"2023-08-17",[574,543,790,186],{"slug":8105,"featured":6,"template":736},"meet-regulatory-standards-with-gitlab","content:en-us:blog:meet-regulatory-standards-with-gitlab.yml","Meet Regulatory Standards With Gitlab","en-us/blog/meet-regulatory-standards-with-gitlab.yml","en-us/blog/meet-regulatory-standards-with-gitlab",{"_path":8111,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8112,"content":8118,"config":8122,"_id":8124,"_type":16,"title":8125,"_source":17,"_file":8126,"_stem":8127,"_extension":20},"/en-us/blog/remote-development-beta",{"title":8113,"description":8114,"ogTitle":8113,"ogDescription":8114,"noIndex":6,"ogImage":8115,"ogUrl":8116,"ogSiteName":995,"ogType":996,"canonicalUrls":8116,"schema":8117},"Behind the scenes of the Remote Development Beta release","Discover the epic journey of GitLab's Remote Development team as they navigate last-minute pivots, adapt, and deliver new features for users worldwide.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679888/Blog/Hero%20Images/remotedevelopment.jpg","https://about.gitlab.com/blog/remote-development-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Behind the scenes of the Remote Development Beta release\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2023-08-16\",\n      }",{"title":8113,"description":8114,"authors":8119,"heroImage":8115,"date":8120,"category":858,"tags":8121},[3053],"2023-08-16",[772,574,1335,582,3074,1265],{"slug":8123,"featured":6,"template":736},"remote-development-beta","content:en-us:blog:remote-development-beta.yml","Remote Development Beta","en-us/blog/remote-development-beta.yml","en-us/blog/remote-development-beta",{"_path":8129,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8130,"content":8136,"config":8142,"_id":8144,"_type":16,"title":8145,"_source":17,"_file":8146,"_stem":8147,"_extension":20},"/en-us/blog/navigation-research-blog-post",{"title":8131,"description":8132,"ogTitle":8131,"ogDescription":8132,"noIndex":6,"ogImage":8133,"ogUrl":8134,"ogSiteName":995,"ogType":996,"canonicalUrls":8134,"schema":8135},"How we overhauled GitLab navigation","Users weren't getting what they needed from our navigation. Here are the steps we took to turn that experience around.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682884/Blog/Hero%20Images/navigation.jpg","https://about.gitlab.com/blog/navigation-research-blog-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we overhauled GitLab navigation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ashley Knobloch\"}],\n        \"datePublished\": \"2023-08-15\",\n      }",{"title":8131,"description":8132,"authors":8137,"heroImage":8133,"date":8139,"category":8140,"tags":8141},[8138],"Ashley Knobloch","2023-08-15","insights",[1569,2703,2025],{"slug":8143,"featured":6,"template":736},"navigation-research-blog-post","content:en-us:blog:navigation-research-blog-post.yml","Navigation Research Blog Post","en-us/blog/navigation-research-blog-post.yml","en-us/blog/navigation-research-blog-post",{"_path":8149,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8150,"content":8155,"config":8158,"_id":8160,"_type":16,"title":8161,"_source":17,"_file":8162,"_stem":8163,"_extension":20},"/en-us/blog/removing-tags-from-small-saas-runner-on-linux",{"title":8151,"description":8152,"ogTitle":8151,"ogDescription":8152,"noIndex":6,"ogImage":7482,"ogUrl":8153,"ogSiteName":995,"ogType":996,"canonicalUrls":8153,"schema":8154},"Removing tags from our small SaaS runner on Linux","With GitLab 17.0, we are removing most tags from our small SaaS runner on Linux. Find out if you are affected and the change you need to make.","https://about.gitlab.com/blog/removing-tags-from-small-saas-runner-on-linux","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Removing tags from our small SaaS runner on Linux\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Engel\"}],\n        \"datePublished\": \"2023-08-15\",\n      }",{"title":8151,"description":8152,"authors":8156,"heroImage":7482,"date":8139,"category":1049,"tags":8157},[3216],[110,559,731],{"slug":8159,"featured":6,"template":736},"removing-tags-from-small-saas-runner-on-linux","content:en-us:blog:removing-tags-from-small-saas-runner-on-linux.yml","Removing Tags From Small Saas Runner On Linux","en-us/blog/removing-tags-from-small-saas-runner-on-linux.yml","en-us/blog/removing-tags-from-small-saas-runner-on-linux",{"_path":8165,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8166,"content":8170,"config":8174,"_id":8176,"_type":16,"title":8177,"_source":17,"_file":8178,"_stem":8179,"_extension":20},"/en-us/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started",{"title":8167,"description":7148,"ogTitle":8167,"ogDescription":7148,"noIndex":6,"ogImage":3048,"ogUrl":8168,"ogSiteName":995,"ogType":996,"canonicalUrls":8168,"schema":8169},"Learning Rust with a little help from AI","https://about.gitlab.com/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learning Rust with a little help from AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-08-10\",\n      }",{"title":8167,"description":7148,"authors":8171,"heroImage":3048,"date":8172,"category":769,"tags":8173},[1424],"2023-08-10",[574,6980,772,1335,728],{"slug":8175,"featured":6,"template":736},"learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started","content:en-us:blog:learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started.yml","Learning Rust With A Little Help From Ai Code Suggestions Getting Started","en-us/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started.yml","en-us/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started",{"_path":8181,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8182,"content":8187,"config":8191,"_id":8193,"_type":16,"title":8194,"_source":17,"_file":8195,"_stem":8196,"_extension":20},"/en-us/blog/gitlab-mitre-attack-navigator",{"title":8183,"description":8184,"ogTitle":8183,"ogDescription":8184,"noIndex":6,"ogImage":4049,"ogUrl":8185,"ogSiteName":995,"ogType":996,"canonicalUrls":8185,"schema":8186},"Use GitLab and MITRE ATT&CK Navigator to visualize adversary techniques","This tutorial helps build and deploy a customized version of MITRE's ATT&CK Navigator using GitLab CI/CD and GitLab Pages.","https://about.gitlab.com/blog/gitlab-mitre-attack-navigator","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Use GitLab and MITRE ATT&CK Navigator to visualize adversary techniques\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Moberly\"}],\n        \"datePublished\": \"2023-08-09\",\n      }",{"title":8183,"description":8184,"authors":8188,"heroImage":4049,"date":8189,"category":790,"tags":8190},[2720],"2023-08-09",[790,1265,772,110],{"slug":8192,"featured":6,"template":736},"gitlab-mitre-attack-navigator","content:en-us:blog:gitlab-mitre-attack-navigator.yml","Gitlab Mitre Attack Navigator","en-us/blog/gitlab-mitre-attack-navigator.yml","en-us/blog/gitlab-mitre-attack-navigator",{"_path":8198,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8199,"content":8204,"config":8209,"_id":8211,"_type":16,"title":8212,"_source":17,"_file":8213,"_stem":8214,"_extension":20},"/en-us/blog/gitlab-account-security",{"title":8200,"description":8201,"ogTitle":8200,"ogDescription":8201,"noIndex":6,"ogImage":5639,"ogUrl":8202,"ogSiteName":995,"ogType":996,"canonicalUrls":8202,"schema":8203},"GitLab account security: Verify your information for enhanced protection","GitLab users soon will be required to provide a valid email address during login to boost security and prevent credential stuffing.","https://about.gitlab.com/blog/gitlab-account-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab account security: Verify your information for enhanced protection\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jensen Stava\"}],\n        \"datePublished\": \"2023-08-08\",\n      }",{"title":8200,"description":8201,"authors":8205,"heroImage":5639,"date":8207,"category":1049,"tags":8208},[8206],"Jensen Stava","2023-08-08",[1049,731,730,790],{"slug":8210,"featured":6,"template":736},"gitlab-account-security","content:en-us:blog:gitlab-account-security.yml","Gitlab Account Security","en-us/blog/gitlab-account-security.yml","en-us/blog/gitlab-account-security",{"_path":8216,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8217,"content":8223,"config":8227,"_id":8229,"_type":16,"title":8230,"_source":17,"_file":8231,"_stem":8232,"_extension":20},"/en-us/blog/next-gen-telecom-with-gitlab",{"title":8218,"description":8219,"ogTitle":8218,"ogDescription":8219,"noIndex":6,"ogImage":8220,"ogUrl":8221,"ogSiteName":995,"ogType":996,"canonicalUrls":8221,"schema":8222},"Developing next-generation telecommunications with GitLab","Learn more about Project Sylva, a cross-industry collaboration to build a cloud-native, open source telecommunications platform using GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682864/Blog/Hero%20Images/telecomabstract.jpg","https://about.gitlab.com/blog/next-gen-telecom-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing next-generation telecommunications with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-08-07\",\n      }",{"title":8218,"description":8219,"authors":8224,"heroImage":8220,"date":8225,"category":1388,"tags":8226},[7329],"2023-08-07",[1265,269,730],{"slug":8228,"featured":6,"template":736},"next-gen-telecom-with-gitlab","content:en-us:blog:next-gen-telecom-with-gitlab.yml","Next Gen Telecom With Gitlab","en-us/blog/next-gen-telecom-with-gitlab.yml","en-us/blog/next-gen-telecom-with-gitlab",{"_path":8234,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8235,"content":8240,"config":8246,"_id":8248,"_type":16,"title":8249,"_source":17,"_file":8250,"_stem":8251,"_extension":20},"/en-us/blog/building-gitlab-with-gitlabcom-how-gitlab-inspired-dedicated",{"title":8236,"description":8237,"ogTitle":8236,"ogDescription":8237,"noIndex":6,"ogImage":5956,"ogUrl":8238,"ogSiteName":995,"ogType":996,"canonicalUrls":8238,"schema":8239},"Building GitLab with GitLab: How GitLab.com inspired Dedicated","Learn how the multi-tenancy SaaS solution, GitLab.com, influenced the design of the single-tenancy SaaS, GitLab Dedicated.","https://about.gitlab.com/blog/building-gitlab-with-gitlabcom-how-gitlab-inspired-dedicated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building GitLab with GitLab: How GitLab.com inspired Dedicated\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Newdigate\"},{\"@type\":\"Person\",\"name\":\"Craig Miskell\"},{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2023-08-03\",\n      }",{"title":8236,"description":8237,"authors":8241,"heroImage":5956,"date":8244,"category":858,"tags":8245},[8242,8243,6119],"Andrew Newdigate","Craig Miskell","2023-08-03",[771,543,574,730],{"slug":8247,"featured":6,"template":736},"building-gitlab-with-gitlabcom-how-gitlab-inspired-dedicated","content:en-us:blog:building-gitlab-with-gitlabcom-how-gitlab-inspired-dedicated.yml","Building Gitlab With Gitlabcom How Gitlab Inspired Dedicated","en-us/blog/building-gitlab-with-gitlabcom-how-gitlab-inspired-dedicated.yml","en-us/blog/building-gitlab-with-gitlabcom-how-gitlab-inspired-dedicated",{"_path":8253,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8254,"content":8260,"config":8263,"_id":8265,"_type":16,"title":8266,"_source":17,"_file":8267,"_stem":8268,"_extension":20},"/en-us/blog/gitlab-duo-code-suggestions-python",{"title":8255,"description":8256,"ogTitle":8255,"ogDescription":8256,"noIndex":6,"ogImage":8257,"ogUrl":8258,"ogSiteName":995,"ogType":996,"canonicalUrls":8258,"schema":8259},"How GitLab Duo Code Suggestions helped me make long car rides fun","AI-powered Gitlab Duo Code Suggestions coupled with Remote Development workspaces helped me create a Python-based guessing game application to keep my daughter entertained.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679869/Blog/Hero%20Images/carride.jpg","https://about.gitlab.com/blog/gitlab-duo-code-suggestions-python","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab Duo Code Suggestions helped me make long car rides fun\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2023-08-03\",\n      }",{"title":8255,"description":8256,"authors":8261,"heroImage":8257,"date":8244,"category":769,"tags":8262},[1016],[1049,730,728,574],{"slug":8264,"featured":6,"template":736},"gitlab-duo-code-suggestions-python","content:en-us:blog:gitlab-duo-code-suggestions-python.yml","Gitlab Duo Code Suggestions Python","en-us/blog/gitlab-duo-code-suggestions-python.yml","en-us/blog/gitlab-duo-code-suggestions-python",{"_path":8270,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8271,"content":8277,"config":8281,"_id":8283,"_type":16,"title":8284,"_source":17,"_file":8285,"_stem":8286,"_extension":20},"/en-us/blog/how-to-migrate-gitlab-groups-and-projects-more-efficiently",{"title":8272,"description":8273,"ogTitle":8272,"ogDescription":8273,"noIndex":6,"ogImage":8274,"ogUrl":8275,"ogSiteName":995,"ogType":996,"canonicalUrls":8275,"schema":8276},"How to migrate GitLab groups and projects more efficiently","Learn about performance improvements to GitLab migration by direct transfer and what's next.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668760/Blog/Hero%20Images/migration2.jpg","https://about.gitlab.com/blog/how-to-migrate-gitlab-groups-and-projects-more-efficiently","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to migrate GitLab groups and projects more efficiently\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Magdalena Frankiewicz\"}],\n        \"datePublished\": \"2023-08-02\",\n      }",{"title":8272,"description":8273,"authors":8278,"heroImage":8274,"date":8279,"category":577,"tags":8280},[1530],"2023-08-02",[730,1049,1335,731],{"slug":8282,"featured":6,"template":736},"how-to-migrate-gitlab-groups-and-projects-more-efficiently","content:en-us:blog:how-to-migrate-gitlab-groups-and-projects-more-efficiently.yml","How To Migrate Gitlab Groups And Projects More Efficiently","en-us/blog/how-to-migrate-gitlab-groups-and-projects-more-efficiently.yml","en-us/blog/how-to-migrate-gitlab-groups-and-projects-more-efficiently",{"_path":8288,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8289,"content":8294,"config":8298,"_id":8300,"_type":16,"title":8301,"_source":17,"_file":8302,"_stem":8303,"_extension":20},"/en-us/blog/gitlab-security-hardening-documentation",{"title":8290,"description":8291,"ogTitle":8290,"ogDescription":8291,"noIndex":6,"ogImage":4049,"ogUrl":8292,"ogSiteName":995,"ogType":996,"canonicalUrls":8292,"schema":8293},"The backstory on GitLab's security hardening documentation","GitLab has detailed documentation about how to harden your instance, now as a part of GitLab itself. Here's how it came to be.","https://about.gitlab.com/blog/gitlab-security-hardening-documentation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The backstory on GitLab's security hardening documentation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2023-08-01\",\n      }",{"title":8290,"description":8291,"authors":8295,"heroImage":4049,"date":8296,"category":790,"tags":8297},[5108],"2023-08-01",[790,582,574],{"slug":8299,"featured":6,"template":736},"gitlab-security-hardening-documentation","content:en-us:blog:gitlab-security-hardening-documentation.yml","Gitlab Security Hardening Documentation","en-us/blog/gitlab-security-hardening-documentation.yml","en-us/blog/gitlab-security-hardening-documentation",{"_path":8305,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8306,"content":8312,"config":8315,"_id":8317,"_type":16,"title":8318,"_source":17,"_file":8319,"_stem":8320,"_extension":20},"/en-us/blog/medium-gitlab-saas-runners-on-linux-now-available-to-all-tiers",{"title":8307,"description":8308,"ogTitle":8307,"ogDescription":8308,"noIndex":6,"ogImage":8309,"ogUrl":8310,"ogSiteName":995,"ogType":996,"canonicalUrls":8310,"schema":8311},"Medium GitLab SaaS runners on Linux now available to all tiers","Free tier users can follow a few instructions to use medium SaaS runners on Linux to increase CI/CD pipleline speeds.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679838/Blog/Hero%20Images/fastlightrunner.jpg","https://about.gitlab.com/blog/medium-gitlab-saas-runners-on-linux-now-available-to-all-tiers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Medium GitLab SaaS runners on Linux now available to all tiers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Engel\"}],\n        \"datePublished\": \"2023-08-01\",\n      }",{"title":8307,"description":8308,"authors":8313,"heroImage":8309,"date":8296,"category":1049,"tags":8314},[3216],[110,574,1049],{"slug":8316,"featured":6,"template":736},"medium-gitlab-saas-runners-on-linux-now-available-to-all-tiers","content:en-us:blog:medium-gitlab-saas-runners-on-linux-now-available-to-all-tiers.yml","Medium Gitlab Saas Runners On Linux Now Available To All Tiers","en-us/blog/medium-gitlab-saas-runners-on-linux-now-available-to-all-tiers.yml","en-us/blog/medium-gitlab-saas-runners-on-linux-now-available-to-all-tiers",{"_path":8322,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8323,"content":8328,"config":8333,"_id":8335,"_type":16,"title":8336,"_source":17,"_file":8337,"_stem":8338,"_extension":20},"/en-us/blog/gitlab-gdk-remote-development",{"title":8324,"description":8325,"ogTitle":8324,"ogDescription":8325,"noIndex":6,"ogImage":1728,"ogUrl":8326,"ogSiteName":995,"ogType":996,"canonicalUrls":8326,"schema":8327},"Contributor how-to: Remote Development workspaces and GitLab Developer Kit","This tutorial helps you get GDK working inside Remote Development workspaces to begin contributing to GitLab.","https://about.gitlab.com/blog/gitlab-gdk-remote-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Contributor how-to: Remote Development workspaces and GitLab Developer Kit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Raimund Hook\"}],\n        \"datePublished\": \"2023-07-31\",\n      }",{"title":8324,"description":8325,"authors":8329,"heroImage":1728,"date":8331,"category":858,"tags":8332},[8330],"Raimund Hook","2023-07-31",[772,564,1335,582,3074,1265],{"slug":8334,"featured":6,"template":736},"gitlab-gdk-remote-development","content:en-us:blog:gitlab-gdk-remote-development.yml","Gitlab Gdk Remote Development","en-us/blog/gitlab-gdk-remote-development.yml","en-us/blog/gitlab-gdk-remote-development",{"_path":8340,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8341,"content":8346,"config":8350,"_id":8352,"_type":16,"title":8353,"_source":17,"_file":8354,"_stem":8355,"_extension":20},"/en-us/blog/gitlab-flow-duo",{"title":8342,"description":8343,"ogTitle":8342,"ogDescription":8343,"noIndex":6,"ogImage":1496,"ogUrl":8344,"ogSiteName":995,"ogType":996,"canonicalUrls":8344,"schema":8345},"Combine GitLab Flow and GitLab Duo for a workflow powerhouse ","Add the AI-powered capabilities of GitLab Duo to GitLab Flow to boost the efficiency of DevSecOps workflows. This is a guide for deployment in your environment, including a video tutorial.","https://about.gitlab.com/blog/gitlab-flow-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Combine GitLab Flow and GitLab Duo for a workflow powerhouse \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2023-07-27\",\n      }",{"title":8342,"description":8343,"authors":8347,"heroImage":1496,"date":8348,"category":769,"tags":8349,"updatedDate":5253},[767],"2023-07-27",[110,728,574],{"slug":8351,"featured":6,"template":736},"gitlab-flow-duo","content:en-us:blog:gitlab-flow-duo.yml","Gitlab Flow Duo","en-us/blog/gitlab-flow-duo.yml","en-us/blog/gitlab-flow-duo",{"_path":8357,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8358,"content":8364,"config":8370,"_id":8372,"_type":16,"title":8373,"_source":17,"_file":8374,"_stem":8375,"_extension":20},"/en-us/blog/gitlab-first-esg-and-dib-reports",{"title":8359,"description":8360,"ogTitle":8359,"ogDescription":8360,"noIndex":6,"ogImage":8361,"ogUrl":8362,"ogSiteName":995,"ogType":996,"canonicalUrls":8362,"schema":8363},"GitLab’s first ESG and DIB reports: Here’s what to know","Learn why Environmental, Social, and Governance and Diversity, Inclusion, and Belonging are integral to GitLab’s business and culture.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669919/Blog/Hero%20Images/gitlabbasic.png","https://about.gitlab.com/blog/gitlab-first-esg-and-dib-reports","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s first ESG and DIB reports: Here’s what to know\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sherida McMullan\"},{\"@type\":\"Person\",\"name\":\"Stacy Cline\"}],\n        \"datePublished\": \"2023-07-26\",\n      }",{"title":8359,"description":8360,"authors":8365,"heroImage":8361,"date":8368,"category":1049,"tags":8369},[8366,8367],"Sherida McMullan","Stacy Cline","2023-07-26",[1049,1569],{"slug":8371,"featured":6,"template":736},"gitlab-first-esg-and-dib-reports","content:en-us:blog:gitlab-first-esg-and-dib-reports.yml","Gitlab First Esg And Dib Reports","en-us/blog/gitlab-first-esg-and-dib-reports.yml","en-us/blog/gitlab-first-esg-and-dib-reports",{"_path":8377,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8378,"content":8383,"config":8388,"_id":8390,"_type":16,"title":8391,"_source":17,"_file":8392,"_stem":8393,"_extension":20},"/en-us/blog/gitlab-jetbrains-neovim-plugins",{"title":8379,"description":8380,"ogTitle":8379,"ogDescription":8380,"noIndex":6,"ogImage":1496,"ogUrl":8381,"ogSiteName":995,"ogType":996,"canonicalUrls":8381,"schema":8382},"GitLab plugins for JetBrains and Neovim now available in Beta","GitLab plugins for JetBrains IDEs and Neovim are now available in Beta, bringing GitLab Duo Code Suggestions to more software development environments.","https://about.gitlab.com/blog/gitlab-jetbrains-neovim-plugins","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab plugins for JetBrains and Neovim now available in Beta\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kai Armstrong\"}],\n        \"datePublished\": \"2023-07-25\",\n      }",{"title":8379,"description":8380,"authors":8384,"heroImage":1496,"date":8386,"category":769,"tags":8387},[8385],"Kai Armstrong","2023-07-25",[574,731,730,728],{"slug":8389,"featured":6,"template":736},"gitlab-jetbrains-neovim-plugins","content:en-us:blog:gitlab-jetbrains-neovim-plugins.yml","Gitlab Jetbrains Neovim Plugins","en-us/blog/gitlab-jetbrains-neovim-plugins.yml","en-us/blog/gitlab-jetbrains-neovim-plugins",{"_path":8395,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8396,"content":8402,"config":8405,"_id":8407,"_type":16,"title":8408,"_source":17,"_file":8409,"_stem":8410,"_extension":20},"/en-us/blog/rail-m-is-an-imperfectly-good-start-for-ai-model-licenses",{"title":8397,"description":8398,"ogTitle":8397,"ogDescription":8398,"noIndex":6,"ogImage":8399,"ogUrl":8400,"ogSiteName":995,"ogType":996,"canonicalUrls":8400,"schema":8401},"RAIL-M is an imperfectly good start for AI model licenses","\"GitLab, Inc. is dedicated to open source and AI. This is our take on a model license relevant to open source and AI communities: the BigScience Open RAIL-M license.\"","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671836/Blog/Hero%20Images/railmimage.jpg","https://about.gitlab.com/blog/rail-m-is-an-imperfectly-good-start-for-ai-model-licenses","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"RAIL-M is an imperfectly good start for AI model licenses\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Robin Schulman\"}],\n        \"datePublished\": \"2023-07-25\",\n      }",{"title":8397,"description":8398,"authors":8403,"heroImage":8399,"date":8386,"category":769,"tags":8404},[1279],[728,1569],{"slug":8406,"featured":6,"template":736},"rail-m-is-an-imperfectly-good-start-for-ai-model-licenses","content:en-us:blog:rail-m-is-an-imperfectly-good-start-for-ai-model-licenses.yml","Rail M Is An Imperfectly Good Start For Ai Model Licenses","en-us/blog/rail-m-is-an-imperfectly-good-start-for-ai-model-licenses.yml","en-us/blog/rail-m-is-an-imperfectly-good-start-for-ai-model-licenses",{"_path":8412,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8413,"content":8419,"config":8423,"_id":8425,"_type":16,"title":8426,"_source":17,"_file":8427,"_stem":8428,"_extension":20},"/en-us/blog/how-devsecops-drives-business-success",{"title":8414,"description":8415,"ogTitle":8414,"ogDescription":8415,"noIndex":6,"ogImage":8416,"ogUrl":8417,"ogSiteName":995,"ogType":996,"canonicalUrls":8417,"schema":8418},"How DevSecOps drives business success","Learn the benefits of DevSecOps, including how it drives ROI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663975/Blog/Hero%20Images/devsecopssurvey.png","https://about.gitlab.com/blog/how-devsecops-drives-business-success","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How DevSecOps drives business success\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-07-24\",\n      }",{"title":8414,"description":8415,"authors":8420,"heroImage":8416,"date":8421,"category":577,"tags":8422},[3999],"2023-07-24",[543,6980,574],{"slug":8424,"featured":6,"template":736},"how-devsecops-drives-business-success","content:en-us:blog:how-devsecops-drives-business-success.yml","How Devsecops Drives Business Success","en-us/blog/how-devsecops-drives-business-success.yml","en-us/blog/how-devsecops-drives-business-success",{"_path":8430,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8431,"content":8436,"config":8440,"_id":8442,"_type":16,"title":8443,"_source":17,"_file":8444,"_stem":8445,"_extension":20},"/en-us/blog/meet-the-2023-gitlab-partner-of-the-year-award-winners",{"title":8432,"description":8433,"ogTitle":8432,"ogDescription":8433,"noIndex":6,"ogImage":7517,"ogUrl":8434,"ogSiteName":995,"ogType":996,"canonicalUrls":8434,"schema":8435},"Meet the 2023 GitLab Partner of the Year award winners","We recognized our channel, technology, and cloud partners for their collaboration and contributions.","https://about.gitlab.com/blog/meet-the-2023-gitlab-partner-of-the-year-award-winners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet the 2023 GitLab Partner of the Year award winners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nima Badiey\"}],\n        \"datePublished\": \"2023-07-20\",\n      }",{"title":8432,"description":8433,"authors":8437,"heroImage":7517,"date":8438,"category":1049,"tags":8439},[8066],"2023-07-20",[284,1049,2815],{"slug":8441,"featured":6,"template":736},"meet-the-2023-gitlab-partner-of-the-year-award-winners","content:en-us:blog:meet-the-2023-gitlab-partner-of-the-year-award-winners.yml","Meet The 2023 Gitlab Partner Of The Year Award Winners","en-us/blog/meet-the-2023-gitlab-partner-of-the-year-award-winners.yml","en-us/blog/meet-the-2023-gitlab-partner-of-the-year-award-winners",{"_path":8447,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8448,"content":8454,"config":8457,"_id":8459,"_type":16,"title":8460,"_source":17,"_file":8461,"_stem":8462,"_extension":20},"/en-us/blog/supercharge-productivity-with-gitlab-duo",{"title":8449,"description":8450,"ogTitle":8449,"ogDescription":8450,"noIndex":6,"ogImage":8451,"ogUrl":8452,"ogSiteName":995,"ogType":996,"canonicalUrls":8452,"schema":8453},"Supercharge productivity with generative AI and GitLab Duo","Learn how the GitLab DevSecOps platform leverages generative AI and large language models to enable organizations to boost productivity and efficiency.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674838/Blog/Hero%20Images/duo-blog-post.png","https://about.gitlab.com/blog/supercharge-productivity-with-gitlab-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Supercharge productivity with generative AI and GitLab Duo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2023-07-20\",\n      }",{"title":8449,"description":8450,"authors":8455,"heroImage":8451,"date":8438,"category":769,"tags":8456},[3181],[574,543,728],{"slug":8458,"featured":6,"template":736},"supercharge-productivity-with-gitlab-duo","content:en-us:blog:supercharge-productivity-with-gitlab-duo.yml","Supercharge Productivity With Gitlab Duo","en-us/blog/supercharge-productivity-with-gitlab-duo.yml","en-us/blog/supercharge-productivity-with-gitlab-duo",{"_path":8464,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8465,"content":8471,"config":8476,"_id":8478,"_type":16,"title":8479,"_source":17,"_file":8480,"_stem":8481,"_extension":20},"/en-us/blog/benefits-of-corporate-shadow-programs",{"title":8466,"description":8467,"ogTitle":8466,"ogDescription":8467,"noIndex":6,"ogImage":8468,"ogUrl":8469,"ogSiteName":995,"ogType":996,"canonicalUrls":8469,"schema":8470},"Shadow programs give employees a peek into leadership roles","Shadow programs are a great resource if you’re looking to explore new roles, expand your skill set, or learn how decisions are made.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683055/Blog/Hero%20Images/ideaabstract.jpg","https://about.gitlab.com/blog/benefits-of-corporate-shadow-programs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Shadow programs give employees a peek into leadership roles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2023-07-17\",\n      }",{"title":8466,"description":8467,"authors":8472,"heroImage":8468,"date":8473,"category":6980,"tags":8474},[1439],"2023-07-17",[6980,8475,1569],"growth",{"slug":8477,"featured":6,"template":736},"benefits-of-corporate-shadow-programs","content:en-us:blog:benefits-of-corporate-shadow-programs.yml","Benefits Of Corporate Shadow Programs","en-us/blog/benefits-of-corporate-shadow-programs.yml","en-us/blog/benefits-of-corporate-shadow-programs",{"_path":8483,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8484,"content":8490,"config":8495,"_id":8497,"_type":16,"title":8498,"_source":17,"_file":8499,"_stem":8500,"_extension":20},"/en-us/blog/set-up-infrastructure-for-cloud-development-environments",{"title":8485,"description":8486,"ogTitle":8485,"ogDescription":8486,"noIndex":6,"ogImage":8487,"ogUrl":8488,"ogSiteName":995,"ogType":996,"canonicalUrls":8488,"schema":8489},"Cloud infrastructure for on-demand development in GitLab","Learn how to set up the requirements, manage Kubernetes clusters in different clouds, create the first workspaces and custom images, and get tips and troubleshooting.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659883/Blog/Hero%20Images/post-cover-image.jpg","https://about.gitlab.com/blog/set-up-infrastructure-for-cloud-development-environments","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Set up your infrastructure for on-demand, cloud-based development environments in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-07-13\",\n      }",{"title":8491,"description":8486,"authors":8492,"heroImage":8487,"date":8493,"category":858,"tags":8494},"Set up your infrastructure for on-demand, cloud-based development environments in GitLab",[1424],"2023-07-13",[543,6980,564,1335,582],{"slug":8496,"featured":6,"template":736},"set-up-infrastructure-for-cloud-development-environments","content:en-us:blog:set-up-infrastructure-for-cloud-development-environments.yml","Set Up Infrastructure For Cloud Development Environments","en-us/blog/set-up-infrastructure-for-cloud-development-environments.yml","en-us/blog/set-up-infrastructure-for-cloud-development-environments",{"_path":8502,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8503,"content":8509,"config":8513,"_id":8515,"_type":16,"title":8516,"_source":17,"_file":8517,"_stem":8518,"_extension":20},"/en-us/blog/7-tips-on-how-to-successfully-talk-to-execs-about-devsecops",{"title":8504,"description":8505,"ogTitle":8504,"ogDescription":8505,"noIndex":6,"ogImage":8506,"ogUrl":8507,"ogSiteName":995,"ogType":996,"canonicalUrls":8507,"schema":8508},"7 tips on how to successfully talk to execs about DevSecOps","If you want to begin using DevSecOps to improve software development, you need to get business executives behind your plan. Here are tips to do just that.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670694/Blog/Hero%20Images/how-to-keep-remote-teams-engaged-cover.jpg","https://about.gitlab.com/blog/7-tips-on-how-to-successfully-talk-to-execs-about-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"7 tips on how to successfully talk to execs about DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-07-12\",\n      }",{"title":8504,"description":8505,"authors":8510,"heroImage":8506,"date":8511,"category":577,"tags":8512},[3999],"2023-07-12",[574,2815,6980],{"slug":8514,"featured":6,"template":736},"7-tips-on-how-to-successfully-talk-to-execs-about-devsecops","content:en-us:blog:7-tips-on-how-to-successfully-talk-to-execs-about-devsecops.yml","7 Tips On How To Successfully Talk To Execs About Devsecops","en-us/blog/7-tips-on-how-to-successfully-talk-to-execs-about-devsecops.yml","en-us/blog/7-tips-on-how-to-successfully-talk-to-execs-about-devsecops",{"_path":8520,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8521,"content":8527,"config":8533,"_id":8535,"_type":16,"title":8536,"_source":17,"_file":8537,"_stem":8538,"_extension":20},"/en-us/blog/building-new-fedora-project-website-with-gitlab",{"title":8522,"description":8523,"ogTitle":8522,"ogDescription":8523,"noIndex":6,"ogImage":8524,"ogUrl":8525,"ogSiteName":995,"ogType":996,"canonicalUrls":8525,"schema":8526},"How GitLab helped Fedora build websites and community","Learn how the Fedora Project recently modernized its web development practices and streamlined team workflows with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682851/Blog/Hero%20Images/communityhands.jpg","https://about.gitlab.com/blog/building-new-fedora-project-website-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How building modern websites with GitLab led to a healthier Fedora Project community\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Akashdeep Dhar\"}],\n        \"datePublished\": \"2023-07-11\",\n      }",{"title":8528,"description":8523,"authors":8529,"heroImage":8524,"date":8531,"category":1388,"tags":8532},"How building modern websites with GitLab led to a healthier Fedora Project community",[8530],"Akashdeep Dhar","2023-07-11",[1265,269,730],{"slug":8534,"featured":6,"template":736},"building-new-fedora-project-website-with-gitlab","content:en-us:blog:building-new-fedora-project-website-with-gitlab.yml","Building New Fedora Project Website With Gitlab","en-us/blog/building-new-fedora-project-website-with-gitlab.yml","en-us/blog/building-new-fedora-project-website-with-gitlab",{"_path":8540,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8541,"content":8546,"config":8549,"_id":8551,"_type":16,"title":8552,"_source":17,"_file":8553,"_stem":8554,"_extension":20},"/en-us/blog/github-to-gitlab-migration-made-easy",{"title":8542,"description":8543,"ogTitle":8542,"ogDescription":8543,"noIndex":6,"ogImage":6992,"ogUrl":8544,"ogSiteName":995,"ogType":996,"canonicalUrls":8544,"schema":8545},"GitHub to GitLab migration the easy way","Learn how easy it is to migrate from GitHub to GitLab using GitLab's project import functionality.","https://about.gitlab.com/blog/github-to-gitlab-migration-made-easy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitHub to GitLab migration the easy way\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2023-07-11\",\n      }",{"title":8542,"description":8543,"authors":8547,"heroImage":6992,"date":8531,"category":577,"tags":8548},[1097],[110,772,574,543],{"slug":8550,"featured":6,"template":736},"github-to-gitlab-migration-made-easy","content:en-us:blog:github-to-gitlab-migration-made-easy.yml","Github To Gitlab Migration Made Easy","en-us/blog/github-to-gitlab-migration-made-easy.yml","en-us/blog/github-to-gitlab-migration-made-easy",{"_path":8556,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8557,"content":8563,"config":8567,"_id":8569,"_type":16,"title":8570,"_source":17,"_file":8571,"_stem":8572,"_extension":20},"/en-us/blog/introducing-ci-components",{"title":8558,"description":8559,"ogTitle":8558,"ogDescription":8559,"noIndex":6,"ogImage":8560,"ogUrl":8561,"ogSiteName":995,"ogType":996,"canonicalUrls":8561,"schema":8562},"Introducing CI/CD components and how to use them in GitLab","Learn the main benefits for using CI/CD components in your CI/CD pipelines and how to achieve them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667676/Blog/Hero%20Images/buildingblocks.jpg","https://about.gitlab.com/blog/introducing-ci-components","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing CI/CD components and how to use them in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2023-07-10\",\n      }",{"title":8558,"description":8559,"authors":8564,"heroImage":8560,"date":8565,"category":858,"tags":8566},[1712],"2023-07-10",[772,110,730],{"slug":8568,"featured":6,"template":736},"introducing-ci-components","content:en-us:blog:introducing-ci-components.yml","Introducing Ci Components","en-us/blog/introducing-ci-components.yml","en-us/blog/introducing-ci-components",{"_path":8574,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8575,"content":8581,"config":8586,"_id":8588,"_type":16,"title":8589,"_source":17,"_file":8590,"_stem":8591,"_extension":20},"/en-us/blog/empowering-modelops-and-hpc-workloads-with-gpu-enabled-runners",{"title":8576,"description":8577,"ogTitle":8576,"ogDescription":8577,"noIndex":6,"ogImage":8578,"ogUrl":8579,"ogSiteName":995,"ogType":996,"canonicalUrls":8579,"schema":8580},"GPU-enabled runners for ModelOps and HPC workloads in CI/CD","Learn how to leverage our GitLab-hosted GPU-enabled runners for ModelOps and high-performance computing workloads.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682702/Blog/Hero%20Images/gitlab-data-science-icon.png","https://about.gitlab.com/blog/empowering-modelops-and-hpc-workloads-with-gpu-enabled-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Empower ModelOps and HPC workloads with GPU-enabled runners integrated with CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Engel\"}],\n        \"datePublished\": \"2023-07-06\",\n      }",{"title":8582,"description":8577,"authors":8583,"heroImage":8578,"date":8584,"category":769,"tags":8585},"Empower ModelOps and HPC workloads with GPU-enabled runners integrated with CI/CD",[3216],"2023-07-06",[574,728,110,731,730],{"slug":8587,"featured":6,"template":736},"empowering-modelops-and-hpc-workloads-with-gpu-enabled-runners","content:en-us:blog:empowering-modelops-and-hpc-workloads-with-gpu-enabled-runners.yml","Empowering Modelops And Hpc Workloads With Gpu Enabled Runners","en-us/blog/empowering-modelops-and-hpc-workloads-with-gpu-enabled-runners.yml","en-us/blog/empowering-modelops-and-hpc-workloads-with-gpu-enabled-runners",{"_path":8593,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8594,"content":8600,"config":8603,"_id":8605,"_type":16,"title":8606,"_source":17,"_file":8607,"_stem":8608,"_extension":20},"/en-us/blog/how-to-automate-creation-of-runners",{"title":8595,"description":8596,"ogTitle":8595,"ogDescription":8596,"noIndex":6,"ogImage":8597,"ogUrl":8598,"ogSiteName":995,"ogType":996,"canonicalUrls":8598,"schema":8599},"How to automate the creation of GitLab Runners","Follow this step-by-step guide for automating runner setup using new runner creation workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664087/Blog/Hero%20Images/tanukicover.jpg","https://about.gitlab.com/blog/how-to-automate-creation-of-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to automate the creation of GitLab Runners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2023-07-06\",\n      }",{"title":8595,"description":8596,"authors":8601,"heroImage":8597,"date":8584,"category":858,"tags":8602},[4857],[772,1335,1988],{"slug":8604,"featured":6,"template":736},"how-to-automate-creation-of-runners","content:en-us:blog:how-to-automate-creation-of-runners.yml","How To Automate Creation Of Runners","en-us/blog/how-to-automate-creation-of-runners.yml","en-us/blog/how-to-automate-creation-of-runners",{"_path":8610,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8611,"content":8617,"config":8620,"_id":8622,"_type":16,"title":8623,"_source":17,"_file":8624,"_stem":8625,"_extension":20},"/en-us/blog/meet-partner-the-good-docs-project",{"title":8612,"description":8613,"ogTitle":8612,"ogDescription":8613,"noIndex":6,"ogImage":8614,"ogUrl":8615,"ogSiteName":995,"ogType":996,"canonicalUrls":8615,"schema":8616},"How The Good Docs Project uses GitLab for documentation as code and more","In this video interview, meet our new Open Source Partner, The Good Docs Project, and learn about the benefits they are extracting from the DevSecOps platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682841/Blog/Hero%20Images/documentation1.jpg","https://about.gitlab.com/blog/meet-partner-the-good-docs-project","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How The Good Docs Project uses GitLab for documentation as code and more\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-07-06\",\n      }",{"title":8612,"description":8613,"authors":8618,"heroImage":8614,"date":8584,"category":1388,"tags":8619},[7329],[1265,269,730],{"slug":8621,"featured":6,"template":736},"meet-partner-the-good-docs-project","content:en-us:blog:meet-partner-the-good-docs-project.yml","Meet Partner The Good Docs Project","en-us/blog/meet-partner-the-good-docs-project.yml","en-us/blog/meet-partner-the-good-docs-project",{"_path":8627,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8628,"content":8634,"config":8638,"_id":8640,"_type":16,"title":8641,"_source":17,"_file":8642,"_stem":8643,"_extension":20},"/en-us/blog/beautifying-of-our-ui",{"title":8629,"description":8630,"ogTitle":8629,"ogDescription":8630,"noIndex":6,"ogImage":8631,"ogUrl":8632,"ogSiteName":995,"ogType":996,"canonicalUrls":8632,"schema":8633},"Beautifying our UI: Giving GitLab build features a fresh look","Get an inside look at how we are improving the usability of GitLab build features with multiple visual design improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682807/Blog/Hero%20Images/beautify.jpg","https://about.gitlab.com/blog/beautifying-of-our-ui","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Beautifying our UI: Giving GitLab build features a fresh look\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2023-07-05\",\n      }",{"title":8629,"description":8630,"authors":8635,"heroImage":8631,"date":8636,"category":8140,"tags":8637},[4929],"2023-07-05",[2703,2702],{"slug":8639,"featured":6,"template":736},"beautifying-of-our-ui","content:en-us:blog:beautifying-of-our-ui.yml","Beautifying Of Our Ui","en-us/blog/beautifying-of-our-ui.yml","en-us/blog/beautifying-of-our-ui",{"_path":8645,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8646,"content":8652,"config":8655,"_id":8657,"_type":16,"title":8658,"_source":17,"_file":8659,"_stem":8660,"_extension":20},"/en-us/blog/set-up-flux-for-gitops-on-openshift",{"title":8647,"description":8648,"ogTitle":8647,"ogDescription":8648,"noIndex":6,"ogImage":8649,"ogUrl":8650,"ogSiteName":995,"ogType":996,"canonicalUrls":8650,"schema":8651},"Set up Flux for GitOps to deploy workloads on OpenShift","Learn how to set up a sample project, complete a bootstrap Flux installation, and authenticate your installation with a project deploy token.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682825/Blog/Hero%20Images/genericworkflow.jpg","https://about.gitlab.com/blog/set-up-flux-for-gitops-on-openshift","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Set up Flux for GitOps to deploy workloads on OpenShift\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bart Zhang\"}],\n        \"datePublished\": \"2023-07-05\",\n      }",{"title":8647,"description":8648,"authors":8653,"heroImage":8649,"date":8636,"category":858,"tags":8654},[4717],[772,559],{"slug":8656,"featured":6,"template":736},"set-up-flux-for-gitops-on-openshift","content:en-us:blog:set-up-flux-for-gitops-on-openshift.yml","Set Up Flux For Gitops On Openshift","en-us/blog/set-up-flux-for-gitops-on-openshift.yml","en-us/blog/set-up-flux-for-gitops-on-openshift",{"_path":8662,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8663,"content":8669,"config":8673,"_id":8675,"_type":16,"title":8676,"_source":17,"_file":8677,"_stem":8678,"_extension":20},"/en-us/blog/gitlab-16-ai-and-security-take-center-stage",{"title":8664,"description":8665,"ogTitle":8664,"ogDescription":8665,"noIndex":6,"ogImage":8666,"ogUrl":8667,"ogSiteName":995,"ogType":996,"canonicalUrls":8667,"schema":8668},"GitLab 16: AI and security take center stage","Our GitLab 16 launch event showcased our AI-powered workflows that drive usability improvements, security enhancements, and observability advancements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671793/Blog/Hero%20Images/16_0-cover-image.png","https://about.gitlab.com/blog/gitlab-16-ai-and-security-take-center-stage","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 16: AI and security take center stage\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2023-06-30\",\n      }",{"title":8664,"description":8665,"authors":8670,"heroImage":8666,"date":8671,"category":769,"tags":8672},[2188],"2023-06-30",[728,543,892,790],{"slug":8674,"featured":6,"template":736},"gitlab-16-ai-and-security-take-center-stage","content:en-us:blog:gitlab-16-ai-and-security-take-center-stage.yml","Gitlab 16 Ai And Security Take Center Stage","en-us/blog/gitlab-16-ai-and-security-take-center-stage.yml","en-us/blog/gitlab-16-ai-and-security-take-center-stage",{"_path":8680,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8681,"content":8687,"config":8691,"_id":8693,"_type":16,"title":8694,"_source":17,"_file":8695,"_stem":8696,"_extension":20},"/en-us/blog/fake-gitlab-job-scam",{"title":8682,"description":8683,"ogTitle":8682,"ogDescription":8683,"noIndex":6,"ogImage":8684,"ogUrl":8685,"ogSiteName":995,"ogType":996,"canonicalUrls":8685,"schema":8686},"What to know about a fake job scam impersonating GitLab","GitLab Security is aware of a fake GitLab job scam, ultimately requesting job seekers pay thousands of dollars for 'technology equipment.' Here's how to spot it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682784/Blog/Hero%20Images/cautionsign.jpg","https://about.gitlab.com/blog/fake-gitlab-job-scam","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What to know about a fake job scam impersonating GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Coons\"}],\n        \"datePublished\": \"2023-06-29\",\n      }",{"title":8682,"description":8683,"authors":8688,"heroImage":8684,"date":8689,"category":1049,"tags":8690},[2116],"2023-06-29",[790,1049],{"slug":8692,"featured":6,"template":736},"fake-gitlab-job-scam","content:en-us:blog:fake-gitlab-job-scam.yml","Fake Gitlab Job Scam","en-us/blog/fake-gitlab-job-scam.yml","en-us/blog/fake-gitlab-job-scam",{"_path":8698,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8699,"content":8704,"config":8707,"_id":8709,"_type":16,"title":8710,"_source":17,"_file":8711,"_stem":8712,"_extension":20},"/en-us/blog/gitlab-visual-studio-extension",{"title":8700,"description":8701,"ogTitle":8700,"ogDescription":8701,"noIndex":6,"ogImage":1496,"ogUrl":8702,"ogSiteName":995,"ogType":996,"canonicalUrls":8702,"schema":8703},"GitLab for Visual Studio, including code suggestions, available in Beta","GitLab for Visual Studio is now available in Beta, bringing GitLab Duo code suggestions to Visual Studio.","https://about.gitlab.com/blog/gitlab-visual-studio-extension","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab for Visual Studio, including code suggestions, available in Beta\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kai Armstrong\"}],\n        \"datePublished\": \"2023-06-29\",\n      }",{"title":8700,"description":8701,"authors":8705,"heroImage":1496,"date":8689,"category":769,"tags":8706},[8385],[574,731,730,728],{"slug":8708,"featured":6,"template":736},"gitlab-visual-studio-extension","content:en-us:blog:gitlab-visual-studio-extension.yml","Gitlab Visual Studio Extension","en-us/blog/gitlab-visual-studio-extension.yml","en-us/blog/gitlab-visual-studio-extension",{"_path":8714,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8715,"content":8721,"config":8724,"_id":8726,"_type":16,"title":8727,"_source":17,"_file":8728,"_stem":8729,"_extension":20},"/en-us/blog/secureflag-integrated-with-gitlab-for-rapid-vulnerability-remediation",{"title":8716,"description":8717,"ogTitle":8716,"ogDescription":8717,"noIndex":6,"ogImage":8718,"ogUrl":8719,"ogSiteName":995,"ogType":996,"canonicalUrls":8719,"schema":8720},"SecureFlag integrated with GitLab for rapid vulnerability remediation","Empower developers with hands-on security training within the DevSecOps platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679321/Blog/Hero%20Images/cover_image_secureflag.png","https://about.gitlab.com/blog/secureflag-integrated-with-gitlab-for-rapid-vulnerability-remediation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SecureFlag integrated with GitLab for rapid vulnerability remediation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alana Bellucci\"}],\n        \"datePublished\": \"2023-06-29\",\n      }",{"title":8716,"description":8717,"authors":8722,"heroImage":8718,"date":8689,"category":790,"tags":8723},[5072],[790,574,731,730],{"slug":8725,"featured":6,"template":736},"secureflag-integrated-with-gitlab-for-rapid-vulnerability-remediation","content:en-us:blog:secureflag-integrated-with-gitlab-for-rapid-vulnerability-remediation.yml","Secureflag Integrated With Gitlab For Rapid Vulnerability Remediation","en-us/blog/secureflag-integrated-with-gitlab-for-rapid-vulnerability-remediation.yml","en-us/blog/secureflag-integrated-with-gitlab-for-rapid-vulnerability-remediation",{"_path":8731,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8732,"content":8737,"config":8743,"_id":8745,"_type":16,"title":8746,"_source":17,"_file":8747,"_stem":8748,"_extension":20},"/en-us/blog/introduction-of-oidc-modules-for-integration-between-google-cloud-and-gitlab-ci",{"title":8733,"description":8734,"ogTitle":8733,"ogDescription":8734,"noIndex":6,"ogImage":7482,"ogUrl":8735,"ogSiteName":995,"ogType":996,"canonicalUrls":8735,"schema":8736},"OIDC simplifies GitLab CI/CD authentication with Google Cloud","OpenID Connect can sometimes be complex, but it's the safer and recommended way to authenticate your GitLab pipeline with Google Cloud. This tutorial shows you how.","https://about.gitlab.com/blog/introduction-of-oidc-modules-for-integration-between-google-cloud-and-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How OIDC can simplify authentication of GitLab CI/CD pipelines with Google Cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hiroki Suezawa\"},{\"@type\":\"Person\",\"name\":\"Dhruv Jain\"}],\n        \"datePublished\": \"2023-06-28\",\n      }",{"title":8738,"description":8734,"authors":8739,"heroImage":7482,"date":8741,"category":790,"tags":8742},"How OIDC can simplify authentication of GitLab CI/CD pipelines with Google Cloud",[2207,8740],"Dhruv Jain","2023-06-28",[772,110,790,582],{"slug":8744,"featured":6,"template":736},"introduction-of-oidc-modules-for-integration-between-google-cloud-and-gitlab-ci","content:en-us:blog:introduction-of-oidc-modules-for-integration-between-google-cloud-and-gitlab-ci.yml","Introduction Of Oidc Modules For Integration Between Google Cloud And Gitlab Ci","en-us/blog/introduction-of-oidc-modules-for-integration-between-google-cloud-and-gitlab-ci.yml","en-us/blog/introduction-of-oidc-modules-for-integration-between-google-cloud-and-gitlab-ci",{"_path":8750,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8751,"content":8757,"config":8762,"_id":8764,"_type":16,"title":8765,"_source":17,"_file":8766,"_stem":8767,"_extension":20},"/en-us/blog/efficient-devsecops-workflows-with-rules-for-conditional-pipelines",{"title":8752,"description":8753,"ogTitle":8752,"ogDescription":8753,"noIndex":6,"ogImage":8754,"ogUrl":8755,"ogSiteName":995,"ogType":996,"canonicalUrls":8755,"schema":8756},"DevSecOps workflows with conditional CI/CD pipeline rules","CI/CD pipelines can be simple or complex, what makes them efficient are CI rules that define when and how they run.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669673/Blog/Hero%20Images/engineering.png","https://about.gitlab.com/blog/efficient-devsecops-workflows-with-rules-for-conditional-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to create efficient DevSecOps workflows with rules for conditional CI/CD pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2023-06-27\",\n      }",{"title":8758,"description":8753,"authors":8759,"heroImage":8754,"date":8760,"category":858,"tags":8761},"How to create efficient DevSecOps workflows with rules for conditional CI/CD pipelines",[3181],"2023-06-27",[772,2097,2098,574,543],{"slug":8763,"featured":6,"template":736},"efficient-devsecops-workflows-with-rules-for-conditional-pipelines","content:en-us:blog:efficient-devsecops-workflows-with-rules-for-conditional-pipelines.yml","Efficient Devsecops Workflows With Rules For Conditional Pipelines","en-us/blog/efficient-devsecops-workflows-with-rules-for-conditional-pipelines.yml","en-us/blog/efficient-devsecops-workflows-with-rules-for-conditional-pipelines",{"_path":8769,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8770,"content":8776,"config":8780,"_id":8782,"_type":16,"title":8783,"_source":17,"_file":8784,"_stem":8785,"_extension":20},"/en-us/blog/quick-start-guide-for-gitlab-workspaces",{"title":8771,"description":8772,"ogTitle":8771,"ogDescription":8772,"noIndex":6,"ogImage":8773,"ogUrl":8774,"ogSiteName":995,"ogType":996,"canonicalUrls":8774,"schema":8775},"Quickstart guide for GitLab Remote Development workspaces","Learn how to create a workspace from your GitLab account and work directly from the remote development environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664219/Blog/Hero%20Images/2023-06-22-quickstart-workspaces-cover-image2.png","https://about.gitlab.com/blog/quick-start-guide-for-gitlab-workspaces","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Quickstart guide for GitLab Remote Development workspaces\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2023-06-26\",\n      }",{"title":8771,"description":8772,"authors":8777,"heroImage":8773,"date":8778,"category":858,"tags":8779},[1016],"2023-06-26",[772,564,110],{"slug":8781,"featured":6,"template":736},"quick-start-guide-for-gitlab-workspaces","content:en-us:blog:quick-start-guide-for-gitlab-workspaces.yml","Quick Start Guide For Gitlab Workspaces","en-us/blog/quick-start-guide-for-gitlab-workspaces.yml","en-us/blog/quick-start-guide-for-gitlab-workspaces",{"_path":8787,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8788,"content":8794,"config":8797,"_id":8799,"_type":16,"title":8800,"_source":17,"_file":8801,"_stem":8802,"_extension":20},"/en-us/blog/three-steps-to-optimize-software-value-streams",{"title":8789,"description":8790,"ogTitle":8789,"ogDescription":8790,"noIndex":6,"ogImage":8791,"ogUrl":8792,"ogSiteName":995,"ogType":996,"canonicalUrls":8792,"schema":8793},"GitLab's 3 steps to optimizing software value streams","Discover the power of GitLab Value Streams Dashboard (VSD) for optimizing software delivery workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667893/Blog/Hero%20Images/workflow.jpg","https://about.gitlab.com/blog/three-steps-to-optimize-software-value-streams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's 3 steps to optimizing software value streams\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2023-06-26\",\n      }",{"title":8789,"description":8790,"authors":8795,"heroImage":8791,"date":8778,"category":577,"tags":8796},[2886],[729,564,730,1988,1335],{"slug":8798,"featured":6,"template":736},"three-steps-to-optimize-software-value-streams","content:en-us:blog:three-steps-to-optimize-software-value-streams.yml","Three Steps To Optimize Software Value Streams","en-us/blog/three-steps-to-optimize-software-value-streams.yml","en-us/blog/three-steps-to-optimize-software-value-streams",{"_path":8804,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8805,"content":8810,"config":8814,"_id":8816,"_type":16,"title":8817,"_source":17,"_file":8818,"_stem":8819,"_extension":20},"/en-us/blog/meet-gitlab-duo-the-suite-of-ai-capabilities",{"title":8806,"description":8807,"ogTitle":8806,"ogDescription":8807,"noIndex":6,"ogImage":6567,"ogUrl":8808,"ogSiteName":995,"ogType":996,"canonicalUrls":8808,"schema":8809},"Meet GitLab Duo, the suite of AI capabilities powering your workflows","Learn about GitLab Duo, an expanding toolbox of features integrated directly into the GitLab platform to assist DevSecOps teams.","https://about.gitlab.com/blog/meet-gitlab-duo-the-suite-of-ai-capabilities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet GitLab Duo, the suite of AI capabilities powering your workflows\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2023-06-22\",\n      }",{"title":8806,"description":8807,"authors":8811,"heroImage":6567,"date":8812,"category":769,"tags":8813},[2188],"2023-06-22",[1049,730,728,574],{"slug":8815,"featured":6,"template":736},"meet-gitlab-duo-the-suite-of-ai-capabilities","content:en-us:blog:meet-gitlab-duo-the-suite-of-ai-capabilities.yml","Meet Gitlab Duo The Suite Of Ai Capabilities","en-us/blog/meet-gitlab-duo-the-suite-of-ai-capabilities.yml","en-us/blog/meet-gitlab-duo-the-suite-of-ai-capabilities",{"_path":8821,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8822,"content":8827,"config":8831,"_id":8833,"_type":16,"title":8834,"_source":17,"_file":8835,"_stem":8836,"_extension":20},"/en-us/blog/contributions-to-latest-git-release",{"title":8823,"description":8824,"ogTitle":8823,"ogDescription":8824,"noIndex":6,"ogImage":7360,"ogUrl":8825,"ogSiteName":995,"ogType":996,"canonicalUrls":8825,"schema":8826},"Git 2.41 release - Here are five of our contributions in detail","Find out how GitLab's Git team helped improve the latest version of Git.","https://about.gitlab.com/blog/contributions-to-latest-git-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git 2.41 release - Here are five of our contributions in detail\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Cai\"}],\n        \"datePublished\": \"2023-06-20\",\n      }",{"title":8823,"description":8824,"authors":8828,"heroImage":7360,"date":8829,"category":577,"tags":8830},[4769],"2023-06-20",[1195,1049,1265,269],{"slug":8832,"featured":6,"template":736},"contributions-to-latest-git-release","content:en-us:blog:contributions-to-latest-git-release.yml","Contributions To Latest Git Release","en-us/blog/contributions-to-latest-git-release.yml","en-us/blog/contributions-to-latest-git-release",{"_path":8838,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8839,"content":8845,"config":8848,"_id":8850,"_type":16,"title":8851,"_source":17,"_file":8852,"_stem":8853,"_extension":20},"/en-us/blog/interview-the-open-group",{"title":8840,"description":8841,"ogTitle":8840,"ogDescription":8841,"noIndex":6,"ogImage":8842,"ogUrl":8843,"ogSiteName":995,"ogType":996,"canonicalUrls":8843,"schema":8844},"Get to know our newest open source partner, The Open Group","The Open Group leaders explain how the organization uses GitLab to build and maintain open standards for transformative digital technologies.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679170/Blog/Hero%20Images/migration-data.jpg","https://about.gitlab.com/blog/interview-the-open-group","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get to know our newest open source partner, The Open Group\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-06-20\",\n      }",{"title":8840,"description":8841,"authors":8846,"heroImage":8842,"date":8829,"category":1388,"tags":8847},[7329],[1265,269,730],{"slug":8849,"featured":6,"template":736},"interview-the-open-group","content:en-us:blog:interview-the-open-group.yml","Interview The Open Group","en-us/blog/interview-the-open-group.yml","en-us/blog/interview-the-open-group",{"_path":8855,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8856,"content":8861,"config":8866,"_id":8868,"_type":16,"title":8869,"_source":17,"_file":8870,"_stem":8871,"_extension":20},"/en-us/blog/gitlab-dedicated-available",{"title":8857,"description":8858,"ogTitle":8857,"ogDescription":8858,"noIndex":6,"ogImage":6442,"ogUrl":8859,"ogSiteName":995,"ogType":996,"canonicalUrls":8859,"schema":8860},"GitLab Dedicated single-tenant SaaS now generally available","Achieve control and convenience with a fully managed DevSecOps platform.","https://about.gitlab.com/blog/gitlab-dedicated-available","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Dedicated single-tenant SaaS now generally available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Thomas\"}],\n        \"datePublished\": \"2023-06-15\",\n      }",{"title":8857,"description":8858,"authors":8862,"heroImage":6442,"date":8864,"category":1049,"tags":8865},[8863],"Andrew Thomas","2023-06-15",[564,1569,731],{"slug":8867,"featured":6,"template":736},"gitlab-dedicated-available","content:en-us:blog:gitlab-dedicated-available.yml","Gitlab Dedicated Available","en-us/blog/gitlab-dedicated-available.yml","en-us/blog/gitlab-dedicated-available",{"_path":8873,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8874,"content":8879,"config":8882,"_id":8884,"_type":16,"title":8885,"_source":17,"_file":8886,"_stem":8887,"_extension":20},"/en-us/blog/self-managed-support-for-code-suggestions",{"title":8875,"description":8876,"ogTitle":8875,"ogDescription":8876,"noIndex":6,"ogImage":1496,"ogUrl":8877,"ogSiteName":995,"ogType":996,"canonicalUrls":8877,"schema":8878},"Self-managed support for Code Suggestions (Beta)","Self-managed support for Code Suggestions (Beta) is coming in GitLab 16.1.","https://about.gitlab.com/blog/self-managed-support-for-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Self-managed support for Code Suggestions (Beta)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Roger Woo\"}],\n        \"datePublished\": \"2023-06-15\",\n      }",{"title":8875,"description":8876,"authors":8880,"heroImage":1496,"date":8864,"category":769,"tags":8881},[3054],[574,731,730,728],{"slug":8883,"featured":6,"template":736},"self-managed-support-for-code-suggestions","content:en-us:blog:self-managed-support-for-code-suggestions.yml","Self Managed Support For Code Suggestions","en-us/blog/self-managed-support-for-code-suggestions.yml","en-us/blog/self-managed-support-for-code-suggestions",{"_path":8889,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8890,"content":8895,"config":8900,"_id":8902,"_type":16,"title":8903,"_source":17,"_file":8904,"_stem":8905,"_extension":20},"/en-us/blog/gitlab-extends-omnibus-package-signing-key-expiration",{"title":8891,"description":8892,"ogTitle":8891,"ogDescription":8892,"noIndex":6,"ogImage":7482,"ogUrl":8893,"ogSiteName":995,"ogType":996,"canonicalUrls":8893,"schema":8894},"GitLab extends Omnibus package signing key expiration to 2024","Our GPG key will now expire on July 1, 2024. Here's what you need to know.","https://about.gitlab.com/blog/gitlab-extends-omnibus-package-signing-key-expiration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab extends Omnibus package signing key expiration to 2024\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"João Alexandre Prado Tavares Cunha\"}],\n        \"datePublished\": \"2023-06-14\",\n      }",{"title":8891,"description":8892,"authors":8896,"heroImage":7482,"date":8898,"category":1049,"tags":8899},[8897],"João Alexandre Prado Tavares Cunha","2023-06-14",[790,752,1335,1049],{"slug":8901,"featured":6,"template":736},"gitlab-extends-omnibus-package-signing-key-expiration","content:en-us:blog:gitlab-extends-omnibus-package-signing-key-expiration.yml","Gitlab Extends Omnibus Package Signing Key Expiration","en-us/blog/gitlab-extends-omnibus-package-signing-key-expiration.yml","en-us/blog/gitlab-extends-omnibus-package-signing-key-expiration",{"_path":8907,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8908,"content":8914,"config":8917,"_id":8919,"_type":16,"title":8920,"_source":17,"_file":8921,"_stem":8922,"_extension":20},"/en-us/blog/managing-multiple-environments-with-terraform-and-gitlab-ci",{"title":8909,"description":8910,"ogTitle":8909,"ogDescription":8910,"noIndex":6,"ogImage":8911,"ogUrl":8912,"ogSiteName":995,"ogType":996,"canonicalUrls":8912,"schema":8913},"Managing multiple environments with Terraform and GitLab CI","This tutorial shows how to set up and manage three different environments in one project using GitLab CI and Terraform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663779/Blog/Hero%20Images/cicd-2018_blogimage.jpg","https://about.gitlab.com/blog/managing-multiple-environments-with-terraform-and-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Managing multiple environments with Terraform and GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sophia Manicor\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2023-06-14\",\n      }",{"title":8909,"description":8910,"authors":8915,"heroImage":8911,"date":8898,"category":790,"tags":8916},[4018,2997],[564,2097,574,790],{"slug":8918,"featured":6,"template":736},"managing-multiple-environments-with-terraform-and-gitlab-ci","content:en-us:blog:managing-multiple-environments-with-terraform-and-gitlab-ci.yml","Managing Multiple Environments With Terraform And Gitlab Ci","en-us/blog/managing-multiple-environments-with-terraform-and-gitlab-ci.yml","en-us/blog/managing-multiple-environments-with-terraform-and-gitlab-ci",{"_path":8924,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8925,"content":8930,"config":8932,"_id":8934,"_type":16,"title":8935,"_source":17,"_file":8936,"_stem":8937,"_extension":20},"/en-us/blog/our-privacy-policy-has-been-updated",{"title":8926,"description":8927,"ogTitle":8926,"ogDescription":8927,"noIndex":6,"ogImage":6170,"ogUrl":8928,"ogSiteName":995,"ogType":996,"canonicalUrls":8928,"schema":8929},"Our Privacy Policy has been updated","Our updated Privacy Policy clarifies our existing data processing activities.","https://about.gitlab.com/blog/our-privacy-policy-has-been-updated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our Privacy Policy has been updated\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2023-06-14\",\n      }",{"title":8926,"description":8927,"authors":8931,"heroImage":6170,"date":8898,"category":301},[1000],{"slug":8933,"featured":6,"template":736},"our-privacy-policy-has-been-updated","content:en-us:blog:our-privacy-policy-has-been-updated.yml","Our Privacy Policy Has Been Updated","en-us/blog/our-privacy-policy-has-been-updated.yml","en-us/blog/our-privacy-policy-has-been-updated",{"_path":8939,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8940,"content":8946,"config":8951,"_id":8953,"_type":16,"title":8954,"_source":17,"_file":8955,"_stem":8956,"_extension":20},"/en-us/blog/android-cicd-with-gitlab",{"title":8941,"description":8942,"ogTitle":8941,"ogDescription":8942,"noIndex":6,"ogImage":8943,"ogUrl":8944,"ogSiteName":995,"ogType":996,"canonicalUrls":8944,"schema":8945},"Tutorial: Android CI/CD with GitLab","Learn how to create an automated Android CI/CD pipeline using GitLab and fastlane.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669316/Blog/Hero%20Images/angela-compagnone-4Iyg6cNU7sI-unsplash.jpg","https://about.gitlab.com/blog/android-cicd-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Android CI/CD with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darby Frey\"}],\n        \"datePublished\": \"2023-06-13\",\n      }",{"title":8941,"description":8942,"authors":8947,"heroImage":8943,"date":8949,"category":858,"tags":8950},[8948],"Darby Frey","2023-06-13",[564,110,772],{"slug":8952,"featured":6,"template":736},"android-cicd-with-gitlab","content:en-us:blog:android-cicd-with-gitlab.yml","Android Cicd With Gitlab","en-us/blog/android-cicd-with-gitlab.yml","en-us/blog/android-cicd-with-gitlab",{"_path":8958,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8959,"content":8964,"config":8967,"_id":8969,"_type":16,"title":8970,"_source":17,"_file":8971,"_stem":8972,"_extension":20},"/en-us/blog/how-secret-detection-can-proactively-revoke-leaked-credentials",{"title":8960,"description":8961,"ogTitle":8960,"ogDescription":8961,"noIndex":6,"ogImage":5639,"ogUrl":8962,"ogSiteName":995,"ogType":996,"canonicalUrls":8962,"schema":8963},"How Secret Detection can proactively revoke leaked credentials","GitLab extends Secret Detection capabilities to customers on Google Cloud.","https://about.gitlab.com/blog/how-secret-detection-can-proactively-revoke-leaked-credentials","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Secret Detection can proactively revoke leaked credentials\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Connor Gilbert\"}],\n        \"datePublished\": \"2023-06-13\",\n      }",{"title":8960,"description":8961,"authors":8965,"heroImage":5639,"date":8949,"category":790,"tags":8966},[4440],[790,582,284],{"slug":8968,"featured":6,"template":736},"how-secret-detection-can-proactively-revoke-leaked-credentials","content:en-us:blog:how-secret-detection-can-proactively-revoke-leaked-credentials.yml","How Secret Detection Can Proactively Revoke Leaked Credentials","en-us/blog/how-secret-detection-can-proactively-revoke-leaked-credentials.yml","en-us/blog/how-secret-detection-can-proactively-revoke-leaked-credentials",{"_path":8974,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8975,"content":8980,"config":8984,"_id":8986,"_type":16,"title":8987,"_source":17,"_file":8988,"_stem":8989,"_extension":20},"/en-us/blog/getting-started-with-value-streams-dashboard",{"title":8976,"description":8977,"ogTitle":8976,"ogDescription":8977,"noIndex":6,"ogImage":8666,"ogUrl":8978,"ogSiteName":995,"ogType":996,"canonicalUrls":8978,"schema":8979},"Getting started with the new GitLab Value Streams Dashboard","Benchmark your value stream lifecycle, DORA, and vulnerabilities metrics to gain valuable insights and uncover patterns for continuous improvements.","https://about.gitlab.com/blog/getting-started-with-value-streams-dashboard","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with the new GitLab Value Streams Dashboard\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2023-06-12\",\n      }",{"title":8976,"description":8977,"authors":8981,"heroImage":8666,"date":8982,"category":858,"tags":8983},[2886],"2023-06-12",[772,730,1988,1335,729],{"slug":8985,"featured":6,"template":736},"getting-started-with-value-streams-dashboard","content:en-us:blog:getting-started-with-value-streams-dashboard.yml","Getting Started With Value Streams Dashboard","en-us/blog/getting-started-with-value-streams-dashboard.yml","en-us/blog/getting-started-with-value-streams-dashboard",{"_path":8991,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":8992,"content":8997,"config":9001,"_id":9003,"_type":16,"title":9004,"_source":17,"_file":9005,"_stem":9006,"_extension":20},"/en-us/blog/improving-accessibility-in-gitlab-navigation",{"title":8993,"description":8994,"ogTitle":8993,"ogDescription":8994,"noIndex":6,"ogImage":8597,"ogUrl":8995,"ogSiteName":995,"ogType":996,"canonicalUrls":8995,"schema":8996},"How we improved accessibility in GitLab’s new navigation","A new navigation redesign provides an excellent opportunity to build upon the existing experience and improve accessibility for everyone.","https://about.gitlab.com/blog/improving-accessibility-in-gitlab-navigation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we improved accessibility in GitLab’s new navigation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Scott de Jonge\"}],\n        \"datePublished\": \"2023-06-12\",\n      }",{"title":8993,"description":8994,"authors":8998,"heroImage":8597,"date":8982,"category":858,"tags":9000},[8999],"Scott de Jonge",[731],{"slug":9002,"featured":6,"template":736},"improving-accessibility-in-gitlab-navigation","content:en-us:blog:improving-accessibility-in-gitlab-navigation.yml","Improving Accessibility In Gitlab Navigation","en-us/blog/improving-accessibility-in-gitlab-navigation.yml","en-us/blog/improving-accessibility-in-gitlab-navigation",{"_path":9008,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9009,"content":9014,"config":9018,"_id":9020,"_type":16,"title":9021,"_source":17,"_file":9022,"_stem":9023,"_extension":20},"/en-us/blog/best-practices-leading-orgs-to-release-software-faster",{"title":9010,"description":9011,"ogTitle":9010,"ogDescription":9011,"noIndex":6,"ogImage":6938,"ogUrl":9012,"ogSiteName":995,"ogType":996,"canonicalUrls":9012,"schema":9013},"4 best practices leading orgs to release software faster","GitLab's 2023 Global DevSecOps Survey illuminates the strategies that organizations deploying more frequently have in common.","https://about.gitlab.com/blog/best-practices-leading-orgs-to-release-software-faster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 best practices leading orgs to release software faster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kristina Weis\"}],\n        \"datePublished\": \"2023-06-08\",\n      }",{"title":9010,"description":9011,"authors":9015,"heroImage":6938,"date":9016,"category":8140,"tags":9017},[6411],"2023-06-08",[7788,110,582,574],{"slug":9019,"featured":6,"template":736},"best-practices-leading-orgs-to-release-software-faster","content:en-us:blog:best-practices-leading-orgs-to-release-software-faster.yml","Best Practices Leading Orgs To Release Software Faster","en-us/blog/best-practices-leading-orgs-to-release-software-faster.yml","en-us/blog/best-practices-leading-orgs-to-release-software-faster",{"_path":9025,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9026,"content":9031,"config":9034,"_id":9036,"_type":16,"title":9037,"_source":17,"_file":9038,"_stem":9039,"_extension":20},"/en-us/blog/training-and-deploying-ai-models-with-gitlab-and-vertex-ai",{"title":9027,"description":9028,"ogTitle":9027,"ogDescription":9028,"noIndex":6,"ogImage":1496,"ogUrl":9029,"ogSiteName":995,"ogType":996,"canonicalUrls":9029,"schema":9030},"Train and deploy AI models with GitLab and Google Cloud's Vertex AI","Demo of GitLab's DevSecOps capabilities combined with Vertex AI's scalable ML platform, designed with the aim of rapid and secure AI deployments.","https://about.gitlab.com/blog/training-and-deploying-ai-models-with-gitlab-and-vertex-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Train and deploy AI models with GitLab and Google Cloud's Vertex AI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"}],\n        \"datePublished\": \"2023-06-08\",\n      }",{"title":9027,"description":9028,"authors":9032,"heroImage":1496,"date":9016,"category":769,"tags":9033},[1727],[574,731,730,728],{"slug":9035,"featured":6,"template":736},"training-and-deploying-ai-models-with-gitlab-and-vertex-ai","content:en-us:blog:training-and-deploying-ai-models-with-gitlab-and-vertex-ai.yml","Training And Deploying Ai Models With Gitlab And Vertex Ai","en-us/blog/training-and-deploying-ai-models-with-gitlab-and-vertex-ai.yml","en-us/blog/training-and-deploying-ai-models-with-gitlab-and-vertex-ai",{"_path":9041,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9042,"content":9048,"config":9053,"_id":9055,"_type":16,"title":9056,"_source":17,"_file":9057,"_stem":9058,"_extension":20},"/en-us/blog/gitlab-leader-gartner-magic-quadrant-devops-platforms",{"title":9043,"description":9044,"ogTitle":9043,"ogDescription":9044,"noIndex":6,"ogImage":9045,"ogUrl":9046,"ogSiteName":995,"ogType":996,"canonicalUrls":9046,"schema":9047},"GitLab named Leader in 2023 Gartner DevOps Platform Quadrant","In the first Gartner® Magic Quadrant™ for this category, GitLab is positioned highest on the Ability to Execute axis.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663830/Blog/Hero%20Images/gartner-report-blog-asset.jpg","https://about.gitlab.com/blog/gitlab-leader-gartner-magic-quadrant-devops-platforms","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named a Leader in the 2023 Gartner Magic Quadrant for DevOps Platforms\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ashley Kramer\"}],\n        \"datePublished\": \"2023-06-07\",\n      }",{"title":9049,"description":9044,"authors":9050,"heroImage":9045,"date":9051,"category":8140,"tags":9052},"GitLab named a Leader in the 2023 Gartner Magic Quadrant for DevOps Platforms",[4570],"2023-06-07",[1049,2025,543],{"slug":9054,"featured":6,"template":736},"gitlab-leader-gartner-magic-quadrant-devops-platforms","content:en-us:blog:gitlab-leader-gartner-magic-quadrant-devops-platforms.yml","Gitlab Leader Gartner Magic Quadrant Devops Platforms","en-us/blog/gitlab-leader-gartner-magic-quadrant-devops-platforms.yml","en-us/blog/gitlab-leader-gartner-magic-quadrant-devops-platforms",{"_path":9060,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9061,"content":9067,"config":9070,"_id":9072,"_type":16,"title":9073,"_source":17,"_file":9074,"_stem":9075,"_extension":20},"/en-us/blog/ios-cicd-with-gitlab",{"title":9062,"description":9063,"ogTitle":9062,"ogDescription":9063,"noIndex":6,"ogImage":9064,"ogUrl":9065,"ogSiteName":995,"ogType":996,"canonicalUrls":9065,"schema":9066},"Tutorial: iOS CI/CD with GitLab","Learn how to create an automated CI/CD pipeline using GitLab and fastlane.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669340/Blog/Hero%20Images/john-cameron-DgRb7aAGK4k-unsplash.jpg","https://about.gitlab.com/blog/ios-cicd-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: iOS CI/CD with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darby Frey\"}],\n        \"datePublished\": \"2023-06-07\",\n      }",{"title":9062,"description":9063,"authors":9068,"heroImage":9064,"date":9051,"category":858,"tags":9069},[8948],[564,110,772],{"slug":9071,"featured":6,"template":736},"ios-cicd-with-gitlab","content:en-us:blog:ios-cicd-with-gitlab.yml","Ios Cicd With Gitlab","en-us/blog/ios-cicd-with-gitlab.yml","en-us/blog/ios-cicd-with-gitlab",{"_path":9077,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9078,"content":9084,"config":9088,"_id":9090,"_type":16,"title":9091,"_source":17,"_file":9092,"_stem":9093,"_extension":20},"/en-us/blog/gitlab-leader-forrester-wave-integrated-software-delivery-platforms",{"title":9079,"description":9080,"ogTitle":9079,"ogDescription":9080,"noIndex":6,"ogImage":9081,"ogUrl":9082,"ogSiteName":995,"ogType":996,"canonicalUrls":9082,"schema":9083},"GitLab named Leader in The Forrester Wave Integrated Software Delivery Platforms 2023","The Forrester report recognized GitLab for its roadmap, which includes supply chain security, enhanced UI, granular security and compliance controls, and pipeline security.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682752/Blog/Hero%20Images/Forrestercoverimage.png","https://about.gitlab.com/blog/gitlab-leader-forrester-wave-integrated-software-delivery-platforms","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named Leader in The Forrester Wave Integrated Software Delivery Platforms 2023\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2023-06-06\",\n      }",{"title":9079,"description":9080,"authors":9085,"heroImage":9081,"date":9086,"category":8140,"tags":9087},[1000],"2023-06-06",[1049,2025,543],{"slug":9089,"featured":6,"template":736},"gitlab-leader-forrester-wave-integrated-software-delivery-platforms","content:en-us:blog:gitlab-leader-forrester-wave-integrated-software-delivery-platforms.yml","Gitlab Leader Forrester Wave Integrated Software Delivery Platforms","en-us/blog/gitlab-leader-forrester-wave-integrated-software-delivery-platforms.yml","en-us/blog/gitlab-leader-forrester-wave-integrated-software-delivery-platforms",{"_path":9095,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9096,"content":9101,"config":9105,"_id":9107,"_type":16,"title":9108,"_source":17,"_file":9109,"_stem":9110,"_extension":20},"/en-us/blog/introducing-achievements-system",{"title":9097,"description":9098,"ogTitle":9097,"ogDescription":9098,"noIndex":6,"ogImage":8597,"ogUrl":9099,"ogSiteName":995,"ogType":996,"canonicalUrls":9099,"schema":9100},"Introducing the GitLab Achievements feature","Boost engagement among your employees and community with achievements.","https://about.gitlab.com/blog/introducing-achievements-system","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing the GitLab Achievements feature\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nick Veenhof\"},{\"@type\":\"Person\",\"name\":\"Christina Lohr\"}],\n        \"datePublished\": \"2023-06-05\",\n      }",{"title":9097,"description":9098,"authors":9102,"heroImage":8597,"date":9103,"category":1049,"tags":9104},[1513,1664],"2023-06-05",[269,730,1049],{"slug":9106,"featured":6,"template":736},"introducing-achievements-system","content:en-us:blog:introducing-achievements-system.yml","Introducing Achievements System","en-us/blog/introducing-achievements-system.yml","en-us/blog/introducing-achievements-system",{"_path":9112,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9113,"content":9118,"config":9122,"_id":9124,"_type":16,"title":9125,"_source":17,"_file":9126,"_stem":9127,"_extension":20},"/en-us/blog/extending-code-suggestions",{"title":9114,"description":9115,"ogTitle":9114,"ogDescription":9115,"noIndex":6,"ogImage":1496,"ogUrl":9116,"ogSiteName":995,"ogType":996,"canonicalUrls":9116,"schema":9117},"ML experiment: Extending Code Suggestions to more development environments","Learn how GitLab is experimenting with extending Code Suggestions to Visual Studio, JetBrains IDE, Neovim, and other environments in our ongoing 'AI/ML in DevSecOps' series.","https://about.gitlab.com/blog/extending-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Extending Code Suggestions to more development environments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kai Armstrong\"}],\n        \"datePublished\": \"2023-06-01\",\n      }",{"title":9114,"description":9115,"authors":9119,"heroImage":1496,"date":9120,"category":769,"tags":9121},[8385],"2023-06-01",[574,731,730,728],{"slug":9123,"featured":6,"template":736},"extending-code-suggestions","content:en-us:blog:extending-code-suggestions.yml","Extending Code Suggestions","en-us/blog/extending-code-suggestions.yml","en-us/blog/extending-code-suggestions",{"_path":9129,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9130,"content":9135,"config":9139,"_id":9141,"_type":16,"title":9142,"_source":17,"_file":9143,"_stem":9144,"_extension":20},"/en-us/blog/value-stream-total-time-chart",{"title":9131,"description":9132,"ogTitle":9131,"ogDescription":9132,"noIndex":6,"ogImage":6369,"ogUrl":9133,"ogSiteName":995,"ogType":996,"canonicalUrls":9133,"schema":9134},"Value stream optimization with GitLab's Total Time Chart","Learn how this new analytics feature provides immediate insights about the time spent in each stage of your workstream.","https://about.gitlab.com/blog/value-stream-total-time-chart","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Value stream management: Total Time Chart simplifies top-down optimization flow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2023-06-01\",\n      }",{"title":9136,"description":9132,"authors":9137,"heroImage":6369,"date":9120,"category":577,"tags":9138},"Value stream management: Total Time Chart simplifies top-down optimization flow",[2886],[729,564,730,1988,1335],{"slug":9140,"featured":6,"template":736},"value-stream-total-time-chart","content:en-us:blog:value-stream-total-time-chart.yml","Value Stream Total Time Chart","en-us/blog/value-stream-total-time-chart.yml","en-us/blog/value-stream-total-time-chart",{"_path":9146,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9147,"content":9152,"config":9157,"_id":9159,"_type":16,"title":9160,"_source":17,"_file":9161,"_stem":9162,"_extension":20},"/en-us/blog/securing-your-code-on-gitlab",{"title":9148,"description":9149,"ogTitle":9148,"ogDescription":9149,"noIndex":6,"ogImage":7482,"ogUrl":9150,"ogSiteName":995,"ogType":996,"canonicalUrls":9150,"schema":9151},"The ultimate guide to securing your code on GitLab.com","This in-depth tutorial, complete with best practices, will help you secure your development environment.","https://about.gitlab.com/blog/securing-your-code-on-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The ultimate guide to securing your code on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Grossman\"}],\n        \"datePublished\": \"2023-05-31\",\n      }",{"title":9148,"description":9149,"authors":9153,"heroImage":7482,"date":9155,"category":790,"tags":9156},[9154],"Steve Grossman","2023-05-31",[772,543],{"slug":9158,"featured":6,"template":736},"securing-your-code-on-gitlab","content:en-us:blog:securing-your-code-on-gitlab.yml","Securing Your Code On Gitlab","en-us/blog/securing-your-code-on-gitlab.yml","en-us/blog/securing-your-code-on-gitlab",{"_path":9164,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9165,"content":9171,"config":9176,"_id":9178,"_type":16,"title":9179,"_source":17,"_file":9180,"_stem":9181,"_extension":20},"/en-us/blog/major-league-gitlab-hacking",{"title":9166,"description":9167,"ogTitle":9166,"ogDescription":9167,"noIndex":6,"ogImage":9168,"ogUrl":9169,"ogSiteName":995,"ogType":996,"canonicalUrls":9169,"schema":9170},"Major League Hacking: Students contribute to feature updates","Our latest program participants explain their projects, their results, and the lessons they learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663736/Blog/Hero%20Images/a-deep-dive-into-the-security-analyst-persona.jpg","https://about.gitlab.com/blog/major-league-gitlab-hacking","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Major League Hacking: Student fellows contribute to platform feature updates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-05-30\",\n      }",{"title":9172,"description":9167,"authors":9173,"heroImage":9168,"date":9174,"category":1388,"tags":9175},"Major League Hacking: Student fellows contribute to platform feature updates",[7329],"2023-05-30",[1265,269,730],{"slug":9177,"featured":6,"template":736},"major-league-gitlab-hacking","content:en-us:blog:major-league-gitlab-hacking.yml","Major League Gitlab Hacking","en-us/blog/major-league-gitlab-hacking.yml","en-us/blog/major-league-gitlab-hacking",{"_path":9183,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9184,"content":9189,"config":9194,"_id":9196,"_type":16,"title":9197,"_source":17,"_file":9198,"_stem":9199,"_extension":20},"/en-us/blog/code-suggestions-improves-developer-productivity",{"title":9185,"description":9186,"ogTitle":9185,"ogDescription":9186,"noIndex":6,"ogImage":1496,"ogUrl":9187,"ogSiteName":995,"ogType":996,"canonicalUrls":9187,"schema":9188},"How Code Suggestions can supercharge developers' daily productivity","Learn how you can use GitLab Code Suggestions to accelerate your development.","https://about.gitlab.com/blog/code-suggestions-improves-developer-productivity","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Code Suggestions can supercharge developers' daily productivity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Neha Khalwadekar\"}],\n        \"datePublished\": \"2023-05-25\",\n      }",{"title":9185,"description":9186,"authors":9190,"heroImage":1496,"date":9192,"category":769,"tags":9193},[9191],"Neha Khalwadekar","2023-05-25",[574,731,730,728],{"slug":9195,"featured":6,"template":736},"code-suggestions-improves-developer-productivity","content:en-us:blog:code-suggestions-improves-developer-productivity.yml","Code Suggestions Improves Developer Productivity","en-us/blog/code-suggestions-improves-developer-productivity.yml","en-us/blog/code-suggestions-improves-developer-productivity",{"_path":9201,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9202,"content":9208,"config":9213,"_id":9215,"_type":16,"title":9216,"_source":17,"_file":9217,"_stem":9218,"_extension":20},"/en-us/blog/eks-fargate-runner",{"title":9203,"description":9204,"ogTitle":9203,"ogDescription":9204,"noIndex":6,"ogImage":9205,"ogUrl":9206,"ogSiteName":995,"ogType":996,"canonicalUrls":9206,"schema":9207},"Setting up GitLab EKS Fargate Runners in just one hour","This detailed tutorial answers the question of how to leverage Amazon's AWS Fargate container technology for GitLab Runners.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663373/Blog/Hero%20Images/jeremy-lapak-CVvFVQ_-oUg-700unsplash.jpg","https://about.gitlab.com/blog/eks-fargate-runner","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get started with GitLab EKS Fargate Runners in 1 hour and zero code, Iteration 1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2023-05-24\",\n      }",{"title":9209,"description":9204,"authors":9210,"heroImage":9205,"date":9211,"category":858,"tags":9212},"Get started with GitLab EKS Fargate Runners in 1 hour and zero code, Iteration 1",[959],"2023-05-24",[564,2889,771],{"slug":9214,"featured":6,"template":736},"eks-fargate-runner","content:en-us:blog:eks-fargate-runner.yml","Eks Fargate Runner","en-us/blog/eks-fargate-runner.yml","en-us/blog/eks-fargate-runner",{"_path":9220,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9221,"content":9226,"config":9231,"_id":9233,"_type":16,"title":9234,"_source":17,"_file":9235,"_stem":9236,"_extension":20},"/en-us/blog/expanded-registration-features-program",{"title":9222,"description":9223,"ogTitle":9222,"ogDescription":9223,"noIndex":6,"ogImage":8597,"ogUrl":9224,"ogSiteName":995,"ogType":996,"canonicalUrls":9224,"schema":9225},"Security features now free with expanded Registration Program","More features are now available for free to free self-managed Enterprise Edition users when they register and turn on their Service Ping.","https://about.gitlab.com/blog/expanded-registration-features-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Free access to security, other features with expanded Registration Features Program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Waldner\"}],\n        \"datePublished\": \"2023-05-24\",\n      }",{"title":9227,"description":9223,"authors":9228,"heroImage":8597,"date":9211,"category":1049,"tags":9230},"Free access to security, other features with expanded Registration Features Program",[9229],"Sarah Waldner",[730,1049,731],{"slug":9232,"featured":6,"template":736},"expanded-registration-features-program","content:en-us:blog:expanded-registration-features-program.yml","Expanded Registration Features Program","en-us/blog/expanded-registration-features-program.yml","en-us/blog/expanded-registration-features-program",{"_path":9238,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9239,"content":9244,"config":9248,"_id":9250,"_type":16,"title":9251,"_source":17,"_file":9252,"_stem":9253,"_extension":20},"/en-us/blog/how-to-harden-your-self-managed-gitlab-instance",{"title":9240,"description":9241,"ogTitle":9240,"ogDescription":9241,"noIndex":6,"ogImage":5639,"ogUrl":9242,"ogSiteName":995,"ogType":996,"canonicalUrls":9242,"schema":9243},"How to harden your self-managed GitLab instance","Learn seven easy steps to ensure your self-managed GitLab instance is as secure as possible.","https://about.gitlab.com/blog/how-to-harden-your-self-managed-gitlab-instance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to harden your self-managed GitLab instance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ayoub Fandi\"}],\n        \"datePublished\": \"2023-05-23\",\n      }",{"title":9240,"description":9241,"authors":9245,"heroImage":5639,"date":9246,"category":858,"tags":9247},[2758],"2023-05-23",[790,772,574],{"slug":9249,"featured":6,"template":736},"how-to-harden-your-self-managed-gitlab-instance","content:en-us:blog:how-to-harden-your-self-managed-gitlab-instance.yml","How To Harden Your Self Managed Gitlab Instance","en-us/blog/how-to-harden-your-self-managed-gitlab-instance.yml","en-us/blog/how-to-harden-your-self-managed-gitlab-instance",{"_path":9255,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9256,"content":9262,"config":9266,"_id":9268,"_type":16,"title":9269,"_source":17,"_file":9270,"_stem":9271,"_extension":20},"/en-us/blog/introducing-workspaces-beta",{"title":9257,"description":9258,"ogTitle":9257,"ogDescription":9258,"noIndex":6,"ogImage":9259,"ogUrl":9260,"ogSiteName":995,"ogType":996,"canonicalUrls":9260,"schema":9261},"A first look at workspaces: On-demand, cloud-based development environments","Remote development workspaces are now available in Beta for GitLab Premium and Ultimate users.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682731/Blog/Hero%20Images/code-editor-workspace.jpg","https://about.gitlab.com/blog/introducing-workspaces-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A first look at workspaces: On-demand, cloud-based development environments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Schurter\"}],\n        \"datePublished\": \"2023-05-23\",\n      }",{"title":9257,"description":9258,"authors":9263,"heroImage":9259,"date":9246,"category":1049,"tags":9265},[9264],"Eric Schurter",[582,730,1049],{"slug":9267,"featured":6,"template":736},"introducing-workspaces-beta","content:en-us:blog:introducing-workspaces-beta.yml","Introducing Workspaces Beta","en-us/blog/introducing-workspaces-beta.yml","en-us/blog/introducing-workspaces-beta",{"_path":9273,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9274,"content":9279,"config":9283,"_id":9285,"_type":16,"title":9286,"_source":17,"_file":9287,"_stem":9288,"_extension":20},"/en-us/blog/summarize-my-merge-request-review",{"title":9275,"description":9276,"ogTitle":9275,"ogDescription":9276,"noIndex":6,"ogImage":1496,"ogUrl":9277,"ogSiteName":995,"ogType":996,"canonicalUrls":9277,"schema":9278},"ML experiment: Summarize my merge request review","Learn how GitLab is experimenting with ML-powered merge request review summaries in this latest installment of our ongoing 'AI/ML in DevSecOps' series.","https://about.gitlab.com/blog/summarize-my-merge-request-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Summarize my merge request review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kai Armstrong\"}],\n        \"datePublished\": \"2023-05-18\",\n      }",{"title":9275,"description":9276,"authors":9280,"heroImage":1496,"date":9281,"category":769,"tags":9282},[8385],"2023-05-18",[574,731,730,728],{"slug":9284,"featured":6,"template":736},"summarize-my-merge-request-review","content:en-us:blog:summarize-my-merge-request-review.yml","Summarize My Merge Request Review","en-us/blog/summarize-my-merge-request-review.yml","en-us/blog/summarize-my-merge-request-review",{"_path":9290,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9291,"content":9296,"config":9300,"_id":9302,"_type":16,"title":9303,"_source":17,"_file":9304,"_stem":9305,"_extension":20},"/en-us/blog/code-suggestions-for-all-during-beta",{"title":9292,"description":9293,"ogTitle":9292,"ogDescription":9293,"noIndex":6,"ogImage":1496,"ogUrl":9294,"ogSiteName":995,"ogType":996,"canonicalUrls":9294,"schema":9295},"Code Suggestions available to all GitLab tiers while in Beta","All users can acess Code Suggestions AI-assisted feature while it is in Beta.","https://about.gitlab.com/blog/code-suggestions-for-all-during-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Code Suggestions available to all GitLab tiers while in Beta\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Neha Khalwadekar\"}],\n        \"datePublished\": \"2023-05-16\",\n      }",{"title":9292,"description":9293,"authors":9297,"heroImage":1496,"date":9298,"category":769,"tags":9299},[9191],"2023-05-16",[574,731,730,728],{"slug":9301,"featured":6,"template":736},"code-suggestions-for-all-during-beta","content:en-us:blog:code-suggestions-for-all-during-beta.yml","Code Suggestions For All During Beta","en-us/blog/code-suggestions-for-all-during-beta.yml","en-us/blog/code-suggestions-for-all-during-beta",{"_path":9307,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9308,"content":9314,"config":9317,"_id":9319,"_type":16,"title":9320,"_source":17,"_file":9321,"_stem":9322,"_extension":20},"/en-us/blog/lockheed-martin-aws-gitlab",{"title":9309,"description":9310,"ogTitle":9309,"ogDescription":9310,"noIndex":6,"ogImage":9311,"ogUrl":9312,"ogSiteName":995,"ogType":996,"canonicalUrls":9312,"schema":9313},"GitLab, AWS help strengthen Lockheed Martin’s digital transformation","Lockheed Martin’s software factory selected GitLab’s DevSecOps Platform, along with AWS, to streamline toolchains, increase collaboration, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668830/Blog/Hero%20Images/lockheed-martin-cover-2.jpg","https://about.gitlab.com/blog/lockheed-martin-aws-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab, AWS help strengthen Lockheed Martin’s digital transformation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2023-05-16\",\n      }",{"title":9309,"description":9310,"authors":9315,"heroImage":9311,"date":9298,"category":577,"tags":9316},[1000],[3075,771,2815],{"slug":9318,"featured":6,"template":736},"lockheed-martin-aws-gitlab","content:en-us:blog:lockheed-martin-aws-gitlab.yml","Lockheed Martin Aws Gitlab","en-us/blog/lockheed-martin-aws-gitlab.yml","en-us/blog/lockheed-martin-aws-gitlab",{"_path":9324,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9325,"content":9331,"config":9334,"_id":9336,"_type":16,"title":9337,"_source":17,"_file":9338,"_stem":9339,"_extension":20},"/en-us/blog/building-inclusive-gaming-community-gitlab",{"title":9326,"description":9327,"ogTitle":9326,"ogDescription":9327,"noIndex":6,"ogImage":9328,"ogUrl":9329,"ogSiteName":995,"ogType":996,"canonicalUrls":9329,"schema":9330},"Building a more inclusive gaming community with GitLab","Meet the Friendly Linux Players, an open source community focused on making video gaming less intimidating and more welcoming for everyone.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672079/Blog/Hero%20Images/videogamer.jpg","https://about.gitlab.com/blog/building-inclusive-gaming-community-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building a more inclusive gaming community with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2023-05-15\",\n      }",{"title":9326,"description":9327,"authors":9332,"heroImage":9328,"date":9333,"category":1388},[7329],"2023-05-15",{"slug":9335,"featured":6,"template":736},"building-inclusive-gaming-community-gitlab","content:en-us:blog:building-inclusive-gaming-community-gitlab.yml","Building Inclusive Gaming Community Gitlab","en-us/blog/building-inclusive-gaming-community-gitlab.yml","en-us/blog/building-inclusive-gaming-community-gitlab",{"_path":9341,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9342,"content":9348,"config":9352,"_id":9354,"_type":16,"title":9355,"_source":17,"_file":9356,"_stem":9357,"_extension":20},"/en-us/blog/overhauling-the-navigation-is-like-building-a-dream-home",{"title":9343,"description":9344,"ogTitle":9343,"ogDescription":9344,"noIndex":6,"ogImage":9345,"ogUrl":9346,"ogSiteName":995,"ogType":996,"canonicalUrls":9346,"schema":9347},"How designing platform navigation is like building a dream home","Go behind the scenes and learn how we ideated toward a new user experience for GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680235/Blog/Hero%20Images/home-improvement.jpg","https://about.gitlab.com/blog/overhauling-the-navigation-is-like-building-a-dream-home","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How designing platform navigation is like building a dream home\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Austin Regnery\"}],\n        \"datePublished\": \"2023-05-15\",\n      }",{"title":9343,"description":9344,"authors":9349,"heroImage":9345,"date":9333,"category":858,"tags":9351},[9350],"Austin Regnery",[2703,731,2702],{"slug":9353,"featured":6,"template":736},"overhauling-the-navigation-is-like-building-a-dream-home","content:en-us:blog:overhauling-the-navigation-is-like-building-a-dream-home.yml","Overhauling The Navigation Is Like Building A Dream Home","en-us/blog/overhauling-the-navigation-is-like-building-a-dream-home.yml","en-us/blog/overhauling-the-navigation-is-like-building-a-dream-home",{"_path":9359,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9360,"content":9366,"config":9370,"_id":9372,"_type":16,"title":9373,"_source":17,"_file":9374,"_stem":9375,"_extension":20},"/en-us/blog/gitlab-operator-red-hat-certification",{"title":9361,"description":9362,"ogTitle":9361,"ogDescription":9362,"noIndex":6,"ogImage":9363,"ogUrl":9364,"ogSiteName":995,"ogType":996,"canonicalUrls":9364,"schema":9365},"GitLab Operator certified by Red Hat OpenShift","The GitLab Operator is now certified by Red Hat’s OpenShift standards, allowing users to install GitLab directly on an OpenShift cloud cluster.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682717/Blog/Hero%20Images/bi_worldwise_casestudy_image.png","https://about.gitlab.com/blog/gitlab-operator-red-hat-certification","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Operator certified by Red Hat OpenShift\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dilan Orrino\"}],\n        \"datePublished\": \"2023-05-11\",\n      }",{"title":9361,"description":9362,"authors":9367,"heroImage":9363,"date":9368,"category":1388,"tags":9369},[4459],"2023-05-11",[284,1265,582],{"slug":9371,"featured":6,"template":736},"gitlab-operator-red-hat-certification","content:en-us:blog:gitlab-operator-red-hat-certification.yml","Gitlab Operator Red Hat Certification","en-us/blog/gitlab-operator-red-hat-certification.yml","en-us/blog/gitlab-operator-red-hat-certification",{"_path":9377,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9378,"content":9383,"config":9387,"_id":9389,"_type":16,"title":9390,"_source":17,"_file":9391,"_stem":9392,"_extension":20},"/en-us/blog/track-machine-learning-model-experiments",{"title":9379,"description":9380,"ogTitle":9379,"ogDescription":9380,"noIndex":6,"ogImage":1496,"ogUrl":9381,"ogSiteName":995,"ogType":996,"canonicalUrls":9381,"schema":9382},"Track ML model experiments with new GitLab MLFlow integration","Track the many versions of your machine learning models on GitLab using the MLFlow client.","https://about.gitlab.com/blog/track-machine-learning-model-experiments","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Track ML model experiments with new GitLab MLFlow integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eduardo Bonet\"}],\n        \"datePublished\": \"2023-05-11\",\n      }",{"title":9379,"description":9380,"authors":9384,"heroImage":1496,"date":9368,"category":769,"tags":9386},[9385],"Eduardo Bonet",[728,543,233,730],{"slug":9388,"featured":6,"template":736},"track-machine-learning-model-experiments","content:en-us:blog:track-machine-learning-model-experiments.yml","Track Machine Learning Model Experiments","en-us/blog/track-machine-learning-model-experiments.yml","en-us/blog/track-machine-learning-model-experiments",{"_path":9394,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9395,"content":9400,"config":9406,"_id":9408,"_type":16,"title":9409,"_source":17,"_file":9410,"_stem":9411,"_extension":20},"/en-us/blog/building-gitlab-with-gitlab-api-fuzzing-workflow",{"title":9396,"description":9397,"ogTitle":9396,"ogDescription":9397,"noIndex":6,"ogImage":5956,"ogUrl":9398,"ogSiteName":995,"ogType":996,"canonicalUrls":9398,"schema":9399},"Building GitLab with GitLab: Web API Fuzz Testing","Our new series shows how we dogfood new DevSecOps platform features to ready them for you. First up, security testing.","https://about.gitlab.com/blog/building-gitlab-with-gitlab-api-fuzzing-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building GitLab with GitLab: Web API Fuzz Testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Eddington\"},{\"@type\":\"Person\",\"name\":\"Eugene Lim\"}],\n        \"datePublished\": \"2023-05-09\",\n      }",{"title":9396,"description":9397,"authors":9401,"heroImage":5956,"date":9404,"category":858,"tags":9405},[9402,9403],"Mike Eddington","Eugene Lim","2023-05-09",[1569,790,1569,964,772],{"slug":9407,"featured":6,"template":736},"building-gitlab-with-gitlab-api-fuzzing-workflow","content:en-us:blog:building-gitlab-with-gitlab-api-fuzzing-workflow.yml","Building Gitlab With Gitlab Api Fuzzing Workflow","en-us/blog/building-gitlab-with-gitlab-api-fuzzing-workflow.yml","en-us/blog/building-gitlab-with-gitlab-api-fuzzing-workflow",{"_path":9413,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9414,"content":9419,"config":9422,"_id":9424,"_type":16,"title":9425,"_source":17,"_file":9426,"_stem":9427,"_extension":20},"/en-us/blog/rise-of-protestware",{"title":9415,"description":9416,"ogTitle":9415,"ogDescription":9416,"noIndex":6,"ogImage":8754,"ogUrl":9417,"ogSiteName":995,"ogType":996,"canonicalUrls":9417,"schema":9418},"Protestware threats: How to protect your software supply chain","Some people protest for change by changing code others depend on throughout the software supply chain. Learn more about protestware, its impact, and how to protect against it.","https://about.gitlab.com/blog/rise-of-protestware","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Protestware threats: How to protect your software supply chain\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2023-05-09\",\n      }",{"title":9415,"description":9416,"authors":9420,"heroImage":8754,"date":9404,"category":577,"tags":9421},[3181],[574,5733,790,543],{"slug":9423,"featured":6,"template":736},"rise-of-protestware","content:en-us:blog:rise-of-protestware.yml","Rise Of Protestware","en-us/blog/rise-of-protestware.yml","en-us/blog/rise-of-protestware",{"_path":9429,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9430,"content":9435,"config":9439,"_id":9441,"_type":16,"title":9442,"_source":17,"_file":9443,"_stem":9444,"_extension":20},"/en-us/blog/use-inputs-in-includable-files",{"title":9431,"description":9432,"ogTitle":9431,"ogDescription":9432,"noIndex":6,"ogImage":8842,"ogUrl":9433,"ogSiteName":995,"ogType":996,"canonicalUrls":9433,"schema":9434},"Define input parameters to includable CI/CD configuration files","This is the first milestone of the long-term roadmap of the CI/CD Components Catalog roadmap.","https://about.gitlab.com/blog/use-inputs-in-includable-files","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Define input parameters to includable CI/CD configuration files\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2023-05-08\",\n      }",{"title":9431,"description":9432,"authors":9436,"heroImage":8842,"date":9437,"category":858,"tags":9438},[1016],"2023-05-08",[772,564,110],{"slug":9440,"featured":6,"template":736},"use-inputs-in-includable-files","content:en-us:blog:use-inputs-in-includable-files.yml","Use Inputs In Includable Files","en-us/blog/use-inputs-in-includable-files.yml","en-us/blog/use-inputs-in-includable-files",{"_path":9446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9447,"content":9452,"config":9456,"_id":9458,"_type":16,"title":9459,"_source":17,"_file":9460,"_stem":9461,"_extension":20},"/en-us/blog/gitlab-chat-ai",{"title":9448,"description":9449,"ogTitle":9448,"ogDescription":9449,"noIndex":6,"ogImage":1496,"ogUrl":9450,"ogSiteName":995,"ogType":996,"canonicalUrls":9450,"schema":9451},"ML experiment: Use a chatbot to answer how-to questions","Learn how GitLab is experimenting with a docs chatbot that you can ask product questions in this latest installment of our ongoing 'AI/ML in DevSecOps' series.","https://about.gitlab.com/blog/gitlab-chat-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Use a chatbot to answer how-to questions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Waldner\"}],\n        \"datePublished\": \"2023-05-04\",\n      }",{"title":9448,"description":9449,"authors":9453,"heroImage":1496,"date":9454,"category":769,"tags":9455},[9229],"2023-05-04",[574,731,730,728],{"slug":9457,"featured":6,"template":736},"gitlab-chat-ai","content:en-us:blog:gitlab-chat-ai.yml","Gitlab Chat Ai","en-us/blog/gitlab-chat-ai.yml","en-us/blog/gitlab-chat-ai",{"_path":9463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9464,"content":9470,"config":9474,"_id":9476,"_type":16,"title":9477,"_source":17,"_file":9478,"_stem":9479,"_extension":20},"/en-us/blog/gitlab-ai-assisted-features",{"title":9465,"description":9466,"ogTitle":9465,"ogDescription":9466,"noIndex":6,"ogImage":9467,"ogUrl":9468,"ogSiteName":995,"ogType":996,"canonicalUrls":9468,"schema":9469},"GitLab details AI-assisted features in the DevSecOps platform","In a fireside chat, CEO and co-founder Sid Sijbrandij shared demos of AI-assisted features available today in gitlab.com.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669077/Blog/Hero%20Images/ai-fireside-chat.png","https://about.gitlab.com/blog/gitlab-ai-assisted-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab details AI-assisted features in the DevSecOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2023-05-03\",\n      }",{"title":9465,"description":9466,"authors":9471,"heroImage":9467,"date":9472,"category":769,"tags":9473},[3701],"2023-05-03",[1049,730,728,574],{"slug":9475,"featured":6,"template":736},"gitlab-ai-assisted-features","content:en-us:blog:gitlab-ai-assisted-features.yml","Gitlab Ai Assisted Features","en-us/blog/gitlab-ai-assisted-features.yml","en-us/blog/gitlab-ai-assisted-features",{"_path":9481,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9482,"content":9487,"config":9491,"_id":9493,"_type":16,"title":9494,"_source":17,"_file":9495,"_stem":9496,"_extension":20},"/en-us/blog/explain-this-vulnerability",{"title":9483,"description":9484,"ogTitle":9483,"ogDescription":9484,"noIndex":6,"ogImage":8597,"ogUrl":9485,"ogSiteName":995,"ogType":996,"canonicalUrls":9485,"schema":9486},"ML experiment: Explain this vulnerability","Learn how GitLab is experimenting with vulnerability explanation and mitigation recommendations in this latest installment of our ongoing 'AI/ML in DevSecOps' series.","https://about.gitlab.com/blog/explain-this-vulnerability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Explain this vulnerability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alana Bellucci\"}],\n        \"datePublished\": \"2023-05-02\",\n      }",{"title":9483,"description":9484,"authors":9488,"heroImage":8597,"date":9489,"category":769,"tags":9490},[5072],"2023-05-02",[1049,730,574,728],{"slug":9492,"featured":6,"template":736},"explain-this-vulnerability","content:en-us:blog:explain-this-vulnerability.yml","Explain This Vulnerability","en-us/blog/explain-this-vulnerability.yml","en-us/blog/explain-this-vulnerability",{"_path":9498,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9499,"content":9505,"config":9509,"_id":9511,"_type":16,"title":9512,"_source":17,"_file":9513,"_stem":9514,"_extension":20},"/en-us/blog/gitlab-product-navigation",{"title":9500,"description":9501,"ogTitle":9500,"ogDescription":9501,"noIndex":6,"ogImage":9502,"ogUrl":9503,"ogSiteName":995,"ogType":996,"canonicalUrls":9503,"schema":9504},"Inside the vision for GitLab’s new platform navigation","A peek into what inspired our new navigation design, which is coming soon.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668078/Blog/Hero%20Images/cover-image-helm-registry.jpg","https://about.gitlab.com/blog/gitlab-product-navigation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside the vision for GitLab’s new platform navigation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christen Dybenko\"}],\n        \"datePublished\": \"2023-05-01\",\n      }",{"title":9500,"description":9501,"authors":9506,"heroImage":9502,"date":9507,"category":577,"tags":9508},[7925],"2023-05-01",[731,2702,730,1569],{"slug":9510,"featured":6,"template":736},"gitlab-product-navigation","content:en-us:blog:gitlab-product-navigation.yml","Gitlab Product Navigation","en-us/blog/gitlab-product-navigation.yml","en-us/blog/gitlab-product-navigation",{"_path":9516,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9517,"content":9523,"config":9526,"_id":9528,"_type":16,"title":9529,"_source":17,"_file":9530,"_stem":9531,"_extension":20},"/en-us/blog/how-to-build-reusable-ci-templates",{"title":9518,"description":9519,"ogTitle":9518,"ogDescription":9519,"noIndex":6,"ogImage":9520,"ogUrl":9521,"ogSiteName":995,"ogType":996,"canonicalUrls":9521,"schema":9522},"How to build more reusable CI/CD templates","Users can now define inputs to any includable CI/CD templates. Learn how and see what other CI/CD pipeline developments are coming.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682709/Blog/Hero%20Images/pexels-mathias-reding-4386148.jpg","https://about.gitlab.com/blog/how-to-build-reusable-ci-templates","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to build more reusable CI/CD templates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2023-05-01\",\n      }",{"title":9518,"description":9519,"authors":9524,"heroImage":9520,"date":9507,"category":858,"tags":9525},[1712],[110,564],{"slug":9527,"featured":6,"template":736},"how-to-build-reusable-ci-templates","content:en-us:blog:how-to-build-reusable-ci-templates.yml","How To Build Reusable Ci Templates","en-us/blog/how-to-build-reusable-ci-templates.yml","en-us/blog/how-to-build-reusable-ci-templates",{"_path":9533,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9534,"content":9539,"config":9543,"_id":9545,"_type":16,"title":9546,"_source":17,"_file":9547,"_stem":9548,"_extension":20},"/en-us/blog/merge-request-suggest-a-test",{"title":9535,"description":9536,"ogTitle":9535,"ogDescription":9536,"noIndex":6,"ogImage":8578,"ogUrl":9537,"ogSiteName":995,"ogType":996,"canonicalUrls":9537,"schema":9538},"ML experiment: Generate tests for code changes","Learn how GitLab is experimenting with ML-powered test suggestions in this latest installment of our ongoing 'AI/ML in DevSecOps' series.","https://about.gitlab.com/blog/merge-request-suggest-a-test","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Generate tests for code changes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kai Armstrong\"}],\n        \"datePublished\": \"2023-04-27\",\n      }",{"title":9535,"description":9536,"authors":9540,"heroImage":8578,"date":9541,"category":769,"tags":9542},[8385],"2023-04-27",[574,731,730,728],{"slug":9544,"featured":6,"template":736},"merge-request-suggest-a-test","content:en-us:blog:merge-request-suggest-a-test.yml","Merge Request Suggest A Test","en-us/blog/merge-request-suggest-a-test.yml","en-us/blog/merge-request-suggest-a-test",{"_path":9550,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9551,"content":9557,"config":9562,"_id":9564,"_type":16,"title":9565,"_source":17,"_file":9566,"_stem":9567,"_extension":20},"/en-us/blog/ai-ml-in-devsecops-series",{"title":9552,"description":9553,"ogTitle":9552,"ogDescription":9553,"noIndex":6,"ogImage":9554,"ogUrl":9555,"ogSiteName":995,"ogType":996,"canonicalUrls":9555,"schema":9556},"AI/ML in DevSecOps Series","This blog series chronicles our journey to integrate AI/ML throughout the software development lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682693/Blog/Hero%20Images/ai-ml-in-devsecops-blog-series.png","https://about.gitlab.com/blog/ai-ml-in-devsecops-series","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AI/ML in DevSecOps Series\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab AI Assisted Group\"}],\n        \"datePublished\": \"2023-04-24\",\n      }",{"title":9552,"description":9553,"authors":9558,"heroImage":9554,"date":9560,"category":769,"tags":9561},[9559],"GitLab AI Assisted Group","2023-04-24",[564,731,730,728],{"slug":9563,"featured":6,"template":736},"ai-ml-in-devsecops-series","content:en-us:blog:ai-ml-in-devsecops-series.yml","Ai Ml In Devsecops Series","en-us/blog/ai-ml-in-devsecops-series.yml","en-us/blog/ai-ml-in-devsecops-series",{"_path":9569,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9570,"content":9575,"config":9579,"_id":9581,"_type":16,"title":9582,"_source":17,"_file":9583,"_stem":9584,"_extension":20},"/en-us/blog/gitlab-survey-highlights-wins-challenges-as-orgs-adopt-devsecops",{"title":9571,"description":9572,"ogTitle":9571,"ogDescription":9572,"noIndex":6,"ogImage":6938,"ogUrl":9573,"ogSiteName":995,"ogType":996,"canonicalUrls":9573,"schema":9574},"GitLab survey highlights wins, challenges as orgs adopt DevSecOps","This year’s survey findings show that DevSecOps principles, together with a DevSecOps platform, help organizations ship more secure software, faster.","https://about.gitlab.com/blog/gitlab-survey-highlights-wins-challenges-as-orgs-adopt-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab survey highlights wins, challenges as orgs adopt DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2023-04-20\",\n      }",{"title":9571,"description":9572,"authors":9576,"heroImage":6938,"date":9577,"category":577,"tags":9578},[2188],"2023-04-20",[7788,574,790,728],{"slug":9580,"featured":6,"template":736},"gitlab-survey-highlights-wins-challenges-as-orgs-adopt-devsecops","content:en-us:blog:gitlab-survey-highlights-wins-challenges-as-orgs-adopt-devsecops.yml","Gitlab Survey Highlights Wins Challenges As Orgs Adopt Devsecops","en-us/blog/gitlab-survey-highlights-wins-challenges-as-orgs-adopt-devsecops.yml","en-us/blog/gitlab-survey-highlights-wins-challenges-as-orgs-adopt-devsecops",{"_path":9586,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9587,"content":9592,"config":9595,"_id":9597,"_type":16,"title":9598,"_source":17,"_file":9599,"_stem":9600,"_extension":20},"/en-us/blog/merge-request-changes-summary-ai",{"title":9588,"description":9589,"ogTitle":9588,"ogDescription":9589,"noIndex":6,"ogImage":1496,"ogUrl":9590,"ogSiteName":995,"ogType":996,"canonicalUrls":9590,"schema":9591},"ML experiment: Summarize merge request changes","Learn how GitLab is experimenting with ML-powered merge request changes summarization in this sixth installment of our ongoing AI/ML in DevSecOps series.","https://about.gitlab.com/blog/merge-request-changes-summary-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Summarize merge request changes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kai Armstrong\"}],\n        \"datePublished\": \"2023-04-20\",\n      }",{"title":9588,"description":9589,"authors":9593,"heroImage":1496,"date":9577,"category":769,"tags":9594},[8385],[564,731,730,728],{"slug":9596,"featured":6,"template":736},"merge-request-changes-summary-ai","content:en-us:blog:merge-request-changes-summary-ai.yml","Merge Request Changes Summary Ai","en-us/blog/merge-request-changes-summary-ai.yml","en-us/blog/merge-request-changes-summary-ai",{"_path":9602,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9603,"content":9609,"config":9614,"_id":9616,"_type":16,"title":9617,"_source":17,"_file":9618,"_stem":9619,"_extension":20},"/en-us/blog/data-driven-decision-making-with-sourcewarp",{"title":9604,"description":9605,"ogTitle":9604,"ogDescription":9605,"noIndex":6,"ogImage":9606,"ogUrl":9607,"ogSiteName":995,"ogType":996,"canonicalUrls":9607,"schema":9608},"SourceWarp: Make data-driven, agile DevSecOps decisions","How the SourceWarp approach and tool help make informed, agile decisions for CI/CD tools and DevSecOps platforms at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682686/Blog/Hero%20Images/velocity2.png","https://about.gitlab.com/blog/data-driven-decision-making-with-sourcewarp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SourceWarp: Make data-driven, agile DevSecOps decisions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Vulnerability Research Team\"}],\n        \"datePublished\": \"2023-04-13\",\n      }",{"title":9604,"description":9605,"authors":9610,"heroImage":9606,"date":9612,"category":858,"tags":9613},[9611],"GitLab Vulnerability Research Team","2023-04-13",[574,110,790],{"slug":9615,"featured":6,"template":736},"data-driven-decision-making-with-sourcewarp","content:en-us:blog:data-driven-decision-making-with-sourcewarp.yml","Data Driven Decision Making With Sourcewarp","en-us/blog/data-driven-decision-making-with-sourcewarp.yml","en-us/blog/data-driven-decision-making-with-sourcewarp",{"_path":9621,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9622,"content":9627,"config":9630,"_id":9632,"_type":16,"title":9633,"_source":17,"_file":9634,"_stem":9635,"_extension":20},"/en-us/blog/summarize-issues",{"title":9623,"description":9624,"ogTitle":9623,"ogDescription":9624,"noIndex":6,"ogImage":1496,"ogUrl":9625,"ogSiteName":995,"ogType":996,"canonicalUrls":9625,"schema":9626},"ML experiment: Summarizing issue comments","Learn how GitLab is experimenting with ML-powered issue comment summarization in this fifth installment of our ongoing AI/ML in DevSecOps series.","https://about.gitlab.com/blog/summarize-issues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Summarizing issue comments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Ushakov\"},{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2023-04-13\",\n      }",{"title":9623,"description":9624,"authors":9628,"heroImage":1496,"date":9612,"category":769,"tags":9629},[5252,6299],[564,731,730,728],{"slug":9631,"featured":6,"template":736},"summarize-issues","content:en-us:blog:summarize-issues.yml","Summarize Issues","en-us/blog/summarize-issues.yml","en-us/blog/summarize-issues",{"_path":9637,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9638,"content":9643,"config":9647,"_id":9649,"_type":16,"title":9650,"_source":17,"_file":9651,"_stem":9652,"_extension":20},"/en-us/blog/rate-limitation-for-unauthorized-users-projects-list-api",{"title":9639,"description":9640,"ogTitle":9639,"ogDescription":9640,"noIndex":6,"ogImage":8597,"ogUrl":9641,"ogSiteName":995,"ogType":996,"canonicalUrls":9641,"schema":9642},"Rate limitations for unauthorized users of the Projects List API","Learn details about upcoming changes for unauthenticated users of the Projects List API.","https://about.gitlab.com/blog/rate-limitation-for-unauthorized-users-projects-list-api","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Rate limitations for unauthorized users of the Projects List API\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Lohr\"}],\n        \"datePublished\": \"2023-04-10\",\n      }",{"title":9639,"description":9640,"authors":9644,"heroImage":8597,"date":9645,"category":301,"tags":9646},[1664],"2023-04-10",[731,730,1049],{"slug":9648,"featured":6,"template":736},"rate-limitation-for-unauthorized-users-projects-list-api","content:en-us:blog:rate-limitation-for-unauthorized-users-projects-list-api.yml","Rate Limitation For Unauthorized Users Projects List Api","en-us/blog/rate-limitation-for-unauthorized-users-projects-list-api.yml","en-us/blog/rate-limitation-for-unauthorized-users-projects-list-api",{"_path":9654,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9655,"content":9660,"config":9664,"_id":9666,"_type":16,"title":9667,"_source":17,"_file":9668,"_stem":9669,"_extension":20},"/en-us/blog/explain-this-code",{"title":9656,"description":9657,"ogTitle":9656,"ogDescription":9657,"noIndex":6,"ogImage":1496,"ogUrl":9658,"ogSiteName":995,"ogType":996,"canonicalUrls":9658,"schema":9659},"ML experiment: Explain this source code","Learn how GitLab is experimenting with ML-powered source code explanation features in this fourth installment of our ongoing AI/ML in DevSecOps series.","https://about.gitlab.com/blog/explain-this-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Explain this source code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2023-04-06\",\n      }",{"title":9656,"description":9657,"authors":9661,"heroImage":1496,"date":9662,"category":769,"tags":9663},[6299],"2023-04-06",[564,731,730,728],{"slug":9665,"featured":6,"template":736},"explain-this-code","content:en-us:blog:explain-this-code.yml","Explain This Code","en-us/blog/explain-this-code.yml","en-us/blog/explain-this-code",{"_path":9671,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9672,"content":9677,"config":9681,"_id":9683,"_type":16,"title":9684,"_source":17,"_file":9685,"_stem":9686,"_extension":20},"/en-us/blog/gitlab-community-forks",{"title":9673,"description":9674,"ogTitle":9673,"ogDescription":9674,"noIndex":6,"ogImage":8597,"ogUrl":9675,"ogSiteName":995,"ogType":996,"canonicalUrls":9675,"schema":9676},"Community forks: A new, easier way to contribute to GitLab","Learn how we tackled a number of pain points and introduced an alternative to personal forks for open-source community contributions.","https://about.gitlab.com/blog/gitlab-community-forks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Community forks: A new, easier way to contribute to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Tickett\"}],\n        \"datePublished\": \"2023-04-04\",\n      }",{"title":9673,"description":9674,"authors":9678,"heroImage":8597,"date":9679,"category":301,"tags":9680},[1646],"2023-04-04",[3074,269],{"slug":9682,"featured":6,"template":736},"gitlab-community-forks","content:en-us:blog:gitlab-community-forks.yml","Gitlab Community Forks","en-us/blog/gitlab-community-forks.yml","en-us/blog/gitlab-community-forks",{"_path":9688,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9689,"content":9694,"config":9698,"_id":9700,"_type":16,"title":9701,"_source":17,"_file":9702,"_stem":9703,"_extension":20},"/en-us/blog/delayed-deletion",{"title":9690,"description":9691,"ogTitle":9690,"ogDescription":9691,"noIndex":6,"ogImage":8597,"ogUrl":9692,"ogSiteName":995,"ogType":996,"canonicalUrls":9692,"schema":9693},"Updates to GitLab’s delayed deletion feature for projects and groups","Deletion will be delayed by default to help customers avoid costly and time-consuming group and project recoveries.","https://about.gitlab.com/blog/delayed-deletion","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Updates to GitLab’s delayed deletion feature for projects and groups\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Lohr\"}],\n        \"datePublished\": \"2023-04-03\",\n      }",{"title":9690,"description":9691,"authors":9695,"heroImage":8597,"date":9696,"category":1049,"tags":9697},[1664],"2023-04-03",[731,1049,3075],{"slug":9699,"featured":6,"template":736},"delayed-deletion","content:en-us:blog:delayed-deletion.yml","Delayed Deletion","en-us/blog/delayed-deletion.yml","en-us/blog/delayed-deletion",{"_path":9705,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9706,"content":9711,"config":9715,"_id":9717,"_type":16,"title":9718,"_source":17,"_file":9719,"_stem":9720,"_extension":20},"/en-us/blog/ml-experiment-sql",{"title":9707,"description":9708,"ogTitle":9707,"ogDescription":9708,"noIndex":6,"ogImage":1496,"ogUrl":9709,"ogSiteName":995,"ogType":996,"canonicalUrls":9709,"schema":9710},"ML experiment: Writing SQL is about to get a lot easier","Learn how GitLab is experimenting with ML-powered product features in this third installment of our ongoing AI/ML in DevSecOps series.","https://about.gitlab.com/blog/ml-experiment-sql","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ML experiment: Writing SQL is about to get a lot easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2023-03-30\",\n      }",{"title":9707,"description":9708,"authors":9712,"heroImage":1496,"date":9713,"category":769,"tags":9714},[6299],"2023-03-30",[564,731,730,728],{"slug":9716,"featured":6,"template":736},"ml-experiment-sql","content:en-us:blog:ml-experiment-sql.yml","Ml Experiment Sql","en-us/blog/ml-experiment-sql.yml","en-us/blog/ml-experiment-sql",{"_path":9722,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9723,"content":9729,"config":9733,"_id":9735,"_type":16,"title":9736,"_source":17,"_file":9737,"_stem":9738,"_extension":20},"/en-us/blog/gitlab-contributor-days",{"title":9724,"description":9725,"ogTitle":9724,"ogDescription":9725,"noIndex":6,"ogImage":9726,"ogUrl":9727,"ogSiteName":995,"ogType":996,"canonicalUrls":9727,"schema":9728},"Why we launched GitLab Contributor Days","Inside our decision to create an event where our contributors could gather in person to collaborate.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668213/Blog/Hero%20Images/innersourcing-improves-collaboration-within-an-organization.jpg","https://about.gitlab.com/blog/gitlab-contributor-days","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we launched GitLab Contributor Days\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Tickett\"}],\n        \"datePublished\": \"2023-03-29\",\n      }",{"title":9724,"description":9725,"authors":9730,"heroImage":9726,"date":9731,"category":301,"tags":9732},[1646],"2023-03-29",[3074,269],{"slug":9734,"featured":6,"template":736},"gitlab-contributor-days","content:en-us:blog:gitlab-contributor-days.yml","Gitlab Contributor Days","en-us/blog/gitlab-contributor-days.yml","en-us/blog/gitlab-contributor-days",{"_path":9740,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9741,"content":9747,"config":9751,"_id":9753,"_type":16,"title":9754,"_source":17,"_file":9755,"_stem":9756,"_extension":20},"/en-us/blog/avoiding-burnout-as-product-designers",{"title":9742,"description":9743,"ogTitle":9742,"ogDescription":9743,"noIndex":6,"ogImage":9744,"ogUrl":9745,"ogSiteName":995,"ogType":996,"canonicalUrls":9745,"schema":9746},"Tips to avoid burnout for product designers","Effective prioritization and boundary setting are critical to product designers' growth.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670082/Blog/Hero%20Images/productdesign.jpg","https://about.gitlab.com/blog/avoiding-burnout-as-product-designers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tips to avoid burnout for product designers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2023-03-28\",\n      }",{"title":9742,"description":9743,"authors":9748,"heroImage":9744,"date":9749,"category":8140,"tags":9750},[4929],"2023-03-28",[2703,2702,3914],{"slug":9752,"featured":6,"template":736},"avoiding-burnout-as-product-designers","content:en-us:blog:avoiding-burnout-as-product-designers.yml","Avoiding Burnout As Product Designers","en-us/blog/avoiding-burnout-as-product-designers.yml","en-us/blog/avoiding-burnout-as-product-designers",{"_path":9758,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9759,"content":9764,"config":9768,"_id":9770,"_type":16,"title":9771,"_source":17,"_file":9772,"_stem":9773,"_extension":20},"/en-us/blog/changes-to-the-preclonescript",{"title":9760,"description":9761,"ogTitle":9760,"ogDescription":9761,"noIndex":6,"ogImage":8597,"ogUrl":9762,"ogSiteName":995,"ogType":996,"canonicalUrls":9762,"schema":9763},"Guide to pre_clone_script changes on GitLab SaaS Linux Runners","Learn about the change from CI_PRE_CLONE_SCRIPT to pre_get_sources_script on GitLab SaaS Linux Runners.","https://about.gitlab.com/blog/changes-to-the-preclonescript","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Guide to pre_clone_script changes on GitLab SaaS Linux Runners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2023-03-27\",\n      }",{"title":9760,"description":9761,"authors":9765,"heroImage":8597,"date":9766,"category":1049,"tags":9767},[4857],"2023-03-27",[2097,2098,730],{"slug":9769,"featured":6,"template":736},"changes-to-the-preclonescript","content:en-us:blog:changes-to-the-preclonescript.yml","Changes To The Preclonescript","en-us/blog/changes-to-the-preclonescript.yml","en-us/blog/changes-to-the-preclonescript",{"_path":9775,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9776,"content":9782,"config":9785,"_id":9787,"_type":16,"title":9788,"_source":17,"_file":9789,"_stem":9790,"_extension":20},"/en-us/blog/introducing-product-analytics-in-gitlab",{"title":9777,"description":9778,"ogTitle":9777,"ogDescription":9778,"noIndex":6,"ogImage":9779,"ogUrl":9780,"ogSiteName":995,"ogType":996,"canonicalUrls":9780,"schema":9781},"Product Analytics: A sneak peek at our upcoming feature","Our journey to add Product Analytics into the DevSecOps platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667086/Blog/Hero%20Images/blog-compliance.jpg","https://about.gitlab.com/blog/introducing-product-analytics-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Product Analytics: A sneak peek at our upcoming feature\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Kerr\"}],\n        \"datePublished\": \"2023-03-27\",\n      }",{"title":9777,"description":9778,"authors":9783,"heroImage":9779,"date":9766,"category":577,"tags":9784},[6887],[1049,731,730],{"slug":9786,"featured":6,"template":736},"introducing-product-analytics-in-gitlab","content:en-us:blog:introducing-product-analytics-in-gitlab.yml","Introducing Product Analytics In Gitlab","en-us/blog/introducing-product-analytics-in-gitlab.yml","en-us/blog/introducing-product-analytics-in-gitlab",{"_path":9792,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9793,"content":9798,"config":9802,"_id":9804,"_type":16,"title":9805,"_source":17,"_file":9806,"_stem":9807,"_extension":20},"/en-us/blog/ai-assisted-code-suggestions",{"title":9794,"description":9795,"ogTitle":9794,"ogDescription":9795,"noIndex":6,"ogImage":1496,"ogUrl":9796,"ogSiteName":995,"ogType":996,"canonicalUrls":9796,"schema":9797},"How AI-assisted code suggestions will advance DevSecOps","In this second blog in our ‘Future of AI/ML in DevSecOps’ series, find out the impact of AI Assisted code suggestions on the software development lifecycle.","https://about.gitlab.com/blog/ai-assisted-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How AI-assisted code suggestions will advance DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Neha Khalwadekar\"}],\n        \"datePublished\": \"2023-03-23\",\n      }",{"title":9794,"description":9795,"authors":9799,"heroImage":1496,"date":9800,"category":769,"tags":9801},[9191],"2023-03-23",[574,731,730,728],{"slug":9803,"featured":6,"template":736},"ai-assisted-code-suggestions","content:en-us:blog:ai-assisted-code-suggestions.yml","Ai Assisted Code Suggestions","en-us/blog/ai-assisted-code-suggestions.yml","en-us/blog/ai-assisted-code-suggestions",{"_path":9809,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9810,"content":9816,"config":9820,"_id":9822,"_type":16,"title":9823,"_source":17,"_file":9824,"_stem":9825,"_extension":20},"/en-us/blog/automating-a-twitter-bot-using-gitlab-cicd",{"title":9811,"description":9812,"ogTitle":9811,"ogDescription":9812,"noIndex":6,"ogImage":9813,"ogUrl":9814,"ogSiteName":995,"ogType":996,"canonicalUrls":9814,"schema":9815},"How to automate a Twitter bot using GitLab CI/CD","This tutorial shows how to use the DevSecOps platform to create a set-and-forget Twitter bot.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661856/Blog/Hero%20Images/ci-cd-demo.jpg","https://about.gitlab.com/blog/automating-a-twitter-bot-using-gitlab-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to automate a Twitter bot using GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Siddharth Mathur\"}],\n        \"datePublished\": \"2023-03-21\",\n      }",{"title":9811,"description":9812,"authors":9817,"heroImage":9813,"date":9818,"category":858,"tags":9819},[6464],"2023-03-21",[574,2097,2098,772],{"slug":9821,"featured":6,"template":736},"automating-a-twitter-bot-using-gitlab-cicd","content:en-us:blog:automating-a-twitter-bot-using-gitlab-cicd.yml","Automating A Twitter Bot Using Gitlab Cicd","en-us/blog/automating-a-twitter-bot-using-gitlab-cicd.yml","en-us/blog/automating-a-twitter-bot-using-gitlab-cicd",{"_path":9827,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9828,"content":9834,"config":9837,"_id":9839,"_type":16,"title":9840,"_source":17,"_file":9841,"_stem":9842,"_extension":20},"/en-us/blog/enhanced-deprecations-page",{"title":9829,"description":9830,"ogTitle":9829,"ogDescription":9830,"noIndex":6,"ogImage":9831,"ogUrl":9832,"ogSiteName":995,"ogType":996,"canonicalUrls":9832,"schema":9833},"A first look at GitLab’s enhanced Deprecations page","This single source of truth has up-to-date information on breaking changes, deprecations, and removals.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683829/Blog/Hero%20Images/hotjar.jpg","https://about.gitlab.com/blog/enhanced-deprecations-page","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A first look at GitLab’s enhanced Deprecations page\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Wiskow\"}],\n        \"datePublished\": \"2023-03-20\",\n      }",{"title":9829,"description":9830,"authors":9835,"heroImage":9831,"date":9836,"category":1049},[2319],"2023-03-20",{"slug":9838,"featured":6,"template":736},"enhanced-deprecations-page","content:en-us:blog:enhanced-deprecations-page.yml","Enhanced Deprecations Page","en-us/blog/enhanced-deprecations-page.yml","en-us/blog/enhanced-deprecations-page",{"_path":9844,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9845,"content":9851,"config":9854,"_id":9856,"_type":16,"title":9857,"_source":17,"_file":9858,"_stem":9859,"_extension":20},"/en-us/blog/scaling-repository-maintenance",{"title":9846,"description":9847,"ogTitle":9846,"ogDescription":9847,"noIndex":6,"ogImage":9848,"ogUrl":9849,"ogSiteName":995,"ogType":996,"canonicalUrls":9849,"schema":9850},"Future-proofing Git repository maintenance","Learn how we revamped our architecture for faster iteration and more efficiently maintained repositories.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677736/Blog/Hero%20Images/Git.png","https://about.gitlab.com/blog/scaling-repository-maintenance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Future-proofing Git repository maintenance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Steinhardt\"}],\n        \"datePublished\": \"2023-03-20\",\n      }",{"title":9846,"description":9847,"authors":9852,"heroImage":9848,"date":9836,"category":858,"tags":9853},[2390],[1195,6376,1988],{"slug":9855,"featured":6,"template":736},"scaling-repository-maintenance","content:en-us:blog:scaling-repository-maintenance.yml","Scaling Repository Maintenance","en-us/blog/scaling-repository-maintenance.yml","en-us/blog/scaling-repository-maintenance",{"_path":9861,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9862,"content":9867,"config":9872,"_id":9874,"_type":16,"title":9875,"_source":17,"_file":9876,"_stem":9877,"_extension":20},"/en-us/blog/how-gitlab-can-help-mitigate-deletion-open-source-images-docker-hub",{"title":9863,"description":9864,"ogTitle":9863,"ogDescription":9864,"noIndex":6,"ogImage":8487,"ogUrl":9865,"ogSiteName":995,"ogType":996,"canonicalUrls":9865,"schema":9866},"GitLab helps mitigate Docker Hub's open source image removal","CI/CD and Kubernetes deployments can be affected by Docker Hub tier changes. This tutorial walks through analysis, mitigations, and long-term solutions.","https://about.gitlab.com/blog/how-gitlab-can-help-mitigate-deletion-open-source-images-docker-hub","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab can help mitigate deletion of open source container images on Docker Hub\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-03-16\",\n      }",{"title":9868,"description":9864,"authors":9869,"heroImage":8487,"date":9870,"category":858,"tags":9871},"How GitLab can help mitigate deletion of open source container images on Docker Hub",[1424],"2023-03-16",[2097,2908,1265],{"slug":9873,"featured":6,"template":736},"how-gitlab-can-help-mitigate-deletion-open-source-images-docker-hub","content:en-us:blog:how-gitlab-can-help-mitigate-deletion-open-source-images-docker-hub.yml","How Gitlab Can Help Mitigate Deletion Open Source Images Docker Hub","en-us/blog/how-gitlab-can-help-mitigate-deletion-open-source-images-docker-hub.yml","en-us/blog/how-gitlab-can-help-mitigate-deletion-open-source-images-docker-hub",{"_path":9879,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9880,"content":9885,"config":9888,"_id":9890,"_type":16,"title":9891,"_source":17,"_file":9892,"_stem":9893,"_extension":20},"/en-us/blog/what-the-ml-ai",{"title":9881,"description":9882,"ogTitle":9881,"ogDescription":9882,"noIndex":6,"ogImage":1496,"ogUrl":9883,"ogSiteName":995,"ogType":996,"canonicalUrls":9883,"schema":9884},"What the ML is up with DevSecOps and AI?","AI will revolutionize DevSecOps platforms. Learn about where GitLab is today and what we're working on.","https://about.gitlab.com/blog/what-the-ml-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What the ML is up with DevSecOps and AI?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2023-03-16\",\n      }",{"title":9881,"description":9882,"authors":9886,"heroImage":1496,"date":9870,"category":769,"tags":9887},[6299],[728,730],{"slug":9889,"featured":6,"template":736},"what-the-ml-ai","content:en-us:blog:what-the-ml-ai.yml","What The Ml Ai","en-us/blog/what-the-ml-ai.yml","en-us/blog/what-the-ml-ai",{"_path":9895,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9896,"content":9902,"config":9907,"_id":9909,"_type":16,"title":9910,"_source":17,"_file":9911,"_stem":9912,"_extension":20},"/en-us/blog/getting-started-with-gitlab-application-security",{"title":9897,"description":9898,"ogTitle":9897,"ogDescription":9898,"noIndex":6,"ogImage":9899,"ogUrl":9900,"ogSiteName":995,"ogType":996,"canonicalUrls":9900,"schema":9901},"Getting started with GitLab application security","This tutorial shows how to incorporate GitLab security scan templates into a .gitlab-ci.yml file and view scan results.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663993/Blog/Hero%20Images/2018-developer-report-cover.jpg","https://about.gitlab.com/blog/getting-started-with-gitlab-application-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab application security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Hernandez\"},{\"@type\":\"Person\",\"name\":\"Julie Byrne\"}],\n        \"datePublished\": \"2023-03-15\",\n      }",{"title":9897,"description":9898,"authors":9903,"heroImage":9899,"date":9905,"category":858,"tags":9906},[9904,5553],"Victor Hernandez","2023-03-15",[574,2097,2098,790],{"slug":9908,"featured":6,"template":736},"getting-started-with-gitlab-application-security","content:en-us:blog:getting-started-with-gitlab-application-security.yml","Getting Started With Gitlab Application Security","en-us/blog/getting-started-with-gitlab-application-security.yml","en-us/blog/getting-started-with-gitlab-application-security",{"_path":9914,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9915,"content":9920,"config":9924,"_id":9926,"_type":16,"title":9927,"_source":17,"_file":9928,"_stem":9929,"_extension":20},"/en-us/blog/memory-safe-vs-unsafe",{"title":9916,"description":9917,"ogTitle":9916,"ogDescription":9917,"noIndex":6,"ogImage":7378,"ogUrl":9918,"ogSiteName":995,"ogType":996,"canonicalUrls":9918,"schema":9919},"How to secure memory-safe vs. manually managed languages","Learn how GitLab reduces source code risk using scanning, vulnerability management, and other key features.","https://about.gitlab.com/blog/memory-safe-vs-unsafe","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to secure memory-safe vs. manually managed languages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2023-03-14\",\n      }",{"title":9916,"description":9917,"authors":9921,"heroImage":7378,"date":9922,"category":790,"tags":9923},[1097],"2023-03-14",[790,574,772],{"slug":9925,"featured":6,"template":736},"memory-safe-vs-unsafe","content:en-us:blog:memory-safe-vs-unsafe.yml","Memory Safe Vs Unsafe","en-us/blog/memory-safe-vs-unsafe.yml","en-us/blog/memory-safe-vs-unsafe",{"_path":9931,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9932,"content":9938,"config":9942,"_id":9944,"_type":16,"title":9945,"_source":17,"_file":9946,"_stem":9947,"_extension":20},"/en-us/blog/actioning-security-vulnerabilities-in-gitlab-premium",{"title":9933,"description":9934,"ogTitle":9933,"ogDescription":9934,"noIndex":6,"ogImage":9935,"ogUrl":9936,"ogSiteName":995,"ogType":996,"canonicalUrls":9936,"schema":9937},"How to action security vulnerabilities in GitLab Premium","Learn step-by-step how to process detected vulnerabilities and spawn merge request approval rules from critical vulnerabilities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099637/Blog/Hero%20Images/Blog/Hero%20Images/security-pipelines_security-pipelines.jpg_1750099637178.jpg","https://about.gitlab.com/blog/actioning-security-vulnerabilities-in-gitlab-premium","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to action security vulnerabilities in GitLab Premium\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Morris\"},{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2023-03-13\",\n      }",{"title":9933,"description":9934,"authors":9939,"heroImage":9935,"date":9940,"category":790,"tags":9941},[4893,2997],"2023-03-13",[790,574,2097,2098,772],{"slug":9943,"featured":6,"template":736},"actioning-security-vulnerabilities-in-gitlab-premium","content:en-us:blog:actioning-security-vulnerabilities-in-gitlab-premium.yml","Actioning Security Vulnerabilities In Gitlab Premium","en-us/blog/actioning-security-vulnerabilities-in-gitlab-premium.yml","en-us/blog/actioning-security-vulnerabilities-in-gitlab-premium",{"_path":9949,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9950,"content":9956,"config":9960,"_id":9962,"_type":16,"title":9963,"_source":17,"_file":9964,"_stem":9965,"_extension":20},"/en-us/blog/expanding-guest-capabilities-in-gitlab-ultimate",{"title":9951,"description":9952,"ogTitle":9951,"ogDescription":9952,"noIndex":6,"ogImage":9953,"ogUrl":9954,"ogSiteName":995,"ogType":996,"canonicalUrls":9954,"schema":9955},"The feature you wanted - Expanded Guest capabilities in GitLab Ultimate","GitLab Ultimate customers can now provide Guests the ability to view code. Learn how to access this new capability.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682652/Blog/Hero%20Images/iterating-cover.jpg","https://about.gitlab.com/blog/expanding-guest-capabilities-in-gitlab-ultimate","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The feature you wanted - Expanded Guest capabilities in GitLab Ultimate\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hannah Sutor\"}],\n        \"datePublished\": \"2023-03-08\",\n      }",{"title":9951,"description":9952,"authors":9957,"heroImage":9953,"date":9958,"category":858,"tags":9959},[6355],"2023-03-08",[730,2815,543],{"slug":9961,"featured":6,"template":736},"expanding-guest-capabilities-in-gitlab-ultimate","content:en-us:blog:expanding-guest-capabilities-in-gitlab-ultimate.yml","Expanding Guest Capabilities In Gitlab Ultimate","en-us/blog/expanding-guest-capabilities-in-gitlab-ultimate.yml","en-us/blog/expanding-guest-capabilities-in-gitlab-ultimate",{"_path":9967,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9968,"content":9974,"config":9977,"_id":9979,"_type":16,"title":9980,"_source":17,"_file":9981,"_stem":9982,"_extension":20},"/en-us/blog/gitlab-and-google-cloud",{"title":9969,"description":9970,"ogTitle":9969,"ogDescription":9970,"noIndex":6,"ogImage":9971,"ogUrl":9972,"ogSiteName":995,"ogType":996,"canonicalUrls":9972,"schema":9973},"How GitLab and Google Cloud drive innovation and efficiency for retailers","Learn how pairing DevSecOps with multicloud environments eases the development burden on retailers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667457/Blog/Hero%20Images/open_source_program_blog_image.jpg","https://about.gitlab.com/blog/gitlab-and-google-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab and Google Cloud drive innovation and efficiency for retailers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"}],\n        \"datePublished\": \"2023-03-08\",\n      }",{"title":9969,"description":9970,"authors":9975,"heroImage":9971,"date":9958,"category":577,"tags":9976},[1727],[582,2097,790,233],{"slug":9978,"featured":6,"template":736},"gitlab-and-google-cloud","content:en-us:blog:gitlab-and-google-cloud.yml","Gitlab And Google Cloud","en-us/blog/gitlab-and-google-cloud.yml","en-us/blog/gitlab-and-google-cloud",{"_path":9984,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":9985,"content":9990,"config":9994,"_id":9996,"_type":16,"title":9997,"_source":17,"_file":9998,"_stem":9999,"_extension":20},"/en-us/blog/gitlab-premium-update",{"title":9986,"description":9987,"ogTitle":9986,"ogDescription":9987,"noIndex":6,"ogImage":8597,"ogUrl":9988,"ogSiteName":995,"ogType":996,"canonicalUrls":9988,"schema":9989},"New pricing for GitLab Premium","Learn more about the GitLab Premium updates.","https://about.gitlab.com/blog/gitlab-premium-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New pricing for GitLab Premium\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2023-03-02\",\n      }",{"title":9986,"description":9987,"authors":9991,"heroImage":8597,"date":9992,"category":1049,"tags":9993},[2188],"2023-03-02",[1049],{"slug":9995,"featured":6,"template":736},"gitlab-premium-update","content:en-us:blog:gitlab-premium-update.yml","Gitlab Premium Update","en-us/blog/gitlab-premium-update.yml","en-us/blog/gitlab-premium-update",{"_path":10001,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10002,"content":10007,"config":10012,"_id":10014,"_type":16,"title":10015,"_source":17,"_file":10016,"_stem":10017,"_extension":20},"/en-us/blog/expanding-gitlab-for-startups-program",{"title":10003,"description":10004,"ogTitle":10003,"ogDescription":10004,"noIndex":6,"ogImage":8597,"ogUrl":10005,"ogSiteName":995,"ogType":996,"canonicalUrls":10005,"schema":10006},"Expanding GitLab for Startups program","Learn how startups can access the complete DevSecOps platform.","https://about.gitlab.com/blog/expanding-gitlab-for-startups-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Expanding GitLab for Startups program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilio Salvador\"}],\n        \"datePublished\": \"2023-03-01\",\n      }",{"title":10003,"description":10004,"authors":10008,"heroImage":8597,"date":10009,"category":1049,"tags":10010},[940],"2023-03-01",[574,10011,1049],"startups",{"slug":10013,"featured":6,"template":736},"expanding-gitlab-for-startups-program","content:en-us:blog:expanding-gitlab-for-startups-program.yml","Expanding Gitlab For Startups Program","en-us/blog/expanding-gitlab-for-startups-program.yml","en-us/blog/expanding-gitlab-for-startups-program",{"_path":10019,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10020,"content":10026,"config":10030,"_id":10032,"_type":16,"title":10033,"_source":17,"_file":10034,"_stem":10035,"_extension":20},"/en-us/blog/how-to-deploy-react-to-amazon-s3",{"title":10021,"description":10022,"ogTitle":10021,"ogDescription":10022,"noIndex":6,"ogImage":10023,"ogUrl":10024,"ogSiteName":995,"ogType":996,"canonicalUrls":10024,"schema":10025},"How to deploy a React application to Amazon S3 using GitLab CI/CD","Follow this guide to use OpenID Connect to connect to AWS and deploy a React application to Amazon S3.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663291/Blog/Hero%20Images/cover1.jpg","https://about.gitlab.com/blog/how-to-deploy-react-to-amazon-s3","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to deploy a React application to Amazon S3 using GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeremy Wagner\"}],\n        \"datePublished\": \"2023-03-01\",\n      }",{"title":10021,"description":10022,"authors":10027,"heroImage":10023,"date":10009,"category":858,"tags":10029},[10028],"Jeremy Wagner",[564,110],{"slug":10031,"featured":6,"template":736},"how-to-deploy-react-to-amazon-s3","content:en-us:blog:how-to-deploy-react-to-amazon-s3.yml","How To Deploy React To Amazon S3","en-us/blog/how-to-deploy-react-to-amazon-s3.yml","en-us/blog/how-to-deploy-react-to-amazon-s3",{"_path":10037,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10038,"content":10044,"config":10048,"_id":10050,"_type":16,"title":10051,"_source":17,"_file":10052,"_stem":10053,"_extension":20},"/en-us/blog/oidc",{"title":10039,"description":10040,"ogTitle":10039,"ogDescription":10040,"noIndex":6,"ogImage":10041,"ogUrl":10042,"ogSiteName":995,"ogType":996,"canonicalUrls":10042,"schema":10043},"Secure GitLab CI/CD workflows using OIDC JWT on a DevSecOps platform","Learn a new method to authenticate using JWT to increase the security of CI/CD workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667094/Blog/Hero%20Images/container-security.jpg","https://about.gitlab.com/blog/oidc","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure GitLab CI/CD workflows using OIDC JWT on a DevSecOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2023-02-28\",\n      }",{"title":10039,"description":10040,"authors":10045,"heroImage":10041,"date":10046,"category":577,"tags":10047},[1712],"2023-02-28",[772,574,2097,2098],{"slug":10049,"featured":6,"template":736},"oidc","content:en-us:blog:oidc.yml","Oidc","en-us/blog/oidc.yml","en-us/blog/oidc",{"_path":10055,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10056,"content":10062,"config":10067,"_id":10069,"_type":16,"title":10070,"_source":17,"_file":10071,"_stem":10072,"_extension":20},"/en-us/blog/machine-learning-and-devsecops",{"title":10057,"description":10058,"ogTitle":10057,"ogDescription":10058,"noIndex":6,"ogImage":10059,"ogUrl":10060,"ogSiteName":995,"ogType":996,"canonicalUrls":10060,"schema":10061},"Machine learning and DevSecOps: Inside the OctoML/GitLab integration","MLOps and DevSecOps teams can unify their workflows and gain automation and cost efficiencies.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666915/Blog/Hero%20Images/autodevops.jpg","https://about.gitlab.com/blog/machine-learning-and-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Machine learning and DevSecOps: Inside the OctoML/GitLab integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sameer Farooqui, OctoML\"}],\n        \"datePublished\": \"2023-02-23\",\n      }",{"title":10057,"description":10058,"authors":10063,"heroImage":10059,"date":10065,"category":577,"tags":10066},[10064],"Sameer Farooqui, OctoML","2023-02-23",[233,728,574],{"slug":10068,"featured":6,"template":736},"machine-learning-and-devsecops","content:en-us:blog:machine-learning-and-devsecops.yml","Machine Learning And Devsecops","en-us/blog/machine-learning-and-devsecops.yml","en-us/blog/machine-learning-and-devsecops",{"_path":10074,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10075,"content":10080,"config":10084,"_id":10086,"_type":16,"title":10087,"_source":17,"_file":10088,"_stem":10089,"_extension":20},"/en-us/blog/accelerate-state-of-devops-report-key-takeaways",{"title":10076,"description":10077,"ogTitle":10076,"ogDescription":10077,"noIndex":6,"ogImage":8911,"ogUrl":10078,"ogSiteName":995,"ogType":996,"canonicalUrls":10078,"schema":10079},"Software supply chain security practices seeing only modest adoption","DORA Accelerate State of DevOps report shows opportunity lies within better security practices, including a focus on culture.","https://about.gitlab.com/blog/accelerate-state-of-devops-report-key-takeaways","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Software supply chain security practices seeing only modest adoption\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aathira Nair\"}],\n        \"datePublished\": \"2023-02-21\",\n      }",{"title":10076,"description":10077,"authors":10081,"heroImage":8911,"date":10082,"category":790,"tags":10083},[733],"2023-02-21",[564,790,3721],{"slug":10085,"featured":6,"template":736},"accelerate-state-of-devops-report-key-takeaways","content:en-us:blog:accelerate-state-of-devops-report-key-takeaways.yml","Accelerate State Of Devops Report Key Takeaways","en-us/blog/accelerate-state-of-devops-report-key-takeaways.yml","en-us/blog/accelerate-state-of-devops-report-key-takeaways",{"_path":10091,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10092,"content":10098,"config":10102,"_id":10104,"_type":16,"title":10105,"_source":17,"_file":10106,"_stem":10107,"_extension":20},"/en-us/blog/code-counting-in-gitlab",{"title":10093,"description":10094,"ogTitle":10093,"ogDescription":10094,"noIndex":6,"ogImage":10095,"ogUrl":10096,"ogSiteName":995,"ogType":996,"canonicalUrls":10096,"schema":10097},"Lightning fast code counting for better code management intelligence","Knowledge of your code composition can come through simple counting of lines of code per language.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682614/Blog/Hero%20Images/noaa-PkHsrwNOfBE-unsplash.jpg","https://about.gitlab.com/blog/code-counting-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Lightning fast code counting for better code management intelligence\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2023-02-15\",\n      }",{"title":10093,"description":10094,"authors":10099,"heroImage":10095,"date":10100,"category":858,"tags":10101},[959],"2023-02-15",[564,2889,2097],{"slug":10103,"featured":6,"template":736},"code-counting-in-gitlab","content:en-us:blog:code-counting-in-gitlab.yml","Code Counting In Gitlab","en-us/blog/code-counting-in-gitlab.yml","en-us/blog/code-counting-in-gitlab",{"_path":10109,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10110,"content":10116,"config":10122,"_id":10124,"_type":16,"title":10125,"_source":17,"_file":10126,"_stem":10127,"_extension":20},"/en-us/blog/understanding-and-improving-total-blocking-time",{"title":10111,"description":10112,"ogTitle":10111,"ogDescription":10112,"noIndex":6,"ogImage":10113,"ogUrl":10114,"ogSiteName":995,"ogType":996,"canonicalUrls":10114,"schema":10115},"Total Blocking Time - The metric to know for faster website performance","Learn how to identify and fix some root causes for high Total Blocking Time.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682637/Blog/Hero%20Images/tbt_cover_image.jpg","https://about.gitlab.com/blog/understanding-and-improving-total-blocking-time","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Total Blocking Time - The metric to know for faster website performance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacques Erasmus\"}],\n        \"datePublished\": \"2023-02-14\",\n      }",{"title":10111,"description":10112,"authors":10117,"heroImage":10113,"date":10119,"category":858,"tags":10120},[10118],"Jacques Erasmus","2023-02-14",[10121,1988,772],"frontend",{"slug":10123,"featured":6,"template":736},"understanding-and-improving-total-blocking-time","content:en-us:blog:understanding-and-improving-total-blocking-time.yml","Understanding And Improving Total Blocking Time","en-us/blog/understanding-and-improving-total-blocking-time.yml","en-us/blog/understanding-and-improving-total-blocking-time",{"_path":10129,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10130,"content":10135,"config":10139,"_id":10141,"_type":16,"title":10142,"_source":17,"_file":10143,"_stem":10144,"_extension":20},"/en-us/blog/gitlab-importers",{"title":10131,"description":10132,"ogTitle":10131,"ogDescription":10132,"noIndex":6,"ogImage":8842,"ogUrl":10133,"ogSiteName":995,"ogType":996,"canonicalUrls":10133,"schema":10134},"How to migrate data to GitLab using main importers","Learn about the capabilities of main importers, which are used to import data from external tools and from other GitLab instances.","https://about.gitlab.com/blog/gitlab-importers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to migrate data to GitLab using main importers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2023-02-13\",\n      }",{"title":10131,"description":10132,"authors":10136,"heroImage":8842,"date":10137,"category":858,"tags":10138},[1016],"2023-02-13",[772,564,1988],{"slug":10140,"featured":6,"template":736},"gitlab-importers","content:en-us:blog:gitlab-importers.yml","Gitlab Importers","en-us/blog/gitlab-importers.yml","en-us/blog/gitlab-importers",{"_path":10146,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10147,"content":10152,"config":10155,"_id":10157,"_type":16,"title":10158,"_source":17,"_file":10159,"_stem":10160,"_extension":20},"/en-us/blog/impact-of-the-file-type-variable-change-15-7",{"title":10148,"description":10149,"ogTitle":10148,"ogDescription":10149,"noIndex":6,"ogImage":8597,"ogUrl":10150,"ogSiteName":995,"ogType":996,"canonicalUrls":10150,"schema":10151},"Understanding the file type variable expansion change in GitLab 15.7","Learn how the change to file type variable expansion can impact CI jobs that rely on the file contents and what to do.","https://about.gitlab.com/blog/impact-of-the-file-type-variable-change-15-7","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Understanding the file type variable expansion change in GitLab 15.7\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2023-02-13\",\n      }",{"title":10148,"description":10149,"authors":10153,"heroImage":8597,"date":10137,"category":1049,"tags":10154},[4857],[2097,2098,730],{"slug":10156,"featured":6,"template":736},"impact-of-the-file-type-variable-change-15-7","content:en-us:blog:impact-of-the-file-type-variable-change-15-7.yml","Impact Of The File Type Variable Change 15 7","en-us/blog/impact-of-the-file-type-variable-change-15-7.yml","en-us/blog/impact-of-the-file-type-variable-change-15-7",{"_path":10162,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10163,"content":10169,"config":10173,"_id":10175,"_type":16,"title":10176,"_source":17,"_file":10177,"_stem":10178,"_extension":20},"/en-us/blog/gitlab-news",{"title":10164,"description":10165,"ogTitle":10164,"ogDescription":10165,"noIndex":6,"ogImage":10166,"ogUrl":10167,"ogSiteName":995,"ogType":996,"canonicalUrls":10167,"schema":10168},"An announcement from GitLab CEO Sid Sijbrandij","Earlier today, GitLab CEO Sid Sijbrandij sent the following note to GitLab team members.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099630/Blog/Hero%20Images/Blog/Hero%20Images/logoforblogpost_logoforblogpost.jpg_1750099629774.jpg","https://about.gitlab.com/blog/gitlab-news","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"An announcement from GitLab CEO Sid Sijbrandij\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2023-02-09\",\n      }",{"title":10164,"description":10165,"authors":10170,"heroImage":10166,"date":10171,"category":1049,"tags":10172},[1000],"2023-02-09",[1049,1569],{"slug":10174,"featured":6,"template":736},"gitlab-news","content:en-us:blog:gitlab-news.yml","Gitlab News","en-us/blog/gitlab-news.yml","en-us/blog/gitlab-news",{"_path":10180,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10181,"content":10187,"config":10191,"_id":10193,"_type":16,"title":10194,"_source":17,"_file":10195,"_stem":10196,"_extension":20},"/en-us/blog/why-did-we-choose-to-integrate-fluxcd-with-gitlab",{"title":10182,"description":10183,"ogTitle":10182,"ogDescription":10183,"noIndex":6,"ogImage":10184,"ogUrl":10185,"ogSiteName":995,"ogType":996,"canonicalUrls":10185,"schema":10186},"GitOps with GitLab: What you need to know about the Flux CD integration","Inside the decision to integrate Flux CD with the GitLab agent for Kubernetes and what it means to you.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678356/Blog/Hero%20Images/balance-speed-security-devops.jpg","https://about.gitlab.com/blog/why-did-we-choose-to-integrate-fluxcd-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps with GitLab: What you need to know about the Flux CD integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2023-02-08\",\n      }",{"title":10182,"description":10183,"authors":10188,"heroImage":10184,"date":10189,"category":858,"tags":10190},[2942],"2023-02-08",[559,2908,564,1049],{"slug":10192,"featured":6,"template":736},"why-did-we-choose-to-integrate-fluxcd-with-gitlab","content:en-us:blog:why-did-we-choose-to-integrate-fluxcd-with-gitlab.yml","Why Did We Choose To Integrate Fluxcd With Gitlab","en-us/blog/why-did-we-choose-to-integrate-fluxcd-with-gitlab.yml","en-us/blog/why-did-we-choose-to-integrate-fluxcd-with-gitlab",{"_path":10198,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10199,"content":10205,"config":10209,"_id":10211,"_type":16,"title":10212,"_source":17,"_file":10213,"_stem":10214,"_extension":20},"/en-us/blog/how-cube-uses-gitlab-to-increase-efficiency-and-productivity",{"title":10200,"description":10201,"ogTitle":10200,"ogDescription":10201,"noIndex":6,"ogImage":10202,"ogUrl":10203,"ogSiteName":995,"ogType":996,"canonicalUrls":10203,"schema":10204},"Cube reduces toolchain complexity and speeds software delivery with GitLab","Software maker shares how the DevSecOps Platform helps improve customer collaboration and streamline releases.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668437/Blog/Hero%20Images/faster-cycle-times.jpg","https://about.gitlab.com/blog/how-cube-uses-gitlab-to-increase-efficiency-and-productivity","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Cube reduces toolchain complexity and speeds software delivery with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2023-02-07\",\n      }",{"title":10200,"description":10201,"authors":10206,"heroImage":10202,"date":10207,"category":3072,"tags":10208},[1000],"2023-02-07",[574,3075,110],{"slug":10210,"featured":6,"template":736},"how-cube-uses-gitlab-to-increase-efficiency-and-productivity","content:en-us:blog:how-cube-uses-gitlab-to-increase-efficiency-and-productivity.yml","How Cube Uses Gitlab To Increase Efficiency And Productivity","en-us/blog/how-cube-uses-gitlab-to-increase-efficiency-and-productivity.yml","en-us/blog/how-cube-uses-gitlab-to-increase-efficiency-and-productivity",{"_path":10216,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10217,"content":10223,"config":10228,"_id":10230,"_type":16,"title":10231,"_source":17,"_file":10232,"_stem":10233,"_extension":20},"/en-us/blog/its-time-to-put-the-sec-in-devsecops",{"title":10218,"description":10219,"ogTitle":10218,"ogDescription":10219,"noIndex":6,"ogImage":10220,"ogUrl":10221,"ogSiteName":995,"ogType":996,"canonicalUrls":10221,"schema":10222},"It’s time to really put the Sec in DevSecOps","Organizations may tack on security to DevOps but unless they wholly integrate it, they will miss out on DevSecOps benefits.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671091/Blog/Hero%20Images/lock.jpg","https://about.gitlab.com/blog/its-time-to-put-the-sec-in-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"It’s time to really put the Sec in DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Francis Ofungwu\"}],\n        \"datePublished\": \"2023-02-02\",\n      }",{"title":10218,"description":10219,"authors":10224,"heroImage":10220,"date":10226,"category":577,"tags":10227},[10225],"Francis Ofungwu","2023-02-02",[790,564,543],{"slug":10229,"featured":6,"template":736},"its-time-to-put-the-sec-in-devsecops","content:en-us:blog:its-time-to-put-the-sec-in-devsecops.yml","Its Time To Put The Sec In Devsecops","en-us/blog/its-time-to-put-the-sec-in-devsecops.yml","en-us/blog/its-time-to-put-the-sec-in-devsecops",{"_path":10235,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10236,"content":10241,"config":10245,"_id":10247,"_type":16,"title":10248,"_source":17,"_file":10249,"_stem":10250,"_extension":20},"/en-us/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation",{"ogTitle":10237,"schema":10238,"ogImage":8487,"ogDescription":10239,"ogSiteName":995,"noIndex":6,"ogType":996,"ogUrl":10240,"title":10237,"canonicalUrls":10240,"description":10239},"Efficient DevSecOps workflows: Hands-on python-gitlab API automation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Efficient DevSecOps workflows: Hands-on python-gitlab API automation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-02-01\",\n      }","The python-gitlab library is a useful abstraction layer for the GitLab API. Dive into hands-on examples and best practices in this tutorial.","https://about.gitlab.com/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation",{"title":10237,"description":10239,"authors":10242,"heroImage":8487,"date":10243,"category":858,"tags":10244},[1424],"2023-02-01",[233,772,574,543],{"slug":10246,"featured":6,"template":736},"efficient-devsecops-workflows-hands-on-python-gitlab-api-automation","content:en-us:blog:efficient-devsecops-workflows-hands-on-python-gitlab-api-automation.yml","Efficient Devsecops Workflows Hands On Python Gitlab Api Automation","en-us/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation.yml","en-us/blog/efficient-devsecops-workflows-hands-on-python-gitlab-api-automation",{"_path":10252,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10253,"content":10259,"config":10264,"_id":10266,"_type":16,"title":10267,"_source":17,"_file":10268,"_stem":10269,"_extension":20},"/en-us/blog/how-start-ospo-ten-minutes-using-gitlab",{"title":10254,"description":10255,"ogTitle":10254,"ogDescription":10255,"noIndex":6,"ogImage":10256,"ogUrl":10257,"ogSiteName":995,"ogType":996,"canonicalUrls":10257,"schema":10258},"Start an open source center of excellence in 10 minutes using GitLab","Launch your own open source program office using the OSPO Alliance's tools on GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682593/Blog/Hero%20Images/opensign.jpg","https://about.gitlab.com/blog/how-start-ospo-ten-minutes-using-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Start an open source center of excellence in 10 minutes using GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Boris Baldassari\"}],\n        \"datePublished\": \"2023-01-30\",\n      }",{"title":10254,"description":10255,"authors":10260,"heroImage":10256,"date":10262,"category":858,"tags":10263},[10261],"Boris Baldassari","2023-01-30",[1265,772,564],{"slug":10265,"featured":6,"template":736},"how-start-ospo-ten-minutes-using-gitlab","content:en-us:blog:how-start-ospo-ten-minutes-using-gitlab.yml","How Start Ospo Ten Minutes Using Gitlab","en-us/blog/how-start-ospo-ten-minutes-using-gitlab.yml","en-us/blog/how-start-ospo-ten-minutes-using-gitlab",{"_path":10271,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10272,"content":10278,"config":10283,"_id":10285,"_type":16,"title":10286,"_source":17,"_file":10287,"_stem":10288,"_extension":20},"/en-us/blog/four-approaches-to-gitlab-integrations",{"title":10273,"description":10274,"ogTitle":10273,"ogDescription":10274,"noIndex":6,"ogImage":10275,"ogUrl":10276,"ogSiteName":995,"ogType":996,"canonicalUrls":10276,"schema":10277},"4 approaches to GitLab integrations","Learn about use cases that help extract even more value from a DevSecOps platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667946/Blog/Hero%20Images/4-facets-of-gitlab-integration.png","https://about.gitlab.com/blog/four-approaches-to-gitlab-integrations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 approaches to GitLab integrations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kurt Dusek\"}],\n        \"datePublished\": \"2023-01-26\",\n      }",{"title":10273,"description":10274,"authors":10279,"heroImage":10275,"date":10281,"category":577,"tags":10282},[10280],"Kurt Dusek","2023-01-26",[233,284,564],{"slug":10284,"featured":6,"template":736},"four-approaches-to-gitlab-integrations","content:en-us:blog:four-approaches-to-gitlab-integrations.yml","Four Approaches To Gitlab Integrations","en-us/blog/four-approaches-to-gitlab-integrations.yml","en-us/blog/four-approaches-to-gitlab-integrations",{"_path":10290,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10291,"content":10297,"config":10300,"_id":10302,"_type":16,"title":10303,"_source":17,"_file":10304,"_stem":10305,"_extension":20},"/en-us/blog/whats-next-for-devsecops",{"title":10292,"description":10293,"ogTitle":10292,"ogDescription":10293,"noIndex":6,"ogImage":10294,"ogUrl":10295,"ogSiteName":995,"ogType":996,"canonicalUrls":10295,"schema":10296},"GitLab’s 2023 predictions: What’s next for DevSecOps?","Check out insights on securing the supply chain, new uses for AI/ML, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663820/Blog/Hero%20Images/prediction.jpg","https://about.gitlab.com/blog/whats-next-for-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s 2023 predictions: What’s next for DevSecOps?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2023-01-26\",\n      }",{"title":10292,"description":10293,"authors":10298,"heroImage":10294,"date":10281,"category":577,"tags":10299},[3506],[564,790,728,730],{"slug":10301,"featured":6,"template":736},"whats-next-for-devsecops","content:en-us:blog:whats-next-for-devsecops.yml","Whats Next For Devsecops","en-us/blog/whats-next-for-devsecops.yml","en-us/blog/whats-next-for-devsecops",{"_path":10307,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10308,"content":10314,"config":10319,"_id":10321,"_type":16,"title":10322,"_source":17,"_file":10323,"_stem":10324,"_extension":20},"/en-us/blog/git-security-audit",{"title":10309,"description":10310,"ogTitle":10309,"ogDescription":10310,"noIndex":6,"ogImage":10311,"ogUrl":10312,"ogSiteName":995,"ogType":996,"canonicalUrls":10312,"schema":10313},"Git security audit: Inside the hunt for - and discovery of - CVEs","Get a behind-the-scenes look at how I helped discover the vulnerability that became CVE-2022-41903.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668524/Blog/Hero%20Images/closeup-photo-of-black-and-blue-keyboard-1194713.jpg","https://about.gitlab.com/blog/git-security-audit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git security audit: Inside the hunt for - and discovery of - CVEs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joern Schneeweisz\"}],\n        \"datePublished\": \"2023-01-24\",\n      }",{"title":10309,"description":10310,"authors":10315,"heroImage":10311,"date":10317,"category":790,"tags":10318},[10316],"Joern Schneeweisz","2023-01-24",[790,3292],{"slug":10320,"featured":6,"template":736},"git-security-audit","content:en-us:blog:git-security-audit.yml","Git Security Audit","en-us/blog/git-security-audit.yml","en-us/blog/git-security-audit",{"_path":10326,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10327,"content":10333,"config":10336,"_id":10338,"_type":16,"title":10339,"_source":17,"_file":10340,"_stem":10341,"_extension":20},"/en-us/blog/the-gitlab-quarterly-how-our-latest-beta-releases-support-developers",{"title":10328,"description":10329,"ogTitle":10328,"ogDescription":10329,"noIndex":6,"ogImage":10330,"ogUrl":10331,"ogSiteName":995,"ogType":996,"canonicalUrls":10331,"schema":10332},"The GitLab Quarterly: How our latest beta releases support developers","The Value Streams Dashboard and Remote Development provide the capabilities needed to support DevSecOps teams and stay competitive.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668367/Blog/Hero%20Images/innovation-unsplash.jpg","https://about.gitlab.com/blog/the-gitlab-quarterly-how-our-latest-beta-releases-support-developers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The GitLab Quarterly: How our latest beta releases support developers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2023-01-24\",\n      }",{"title":10328,"description":10329,"authors":10334,"heroImage":10330,"date":10317,"category":577,"tags":10335},[2023],[564,574,1988,730],{"slug":10337,"featured":6,"template":736},"the-gitlab-quarterly-how-our-latest-beta-releases-support-developers","content:en-us:blog:the-gitlab-quarterly-how-our-latest-beta-releases-support-developers.yml","The Gitlab Quarterly How Our Latest Beta Releases Support Developers","en-us/blog/the-gitlab-quarterly-how-our-latest-beta-releases-support-developers.yml","en-us/blog/the-gitlab-quarterly-how-our-latest-beta-releases-support-developers",{"_path":10343,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10344,"content":10350,"config":10355,"_id":10357,"_type":16,"title":10358,"_source":17,"_file":10359,"_stem":10360,"_extension":20},"/en-us/blog/try-out-new-way-to-migrate-projects",{"title":10345,"description":10346,"ogTitle":10345,"ogDescription":10346,"noIndex":6,"ogImage":10347,"ogUrl":10348,"ogSiteName":995,"ogType":996,"canonicalUrls":10348,"schema":10349},"Moving projects easily: GitLab migration automation benefits","Learn how our new direct transfer feature, in beta, is speeding migrations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668857/Blog/Hero%20Images/migration.jpg","https://about.gitlab.com/blog/try-out-new-way-to-migrate-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab project migration and automation - a perfect pair for faster, easier transfers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Magdalena Frankiewicz\"}],\n        \"datePublished\": \"2023-01-18\",\n      }",{"title":10351,"description":10346,"authors":10352,"heroImage":10347,"date":10353,"category":577,"tags":10354},"GitLab project migration and automation - a perfect pair for faster, easier transfers",[1530],"2023-01-18",[730,1049,731,1335],{"slug":10356,"featured":6,"template":736},"try-out-new-way-to-migrate-projects","content:en-us:blog:try-out-new-way-to-migrate-projects.yml","Try Out New Way To Migrate Projects","en-us/blog/try-out-new-way-to-migrate-projects.yml","en-us/blog/try-out-new-way-to-migrate-projects",{"_path":10362,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10363,"content":10369,"config":10373,"_id":10375,"_type":16,"title":10376,"_source":17,"_file":10377,"_stem":10378,"_extension":20},"/en-us/blog/devsecops-platforms-help-smbs-scale-as-they-grow",{"title":10364,"description":10365,"ogTitle":10364,"ogDescription":10365,"noIndex":6,"ogImage":10366,"ogUrl":10367,"ogSiteName":995,"ogType":996,"canonicalUrls":10367,"schema":10368},"DevSecOps platforms help SMBs scale as they grow","Adopting a comprehensive platform early lets smaller businesses mature with best practices.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668641/Blog/Hero%20Images/smbscale.jpg","https://about.gitlab.com/blog/devsecops-platforms-help-smbs-scale-as-they-grow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps platforms help SMBs scale as they grow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-01-17\",\n      }",{"title":10364,"description":10365,"authors":10370,"heroImage":10366,"date":10371,"category":577,"tags":10372},[3999],"2023-01-17",[564,1050,4182,8475],{"slug":10374,"featured":6,"template":736},"devsecops-platforms-help-smbs-scale-as-they-grow","content:en-us:blog:devsecops-platforms-help-smbs-scale-as-they-grow.yml","Devsecops Platforms Help Smbs Scale As They Grow","en-us/blog/devsecops-platforms-help-smbs-scale-as-they-grow.yml","en-us/blog/devsecops-platforms-help-smbs-scale-as-they-grow",{"_path":10380,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10381,"content":10387,"config":10391,"_id":10393,"_type":16,"title":10394,"_source":17,"_file":10395,"_stem":10396,"_extension":20},"/en-us/blog/gitlab-support-requires-contacts-to-be-listed-to-open-support-tickets",{"title":10382,"description":10383,"ogTitle":10382,"ogDescription":10383,"noIndex":6,"ogImage":10384,"ogUrl":10385,"ogSiteName":995,"ogType":996,"canonicalUrls":10385,"schema":10386},"GitLab improves customer support with faster response times","Learn about important changes to GitLab Support that will create better interactions with customers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679034/Blog/Hero%20Images/inside-gitLab-public-bug-bounty-program.png","https://about.gitlab.com/blog/gitlab-support-requires-contacts-to-be-listed-to-open-support-tickets","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Support changes enable faster response times, tighter controls for customers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lyle Kozloff\"}],\n        \"datePublished\": \"2023-01-17\",\n      }",{"title":10388,"description":10383,"authors":10389,"heroImage":10384,"date":10371,"category":1049,"tags":10390},"GitLab Support changes enable faster response times, tighter controls for customers",[5378],[3075,1049,731],{"slug":10392,"featured":6,"template":736},"gitlab-support-requires-contacts-to-be-listed-to-open-support-tickets","content:en-us:blog:gitlab-support-requires-contacts-to-be-listed-to-open-support-tickets.yml","Gitlab Support Requires Contacts To Be Listed To Open Support Tickets","en-us/blog/gitlab-support-requires-contacts-to-be-listed-to-open-support-tickets.yml","en-us/blog/gitlab-support-requires-contacts-to-be-listed-to-open-support-tickets",{"_path":10398,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10399,"content":10405,"config":10408,"_id":10410,"_type":16,"title":10411,"_source":17,"_file":10412,"_stem":10413,"_extension":20},"/en-us/blog/new-typefaces-in-gitlab",{"title":10400,"description":10401,"ogTitle":10400,"ogDescription":10401,"noIndex":6,"ogImage":10402,"ogUrl":10403,"ogSiteName":995,"ogType":996,"canonicalUrls":10403,"schema":10404},"Get to know the new GitLab typefaces","Dive deep into the considerations for changing to GitLab Sans (Inter) and JetBrains Mono, including improved readability.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669926/Blog/Hero%20Images/Cover3.png","https://about.gitlab.com/blog/new-typefaces-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get to know the new GitLab typefaces\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sascha Eggenberger\"},{\"@type\":\"Person\",\"name\":\"Jeremy Elder\"}],\n        \"datePublished\": \"2023-01-17\",\n      }",{"title":10400,"description":10401,"authors":10406,"heroImage":10402,"date":10371,"category":1049,"tags":10407},[4217,4219],[2702,10121,1265,731,2704,2703],{"slug":10409,"featured":6,"template":736},"new-typefaces-in-gitlab","content:en-us:blog:new-typefaces-in-gitlab.yml","New Typefaces In Gitlab","en-us/blog/new-typefaces-in-gitlab.yml","en-us/blog/new-typefaces-in-gitlab",{"_path":10415,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10416,"content":10422,"config":10427,"_id":10429,"_type":16,"title":10430,"_source":17,"_file":10431,"_stem":10432,"_extension":20},"/en-us/blog/self-managed-support-gitlab-for-jira-app",{"title":10417,"description":10418,"ogTitle":10417,"ogDescription":10418,"noIndex":6,"ogImage":10419,"ogUrl":10420,"ogSiteName":995,"ogType":996,"canonicalUrls":10420,"schema":10421},"Self-managed support extended to GitLab for Jira App","Connect GitLab with the Jira development panel to sync merge requests, commits, and transition Jira issue statuses from GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682573/Blog/Hero%20Images/jason-goodman-Oalh2MojUuk-unsplash.jpg","https://about.gitlab.com/blog/self-managed-support-gitlab-for-jira-app","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Self-managed support extended to GitLab for Jira App\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grant Hickman\"}],\n        \"datePublished\": \"2023-01-12\",\n      }",{"title":10417,"description":10418,"authors":10423,"heroImage":10419,"date":10425,"category":1049,"tags":10426},[10424],"Grant Hickman","2023-01-12",[730,233,284],{"slug":10428,"featured":6,"template":736},"self-managed-support-gitlab-for-jira-app","content:en-us:blog:self-managed-support-gitlab-for-jira-app.yml","Self Managed Support Gitlab For Jira App","en-us/blog/self-managed-support-gitlab-for-jira-app.yml","en-us/blog/self-managed-support-gitlab-for-jira-app",{"_path":10434,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10435,"content":10441,"config":10445,"_id":10447,"_type":16,"title":10448,"_source":17,"_file":10449,"_stem":10450,"_extension":20},"/en-us/blog/monitor-web-attack-surface-with-gitlab",{"title":10436,"description":10437,"ogTitle":10436,"ogDescription":10437,"noIndex":6,"ogImage":10438,"ogUrl":10439,"ogSiteName":995,"ogType":996,"canonicalUrls":10439,"schema":10440},"Monitor your web attack surface with GitLab CI/CD and GitLab Pages","Use this tutorial to build an automated web application screenshot report.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682233/Blog/Hero%20Images/aleks-dahlberg-glass-unsplash.jpg","https://about.gitlab.com/blog/monitor-web-attack-surface-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Monitor your web attack surface with GitLab CI/CD and GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Moberly\"}],\n        \"datePublished\": \"2023-01-11\",\n      }",{"title":10436,"description":10437,"authors":10442,"heroImage":10438,"date":10443,"category":790,"tags":10444},[2720],"2023-01-11",[790,1265],{"slug":10446,"featured":6,"template":736},"monitor-web-attack-surface-with-gitlab","content:en-us:blog:monitor-web-attack-surface-with-gitlab.yml","Monitor Web Attack Surface With Gitlab","en-us/blog/monitor-web-attack-surface-with-gitlab.yml","en-us/blog/monitor-web-attack-surface-with-gitlab",{"_path":10452,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10453,"content":10458,"config":10462,"_id":10464,"_type":16,"title":10465,"_source":17,"_file":10466,"_stem":10467,"_extension":20},"/en-us/blog/devsecops-platforms-give-smbs-security-muscle",{"title":10454,"description":10455,"ogTitle":10454,"ogDescription":10455,"noIndex":6,"ogImage":10041,"ogUrl":10456,"ogSiteName":995,"ogType":996,"canonicalUrls":10456,"schema":10457},"DevSecOps platforms give SMBs security muscle","A single platform enables teams to build, test, and deploy secure software with fewer resources.","https://about.gitlab.com/blog/devsecops-platforms-give-smbs-security-muscle","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps platforms give SMBs security muscle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2023-01-10\",\n      }",{"title":10454,"description":10455,"authors":10459,"heroImage":10041,"date":10460,"category":577,"tags":10461},[3999],"2023-01-10",[564,574,790,728],{"slug":10463,"featured":6,"template":736},"devsecops-platforms-give-smbs-security-muscle","content:en-us:blog:devsecops-platforms-give-smbs-security-muscle.yml","Devsecops Platforms Give Smbs Security Muscle","en-us/blog/devsecops-platforms-give-smbs-security-muscle.yml","en-us/blog/devsecops-platforms-give-smbs-security-muscle",{"_path":10469,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10470,"content":10475,"config":10479,"_id":10481,"_type":16,"title":10482,"_source":17,"_file":10483,"_stem":10484,"_extension":20},"/en-us/blog/visualizing-incident-management-metrics",{"title":10471,"description":10472,"ogTitle":10471,"ogDescription":10472,"noIndex":6,"ogImage":6369,"ogUrl":10473,"ogSiteName":995,"ogType":996,"canonicalUrls":10473,"schema":10474},"Visual guide to incident metrics","Learn what incident metrics are and how they contribute to better performance and response times.","https://about.gitlab.com/blog/visualizing-incident-management-metrics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Visual guide to incident metrics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alana Bellucci\"}],\n        \"datePublished\": \"2023-01-09\",\n      }",{"title":10471,"description":10472,"authors":10476,"heroImage":6369,"date":10477,"category":577,"tags":10478},[5072],"2023-01-09",[731,2815,730],{"slug":10480,"featured":6,"template":736},"visualizing-incident-management-metrics","content:en-us:blog:visualizing-incident-management-metrics.yml","Visualizing Incident Management Metrics","en-us/blog/visualizing-incident-management-metrics.yml","en-us/blog/visualizing-incident-management-metrics",{"_path":10486,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10487,"content":10493,"config":10498,"_id":10500,"_type":16,"title":10501,"_source":17,"_file":10502,"_stem":10503,"_extension":20},"/en-us/blog/vestiaire-collective-on-moving-to-a-devsecops-platform",{"title":10488,"description":10489,"ogTitle":10488,"ogDescription":10489,"noIndex":6,"ogImage":10490,"ogUrl":10491,"ogSiteName":995,"ogType":996,"canonicalUrls":10491,"schema":10492},"Vestiaire Collective's DevSecOps migration: Wins and insights","Support for container registries and integrations with existing tools were the top reasons for the ecommerce company's migration to GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670278/Blog/Hero%20Images/fasttrack.jpg","https://about.gitlab.com/blog/vestiaire-collective-on-moving-to-a-devsecops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Vestiaire Collective VP shares wins, insights, and what's next with DevSecOps migration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chandler Gibbons\"}],\n        \"datePublished\": \"2023-01-05\",\n      }",{"title":10494,"description":10489,"authors":10495,"heroImage":10490,"date":10496,"category":3072,"tags":10497},"Vestiaire Collective VP shares wins, insights, and what's next with DevSecOps migration",[4090],"2023-01-05",[574,3075,1988,2097,2098],{"slug":10499,"featured":6,"template":736},"vestiaire-collective-on-moving-to-a-devsecops-platform","content:en-us:blog:vestiaire-collective-on-moving-to-a-devsecops-platform.yml","Vestiaire Collective On Moving To A Devsecops Platform","en-us/blog/vestiaire-collective-on-moving-to-a-devsecops-platform.yml","en-us/blog/vestiaire-collective-on-moving-to-a-devsecops-platform",{"_path":10505,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10506,"content":10512,"config":10516,"_id":10518,"_type":16,"title":10519,"_source":17,"_file":10520,"_stem":10521,"_extension":20},"/en-us/blog/pat-revocation-coming-soon",{"title":10507,"description":10508,"ogTitle":10507,"ogDescription":10508,"noIndex":6,"ogImage":10509,"ogUrl":10510,"ogSiteName":995,"ogType":996,"canonicalUrls":10510,"schema":10511},"Secret Detection update: Leaked Personal Access Tokens will soon be revoked","Learn about upcoming changes to better protect GitLab users and organizations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682562/Blog/Hero%20Images/michael-dziedzic-1bjsASjhfkE-unsplash.jpg","https://about.gitlab.com/blog/pat-revocation-coming-soon","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secret Detection update: Leaked Personal Access Tokens will soon be revoked\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Connor Gilbert\"}],\n        \"datePublished\": \"2023-01-04\",\n      }",{"title":10507,"description":10508,"authors":10513,"heroImage":10509,"date":10514,"category":1049,"tags":10515},[4440],"2023-01-04",[790,1049,730],{"slug":10517,"featured":6,"template":736},"pat-revocation-coming-soon","content:en-us:blog:pat-revocation-coming-soon.yml","Pat Revocation Coming Soon","en-us/blog/pat-revocation-coming-soon.yml","en-us/blog/pat-revocation-coming-soon",{"_path":10523,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10524,"content":10530,"config":10534,"_id":10536,"_type":16,"title":10537,"_source":17,"_file":10538,"_stem":10539,"_extension":20},"/en-us/blog/keeping-your-development-dry",{"title":10525,"description":10526,"ogTitle":10525,"ogDescription":10526,"noIndex":6,"ogImage":10527,"ogUrl":10528,"ogSiteName":995,"ogType":996,"canonicalUrls":10528,"schema":10529},"DRY development: A cheatsheet on reusability throughout GitLab","How to follow the DevOps principle of 'don't repeat yourself' to optimize CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683555/Blog/Hero%20Images/drylights.jpg","https://about.gitlab.com/blog/keeping-your-development-dry","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DRY development: A cheatsheet on reusability throughout GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Noah Ing\"},{\"@type\":\"Person\",\"name\":\"Joe Randazzo\"}],\n        \"datePublished\": \"2023-01-03\",\n      }",{"title":10525,"description":10526,"authors":10531,"heroImage":10527,"date":10532,"category":858,"tags":10533},[2997,1295],"2023-01-03",[2097,2098,564,574],{"slug":10535,"featured":6,"template":736},"keeping-your-development-dry","content:en-us:blog:keeping-your-development-dry.yml","Keeping Your Development Dry","en-us/blog/keeping-your-development-dry.yml","en-us/blog/keeping-your-development-dry",{"_path":10541,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10542,"content":10548,"config":10552,"_id":10554,"_type":16,"title":10555,"_source":17,"_file":10556,"_stem":10557,"_extension":20},"/en-us/blog/everyone-who-has-contributed",{"title":10543,"description":10544,"ogTitle":10543,"ogDescription":10544,"noIndex":6,"ogImage":10545,"ogUrl":10546,"ogSiteName":995,"ogType":996,"canonicalUrls":10546,"schema":10547},"Visualizing 11 years of GitLab contributions","Check out this animated video, which beautifully visualizes every contribution since our start.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682555/Blog/Hero%20Images/gitlabeveryonecontributesdna.png","https://about.gitlab.com/blog/everyone-who-has-contributed","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Visualizing 11 years of GitLab contributions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2022-12-19\",\n      }",{"title":10543,"description":10544,"authors":10549,"heroImage":10545,"date":10550,"category":6121,"tags":10551},[959],"2022-12-19",[269,3074,730],{"slug":10553,"featured":6,"template":736},"everyone-who-has-contributed","content:en-us:blog:everyone-who-has-contributed.yml","Everyone Who Has Contributed","en-us/blog/everyone-who-has-contributed.yml","en-us/blog/everyone-who-has-contributed",{"_path":10559,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10560,"content":10565,"config":10569,"_id":10571,"_type":16,"title":10572,"_source":17,"_file":10573,"_stem":10574,"_extension":20},"/en-us/blog/why-2022-was-a-record-breaking-year-in-bug-bounty-awards",{"title":10561,"description":10562,"ogTitle":10561,"ogDescription":10562,"noIndex":6,"ogImage":10384,"ogUrl":10563,"ogSiteName":995,"ogType":996,"canonicalUrls":10563,"schema":10564},"Why 2022 was a record-breaking year in bug bounty awards","Find out about the researchers who together earned more than $1 million USD in prizes and their bug hunting contributions.","https://about.gitlab.com/blog/why-2022-was-a-record-breaking-year-in-bug-bounty-awards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why 2022 was a record-breaking year in bug bounty awards\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nick Malcolm\"}],\n        \"datePublished\": \"2022-12-19\",\n      }",{"title":10561,"description":10562,"authors":10566,"heroImage":10384,"date":10550,"category":790,"tags":10568},[10567],"Nick Malcolm",[790,2483,269],{"slug":10570,"featured":6,"template":736},"why-2022-was-a-record-breaking-year-in-bug-bounty-awards","content:en-us:blog:why-2022-was-a-record-breaking-year-in-bug-bounty-awards.yml","Why 2022 Was A Record Breaking Year In Bug Bounty Awards","en-us/blog/why-2022-was-a-record-breaking-year-in-bug-bounty-awards.yml","en-us/blog/why-2022-was-a-record-breaking-year-in-bug-bounty-awards",{"_path":10576,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10577,"content":10583,"config":10587,"_id":10589,"_type":16,"title":10590,"_source":17,"_file":10591,"_stem":10592,"_extension":20},"/en-us/blog/can-chatgpt-resolve-gitlab-issues",{"title":10578,"description":10579,"ogTitle":10578,"ogDescription":10579,"noIndex":6,"ogImage":10580,"ogUrl":10581,"ogSiteName":995,"ogType":996,"canonicalUrls":10581,"schema":10582},"Testing ChatGPT: Can it solve a GitLab issue?","We put ChatGPT to the test to see if it could contribute to GitLab. Here's what we learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670171/Blog/Hero%20Images/akshay-nanavati-Zq6HerrBPEs-unsplash.jpg","https://about.gitlab.com/blog/can-chatgpt-resolve-gitlab-issues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Testing ChatGPT: Can it solve a GitLab issue?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"},{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2022-12-15\",\n      }",{"title":10578,"description":10579,"authors":10584,"heroImage":10580,"date":10585,"category":858,"tags":10586},[6119,1439],"2022-12-15",[772,269,3074,564],{"slug":10588,"featured":6,"template":736},"can-chatgpt-resolve-gitlab-issues","content:en-us:blog:can-chatgpt-resolve-gitlab-issues.yml","Can Chatgpt Resolve Gitlab Issues","en-us/blog/can-chatgpt-resolve-gitlab-issues.yml","en-us/blog/can-chatgpt-resolve-gitlab-issues",{"_path":10594,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10595,"content":10601,"config":10604,"_id":10606,"_type":16,"title":10607,"_source":17,"_file":10608,"_stem":10609,"_extension":20},"/en-us/blog/get-ready-for-new-gitlab-web-ide",{"title":10596,"description":10597,"ogTitle":10596,"ogDescription":10597,"noIndex":6,"ogImage":10598,"ogUrl":10599,"ogSiteName":995,"ogType":996,"canonicalUrls":10599,"schema":10600},"A first look at the new GitLab Web IDE and remote development experience","The next-generation GitLab Web IDE, available to everyone, will enable faster and more efficient contributions right from your browser.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682545/Blog/Hero%20Images/navin-beta-unsplash.jpg","https://about.gitlab.com/blog/get-ready-for-new-gitlab-web-ide","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A first look at the new GitLab Web IDE and remote development experience\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Schurter\"}],\n        \"datePublished\": \"2022-12-15\",\n      }",{"title":10596,"description":10597,"authors":10602,"heroImage":10598,"date":10585,"category":301,"tags":10603},[9264],[730,1049,731,1335],{"slug":10605,"featured":6,"template":736},"get-ready-for-new-gitlab-web-ide","content:en-us:blog:get-ready-for-new-gitlab-web-ide.yml","Get Ready For New Gitlab Web Ide","en-us/blog/get-ready-for-new-gitlab-web-ide.yml","en-us/blog/get-ready-for-new-gitlab-web-ide",{"_path":10611,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10612,"content":10617,"config":10621,"_id":10623,"_type":16,"title":10624,"_source":17,"_file":10625,"_stem":10626,"_extension":20},"/en-us/blog/how-to-continously-test-web-apps-apis-with-hurl-and-gitlab-ci-cd",{"title":10613,"description":10614,"ogTitle":10613,"ogDescription":10614,"noIndex":6,"ogImage":8487,"ogUrl":10615,"ogSiteName":995,"ogType":996,"canonicalUrls":10615,"schema":10616},"How to continuously test web apps and APIs with Hurl and GitLab CI/CD","Hurl as a CLI tool can be integrated into the DevSecOps platform to continuously verify, test, and monitor targets. It also offers integrated unit test reports in GitLab CI/CD.","https://about.gitlab.com/blog/how-to-continously-test-web-apps-apis-with-hurl-and-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to continuously test web apps and APIs with Hurl and GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2022-12-14\",\n      }",{"title":10613,"description":10614,"authors":10618,"heroImage":8487,"date":10619,"category":858,"tags":10620},[1424],"2022-12-14",[964,2097,564],{"slug":10622,"featured":6,"template":736},"how-to-continously-test-web-apps-apis-with-hurl-and-gitlab-ci-cd","content:en-us:blog:how-to-continously-test-web-apps-apis-with-hurl-and-gitlab-ci-cd.yml","How To Continously Test Web Apps Apis With Hurl And Gitlab Ci Cd","en-us/blog/how-to-continously-test-web-apps-apis-with-hurl-and-gitlab-ci-cd.yml","en-us/blog/how-to-continously-test-web-apps-apis-with-hurl-and-gitlab-ci-cd",{"_path":10628,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10629,"content":10635,"config":10640,"_id":10642,"_type":16,"title":10643,"_source":17,"_file":10644,"_stem":10645,"_extension":20},"/en-us/blog/new-default-container-image-gitlab-saas-linux-runnners",{"title":10630,"description":10631,"ogTitle":10630,"ogDescription":10631,"noIndex":6,"ogImage":10632,"ogUrl":10633,"ogSiteName":995,"ogType":996,"canonicalUrls":10633,"schema":10634},"Using Ruby 3.1 as default on GitLab SaaS Linux runners","Learn about the new image and how to ensure CI job compatibility.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670766/Blog/Hero%20Images/container-reg-cdn-blog.jpg","https://about.gitlab.com/blog/new-default-container-image-gitlab-saas-linux-runnners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use Ruby 3.1 as the default container image on GitLab SaaS Runners on Linux\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2022-12-13\",\n      }",{"title":10636,"description":10631,"authors":10637,"heroImage":10632,"date":10638,"category":858,"tags":10639},"How to use Ruby 3.1 as the default container image on GitLab SaaS Runners on Linux",[4857],"2022-12-13",[564,1569,2097,2098,233],{"slug":10641,"featured":6,"template":736},"new-default-container-image-gitlab-saas-linux-runnners","content:en-us:blog:new-default-container-image-gitlab-saas-linux-runnners.yml","New Default Container Image Gitlab Saas Linux Runnners","en-us/blog/new-default-container-image-gitlab-saas-linux-runnners.yml","en-us/blog/new-default-container-image-gitlab-saas-linux-runnners",{"_path":10647,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10648,"content":10653,"config":10657,"_id":10659,"_type":16,"title":10660,"_source":17,"_file":10661,"_stem":10662,"_extension":20},"/en-us/blog/how-automation-is-making-devops-pros-jobs-easier",{"title":10649,"description":10650,"ogTitle":10649,"ogDescription":10650,"noIndex":6,"ogImage":5621,"ogUrl":10651,"ogSiteName":995,"ogType":996,"canonicalUrls":10651,"schema":10652},"How automation is making DevOps pros’ jobs easier","Six ways automation in a DevSecOps platform aids security, monitoring, compliance, and CI/CD.","https://about.gitlab.com/blog/how-automation-is-making-devops-pros-jobs-easier","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How automation is making DevOps pros’ jobs easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-12-12\",\n      }",{"title":10649,"description":10650,"authors":10654,"heroImage":5621,"date":10655,"category":577,"tags":10656},[3999],"2022-12-12",[564,2815,2097,2098],{"slug":10658,"featured":6,"template":736},"how-automation-is-making-devops-pros-jobs-easier","content:en-us:blog:how-automation-is-making-devops-pros-jobs-easier.yml","How Automation Is Making Devops Pros Jobs Easier","en-us/blog/how-automation-is-making-devops-pros-jobs-easier.yml","en-us/blog/how-automation-is-making-devops-pros-jobs-easier",{"_path":10664,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10665,"content":10670,"config":10675,"_id":10677,"_type":16,"title":10678,"_source":17,"_file":10679,"_stem":10680,"_extension":20},"/en-us/blog/top-10-technical-articles-of-2022",{"title":10666,"description":10667,"ogTitle":10666,"ogDescription":10667,"noIndex":6,"ogImage":9168,"ogUrl":10668,"ogSiteName":995,"ogType":996,"canonicalUrls":10668,"schema":10669},"Top 10 technical articles of 2022","Let’s review our fantastic year of how-to guides. From fixing failed pipelines to making the best use of GitOps, we have you covered with our in-depth tutorials.","https://about.gitlab.com/blog/top-10-technical-articles-of-2022","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 10 technical articles of 2022\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-12-08\",\n      }",{"title":10666,"description":10667,"authors":10671,"heroImage":9168,"date":10673,"category":858,"tags":10674},[10672],"Valerie Silverthorne","2022-12-08",[564,772,1195],{"slug":10676,"featured":6,"template":736},"top-10-technical-articles-of-2022","content:en-us:blog:top-10-technical-articles-of-2022.yml","Top 10 Technical Articles Of 2022","en-us/blog/top-10-technical-articles-of-2022.yml","en-us/blog/top-10-technical-articles-of-2022",{"_path":10682,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10683,"content":10689,"config":10693,"_id":10695,"_type":16,"title":10696,"_source":17,"_file":10697,"_stem":10698,"_extension":20},"/en-us/blog/introducing-the-gitlab-cli",{"title":10684,"description":10685,"ogTitle":10684,"ogDescription":10685,"noIndex":6,"ogImage":10686,"ogUrl":10687,"ogSiteName":995,"ogType":996,"canonicalUrls":10687,"schema":10688},"Put `glab` at your fingertips with the GitLab CLI","We just adopted the `glab` project. Here's what's next and how to contribute!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682539/Blog/Hero%20Images/newcli.png","https://about.gitlab.com/blog/introducing-the-gitlab-cli","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Put `glab` at your fingertips with the GitLab CLI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kai Armstrong\"}],\n        \"datePublished\": \"2022-12-07\",\n      }",{"title":10684,"description":10685,"authors":10690,"heroImage":10686,"date":10691,"category":301,"tags":10692},[8385],"2022-12-07",[731,1265,284],{"slug":10694,"featured":6,"template":736},"introducing-the-gitlab-cli","content:en-us:blog:introducing-the-gitlab-cli.yml","Introducing The Gitlab Cli","en-us/blog/introducing-the-gitlab-cli.yml","en-us/blog/introducing-the-gitlab-cli",{"_path":10700,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10701,"content":10706,"config":10711,"_id":10713,"_type":16,"title":10714,"_source":17,"_file":10715,"_stem":10716,"_extension":20},"/en-us/blog/how-we-increased-our-release-velocity-with-gitlab",{"title":10702,"description":10703,"ogTitle":10702,"ogDescription":10703,"noIndex":6,"ogImage":10202,"ogUrl":10704,"ogSiteName":995,"ogType":996,"canonicalUrls":10704,"schema":10705},"How we increased our release velocity with GitLab","Learn Evolphin's challenges, reasons for choosing the DevSecOps platform, and our end state following the transition.","https://about.gitlab.com/blog/how-we-increased-our-release-velocity-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we increased our release velocity with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rahul Bhargava, CTO, Evolphin\"}],\n        \"datePublished\": \"2022-12-05\",\n      }",{"title":10702,"description":10703,"authors":10707,"heroImage":10202,"date":10709,"category":3072,"tags":10710},[10708],"Rahul Bhargava, CTO, Evolphin","2022-12-05",[1988,2815,110],{"slug":10712,"featured":6,"template":736},"how-we-increased-our-release-velocity-with-gitlab","content:en-us:blog:how-we-increased-our-release-velocity-with-gitlab.yml","How We Increased Our Release Velocity With Gitlab","en-us/blog/how-we-increased-our-release-velocity-with-gitlab.yml","en-us/blog/how-we-increased-our-release-velocity-with-gitlab",{"_path":10718,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10719,"content":10725,"config":10730,"_id":10732,"_type":16,"title":10733,"_source":17,"_file":10734,"_stem":10735,"_extension":20},"/en-us/blog/lets-all-search",{"title":10720,"description":10721,"ogTitle":10720,"ogDescription":10721,"noIndex":6,"ogImage":10722,"ogUrl":10723,"ogSiteName":995,"ogType":996,"canonicalUrls":10723,"schema":10724},"Let's all search!","We spoke with you about our search tools. Now we've got some issues we'd like your help on.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679339/Blog/Hero%20Images/AdvancedSearch.png","https://about.gitlab.com/blog/lets-all-search","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Let's all search!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Will Leidheiser\"}],\n        \"datePublished\": \"2022-12-01\",\n      }",{"title":10720,"description":10721,"authors":10726,"heroImage":10722,"date":10728,"category":1388,"tags":10729},[10727],"Will Leidheiser","2022-12-01",[3074,269,1265,2025,2703],{"slug":10731,"featured":6,"template":736},"lets-all-search","content:en-us:blog:lets-all-search.yml","Lets All Search","en-us/blog/lets-all-search.yml","en-us/blog/lets-all-search",{"_path":10737,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10738,"content":10743,"config":10747,"_id":10749,"_type":16,"title":10750,"_source":17,"_file":10751,"_stem":10752,"_extension":20},"/en-us/blog/achieve-slsa-level-2-compliance-with-gitlab",{"title":10739,"description":10740,"ogTitle":10739,"ogDescription":10740,"noIndex":6,"ogImage":10041,"ogUrl":10741,"ogSiteName":995,"ogType":996,"canonicalUrls":10741,"schema":10742},"Achieve SLSA Level 2 compliance with GitLab","Compliance mandates call for controls to prevent software tampering, improve integrity of builds and artifacts, and support attestation. Here's how GitLab can help.","https://about.gitlab.com/blog/achieve-slsa-level-2-compliance-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Achieve SLSA Level 2 compliance with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-11-30\",\n      }",{"title":10739,"description":10740,"authors":10744,"heroImage":10041,"date":10745,"category":790,"tags":10746},[3506],"2022-11-30",[574,790,1265,186],{"slug":10748,"featured":6,"template":736},"achieve-slsa-level-2-compliance-with-gitlab","content:en-us:blog:achieve-slsa-level-2-compliance-with-gitlab.yml","Achieve Slsa Level 2 Compliance With Gitlab","en-us/blog/achieve-slsa-level-2-compliance-with-gitlab.yml","en-us/blog/achieve-slsa-level-2-compliance-with-gitlab",{"_path":10754,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10755,"content":10761,"config":10764,"_id":10766,"_type":16,"title":10767,"_source":17,"_file":10768,"_stem":10769,"_extension":20},"/en-us/blog/introducing-gitlab-dedicated",{"title":10756,"description":10757,"ogTitle":10756,"ogDescription":10757,"noIndex":6,"ogImage":10758,"ogUrl":10759,"ogSiteName":995,"ogType":996,"canonicalUrls":10759,"schema":10760},"Introducing GitLab Dedicated, our new single-tenant SaaS offering","Learn more about this offering, why we developed it and how customers can be added to our limited availability waitlist.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682524/Blog/Hero%20Images/screenshot-2022-11-30-at-7.49.51-am.png","https://about.gitlab.com/blog/introducing-gitlab-dedicated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab Dedicated, our new single-tenant SaaS offering\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2022-11-30\",\n      }",{"title":10756,"description":10757,"authors":10762,"heroImage":10758,"date":10745,"category":1049,"tags":10763},[2188],[564,1569,731],{"slug":10765,"featured":6,"template":736},"introducing-gitlab-dedicated","content:en-us:blog:introducing-gitlab-dedicated.yml","Introducing Gitlab Dedicated","en-us/blog/introducing-gitlab-dedicated.yml","en-us/blog/introducing-gitlab-dedicated",{"_path":10771,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10772,"content":10777,"config":10782,"_id":10784,"_type":16,"title":10785,"_source":17,"_file":10786,"_stem":10787,"_extension":20},"/en-us/blog/how-we-diagnosed-and-resolved-redis-latency-spikes",{"title":10773,"description":10774,"ogTitle":10773,"ogDescription":10774,"noIndex":6,"ogImage":6369,"ogUrl":10775,"ogSiteName":995,"ogType":996,"canonicalUrls":10775,"schema":10776},"How we diagnosed and resolved Redis latency spikes with BPF and other tools","How we uncovered a three-phase cycle involving two distinct saturation points and a simple fix to break that cycle.","https://about.gitlab.com/blog/how-we-diagnosed-and-resolved-redis-latency-spikes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we diagnosed and resolved Redis latency spikes with BPF and other tools\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Smiley\"}],\n        \"datePublished\": \"2022-11-28\",\n      }",{"title":10773,"description":10774,"authors":10778,"heroImage":6369,"date":10780,"category":858,"tags":10781},[10779],"Matt Smiley","2022-11-28",[1988,772,564],{"slug":10783,"featured":6,"template":736},"how-we-diagnosed-and-resolved-redis-latency-spikes","content:en-us:blog:how-we-diagnosed-and-resolved-redis-latency-spikes.yml","How We Diagnosed And Resolved Redis Latency Spikes","en-us/blog/how-we-diagnosed-and-resolved-redis-latency-spikes.yml","en-us/blog/how-we-diagnosed-and-resolved-redis-latency-spikes",{"_path":10789,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10790,"content":10796,"config":10800,"_id":10802,"_type":16,"title":10803,"_source":17,"_file":10804,"_stem":10805,"_extension":20},"/en-us/blog/deploy-remix-with-gitlab-and-cloudflare",{"title":10791,"description":10792,"ogTitle":10791,"ogDescription":10792,"noIndex":6,"ogImage":10793,"ogUrl":10794,"ogSiteName":995,"ogType":996,"canonicalUrls":10794,"schema":10795},"How to publish a Remix app to the edge with GitLab and Cloudflare","Learn how to deploy a Remix app with GitLab and Cloudflare Workers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682517/Blog/Hero%20Images/ryoji-hayasaka-0UZj73PQVew-unsplash.jpg","https://about.gitlab.com/blog/deploy-remix-with-gitlab-and-cloudflare","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to publish a Remix app to the edge with GitLab and Cloudflare\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Janis Altherr\"}],\n        \"datePublished\": \"2022-11-21\",\n      }",{"title":10791,"description":10792,"authors":10797,"heroImage":10793,"date":10798,"category":858,"tags":10799},[4420],"2022-11-21",[772,233,731],{"slug":10801,"featured":6,"template":736},"deploy-remix-with-gitlab-and-cloudflare","content:en-us:blog:deploy-remix-with-gitlab-and-cloudflare.yml","Deploy Remix With Gitlab And Cloudflare","en-us/blog/deploy-remix-with-gitlab-and-cloudflare.yml","en-us/blog/deploy-remix-with-gitlab-and-cloudflare",{"_path":10807,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10808,"content":10814,"config":10819,"_id":10821,"_type":16,"title":10822,"_source":17,"_file":10823,"_stem":10824,"_extension":20},"/en-us/blog/environment-friction-cycle",{"title":10809,"description":10810,"ogTitle":10809,"ogDescription":10810,"noIndex":6,"ogImage":10811,"ogUrl":10812,"ogSiteName":995,"ogType":996,"canonicalUrls":10812,"schema":10813},"How GitLab eliminates value stream friction in dev environments","It is important to have the complete picture of scaled effects in view when designing automation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682507/Blog/Hero%20Images/sandeep-singh-3KbACriapqQ-unsplash.jpg","https://about.gitlab.com/blog/environment-friction-cycle","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab can eliminate the massive value stream friction of developer environment provisioning and cleanup\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2022-11-17\",\n      }",{"title":10815,"description":10810,"authors":10816,"heroImage":10811,"date":10817,"category":858,"tags":10818},"How GitLab can eliminate the massive value stream friction of developer environment provisioning and cleanup",[959],"2022-11-17",[564,2889,771],{"slug":10820,"featured":6,"template":736},"environment-friction-cycle","content:en-us:blog:environment-friction-cycle.yml","Environment Friction Cycle","en-us/blog/environment-friction-cycle.yml","en-us/blog/environment-friction-cycle",{"_path":10826,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10827,"content":10833,"config":10838,"_id":10840,"_type":16,"title":10841,"_source":17,"_file":10842,"_stem":10843,"_extension":20},"/en-us/blog/how-is-ai-ml-changing-devops",{"title":10828,"description":10829,"ogTitle":10828,"ogDescription":10829,"noIndex":6,"ogImage":10830,"ogUrl":10831,"ogSiteName":995,"ogType":996,"canonicalUrls":10831,"schema":10832},"How is AI/ML changing DevOps?","Can DevOps help AI/ML find maturity? Here are questions to consider.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667540/Blog/Hero%20Images/devops-team-structure.jpg","https://about.gitlab.com/blog/how-is-ai-ml-changing-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How is AI/ML changing DevOps?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-11-16\",\n      }",{"title":10828,"description":10829,"authors":10834,"heroImage":10830,"date":10836,"category":8140,"tags":10837},[10835],"Brendan O'Leary","2022-11-16",[564,233,1988,728],{"slug":10839,"featured":6,"template":736},"how-is-ai-ml-changing-devops","content:en-us:blog:how-is-ai-ml-changing-devops.yml","How Is Ai Ml Changing Devops","en-us/blog/how-is-ai-ml-changing-devops.yml","en-us/blog/how-is-ai-ml-changing-devops",{"_path":10845,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10846,"content":10852,"config":10856,"_id":10858,"_type":16,"title":10859,"_source":17,"_file":10860,"_stem":10861,"_extension":20},"/en-us/blog/simple-kubernetes-management-with-gitlab",{"title":10847,"description":10848,"ogTitle":10847,"ogDescription":10848,"noIndex":6,"ogImage":10849,"ogUrl":10850,"ogSiteName":995,"ogType":996,"canonicalUrls":10850,"schema":10851},"Simple Kubernetes management with GitLab","Follow our tutorial to provision a Kubernetes cluster and manage it with IAC using Terraform and Helm in 20 minutes or less.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670037/Blog/Hero%20Images/auto-deploy-google-cloud.jpg","https://about.gitlab.com/blog/simple-kubernetes-management-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Simple Kubernetes management with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Noah Ing\"}],\n        \"datePublished\": \"2022-11-15\",\n      }",{"title":10847,"description":10848,"authors":10853,"heroImage":10849,"date":10854,"category":858,"tags":10855},[2997],"2022-11-15",[772,2908,559,2097,2098,564],{"slug":10857,"featured":6,"template":736},"simple-kubernetes-management-with-gitlab","content:en-us:blog:simple-kubernetes-management-with-gitlab.yml","Simple Kubernetes Management With Gitlab","en-us/blog/simple-kubernetes-management-with-gitlab.yml","en-us/blog/simple-kubernetes-management-with-gitlab",{"_path":10863,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10864,"content":10870,"config":10874,"_id":10876,"_type":16,"title":10877,"_source":17,"_file":10878,"_stem":10879,"_extension":20},"/en-us/blog/gitlab-names-joel-krooswyk-as-its-first-federal-cto",{"title":10865,"description":10866,"ogTitle":10865,"ogDescription":10866,"noIndex":6,"ogImage":10867,"ogUrl":10868,"ogSiteName":995,"ogType":996,"canonicalUrls":10868,"schema":10869},"GitLab names Joel Krooswyk as its first Federal CTO","New role reaffirms company’s commitment to the public sector.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669378/Blog/Hero%20Images/bab_cover_image.jpg","https://about.gitlab.com/blog/gitlab-names-joel-krooswyk-as-its-first-federal-cto","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab names Joel Krooswyk as its first Federal CTO\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-11-14\",\n      }",{"title":10865,"description":10866,"authors":10871,"heroImage":10867,"date":10872,"category":1049,"tags":10873},[1000],"2022-11-14",[1049,564,1569,186],{"slug":10875,"featured":6,"template":736},"gitlab-names-joel-krooswyk-as-its-first-federal-cto","content:en-us:blog:gitlab-names-joel-krooswyk-as-its-first-federal-cto.yml","Gitlab Names Joel Krooswyk As Its First Federal Cto","en-us/blog/gitlab-names-joel-krooswyk-as-its-first-federal-cto.yml","en-us/blog/gitlab-names-joel-krooswyk-as-its-first-federal-cto",{"_path":10881,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10882,"content":10888,"config":10893,"_id":10895,"_type":16,"title":10896,"_source":17,"_file":10897,"_stem":10898,"_extension":20},"/en-us/blog/how-we-boosted-webauthn-adoption-from-20-percent-to-93-percent-in-2-days",{"title":10883,"description":10884,"ogTitle":10883,"ogDescription":10884,"noIndex":6,"ogImage":10885,"ogUrl":10886,"ogSiteName":995,"ogType":996,"canonicalUrls":10886,"schema":10887},"How we boosted WebAuthn adoption from 20 percent to 93 percent in two days","With phishing campaigns on the rise across the industry, we accelerated rollout of a program to further enhance our security hygiene program. This is how we did it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682498/Blog/Hero%20Images/webauthn.jpg","https://about.gitlab.com/blog/how-we-boosted-webauthn-adoption-from-20-percent-to-93-percent-in-2-days","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we boosted WebAuthn adoption from 20 percent to 93 percent in two days\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Rubin\"}],\n        \"datePublished\": \"2022-11-09\",\n      }",{"title":10883,"description":10884,"authors":10889,"heroImage":10885,"date":10891,"category":790,"tags":10892},[10890],"Eric Rubin","2022-11-09",[790,1988,1569],{"slug":10894,"featured":6,"template":736},"how-we-boosted-webauthn-adoption-from-20-percent-to-93-percent-in-2-days","content:en-us:blog:how-we-boosted-webauthn-adoption-from-20-percent-to-93-percent-in-2-days.yml","How We Boosted Webauthn Adoption From 20 Percent To 93 Percent In 2 Days","en-us/blog/how-we-boosted-webauthn-adoption-from-20-percent-to-93-percent-in-2-days.yml","en-us/blog/how-we-boosted-webauthn-adoption-from-20-percent-to-93-percent-in-2-days",{"_path":10900,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10901,"content":10907,"config":10911,"_id":10913,"_type":16,"title":10914,"_source":17,"_file":10915,"_stem":10916,"_extension":20},"/en-us/blog/rebase-in-real-life",{"title":10902,"description":10903,"ogTitle":10902,"ogDescription":10903,"noIndex":6,"ogImage":10904,"ogUrl":10905,"ogSiteName":995,"ogType":996,"canonicalUrls":10905,"schema":10906},"How to use Git rebase in real life","From fixup to autosquash here are real world ways to leverage Git rebase.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682486/Blog/Hero%20Images/rebase-in-real-life.jpg","https://about.gitlab.com/blog/rebase-in-real-life","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use Git rebase in real life\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Toon Claes\"}],\n        \"datePublished\": \"2022-11-08\",\n      }",{"title":10902,"description":10903,"authors":10908,"heroImage":10904,"date":10909,"category":858,"tags":10910},[2645],"2022-11-08",[1195,1335,772],{"slug":10912,"featured":6,"template":736},"rebase-in-real-life","content:en-us:blog:rebase-in-real-life.yml","Rebase In Real Life","en-us/blog/rebase-in-real-life.yml","en-us/blog/rebase-in-real-life",{"_path":10918,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10919,"content":10924,"config":10928,"_id":10930,"_type":16,"title":10931,"_source":17,"_file":10932,"_stem":10933,"_extension":20},"/en-us/blog/top-challenges-to-securing-the-software-supply-chain",{"title":10920,"description":10921,"ogTitle":10920,"ogDescription":10921,"noIndex":6,"ogImage":10202,"ogUrl":10922,"ogSiteName":995,"ogType":996,"canonicalUrls":10922,"schema":10923},"Top challenges to securing the software supply chain","Learn what organizations should keep in mind while incorporating software supply chain security into their software development lifecycle.","https://about.gitlab.com/blog/top-challenges-to-securing-the-software-supply-chain","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top challenges to securing the software supply chain\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chandler Gibbons\"}],\n        \"datePublished\": \"2022-11-07\",\n      }",{"title":10920,"description":10921,"authors":10925,"heroImage":10202,"date":10926,"category":790,"tags":10927},[4090],"2022-11-07",[790,1265],{"slug":10929,"featured":6,"template":736},"top-challenges-to-securing-the-software-supply-chain","content:en-us:blog:top-challenges-to-securing-the-software-supply-chain.yml","Top Challenges To Securing The Software Supply Chain","en-us/blog/top-challenges-to-securing-the-software-supply-chain.yml","en-us/blog/top-challenges-to-securing-the-software-supply-chain",{"_path":10935,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10936,"content":10942,"config":10946,"_id":10948,"_type":16,"title":10949,"_source":17,"_file":10950,"_stem":10951,"_extension":20},"/en-us/blog/cadence-is-everything-10x-engineering-organizations-for-10x-engineers",{"title":10937,"description":10938,"ogTitle":10937,"ogDescription":10938,"noIndex":6,"ogImage":10939,"ogUrl":10940,"ogSiteName":995,"ogType":996,"canonicalUrls":10940,"schema":10941},"Cadence is everything: 10x engineering organizations for 10x engineers","GitLab CEO and co-founder Sid Sijbrandij on the importance of cadence in engineering organizations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671909/Blog/Hero%20Images/Athlinks_running.jpg","https://about.gitlab.com/blog/cadence-is-everything-10x-engineering-organizations-for-10x-engineers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Cadence is everything: 10x engineering organizations for 10x engineers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-11-03\",\n      }",{"title":10937,"description":10938,"authors":10943,"heroImage":10939,"date":10944,"category":858,"tags":10945},[3701],"2022-11-03",[6980,564],{"slug":10947,"featured":6,"template":736},"cadence-is-everything-10x-engineering-organizations-for-10x-engineers","content:en-us:blog:cadence-is-everything-10x-engineering-organizations-for-10x-engineers.yml","Cadence Is Everything 10x Engineering Organizations For 10x Engineers","en-us/blog/cadence-is-everything-10x-engineering-organizations-for-10x-engineers.yml","en-us/blog/cadence-is-everything-10x-engineering-organizations-for-10x-engineers",{"_path":10953,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10954,"content":10960,"config":10964,"_id":10966,"_type":16,"title":10967,"_source":17,"_file":10968,"_stem":10969,"_extension":20},"/en-us/blog/how-to-automate-testing-for-a-react-application-with-gitlab",{"title":10955,"description":10956,"ogTitle":10955,"ogDescription":10956,"noIndex":6,"ogImage":10957,"ogUrl":10958,"ogSiteName":995,"ogType":996,"canonicalUrls":10958,"schema":10959},"How to automate testing for a React application with GitLab","Learn how to add React automated tests to a GitLab CI pipeline with this tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666775/Blog/Hero%20Images/cover.jpg","https://about.gitlab.com/blog/how-to-automate-testing-for-a-react-application-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to automate testing for a React application with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeremy Wagner\"}],\n        \"datePublished\": \"2022-11-01\",\n      }",{"title":10955,"description":10956,"authors":10961,"heroImage":10957,"date":10962,"category":858,"tags":10963},[10028],"2022-11-01",[964,564,110],{"slug":10965,"featured":6,"template":736},"how-to-automate-testing-for-a-react-application-with-gitlab","content:en-us:blog:how-to-automate-testing-for-a-react-application-with-gitlab.yml","How To Automate Testing For A React Application With Gitlab","en-us/blog/how-to-automate-testing-for-a-react-application-with-gitlab.yml","en-us/blog/how-to-automate-testing-for-a-react-application-with-gitlab",{"_path":10971,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10972,"content":10978,"config":10981,"_id":10983,"_type":16,"title":10984,"_source":17,"_file":10985,"_stem":10986,"_extension":20},"/en-us/blog/new-openssl-30-vulnerabilities-what-you-need-to-know-to-find-and-fix-them",{"title":10973,"description":10974,"ogTitle":10973,"ogDescription":10974,"noIndex":6,"ogImage":10975,"ogUrl":10976,"ogSiteName":995,"ogType":996,"canonicalUrls":10976,"schema":10977},"New OpenSSL 3.0 vulnerabilities: What you need to know to find and fix them","Learn how to identify your risk for CVE-2022-3786 and CVE-2022-3602.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679348/Blog/Hero%20Images/locks.jpg","https://about.gitlab.com/blog/new-openssl-30-vulnerabilities-what-you-need-to-know-to-find-and-fix-them","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New OpenSSL 3.0 vulnerabilities: What you need to know to find and fix them\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Security Team\"}],\n        \"datePublished\": \"2022-11-01\",\n      }",{"title":10973,"description":10974,"authors":10979,"heroImage":10975,"date":10962,"category":790,"tags":10980},[2535],[790,1265,1049],{"slug":10982,"featured":6,"template":736},"new-openssl-30-vulnerabilities-what-you-need-to-know-to-find-and-fix-them","content:en-us:blog:new-openssl-30-vulnerabilities-what-you-need-to-know-to-find-and-fix-them.yml","New Openssl 30 Vulnerabilities What You Need To Know To Find And Fix Them","en-us/blog/new-openssl-30-vulnerabilities-what-you-need-to-know-to-find-and-fix-them.yml","en-us/blog/new-openssl-30-vulnerabilities-what-you-need-to-know-to-find-and-fix-them",{"_path":10988,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":10989,"content":10995,"config":10999,"_id":11001,"_type":16,"title":11002,"_source":17,"_file":11003,"_stem":11004,"_extension":20},"/en-us/blog/a-snapshot-of-modern-devops-practices-today",{"title":10990,"description":10991,"ogTitle":10990,"ogDescription":10991,"noIndex":6,"ogImage":10992,"ogUrl":10993,"ogSiteName":995,"ogType":996,"canonicalUrls":10993,"schema":10994},"A snapshot of modern DevOps practices today","We consulted three market research firms for their take on DevOps today and in the future. Here's what they said about modern DevOps practices.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668495/Blog/Hero%20Images/how-you-can-help-shape-the-future-of-securing-applications-at-gitlab.jpg","https://about.gitlab.com/blog/a-snapshot-of-modern-devops-practices-today","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A snapshot of modern DevOps practices today\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-10-31\",\n      }",{"title":10990,"description":10991,"authors":10996,"heroImage":10992,"date":10997,"category":577,"tags":10998},[10672],"2022-10-31",[7788,2815,564],{"slug":11000,"featured":6,"template":736},"a-snapshot-of-modern-devops-practices-today","content:en-us:blog:a-snapshot-of-modern-devops-practices-today.yml","A Snapshot Of Modern Devops Practices Today","en-us/blog/a-snapshot-of-modern-devops-practices-today.yml","en-us/blog/a-snapshot-of-modern-devops-practices-today",{"_path":11006,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11007,"content":11013,"config":11017,"_id":11019,"_type":16,"title":11020,"_source":17,"_file":11021,"_stem":11022,"_extension":20},"/en-us/blog/gitlab-com-artifacts-cdn-change",{"title":11008,"description":11009,"ogTitle":11008,"ogDescription":11009,"noIndex":6,"ogImage":11010,"ogUrl":11011,"ogSiteName":995,"ogType":996,"canonicalUrls":11011,"schema":11012},"GitLab.com CI artifacts to use Google Cloud CDN","GitLab CI users might benefit from faster downloads from edge caches closest to the user's location.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663009/Blog/Hero%20Images/ESA_case_study_image.jpg","https://about.gitlab.com/blog/gitlab-com-artifacts-cdn-change","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com CI artifacts to use Google Cloud CDN\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stan Hu\"}],\n        \"datePublished\": \"2022-10-25\",\n      }",{"title":11008,"description":11009,"authors":11014,"heroImage":11010,"date":11015,"category":1049,"tags":11016},[1598],"2022-10-25",[564,1569,3075,233,2097],{"slug":11018,"featured":6,"template":736},"gitlab-com-artifacts-cdn-change","content:en-us:blog:gitlab-com-artifacts-cdn-change.yml","Gitlab Com Artifacts Cdn Change","en-us/blog/gitlab-com-artifacts-cdn-change.yml","en-us/blog/gitlab-com-artifacts-cdn-change",{"_path":11024,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11025,"content":11031,"config":11035,"_id":11037,"_type":16,"title":11038,"_source":17,"_file":11039,"_stem":11040,"_extension":20},"/en-us/blog/the-ultimate-guide-to-sboms",{"title":11026,"description":11027,"ogTitle":11026,"ogDescription":11027,"noIndex":6,"ogImage":11028,"ogUrl":11029,"ogSiteName":995,"ogType":996,"canonicalUrls":11029,"schema":11030},"The ultimate guide to SBOMs","Learn what a software bill of materials is and why it has become an integral part of modern software development.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664571/Blog/Hero%20Images/blog-image-template-1800x945__8_.png","https://about.gitlab.com/blog/the-ultimate-guide-to-sboms","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The ultimate guide to SBOMs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-10-25\",\n      }",{"title":11026,"description":11027,"authors":11032,"heroImage":11028,"date":11015,"category":790,"tags":11033,"updatedDate":11034},[3506],[790,574,1988,1265,186],"2024-05-02",{"slug":11036,"featured":6,"template":736},"the-ultimate-guide-to-sboms","content:en-us:blog:the-ultimate-guide-to-sboms.yml","The Ultimate Guide To Sboms","en-us/blog/the-ultimate-guide-to-sboms.yml","en-us/blog/the-ultimate-guide-to-sboms",{"_path":11042,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11043,"content":11049,"config":11052,"_id":11054,"_type":16,"title":11055,"_source":17,"_file":11056,"_stem":11057,"_extension":20},"/en-us/blog/why-devops-collaboration-continues-to-be-important",{"title":11044,"description":11045,"ogTitle":11044,"ogDescription":11045,"noIndex":6,"ogImage":11046,"ogUrl":11047,"ogSiteName":995,"ogType":996,"canonicalUrls":11047,"schema":11048},"Why DevOps collaboration continues to be important","Modern DevOps isn't just about tech adoption and new processes. DevOps collaboration is going to play a key role. Here's why.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","https://about.gitlab.com/blog/why-devops-collaboration-continues-to-be-important","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why DevOps collaboration continues to be important\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-10-25\",\n      }",{"title":11044,"description":11045,"authors":11050,"heroImage":11046,"date":11015,"category":577,"tags":11051},[10672],[564,7788,2815],{"slug":11053,"featured":6,"template":736},"why-devops-collaboration-continues-to-be-important","content:en-us:blog:why-devops-collaboration-continues-to-be-important.yml","Why Devops Collaboration Continues To Be Important","en-us/blog/why-devops-collaboration-continues-to-be-important.yml","en-us/blog/why-devops-collaboration-continues-to-be-important",{"_path":11059,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11060,"content":11066,"config":11070,"_id":11072,"_type":16,"title":11073,"_source":17,"_file":11074,"_stem":11075,"_extension":20},"/en-us/blog/publishing-an-astro-site-with-pages",{"title":11061,"description":11062,"ogTitle":11061,"ogDescription":11062,"noIndex":6,"ogImage":11063,"ogUrl":11064,"ogSiteName":995,"ogType":996,"canonicalUrls":11064,"schema":11065},"How to publish your Astro Site with GitLab Pages","Learn how to deploy an Astro Site with GitLab Pages.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682473/Blog/Hero%20Images/shot-by-cerqueira-0o_GEzyargo-unsplash.jpg","https://about.gitlab.com/blog/publishing-an-astro-site-with-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to publish your Astro Site with GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Janis Altherr\"}],\n        \"datePublished\": \"2022-10-24\",\n      }",{"title":11061,"description":11062,"authors":11067,"heroImage":11063,"date":11068,"category":858,"tags":11069},[4420],"2022-10-24",[772,233,731],{"slug":11071,"featured":6,"template":736},"publishing-an-astro-site-with-pages","content:en-us:blog:publishing-an-astro-site-with-pages.yml","Publishing An Astro Site With Pages","en-us/blog/publishing-an-astro-site-with-pages.yml","en-us/blog/publishing-an-astro-site-with-pages",{"_path":11077,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11078,"content":11084,"config":11087,"_id":11089,"_type":16,"title":11090,"_source":17,"_file":11091,"_stem":11092,"_extension":20},"/en-us/blog/why-the-market-is-moving-to-a-platform-approach-to-devsecops",{"title":11079,"description":11080,"ogTitle":11079,"ogDescription":11080,"noIndex":6,"ogImage":11081,"ogUrl":11082,"ogSiteName":995,"ogType":996,"canonicalUrls":11082,"schema":11083},"Why the market is moving to a platform approach to DevSecOps","A single DevOps platform improves ROI, the developer experience, and customer retention and satisfaction.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667886/Blog/Hero%20Images/cobolshortage.jpg","https://about.gitlab.com/blog/why-the-market-is-moving-to-a-platform-approach-to-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why the market is moving to a platform approach to DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-10-24\",\n      }",{"title":11079,"description":11080,"authors":11085,"heroImage":11081,"date":11068,"category":577,"tags":11086},[1000],[564,2025,1988],{"slug":11088,"featured":6,"template":736},"why-the-market-is-moving-to-a-platform-approach-to-devsecops","content:en-us:blog:why-the-market-is-moving-to-a-platform-approach-to-devsecops.yml","Why The Market Is Moving To A Platform Approach To Devsecops","en-us/blog/why-the-market-is-moving-to-a-platform-approach-to-devsecops.yml","en-us/blog/why-the-market-is-moving-to-a-platform-approach-to-devsecops",{"_path":11094,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11095,"content":11101,"config":11108,"_id":11110,"_type":16,"title":11111,"_source":17,"_file":11112,"_stem":11113,"_extension":20},"/en-us/blog/gitlab-and-oracle-partner-for-a-cloud-native-approach-to-modern-application-development",{"title":11096,"description":11097,"ogTitle":11096,"ogDescription":11097,"noIndex":6,"ogImage":11098,"ogUrl":11099,"ogSiteName":995,"ogType":996,"canonicalUrls":11099,"schema":11100},"Oracle and GitLab partner for cloud-native app development","Learn the benefits of deploying the DevOps platform on Oracle Cloud Infrastructure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668514/Blog/Hero%20Images/multi-cloud-future.jpg","https://about.gitlab.com/blog/gitlab-and-oracle-partner-for-a-cloud-native-approach-to-modern-application-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and Oracle partner for a cloud native approach to modern application development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Creighton Swank\"},{\"@type\":\"Person\",\"name\":\"Vick Kelkar\"}],\n        \"datePublished\": \"2022-10-20\",\n      }",{"title":11102,"description":11097,"authors":11103,"heroImage":11098,"date":11106,"category":577,"tags":11107},"GitLab and Oracle partner for a cloud native approach to modern application development",[11104,11105],"Creighton Swank","Vick Kelkar","2022-10-20",[564,1265,582,284],{"slug":11109,"featured":6,"template":736},"gitlab-and-oracle-partner-for-a-cloud-native-approach-to-modern-application-development","content:en-us:blog:gitlab-and-oracle-partner-for-a-cloud-native-approach-to-modern-application-development.yml","Gitlab And Oracle Partner For A Cloud Native Approach To Modern Application Development","en-us/blog/gitlab-and-oracle-partner-for-a-cloud-native-approach-to-modern-application-development.yml","en-us/blog/gitlab-and-oracle-partner-for-a-cloud-native-approach-to-modern-application-development",{"_path":11115,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11116,"content":11122,"config":11127,"_id":11129,"_type":16,"title":11130,"_source":17,"_file":11131,"_stem":11132,"_extension":20},"/en-us/blog/browser-based-dast-feature-announcement",{"title":11117,"description":11118,"ogTitle":11117,"ogDescription":11118,"noIndex":6,"ogImage":11119,"ogUrl":11120,"ogSiteName":995,"ogType":996,"canonicalUrls":11120,"schema":11121},"Introducing browser-based DAST and integrated passive checks","We're working hard on reducing noise. Here's what you need to know about the status of our browser-based DAST offering today.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682466/Blog/Hero%20Images/vek-labs-e8ofKlNHdsg-unsplash.jpg","https://about.gitlab.com/blog/browser-based-dast-feature-announcement","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing browser-based DAST and integrated passive checks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Isaac Dawson\"}],\n        \"datePublished\": \"2022-10-19\",\n      }",{"title":11117,"description":11118,"authors":11123,"heroImage":11119,"date":11125,"category":731,"tags":11126},[11124],"Isaac Dawson","2022-10-19",[964,730,1932],{"slug":11128,"featured":6,"template":736},"browser-based-dast-feature-announcement","content:en-us:blog:browser-based-dast-feature-announcement.yml","Browser Based Dast Feature Announcement","en-us/blog/browser-based-dast-feature-announcement.yml","en-us/blog/browser-based-dast-feature-announcement",{"_path":11134,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11135,"content":11141,"config":11144,"_id":11146,"_type":16,"title":11147,"_source":17,"_file":11148,"_stem":11149,"_extension":20},"/en-us/blog/how-modern-devops-practices-are-changing-the-operations-role",{"title":11136,"description":11137,"ogTitle":11136,"ogDescription":11137,"noIndex":6,"ogImage":11138,"ogUrl":11139,"ogSiteName":995,"ogType":996,"canonicalUrls":11139,"schema":11140},"How modern DevOps practices are changing the operations role","Today, the ops role is about far more than just keeping the lights on. Here's how modern DevOps practices are expanding ops' responsibilities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663982/Blog/Hero%20Images/2022-devsecops-survey-blog-header.png","https://about.gitlab.com/blog/how-modern-devops-practices-are-changing-the-operations-role","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How modern DevOps practices are changing the operations role\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-10-19\",\n      }",{"title":11136,"description":11137,"authors":11142,"heroImage":11138,"date":11125,"category":577,"tags":11143},[10672],[564,7788,3074],{"slug":11145,"featured":6,"template":736},"how-modern-devops-practices-are-changing-the-operations-role","content:en-us:blog:how-modern-devops-practices-are-changing-the-operations-role.yml","How Modern Devops Practices Are Changing The Operations Role","en-us/blog/how-modern-devops-practices-are-changing-the-operations-role.yml","en-us/blog/how-modern-devops-practices-are-changing-the-operations-role",{"_path":11151,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11152,"content":11157,"config":11161,"_id":11163,"_type":16,"title":11164,"_source":17,"_file":11165,"_stem":11166,"_extension":20},"/en-us/blog/gitlab-incident-timelines",{"title":11153,"description":11154,"ogTitle":11153,"ogDescription":11154,"noIndex":6,"ogImage":11046,"ogUrl":11155,"ogSiteName":995,"ogType":996,"canonicalUrls":11155,"schema":11156},"How to leverage GitLab incident timelines","What actually happened before, during, and after the incident? Now it's easier to keep track.","https://about.gitlab.com/blog/gitlab-incident-timelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to leverage GitLab incident timelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alana Bellucci\"}],\n        \"datePublished\": \"2022-10-18\",\n      }",{"title":11153,"description":11154,"authors":11158,"heroImage":11046,"date":11159,"category":577,"tags":11160},[5072],"2022-10-18",[731,2815,730],{"slug":11162,"featured":6,"template":736},"gitlab-incident-timelines","content:en-us:blog:gitlab-incident-timelines.yml","Gitlab Incident Timelines","en-us/blog/gitlab-incident-timelines.yml","en-us/blog/gitlab-incident-timelines",{"_path":11168,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11169,"content":11175,"config":11179,"_id":11181,"_type":16,"title":11182,"_source":17,"_file":11183,"_stem":11184,"_extension":20},"/en-us/blog/how-to-start-a-great-oss-project",{"title":11170,"description":11171,"ogTitle":11170,"ogDescription":11171,"noIndex":6,"ogImage":11172,"ogUrl":11173,"ogSiteName":995,"ogType":996,"canonicalUrls":11173,"schema":11174},"How to start a great OSS project","In a modern DevOps world it's never been more critical to embrace open source. Here's everything you need to know to get started.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679362/Blog/Hero%20Images/contribute-open-source-jobs.jpg","https://about.gitlab.com/blog/how-to-start-a-great-oss-project","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to start a great OSS project\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Vanbuskirk\"}],\n        \"datePublished\": \"2022-10-18\",\n      }",{"title":11170,"description":11171,"authors":11176,"heroImage":11172,"date":11159,"category":1388,"tags":11178},[11177],"Mike Vanbuskirk",[564,1265,3074],{"slug":11180,"featured":6,"template":736},"how-to-start-a-great-oss-project","content:en-us:blog:how-to-start-a-great-oss-project.yml","How To Start A Great Oss Project","en-us/blog/how-to-start-a-great-oss-project.yml","en-us/blog/how-to-start-a-great-oss-project",{"_path":11186,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11187,"content":11193,"config":11198,"_id":11200,"_type":16,"title":11201,"_source":17,"_file":11202,"_stem":11203,"_extension":20},"/en-us/blog/fast-and-efficient-sbom-with-gitlab-and-rezilion",{"title":11188,"description":11189,"ogTitle":11188,"ogDescription":11189,"noIndex":6,"ogImage":11190,"ogUrl":11191,"ogSiteName":995,"ogType":996,"canonicalUrls":11191,"schema":11192},"Meet the demand for SBOMs with GitLab and Rezilion","Learn the role of SBOMs in helping to secure your software supply chain and how to generate them with the GitLab + Rezilion integration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672849/Blog/Hero%20Images/jessica-lewis-fJXv46LT7Xk-unsplash.jpg","https://about.gitlab.com/blog/fast-and-efficient-sbom-with-gitlab-and-rezilion","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet the demand for SBOMs and supply chain security with GitLab and Rezilion\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2022-10-17\",\n      }",{"title":11194,"description":11189,"authors":11195,"heroImage":11190,"date":11196,"category":790,"tags":11197},"Meet the demand for SBOMs and supply chain security with GitLab and Rezilion",[1097],"2022-10-17",[790,284,233],{"slug":11199,"featured":6,"template":736},"fast-and-efficient-sbom-with-gitlab-and-rezilion","content:en-us:blog:fast-and-efficient-sbom-with-gitlab-and-rezilion.yml","Fast And Efficient Sbom With Gitlab And Rezilion","en-us/blog/fast-and-efficient-sbom-with-gitlab-and-rezilion.yml","en-us/blog/fast-and-efficient-sbom-with-gitlab-and-rezilion",{"_path":11205,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11206,"content":11212,"config":11216,"_id":11218,"_type":16,"title":11219,"_source":17,"_file":11220,"_stem":11221,"_extension":20},"/en-us/blog/one-third-of-what-we-learned-about-ipos-in-taking-gitlab-public",{"title":11207,"description":11208,"ogTitle":11207,"ogDescription":11208,"noIndex":6,"ogImage":11209,"ogUrl":11210,"ogSiteName":995,"ogType":996,"canonicalUrls":11210,"schema":11211},"Everything we learned about IPOs in taking GitLab public - Part 4","GitLab co-founder and CEO Sid Sijbrandij shares insights about the process of going public.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671861/Blog/Hero%20Images/gitlab-logo-500.jpg","https://about.gitlab.com/blog/one-third-of-what-we-learned-about-ipos-in-taking-gitlab-public","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Everything we learned about IPOs in taking GitLab public - Part 4\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-10-14\",\n      }",{"title":11207,"description":11208,"authors":11213,"heroImage":11209,"date":11214,"category":1049,"tags":11215},[3701],"2022-10-14",[1569,279,1049],{"slug":11217,"featured":6,"template":736},"one-third-of-what-we-learned-about-ipos-in-taking-gitlab-public","content:en-us:blog:one-third-of-what-we-learned-about-ipos-in-taking-gitlab-public.yml","One Third Of What We Learned About Ipos In Taking Gitlab Public","en-us/blog/one-third-of-what-we-learned-about-ipos-in-taking-gitlab-public.yml","en-us/blog/one-third-of-what-we-learned-about-ipos-in-taking-gitlab-public",{"_path":11223,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11224,"content":11230,"config":11236,"_id":11238,"_type":16,"title":11239,"_source":17,"_file":11240,"_stem":11241,"_extension":20},"/en-us/blog/five-fast-facts-about-docs-as-code-at-gitlab",{"title":11225,"description":11226,"ogTitle":11225,"ogDescription":11226,"noIndex":6,"ogImage":11227,"ogUrl":11228,"ogSiteName":995,"ogType":996,"canonicalUrls":11228,"schema":11229},"Five fast facts about docs as code at GitLab","Here are five fast facts about how GitLab technical writers use GitLab in a docs-as-code workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660257/Blog/Hero%20Images/pen.jpg","https://about.gitlab.com/blog/five-fast-facts-about-docs-as-code-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Five fast facts about docs as code at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suzanne Selhorn\"},{\"@type\":\"Person\",\"name\":\"Susan Tacker\"},{\"@type\":\"Person\",\"name\":\"Diana Logan\"}],\n        \"datePublished\": \"2022-10-12\",\n      }",{"title":11225,"description":11226,"authors":11231,"heroImage":11227,"date":11234,"category":8140,"tags":11235},[1368,11232,11233],"Susan Tacker","Diana Logan","2022-10-12",[6980,3074,1569],{"slug":11237,"featured":6,"template":736},"five-fast-facts-about-docs-as-code-at-gitlab","content:en-us:blog:five-fast-facts-about-docs-as-code-at-gitlab.yml","Five Fast Facts About Docs As Code At Gitlab","en-us/blog/five-fast-facts-about-docs-as-code-at-gitlab.yml","en-us/blog/five-fast-facts-about-docs-as-code-at-gitlab",{"_path":11243,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11244,"content":11249,"config":11252,"_id":11254,"_type":16,"title":11255,"_source":17,"_file":11256,"_stem":11257,"_extension":20},"/en-us/blog/take-our-survey-on-collaborative-software-development",{"title":11245,"description":11246,"ogTitle":11245,"ogDescription":11246,"noIndex":6,"ogImage":6170,"ogUrl":11247,"ogSiteName":995,"ogType":996,"canonicalUrls":11247,"schema":11248},"Take our survey on collaborative software development!","If you have 4 minutes, we'd love to hear about how your organization collaboratively develops software.","https://about.gitlab.com/blog/take-our-survey-on-collaborative-software-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Take our survey on collaborative software development!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-10-12\",\n      }",{"title":11245,"description":11246,"authors":11250,"heroImage":6170,"date":11234,"category":577,"tags":11251},[1000],[564],{"slug":11253,"featured":6,"template":736},"take-our-survey-on-collaborative-software-development","content:en-us:blog:take-our-survey-on-collaborative-software-development.yml","Take Our Survey On Collaborative Software Development","en-us/blog/take-our-survey-on-collaborative-software-development.yml","en-us/blog/take-our-survey-on-collaborative-software-development",{"_path":11259,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11260,"content":11266,"config":11272,"_id":11274,"_type":16,"title":11275,"_source":17,"_file":11276,"_stem":11277,"_extension":20},"/en-us/blog/accelerate-cloud-adoption-with-gitlabs-open-source-partnership-with-google-cloud",{"title":11261,"description":11262,"ogTitle":11261,"ogDescription":11262,"noIndex":6,"ogImage":11263,"ogUrl":11264,"ogSiteName":995,"ogType":996,"canonicalUrls":11264,"schema":11265},"GitLab & Google Cloud partnership accelerates cloud adoption","Learn how Cloud Seed came about and how it will help speed app modernization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665811/Blog/Hero%20Images/daytime-clouds.jpg","https://about.gitlab.com/blog/accelerate-cloud-adoption-with-gitlabs-open-source-partnership-with-google-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Accelerate cloud adoption with GitLab's open source partnership with Google Cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sri Rangan\"}],\n        \"datePublished\": \"2022-10-11\",\n      }",{"title":11267,"description":11262,"authors":11268,"heroImage":11263,"date":11270,"category":1388,"tags":11271},"Accelerate cloud adoption with GitLab's open source partnership with Google Cloud",[11269],"Sri Rangan","2022-10-11",[284,1265,582],{"slug":11273,"featured":6,"template":736},"accelerate-cloud-adoption-with-gitlabs-open-source-partnership-with-google-cloud","content:en-us:blog:accelerate-cloud-adoption-with-gitlabs-open-source-partnership-with-google-cloud.yml","Accelerate Cloud Adoption With Gitlabs Open Source Partnership With Google Cloud","en-us/blog/accelerate-cloud-adoption-with-gitlabs-open-source-partnership-with-google-cloud.yml","en-us/blog/accelerate-cloud-adoption-with-gitlabs-open-source-partnership-with-google-cloud",{"_path":11279,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11280,"content":11286,"config":11290,"_id":11292,"_type":16,"title":11293,"_source":17,"_file":11294,"_stem":11295,"_extension":20},"/en-us/blog/take-advantage-of-git-rebase",{"title":11281,"description":11282,"ogTitle":11281,"ogDescription":11282,"noIndex":6,"ogImage":11283,"ogUrl":11284,"ogSiteName":995,"ogType":996,"canonicalUrls":11284,"schema":11285},"Take advantage of Git rebase","Tap into the Git rebase features to improve your workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665560/Blog/Hero%20Images/speedmonorepo.jpg","https://about.gitlab.com/blog/take-advantage-of-git-rebase","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Take advantage of Git rebase\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Couder\"}],\n        \"datePublished\": \"2022-10-06\",\n      }",{"title":11281,"description":11282,"authors":11287,"heroImage":11283,"date":11288,"category":858,"tags":11289},[3418],"2022-10-06",[1195,1335,892,772],{"slug":11291,"featured":6,"template":736},"take-advantage-of-git-rebase","content:en-us:blog:take-advantage-of-git-rebase.yml","Take Advantage Of Git Rebase","en-us/blog/take-advantage-of-git-rebase.yml","en-us/blog/take-advantage-of-git-rebase",{"_path":11297,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11298,"content":11304,"config":11308,"_id":11310,"_type":16,"title":11311,"_source":17,"_file":11312,"_stem":11313,"_extension":20},"/en-us/blog/the-top-software-developer-challenges-in-2022",{"title":11299,"description":11300,"ogTitle":11299,"ogDescription":11300,"noIndex":6,"ogImage":11301,"ogUrl":11302,"ogSiteName":995,"ogType":996,"canonicalUrls":11302,"schema":11303},"The top software developer challenges in 2022","From AI to hiring, security breaches and Covid, our 2022 Global DevSecOps Survey uncovered the top software developer challenges.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668107/Blog/Hero%20Images/global-developer-survey.png","https://about.gitlab.com/blog/the-top-software-developer-challenges-in-2022","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The top software developer challenges in 2022\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-10-05\",\n      }",{"title":11299,"description":11300,"authors":11305,"heroImage":11301,"date":11306,"category":577,"tags":11307},[10672],"2022-10-05",[7788,564,269],{"slug":11309,"featured":6,"template":736},"the-top-software-developer-challenges-in-2022","content:en-us:blog:the-top-software-developer-challenges-in-2022.yml","The Top Software Developer Challenges In 2022","en-us/blog/the-top-software-developer-challenges-in-2022.yml","en-us/blog/the-top-software-developer-challenges-in-2022",{"_path":11315,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11316,"content":11322,"config":11327,"_id":11329,"_type":16,"title":11330,"_source":17,"_file":11331,"_stem":11332,"_extension":20},"/en-us/blog/the-many-routes-to-a-tech-career",{"title":11317,"description":11318,"ogTitle":11317,"ogDescription":11318,"noIndex":6,"ogImage":11319,"ogUrl":11320,"ogSiteName":995,"ogType":996,"canonicalUrls":11320,"schema":11321},"The many routes to a tech career","GitLab team members of different ages and backgrounds share their entry into this industry.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667236/Blog/Hero%20Images/Learn-at-GL.jpg","https://about.gitlab.com/blog/the-many-routes-to-a-tech-career","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The many routes to a tech career\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2022-10-04\",\n      }",{"title":11317,"description":11318,"authors":11323,"heroImage":11319,"date":11325,"category":6121,"tags":11326},[11324],"Heather Simpson","2022-10-04",[6980,1569],{"slug":11328,"featured":6,"template":736},"the-many-routes-to-a-tech-career","content:en-us:blog:the-many-routes-to-a-tech-career.yml","The Many Routes To A Tech Career","en-us/blog/the-many-routes-to-a-tech-career.yml","en-us/blog/the-many-routes-to-a-tech-career",{"_path":11334,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11335,"content":11341,"config":11344,"_id":11346,"_type":16,"title":11347,"_source":17,"_file":11348,"_stem":11349,"_extension":20},"/en-us/blog/what-makes-a-great-tech-talk",{"title":11336,"description":11337,"ogTitle":11336,"ogDescription":11337,"noIndex":6,"ogImage":11338,"ogUrl":11339,"ogSiteName":995,"ogType":996,"canonicalUrls":11339,"schema":11340},"What makes a great tech talk?","I've compiled some of my favorite tech talks to find out what makes them great.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670658/Blog/Hero%20Images/data-startup-cognitive-logic-talks-migrating-to-gitlab.jpg","https://about.gitlab.com/blog/what-makes-a-great-tech-talk","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What makes a great tech talk?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-10-04\",\n      }",{"title":11336,"description":11337,"authors":11342,"heroImage":11338,"date":11325,"category":8140,"tags":11343},[10835],[6980,269,1265],{"slug":11345,"featured":6,"template":736},"what-makes-a-great-tech-talk","content:en-us:blog:what-makes-a-great-tech-talk.yml","What Makes A Great Tech Talk","en-us/blog/what-makes-a-great-tech-talk.yml","en-us/blog/what-makes-a-great-tech-talk",{"_path":11351,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11352,"content":11358,"config":11362,"_id":11364,"_type":16,"title":11365,"_source":17,"_file":11366,"_stem":11367,"_extension":20},"/en-us/blog/arm-open-source-makes-a-seamless-migration-to-gitlab",{"title":11353,"description":11354,"ogTitle":11353,"ogDescription":11354,"noIndex":6,"ogImage":11355,"ogUrl":11356,"ogSiteName":995,"ogType":996,"canonicalUrls":11356,"schema":11357},"Arm Open Source makes a seamless migration to GitLab","DevOps platform switch reaps cost savings of up to 20%.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670681/Blog/Hero%20Images/a-creative-agencys-gitlab-wishlist.jpg","https://about.gitlab.com/blog/arm-open-source-makes-a-seamless-migration-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Arm Open Source makes a seamless migration to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-10-03\",\n      }",{"title":11353,"description":11354,"authors":11359,"heroImage":11355,"date":11360,"category":1388,"tags":11361},[1000],"2022-10-03",[3075,1265,564],{"slug":11363,"featured":6,"template":736},"arm-open-source-makes-a-seamless-migration-to-gitlab","content:en-us:blog:arm-open-source-makes-a-seamless-migration-to-gitlab.yml","Arm Open Source Makes A Seamless Migration To Gitlab","en-us/blog/arm-open-source-makes-a-seamless-migration-to-gitlab.yml","en-us/blog/arm-open-source-makes-a-seamless-migration-to-gitlab",{"_path":11369,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11370,"content":11376,"config":11380,"_id":11382,"_type":16,"title":11383,"_source":17,"_file":11384,"_stem":11385,"_extension":20},"/en-us/blog/mobile-devops-with-gitlab-part-3-code-signing-for-ios-with-gitlab-and-fastlane",{"title":11371,"description":11372,"ogTitle":11371,"ogDescription":11372,"noIndex":6,"ogImage":11373,"ogUrl":11374,"ogSiteName":995,"ogType":996,"canonicalUrls":11374,"schema":11375},"Mobile DevOps: iOS code signing with GitLab CI & Fastlane","Learn how to use Project-level Secure Files with Fastlane Match to sign an iOS app.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668568/Blog/Hero%20Images/vinicius-amnx-amano-IPemgbj9aDY-unsplash.jpg","https://about.gitlab.com/blog/mobile-devops-with-gitlab-part-3-code-signing-for-ios-with-gitlab-and-fastlane","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Mobile DevOps with GitLab, Part 3 - Code signing for iOS with GitLab CI and Fastlane\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darby Frey\"}],\n        \"datePublished\": \"2022-10-03\",\n      }",{"title":11377,"description":11372,"authors":11378,"heroImage":11373,"date":11360,"category":577,"tags":11379},"Mobile DevOps with GitLab, Part 3 - Code signing for iOS with GitLab CI and Fastlane",[8948],[729,564,790],{"slug":11381,"featured":6,"template":736},"mobile-devops-with-gitlab-part-3-code-signing-for-ios-with-gitlab-and-fastlane","content:en-us:blog:mobile-devops-with-gitlab-part-3-code-signing-for-ios-with-gitlab-and-fastlane.yml","Mobile Devops With Gitlab Part 3 Code Signing For Ios With Gitlab And Fastlane","en-us/blog/mobile-devops-with-gitlab-part-3-code-signing-for-ios-with-gitlab-and-fastlane.yml","en-us/blog/mobile-devops-with-gitlab-part-3-code-signing-for-ios-with-gitlab-and-fastlane",{"_path":11387,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11388,"content":11393,"config":11397,"_id":11399,"_type":16,"title":11400,"_source":17,"_file":11401,"_stem":11402,"_extension":20},"/en-us/blog/using-gitlab-pages-lets-encrypt",{"title":11389,"description":11390,"ogTitle":11389,"ogDescription":11390,"noIndex":6,"ogImage":10041,"ogUrl":11391,"ogSiteName":995,"ogType":996,"canonicalUrls":11391,"schema":11392},"GitLab and Let's Encrypt partner to improve website security","Learn how to add a Let's Encrypt TLS certificate to a website hosted and managed via GitLab Pages.","https://about.gitlab.com/blog/using-gitlab-pages-lets-encrypt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and Let's Encrypt partner to improve website security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"},{\"@type\":\"Person\",\"name\":\"Bryan Behrenshausen\"}],\n        \"datePublished\": \"2022-09-29\",\n      }",{"title":11389,"description":11390,"authors":11394,"heroImage":10041,"date":11395,"category":790,"tags":11396},[1439,7329],"2022-09-29",[1265,790,269],{"slug":11398,"featured":6,"template":736},"using-gitlab-pages-lets-encrypt","content:en-us:blog:using-gitlab-pages-lets-encrypt.yml","Using Gitlab Pages Lets Encrypt","en-us/blog/using-gitlab-pages-lets-encrypt.yml","en-us/blog/using-gitlab-pages-lets-encrypt",{"_path":11404,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11405,"content":11411,"config":11414,"_id":11416,"_type":16,"title":11417,"_source":17,"_file":11418,"_stem":11419,"_extension":20},"/en-us/blog/what-are-the-benefits-of-a-microservices-architecture",{"title":11406,"description":11407,"ogTitle":11406,"ogDescription":11407,"noIndex":6,"ogImage":11408,"ogUrl":11409,"ogSiteName":995,"ogType":996,"canonicalUrls":11409,"schema":11410},"What are the benefits of a microservices architecture?","On the fence about what a microservices architecture can bring to your team? Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662898/Blog/Hero%20Images/microservices-explosion.jpg","https://about.gitlab.com/blog/what-are-the-benefits-of-a-microservices-architecture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What are the benefits of a microservices architecture?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-09-29\",\n      }",{"title":11406,"description":11407,"authors":11412,"heroImage":11408,"date":11395,"category":577,"tags":11413},[1000],[564,564,730],{"slug":11415,"featured":92,"template":736},"what-are-the-benefits-of-a-microservices-architecture","content:en-us:blog:what-are-the-benefits-of-a-microservices-architecture.yml","What Are The Benefits Of A Microservices Architecture","en-us/blog/what-are-the-benefits-of-a-microservices-architecture.yml","en-us/blog/what-are-the-benefits-of-a-microservices-architecture",{"_path":11421,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11422,"content":11428,"config":11432,"_id":11434,"_type":16,"title":11435,"_source":17,"_file":11436,"_stem":11437,"_extension":20},"/en-us/blog/mobile-devops-with-gitlab-part-2",{"title":11423,"description":11424,"ogTitle":11423,"ogDescription":11424,"noIndex":6,"ogImage":11425,"ogUrl":11426,"ogSiteName":995,"ogType":996,"canonicalUrls":11426,"schema":11427},"Mobile DevOps with GitLab, Part 2 - Code signing for Android with GitLab","This second part of our tutorial series shows how to use Project-level Secure Files to sign an Android application.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668592/Blog/Hero%20Images/teddy-gr--adWwTRAm1g-unsplash.jpg","https://about.gitlab.com/blog/mobile-devops-with-gitlab-part-2","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Mobile DevOps with GitLab, Part 2 - Code signing for Android with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darby Frey\"}],\n        \"datePublished\": \"2022-09-28\",\n      }",{"title":11423,"description":11424,"authors":11429,"heroImage":11425,"date":11430,"updatedDate":789,"category":577,"tags":11431},[8948],"2022-09-28",[564,729,730,110],{"slug":11433,"featured":6,"template":736},"mobile-devops-with-gitlab-part-2","content:en-us:blog:mobile-devops-with-gitlab-part-2.yml","Mobile Devops With Gitlab Part 2","en-us/blog/mobile-devops-with-gitlab-part-2.yml","en-us/blog/mobile-devops-with-gitlab-part-2",{"_path":11439,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11440,"content":11446,"config":11453,"_id":11455,"_type":16,"title":11456,"_source":17,"_file":11457,"_stem":11458,"_extension":20},"/en-us/blog/a-benchmarking-framework-for-sast",{"title":11441,"description":11442,"ogTitle":11441,"ogDescription":11442,"noIndex":6,"ogImage":11443,"ogUrl":11444,"ogSiteName":995,"ogType":996,"canonicalUrls":11444,"schema":11445},"A Google Summer of Code project: creating a benchmarking framework for SAST","Our 2022 Google Summer of Code project helped to create a benchmarking framework for SAST.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677267/Blog/Hero%20Images/benchmarking.png","https://about.gitlab.com/blog/a-benchmarking-framework-for-sast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A Google Summer of Code project: creating a benchmarking framework for SAST\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Henriksen\"},{\"@type\":\"Person\",\"name\":\"Martynas Krupskis\"},{\"@type\":\"Person\",\"name\":\"Mark Art\"},{\"@type\":\"Person\",\"name\":\"Dinesh Bolkensteyn\"},{\"@type\":\"Person\",\"name\":\"Isaac Dawson\"},{\"@type\":\"Person\",\"name\":\"Julian Thome\"}],\n        \"datePublished\": \"2022-09-27\",\n      }",{"title":11441,"description":11442,"authors":11447,"heroImage":11443,"date":11451,"category":1388,"tags":11452},[1476,11448,11449,11450,11124,3289],"Martynas Krupskis","Mark Art","Dinesh Bolkensteyn","2022-09-27",[2815,1730,1265],{"slug":11454,"featured":6,"template":736},"a-benchmarking-framework-for-sast","content:en-us:blog:a-benchmarking-framework-for-sast.yml","A Benchmarking Framework For Sast","en-us/blog/a-benchmarking-framework-for-sast.yml","en-us/blog/a-benchmarking-framework-for-sast",{"_path":11460,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11461,"content":11467,"config":11471,"_id":11473,"_type":16,"title":11474,"_source":17,"_file":11475,"_stem":11476,"_extension":20},"/en-us/blog/less-headaches",{"title":11462,"description":11463,"ogTitle":11462,"ogDescription":11463,"noIndex":6,"ogImage":11464,"ogUrl":11465,"ogSiteName":995,"ogType":996,"canonicalUrls":11465,"schema":11466},"Two DevOps platform superpowers: Visibility and actionability","Migrating to a DevOps platform helps organizations better understand and improve their development lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668622/Blog/Hero%20Images/group-rowing-collaboration.jpg","https://about.gitlab.com/blog/less-headaches","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Two DevOps platform superpowers: Visibility and actionability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-09-26\",\n      }",{"title":11462,"description":11463,"authors":11468,"heroImage":11464,"date":11469,"category":577,"tags":11470},[3999],"2022-09-26",[564,8475,1988],{"slug":11472,"featured":6,"template":736},"less-headaches","content:en-us:blog:less-headaches.yml","Less Headaches","en-us/blog/less-headaches.yml","en-us/blog/less-headaches",{"_path":11478,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11479,"content":11485,"config":11490,"_id":11492,"_type":16,"title":11493,"_source":17,"_file":11494,"_stem":11495,"_extension":20},"/en-us/blog/introducing-the-infrastructure-bill-of-materials",{"title":11480,"description":11481,"ogTitle":11480,"ogDescription":11481,"noIndex":6,"ogImage":11482,"ogUrl":11483,"ogSiteName":995,"ogType":996,"canonicalUrls":11483,"schema":11484},"Introducing the infrastructure bill of materials","Pair IBoMs and SBOMs for a more secure software supply chain.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671160/Blog/Hero%20Images/ibom.jpg","https://about.gitlab.com/blog/introducing-the-infrastructure-bill-of-materials","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing the infrastructure bill of materials\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2022-09-22\",\n      }",{"title":11480,"description":11481,"authors":11486,"heroImage":11482,"date":11488,"category":790,"tags":11489},[11487],"Cindy Blake","2022-09-22",[790,233,1265],{"slug":11491,"featured":6,"template":736},"introducing-the-infrastructure-bill-of-materials","content:en-us:blog:introducing-the-infrastructure-bill-of-materials.yml","Introducing The Infrastructure Bill Of Materials","en-us/blog/introducing-the-infrastructure-bill-of-materials.yml","en-us/blog/introducing-the-infrastructure-bill-of-materials",{"_path":11497,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11498,"content":11504,"config":11507,"_id":11509,"_type":16,"title":11510,"_source":17,"_file":11511,"_stem":11512,"_extension":20},"/en-us/blog/new-machine-types-for-gitlab-saas-runners",{"title":11499,"description":11500,"ogTitle":11499,"ogDescription":11500,"noIndex":6,"ogImage":11501,"ogUrl":11502,"ogSiteName":995,"ogType":996,"canonicalUrls":11502,"schema":11503},"GitLab introduces new machine types for GitLab SaaS Linux Runners","GitLab SaaS now offers larger machine types for running CI jobs on Linux.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672836/Blog/Hero%20Images/multiple-machine-types-cover.png","https://about.gitlab.com/blog/new-machine-types-for-gitlab-saas-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab introduces new machine types for GitLab SaaS Linux Runners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2022-09-22\",\n      }",{"title":11499,"description":11500,"authors":11505,"heroImage":11501,"date":11488,"category":731,"tags":11506},[4857],[2097,2098,1988,731],{"slug":11508,"featured":6,"template":736},"new-machine-types-for-gitlab-saas-runners","content:en-us:blog:new-machine-types-for-gitlab-saas-runners.yml","New Machine Types For Gitlab Saas Runners","en-us/blog/new-machine-types-for-gitlab-saas-runners.yml","en-us/blog/new-machine-types-for-gitlab-saas-runners",{"_path":11514,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11515,"content":11521,"config":11525,"_id":11527,"_type":16,"title":11528,"_source":17,"_file":11529,"_stem":11530,"_extension":20},"/en-us/blog/amazon-linux-2-service-ready-partner",{"title":11516,"description":11517,"ogTitle":11516,"ogDescription":11517,"noIndex":6,"ogImage":11518,"ogUrl":11519,"ogSiteName":995,"ogType":996,"canonicalUrls":11519,"schema":11520},"GitLab is now an Amazon Linux 2 Service Ready Partner","Being an Amazon Linux 2 Service Ready partner shows GitLab's strong commitment to AWS linux distributions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682451/Blog/Hero%20Images/isis-franca-hsPFuudRg5I-unsplash.jpg","https://about.gitlab.com/blog/amazon-linux-2-service-ready-partner","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is now an Amazon Linux 2 Service Ready Partner\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2022-09-21\",\n      }",{"title":11516,"description":11517,"authors":11522,"heroImage":11518,"date":11523,"category":858,"tags":11524},[959],"2022-09-21",[771,284,564],{"slug":11526,"featured":6,"template":736},"amazon-linux-2-service-ready-partner","content:en-us:blog:amazon-linux-2-service-ready-partner.yml","Amazon Linux 2 Service Ready Partner","en-us/blog/amazon-linux-2-service-ready-partner.yml","en-us/blog/amazon-linux-2-service-ready-partner",{"_path":11532,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11533,"content":11539,"config":11543,"_id":11545,"_type":16,"title":11546,"_source":17,"_file":11547,"_stem":11548,"_extension":20},"/en-us/blog/get-started-with-microservices-architecture",{"title":11534,"description":11535,"ogTitle":11534,"ogDescription":11535,"noIndex":6,"ogImage":11536,"ogUrl":11537,"ogSiteName":995,"ogType":996,"canonicalUrls":11537,"schema":11538},"Get started with microservices architecture","For DevOps teams ready to take the next step, adopting a microservices architecture is a smart choice. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667875/Blog/Hero%20Images/trends-in-version-control-land-microservices-cover.jpg","https://about.gitlab.com/blog/get-started-with-microservices-architecture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get started with microservices architecture\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-09-20\",\n      }",{"title":11534,"description":11535,"authors":11540,"heroImage":11536,"date":11541,"category":577,"tags":11542},[1000],"2022-09-20",[564,964,1730],{"slug":11544,"featured":6,"template":736},"get-started-with-microservices-architecture","content:en-us:blog:get-started-with-microservices-architecture.yml","Get Started With Microservices Architecture","en-us/blog/get-started-with-microservices-architecture.yml","en-us/blog/get-started-with-microservices-architecture",{"_path":11550,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11551,"content":11557,"config":11561,"_id":11563,"_type":16,"title":11564,"_source":17,"_file":11565,"_stem":11566,"_extension":20},"/en-us/blog/mobile-devops-with-gitlab-part-1",{"title":11552,"description":11553,"ogTitle":11552,"ogDescription":11553,"noIndex":6,"ogImage":11554,"ogUrl":11555,"ogSiteName":995,"ogType":996,"canonicalUrls":11555,"schema":11556},"Mobile DevOps: Code signing with project-level secure files","An introduction to mobile code signing with the new Project-level Secure Files feature.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668629/Blog/Hero%20Images/refargotohp-mzZp_9QpYLc-unsplash.jpg","https://about.gitlab.com/blog/mobile-devops-with-gitlab-part-1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Mobile DevOps with GitLab, Part 1 - Code signing with Project-level Secure Files\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darby Frey\"}],\n        \"datePublished\": \"2022-09-20\",\n      }",{"title":11558,"description":11553,"authors":11559,"heroImage":11554,"date":11541,"updatedDate":789,"category":577,"tags":11560},"Mobile DevOps with GitLab, Part 1 - Code signing with Project-level Secure Files",[8948],[729,564,110],{"slug":11562,"featured":6,"template":736},"mobile-devops-with-gitlab-part-1","content:en-us:blog:mobile-devops-with-gitlab-part-1.yml","Mobile Devops With Gitlab Part 1","en-us/blog/mobile-devops-with-gitlab-part-1.yml","en-us/blog/mobile-devops-with-gitlab-part-1",{"_path":11568,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11569,"content":11575,"config":11579,"_id":11581,"_type":16,"title":11582,"_source":17,"_file":11583,"_stem":11584,"_extension":20},"/en-us/blog/why-ai-in-devops-is-here-to-stay",{"title":11570,"description":11571,"ogTitle":11570,"ogDescription":11571,"noIndex":6,"ogImage":11572,"ogUrl":11573,"ogSiteName":995,"ogType":996,"canonicalUrls":11573,"schema":11574},"Why AI in DevOps is here to stay","Two years ago artificial intelligence wasn't part of mainstream software development. Now AI in DevOps is seemingly everywhere. Here's why.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664015/Blog/Hero%20Images/laptop.jpg","https://about.gitlab.com/blog/why-ai-in-devops-is-here-to-stay","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why AI in DevOps is here to stay\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-09-15\",\n      }",{"title":11570,"description":11571,"authors":11576,"heroImage":11572,"date":11577,"category":577,"tags":11578},[10672],"2022-09-15",[564,7788,233],{"slug":11580,"featured":6,"template":736},"why-ai-in-devops-is-here-to-stay","content:en-us:blog:why-ai-in-devops-is-here-to-stay.yml","Why Ai In Devops Is Here To Stay","en-us/blog/why-ai-in-devops-is-here-to-stay.yml","en-us/blog/why-ai-in-devops-is-here-to-stay",{"_path":11586,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11587,"content":11593,"config":11598,"_id":11600,"_type":16,"title":11601,"_source":17,"_file":11602,"_stem":11603,"_extension":20},"/en-us/blog/git-resources-for-visual-learners",{"title":11588,"description":11589,"ogTitle":11588,"ogDescription":11589,"noIndex":6,"ogImage":11590,"ogUrl":11591,"ogSiteName":995,"ogType":996,"canonicalUrls":11591,"schema":11592},"5 Git resources for visual learners","Learning Git is not commonplace in code instruction, yet it is essential for modern software development. These sites get you started.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668161/Blog/Hero%20Images/armycyberschool.jpg","https://about.gitlab.com/blog/git-resources-for-visual-learners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Git resources for visual learners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-09-14\",\n      }",{"title":11588,"description":11589,"authors":11594,"heroImage":11590,"date":11596,"category":1388,"tags":11597},[11595],"PJ Metz","2022-09-14",[1195,1265,269],{"slug":11599,"featured":6,"template":736},"git-resources-for-visual-learners","content:en-us:blog:git-resources-for-visual-learners.yml","Git Resources For Visual Learners","en-us/blog/git-resources-for-visual-learners.yml","en-us/blog/git-resources-for-visual-learners",{"_path":11605,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11606,"content":11612,"config":11616,"_id":11618,"_type":16,"title":11619,"_source":17,"_file":11620,"_stem":11621,"_extension":20},"/en-us/blog/new-to-devops-take-our-devops-for-beginners-quiz",{"title":11607,"description":11608,"ogTitle":11607,"ogDescription":11608,"noIndex":6,"ogImage":11609,"ogUrl":11610,"ogSiteName":995,"ogType":996,"canonicalUrls":11610,"schema":11611},"New to DevOps? Take our DevOps for beginners quiz","We asked nearly 1400 DevOps beginners about their priorities and challenges for 2022. See how you compare, and take our short DevOps for beginners quiz.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663743/Blog/Hero%20Images/three-things-i-learned-in-my-first-month-at-gitlab.jpg","https://about.gitlab.com/blog/new-to-devops-take-our-devops-for-beginners-quiz","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New to DevOps? Take our DevOps for beginners quiz\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-09-13\",\n      }",{"title":11607,"description":11608,"authors":11613,"heroImage":11609,"date":11614,"category":577,"tags":11615},[1000],"2022-09-13",[564,7788,6376],{"slug":11617,"featured":6,"template":736},"new-to-devops-take-our-devops-for-beginners-quiz","content:en-us:blog:new-to-devops-take-our-devops-for-beginners-quiz.yml","New To Devops Take Our Devops For Beginners Quiz","en-us/blog/new-to-devops-take-our-devops-for-beginners-quiz.yml","en-us/blog/new-to-devops-take-our-devops-for-beginners-quiz",{"_path":11623,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11624,"content":11629,"config":11632,"_id":11634,"_type":16,"title":11635,"_source":17,"_file":11636,"_stem":11637,"_extension":20},"/en-us/blog/pursuing-faster-time-to-merge-for-wider-community-contributions",{"title":11625,"description":11626,"ogTitle":11625,"ogDescription":11626,"noIndex":6,"ogImage":11046,"ogUrl":11627,"ogSiteName":995,"ogType":996,"canonicalUrls":11627,"schema":11628},"Pursuing faster time-to-merge for wider community contributions","How introducing more explicit contribution stages lowered the time it takes to merge a community contribution.","https://about.gitlab.com/blog/pursuing-faster-time-to-merge-for-wider-community-contributions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pursuing faster time-to-merge for wider community contributions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nick Veenhof\"}],\n        \"datePublished\": \"2022-09-13\",\n      }",{"title":11625,"description":11626,"authors":11630,"heroImage":11046,"date":11614,"category":1388,"tags":11631},[1513],[1932,3074,1265],{"slug":11633,"featured":6,"template":736},"pursuing-faster-time-to-merge-for-wider-community-contributions","content:en-us:blog:pursuing-faster-time-to-merge-for-wider-community-contributions.yml","Pursuing Faster Time To Merge For Wider Community Contributions","en-us/blog/pursuing-faster-time-to-merge-for-wider-community-contributions.yml","en-us/blog/pursuing-faster-time-to-merge-for-wider-community-contributions",{"_path":11639,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11640,"content":11646,"config":11651,"_id":11653,"_type":16,"title":11654,"_source":17,"_file":11655,"_stem":11656,"_extension":20},"/en-us/blog/a-visual-guide-to-gitlab-ci-caching",{"title":11641,"description":11642,"ogTitle":11641,"ogDescription":11642,"noIndex":6,"ogImage":11643,"ogUrl":11644,"ogSiteName":995,"ogType":996,"canonicalUrls":11644,"schema":11645},"A visual guide to GitLab CI/CD caching","Learn cache types, as well as when and how to use them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682443/Blog/Hero%20Images/cover.jpg","https://about.gitlab.com/blog/a-visual-guide-to-gitlab-ci-caching","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A visual guide to GitLab CI/CD caching\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matthieu Fronton\"}],\n        \"datePublished\": \"2022-09-12\",\n      }",{"title":11641,"description":11642,"authors":11647,"heroImage":11643,"date":11649,"category":858,"tags":11650},[11648],"Matthieu Fronton","2022-09-12",[2097,2098,564,772],{"slug":11652,"featured":6,"template":736},"a-visual-guide-to-gitlab-ci-caching","content:en-us:blog:a-visual-guide-to-gitlab-ci-caching.yml","A Visual Guide To Gitlab Ci Caching","en-us/blog/a-visual-guide-to-gitlab-ci-caching.yml","en-us/blog/a-visual-guide-to-gitlab-ci-caching",{"_path":11658,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11659,"content":11665,"config":11669,"_id":11671,"_type":16,"title":11672,"_source":17,"_file":11673,"_stem":11674,"_extension":20},"/en-us/blog/how-smbs-can-save-with-gitlabs-devops-platform",{"title":11660,"description":11661,"ogTitle":11660,"ogDescription":11661,"noIndex":6,"ogImage":11662,"ogUrl":11663,"ogSiteName":995,"ogType":996,"canonicalUrls":11663,"schema":11664},"How SMBs can save with the GitLab DevOps Platform","Use our ROI Calculator to understand how a DevOps platform saves money.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667966/Blog/Hero%20Images/global-compensation-calculator-iteration.jpg","https://about.gitlab.com/blog/how-smbs-can-save-with-gitlabs-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How SMBs can save with the GitLab DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-09-08\",\n      }",{"title":11660,"description":11661,"authors":11666,"heroImage":11662,"date":11667,"category":577,"tags":11668},[3999],"2022-09-08",[564,3075,10011],{"slug":11670,"featured":6,"template":736},"how-smbs-can-save-with-gitlabs-devops-platform","content:en-us:blog:how-smbs-can-save-with-gitlabs-devops-platform.yml","How Smbs Can Save With Gitlabs Devops Platform","en-us/blog/how-smbs-can-save-with-gitlabs-devops-platform.yml","en-us/blog/how-smbs-can-save-with-gitlabs-devops-platform",{"_path":11676,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11677,"content":11683,"config":11688,"_id":11690,"_type":16,"title":11691,"_source":17,"_file":11692,"_stem":11693,"_extension":20},"/en-us/blog/jobs-to-be-done-interviews",{"title":11678,"description":11679,"ogTitle":11678,"ogDescription":11679,"noIndex":6,"ogImage":11680,"ogUrl":11681,"ogSiteName":995,"ogType":996,"canonicalUrls":11681,"schema":11682},"How we use the Jobs-To-Be-Done Framework to rethink user workflow","We experimented with our methodology and this is what we learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670074/Blog/Hero%20Images/jobs-to-be-done.jpg","https://about.gitlab.com/blog/jobs-to-be-done-interviews","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we use the Jobs-To-Be-Done Framework to rethink user workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erika Feldman\"},{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2022-09-07\",\n      }",{"title":11678,"description":11679,"authors":11684,"heroImage":11680,"date":11686,"category":8140,"tags":11687},[11685,4929],"Erika Feldman","2022-09-07",[2025,2703,731],{"slug":11689,"featured":6,"template":736},"jobs-to-be-done-interviews","content:en-us:blog:jobs-to-be-done-interviews.yml","Jobs To Be Done Interviews","en-us/blog/jobs-to-be-done-interviews.yml","en-us/blog/jobs-to-be-done-interviews",{"_path":11695,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11696,"content":11702,"config":11706,"_id":11708,"_type":16,"title":11709,"_source":17,"_file":11710,"_stem":11711,"_extension":20},"/en-us/blog/ease-pressure-on-smb-developers-with-a-devops-platform",{"title":11697,"description":11698,"ogTitle":11697,"ogDescription":11698,"noIndex":6,"ogImage":11699,"ogUrl":11700,"ogSiteName":995,"ogType":996,"canonicalUrls":11700,"schema":11701},"Ease pressure on SMB developers with a DevOps platform","Small and medium-sized businesses have to be master multitaskers, but that's not always efficient. Here's how a DevOps platform can help.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668354/Blog/Hero%20Images/handshake.png","https://about.gitlab.com/blog/ease-pressure-on-smb-developers-with-a-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ease pressure on SMB developers with a DevOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-09-06\",\n      }",{"title":11697,"description":11698,"authors":11703,"heroImage":11699,"date":11704,"category":577,"tags":11705},[3999],"2022-09-06",[564,2815,3075],{"slug":11707,"featured":6,"template":736},"ease-pressure-on-smb-developers-with-a-devops-platform","content:en-us:blog:ease-pressure-on-smb-developers-with-a-devops-platform.yml","Ease Pressure On Smb Developers With A Devops Platform","en-us/blog/ease-pressure-on-smb-developers-with-a-devops-platform.yml","en-us/blog/ease-pressure-on-smb-developers-with-a-devops-platform",{"_path":11713,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11714,"content":11719,"config":11722,"_id":11724,"_type":16,"title":11725,"_source":17,"_file":11726,"_stem":11727,"_extension":20},"/en-us/blog/speed-up-your-monorepo-workflow-in-git",{"title":11715,"description":11716,"ogTitle":11715,"ogDescription":11716,"noIndex":6,"ogImage":11283,"ogUrl":11717,"ogSiteName":995,"ogType":996,"canonicalUrls":11717,"schema":11718},"Speed up your monorepo workflow in Git","Tap into the features that can reap huge savings in the long run for any developer team.","https://about.gitlab.com/blog/speed-up-your-monorepo-workflow-in-git","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Speed up your monorepo workflow in Git\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Cai\"}],\n        \"datePublished\": \"2022-09-06\",\n      }",{"title":11715,"description":11716,"authors":11720,"heroImage":11283,"date":11704,"category":858,"tags":11721},[4769],[1195,1335,772],{"slug":11723,"featured":6,"template":736},"speed-up-your-monorepo-workflow-in-git","content:en-us:blog:speed-up-your-monorepo-workflow-in-git.yml","Speed Up Your Monorepo Workflow In Git","en-us/blog/speed-up-your-monorepo-workflow-in-git.yml","en-us/blog/speed-up-your-monorepo-workflow-in-git",{"_path":11729,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11730,"content":11736,"config":11740,"_id":11742,"_type":16,"title":11743,"_source":17,"_file":11744,"_stem":11745,"_extension":20},"/en-us/blog/whiteboarding-remote-work-superpower",{"title":11731,"description":11732,"ogTitle":11731,"ogDescription":11732,"noIndex":6,"ogImage":11733,"ogUrl":11734,"ogSiteName":995,"ogType":996,"canonicalUrls":11734,"schema":11735},"Virtual whiteboarding is a remote work super power","Want to master a collective understanding of technical explanations remotely? Learn how to use virtual whiteboards to their maximum capabilities in this tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682431/Blog/Hero%20Images/kvalifik-5Q07sS54D0Q-unsplash.jpg","https://about.gitlab.com/blog/whiteboarding-remote-work-superpower","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Virtual whiteboarding is a remote work super power\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2022-09-01\",\n      }",{"title":11731,"description":11732,"authors":11737,"heroImage":11733,"date":11738,"category":858,"tags":11739},[959],"2022-09-01",[2889,2815,3914],{"slug":11741,"featured":6,"template":736},"whiteboarding-remote-work-superpower","content:en-us:blog:whiteboarding-remote-work-superpower.yml","Whiteboarding Remote Work Superpower","en-us/blog/whiteboarding-remote-work-superpower.yml","en-us/blog/whiteboarding-remote-work-superpower",{"_path":11747,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11748,"content":11754,"config":11758,"_id":11760,"_type":16,"title":11761,"_source":17,"_file":11762,"_stem":11763,"_extension":20},"/en-us/blog/the-changing-roles-in-devsecops",{"title":11749,"description":11750,"ogTitle":11749,"ogDescription":11750,"noIndex":6,"ogImage":11751,"ogUrl":11752,"ogSiteName":995,"ogType":996,"canonicalUrls":11752,"schema":11753},"Why - and how - DevOps roles are changing","Our 2022 Global DevSecOps Survey finds developers in ops and security while operations is everywhere.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664007/Blog/Hero%20Images/devopsroles.jpg","https://about.gitlab.com/blog/the-changing-roles-in-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why - and how - DevOps roles are changing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-08-31\",\n      }",{"title":11749,"description":11750,"authors":11755,"heroImage":11751,"date":11756,"category":8140,"tags":11757},[10672],"2022-08-31",[7788,564,6980,790],{"slug":11759,"featured":6,"template":736},"the-changing-roles-in-devsecops","content:en-us:blog:the-changing-roles-in-devsecops.yml","The Changing Roles In Devsecops","en-us/blog/the-changing-roles-in-devsecops.yml","en-us/blog/the-changing-roles-in-devsecops",{"_path":11765,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11766,"content":11772,"config":11775,"_id":11777,"_type":16,"title":11778,"_source":17,"_file":11779,"_stem":11780,"_extension":20},"/en-us/blog/what-you-need-to-know-about-devops-audits",{"title":11767,"description":11768,"ogTitle":11767,"ogDescription":11768,"noIndex":6,"ogImage":11769,"ogUrl":11770,"ogSiteName":995,"ogType":996,"canonicalUrls":11770,"schema":11771},"What you need to know about DevOps audits","DevOps’s many steps can streamline the audit process. Here’s how.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668339/Blog/Hero%20Images/a-tale-of-two-editors.jpg","https://about.gitlab.com/blog/what-you-need-to-know-about-devops-audits","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What you need to know about DevOps audits\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-08-31\",\n      }",{"title":11767,"description":11768,"authors":11773,"heroImage":11769,"date":11756,"category":577,"tags":11774},[10672],[564,7788,790],{"slug":11776,"featured":6,"template":736},"what-you-need-to-know-about-devops-audits","content:en-us:blog:what-you-need-to-know-about-devops-audits.yml","What You Need To Know About Devops Audits","en-us/blog/what-you-need-to-know-about-devops-audits.yml","en-us/blog/what-you-need-to-know-about-devops-audits",{"_path":11782,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11783,"content":11789,"config":11793,"_id":11795,"_type":16,"title":11796,"_source":17,"_file":11797,"_stem":11798,"_extension":20},"/en-us/blog/five-essential-business-benefits-a-devops-platform-gives-smbs",{"title":11784,"description":11785,"ogTitle":11784,"ogDescription":11785,"noIndex":6,"ogImage":11786,"ogUrl":11787,"ogSiteName":995,"ogType":996,"canonicalUrls":11787,"schema":11788},"Five essential business benefits a DevOps platform gives SMBs","Multiply your SMB’s tech muscle, reduce expenses, and cut wasted time.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668332/Blog/Hero%20Images/architecture-building-business-258163.jpg","https://about.gitlab.com/blog/five-essential-business-benefits-a-devops-platform-gives-smbs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Five essential business benefits a DevOps platform gives SMBs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-08-30\",\n      }",{"title":11784,"description":11785,"authors":11790,"heroImage":11786,"date":11791,"category":577,"tags":11792},[3999],"2022-08-30",[564,233,3075],{"slug":11794,"featured":6,"template":736},"five-essential-business-benefits-a-devops-platform-gives-smbs","content:en-us:blog:five-essential-business-benefits-a-devops-platform-gives-smbs.yml","Five Essential Business Benefits A Devops Platform Gives Smbs","en-us/blog/five-essential-business-benefits-a-devops-platform-gives-smbs.yml","en-us/blog/five-essential-business-benefits-a-devops-platform-gives-smbs",{"_path":11800,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11801,"content":11806,"config":11809,"_id":11811,"_type":16,"title":11812,"_source":17,"_file":11813,"_stem":11814,"_extension":20},"/en-us/blog/the-ultimate-guide-to-software-supply-chain-security",{"title":11802,"description":11803,"ogTitle":11802,"ogDescription":11803,"noIndex":6,"ogImage":10041,"ogUrl":11804,"ogSiteName":995,"ogType":996,"canonicalUrls":11804,"schema":11805},"The ultimate guide to software supply chain security","Coupling DevSecOps with software supply chain security results in the advanced protection organizations need.","https://about.gitlab.com/blog/the-ultimate-guide-to-software-supply-chain-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The ultimate guide to software supply chain security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-08-30\",\n      }",{"title":11802,"description":11803,"authors":11807,"heroImage":10041,"date":11791,"category":577,"tags":11808},[3506],[790,564,2815],{"slug":11810,"featured":6,"template":736},"the-ultimate-guide-to-software-supply-chain-security","content:en-us:blog:the-ultimate-guide-to-software-supply-chain-security.yml","The Ultimate Guide To Software Supply Chain Security","en-us/blog/the-ultimate-guide-to-software-supply-chain-security.yml","en-us/blog/the-ultimate-guide-to-software-supply-chain-security",{"_path":11816,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11817,"content":11823,"config":11826,"_id":11828,"_type":16,"title":11829,"_source":17,"_file":11830,"_stem":11831,"_extension":20},"/en-us/blog/top-reasons-for-software-release-delays",{"title":11818,"description":11819,"ogTitle":11818,"ogDescription":11819,"noIndex":6,"ogImage":11820,"ogUrl":11821,"ogSiteName":995,"ogType":996,"canonicalUrls":11821,"schema":11822},"Top reasons for software release delays","In our 2022 Global DevSecOps survey, DevOps pros shared their frustrations with software releases, including security's shift left and complicated code reviews.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664070/Blog/Hero%20Images/cloudwatch-gitlab-incident-management-bg.jpg","https://about.gitlab.com/blog/top-reasons-for-software-release-delays","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top reasons for software release delays\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-08-30\",\n      }",{"title":11818,"description":11819,"authors":11824,"heroImage":11820,"date":11791,"category":577,"tags":11825},[10672],[7788,1932,892,564],{"slug":11827,"featured":6,"template":736},"top-reasons-for-software-release-delays","content:en-us:blog:top-reasons-for-software-release-delays.yml","Top Reasons For Software Release Delays","en-us/blog/top-reasons-for-software-release-delays.yml","en-us/blog/top-reasons-for-software-release-delays",{"_path":11833,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11834,"content":11840,"config":11845,"_id":11847,"_type":16,"title":11848,"_source":17,"_file":11849,"_stem":11850,"_extension":20},"/en-us/blog/a-3-step-plan-for-devops-platform-migration",{"title":11835,"description":11836,"ogTitle":11835,"ogDescription":11836,"noIndex":6,"ogImage":11837,"ogUrl":11838,"ogSiteName":995,"ogType":996,"canonicalUrls":11838,"schema":11839},"A 3-step plan for DevOps platform migration","Too many tools = too much time wasted. Use our 3-step plan and detailed checklist to jumpstart a DevOps platform migration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668319/Blog/Hero%20Images/more-robust-task-lists.jpg","https://about.gitlab.com/blog/a-3-step-plan-for-devops-platform-migration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A 3-step plan for DevOps platform migration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lauren Minning\"}],\n        \"datePublished\": \"2022-08-25\",\n      }",{"title":11835,"description":11836,"authors":11841,"heroImage":11837,"date":11843,"category":577,"tags":11844},[11842],"Lauren Minning","2022-08-25",[564,7788,790],{"slug":11846,"featured":6,"template":736},"a-3-step-plan-for-devops-platform-migration","content:en-us:blog:a-3-step-plan-for-devops-platform-migration.yml","A 3 Step Plan For Devops Platform Migration","en-us/blog/a-3-step-plan-for-devops-platform-migration.yml","en-us/blog/a-3-step-plan-for-devops-platform-migration",{"_path":11852,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11853,"content":11859,"config":11863,"_id":11865,"_type":16,"title":11866,"_source":17,"_file":11867,"_stem":11868,"_extension":20},"/en-us/blog/capture-the-flag-in-our-bug-bounty-program",{"title":11854,"description":11855,"ogTitle":11854,"ogDescription":11855,"noIndex":6,"ogImage":11856,"ogUrl":11857,"ogSiteName":995,"ogType":996,"canonicalUrls":11857,"schema":11858},"Give it a go: Capture the flag for $20K USD in our bug bounty program","We created a private project containing a file with a flag. Use a permission-related vulnerability to bypass access control (without user interaction) and read the flag for a $20K USD bonus.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670960/Blog/Hero%20Images/sigmund-i2VgGp5BwJg-unsplash.jpg","https://about.gitlab.com/blog/capture-the-flag-in-our-bug-bounty-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Give it a go: Capture the flag for $20K USD in our bug bounty program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2022-08-24\",\n      }",{"title":11854,"description":11855,"authors":11860,"heroImage":11856,"date":11861,"category":790,"tags":11862},[11324],"2022-08-24",[790],{"slug":11864,"featured":6,"template":736},"capture-the-flag-in-our-bug-bounty-program","content:en-us:blog:capture-the-flag-in-our-bug-bounty-program.yml","Capture The Flag In Our Bug Bounty Program","en-us/blog/capture-the-flag-in-our-bug-bounty-program.yml","en-us/blog/capture-the-flag-in-our-bug-bounty-program",{"_path":11870,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11871,"content":11877,"config":11881,"_id":11883,"_type":16,"title":11884,"_source":17,"_file":11885,"_stem":11886,"_extension":20},"/en-us/blog/postman-integration-with-gitlab-makes-your-api-workflows-easier",{"title":11872,"description":11873,"ogTitle":11872,"ogDescription":11873,"noIndex":6,"ogImage":11874,"ogUrl":11875,"ogSiteName":995,"ogType":996,"canonicalUrls":11875,"schema":11876},"Postman integration with GitLab makes API workflows easier","Learn how to use the git integration to link APIs in Postman to GitLab cloud repos.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671434/Blog/Hero%20Images/introducing-continuous-workflows.jpg","https://about.gitlab.com/blog/postman-integration-with-gitlab-makes-your-api-workflows-easier","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Postman integration with GitLab makes API workflows easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andy Rogers\"}],\n        \"datePublished\": \"2022-08-24\",\n      }",{"title":11872,"description":11873,"authors":11878,"heroImage":11874,"date":11861,"category":858,"tags":11880},[11879],"Andy Rogers",[564,1335,233],{"slug":11882,"featured":6,"template":736},"postman-integration-with-gitlab-makes-your-api-workflows-easier","content:en-us:blog:postman-integration-with-gitlab-makes-your-api-workflows-easier.yml","Postman Integration With Gitlab Makes Your Api Workflows Easier","en-us/blog/postman-integration-with-gitlab-makes-your-api-workflows-easier.yml","en-us/blog/postman-integration-with-gitlab-makes-your-api-workflows-easier",{"_path":11888,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11889,"content":11895,"config":11898,"_id":11900,"_type":16,"title":11901,"_source":17,"_file":11902,"_stem":11903,"_extension":20},"/en-us/blog/too-many-toolchains-a-devops-platform-migration-is-the-answer",{"title":11890,"description":11891,"ogTitle":11890,"ogDescription":11891,"noIndex":6,"ogImage":11892,"ogUrl":11893,"ogSiteName":995,"ogType":996,"canonicalUrls":11893,"schema":11894},"Ditch toolchain problems with a DevOps platform","Migrating to a platform is the next step in the DevOps evolution.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667978/Blog/Hero%20Images/go-tools-and-gitlab.jpg","https://about.gitlab.com/blog/too-many-toolchains-a-devops-platform-migration-is-the-answer","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ditch toolchain problems with a DevOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-08-24\",\n      }",{"title":11890,"description":11891,"authors":11896,"heroImage":11892,"date":11861,"category":577,"tags":11897},[3999],[564,7788,790],{"slug":11899,"featured":6,"template":736},"too-many-toolchains-a-devops-platform-migration-is-the-answer","content:en-us:blog:too-many-toolchains-a-devops-platform-migration-is-the-answer.yml","Too Many Toolchains A Devops Platform Migration Is The Answer","en-us/blog/too-many-toolchains-a-devops-platform-migration-is-the-answer.yml","en-us/blog/too-many-toolchains-a-devops-platform-migration-is-the-answer",{"_path":11905,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11906,"content":11911,"config":11916,"_id":11918,"_type":16,"title":11919,"_source":17,"_file":11920,"_stem":11921,"_extension":20},"/en-us/blog/gitlabs-2022-global-devsecops-survey-security-is-the-top-concern-investment",{"title":11907,"description":11908,"ogTitle":11907,"ogDescription":11908,"noIndex":6,"ogImage":11138,"ogUrl":11909,"ogSiteName":995,"ogType":996,"canonicalUrls":11909,"schema":11910},"DevSecOps Survey 2022: Security leads concern and investment","Find out if your successes and concerns about security and more match those of your peers.","https://about.gitlab.com/blog/gitlabs-2022-global-devsecops-survey-security-is-the-top-concern-investment","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's 2022 Global DevSecOps Survey: Security is the top concern, investment\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-08-23\",\n      }",{"title":11912,"description":11908,"authors":11913,"heroImage":11138,"date":11914,"category":577,"tags":11915},"GitLab's 2022 Global DevSecOps Survey: Security is the top concern, investment",[10672],"2022-08-23",[7788,564,790],{"slug":11917,"featured":6,"template":736},"gitlabs-2022-global-devsecops-survey-security-is-the-top-concern-investment","content:en-us:blog:gitlabs-2022-global-devsecops-survey-security-is-the-top-concern-investment.yml","Gitlabs 2022 Global Devsecops Survey Security Is The Top Concern Investment","en-us/blog/gitlabs-2022-global-devsecops-survey-security-is-the-top-concern-investment.yml","en-us/blog/gitlabs-2022-global-devsecops-survey-security-is-the-top-concern-investment",{"_path":11923,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11924,"content":11930,"config":11936,"_id":11938,"_type":16,"title":11939,"_source":17,"_file":11940,"_stem":11941,"_extension":20},"/en-us/blog/gitlab-adds-further-measures-to-combat-credential-stuffing-and-other-types-of-platform-abuse",{"title":11925,"description":11926,"ogTitle":11925,"ogDescription":11926,"noIndex":6,"ogImage":11927,"ogUrl":11928,"ogSiteName":995,"ogType":996,"canonicalUrls":11928,"schema":11929},"How GitLab is fighting credential stuffing and platform abuse","Integration of fraud detection and prevention tool into authentication flow increases risk reduction.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671606/Blog/Hero%20Images/workflow-tips-security-quality-cover.jpg","https://about.gitlab.com/blog/gitlab-adds-further-measures-to-combat-credential-stuffing-and-other-types-of-platform-abuse","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab adds further measures to combat credential stuffing and other types of platform abuse\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Monmayuri Ray\"}],\n        \"datePublished\": \"2022-08-19\",\n      }",{"title":11931,"description":11926,"authors":11932,"heroImage":11927,"date":11934,"category":790,"tags":11935},"GitLab adds further measures to combat credential stuffing and other types of platform abuse",[11933],"Monmayuri Ray","2022-08-19",[564,1569,790],{"slug":11937,"featured":6,"template":736},"gitlab-adds-further-measures-to-combat-credential-stuffing-and-other-types-of-platform-abuse","content:en-us:blog:gitlab-adds-further-measures-to-combat-credential-stuffing-and-other-types-of-platform-abuse.yml","Gitlab Adds Further Measures To Combat Credential Stuffing And Other Types Of Platform Abuse","en-us/blog/gitlab-adds-further-measures-to-combat-credential-stuffing-and-other-types-of-platform-abuse.yml","en-us/blog/gitlab-adds-further-measures-to-combat-credential-stuffing-and-other-types-of-platform-abuse",{"_path":11943,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11944,"content":11950,"config":11954,"_id":11956,"_type":16,"title":11957,"_source":17,"_file":11958,"_stem":11959,"_extension":20},"/en-us/blog/the-gitlab-guide-to-modern-software-testing",{"title":11945,"description":11946,"ogTitle":11945,"ogDescription":11946,"noIndex":6,"ogImage":11947,"ogUrl":11948,"ogSiteName":995,"ogType":996,"canonicalUrls":11948,"schema":11949},"The GitLab guide to modern software testing","If test is your DevOps team's Public Enemy No. 1, it's time to rethink your strategy. Here's what you need to know about modern software testing.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668307/Blog/Hero%20Images/test-automation-devops.jpg","https://about.gitlab.com/blog/the-gitlab-guide-to-modern-software-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The GitLab guide to modern software testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-08-18\",\n      }",{"title":11945,"description":11946,"authors":11951,"heroImage":11947,"date":11952,"category":577,"tags":11953},[10672],"2022-08-18",[964,564,1988],{"slug":11955,"featured":6,"template":736},"the-gitlab-guide-to-modern-software-testing","content:en-us:blog:the-gitlab-guide-to-modern-software-testing.yml","The Gitlab Guide To Modern Software Testing","en-us/blog/the-gitlab-guide-to-modern-software-testing.yml","en-us/blog/the-gitlab-guide-to-modern-software-testing",{"_path":11961,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11962,"content":11968,"config":11972,"_id":11974,"_type":16,"title":11975,"_source":17,"_file":11976,"_stem":11977,"_extension":20},"/en-us/blog/why-devops-and-zero-trust-go-together",{"title":11963,"description":11964,"ogTitle":11963,"ogDescription":11964,"noIndex":6,"ogImage":11965,"ogUrl":11966,"ogSiteName":995,"ogType":996,"canonicalUrls":11966,"schema":11967},"Why DevOps and zero trust go together","Learn how DevOps and zero trust have matured into a solid pairing and the security considerations that come into play.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683257/Blog/Hero%20Images/devopszerotrust.jpg","https://about.gitlab.com/blog/why-devops-and-zero-trust-go-together","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why DevOps and zero trust go together\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-08-17\",\n      }",{"title":11963,"description":11964,"authors":11969,"heroImage":11965,"date":11970,"category":790,"tags":11971},[3506],"2022-08-17",[564,790,730],{"slug":11973,"featured":6,"template":736},"why-devops-and-zero-trust-go-together","content:en-us:blog:why-devops-and-zero-trust-go-together.yml","Why Devops And Zero Trust Go Together","en-us/blog/why-devops-and-zero-trust-go-together.yml","en-us/blog/why-devops-and-zero-trust-go-together",{"_path":11979,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11980,"content":11985,"config":11988,"_id":11990,"_type":16,"title":11991,"_source":17,"_file":11992,"_stem":11993,"_extension":20},"/en-us/blog/why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass",{"title":11981,"description":11982,"ogTitle":11981,"ogDescription":11982,"noIndex":6,"ogImage":8754,"ogUrl":11983,"ogSiteName":995,"ogType":996,"canonicalUrls":11983,"schema":11984},"Why we implemented our own SSHD solution","Until recently we used OpenSSH Server to handle SSH connections to provide SSH-related features, but we ultimately decided to implement our own SSHD solution. Learn more!","https://about.gitlab.com/blog/why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we implemented our own SSHD solution\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Igor Drozdov\"}],\n        \"datePublished\": \"2022-08-17\",\n      }",{"title":11981,"description":11982,"authors":11986,"heroImage":8754,"date":11970,"category":858,"tags":11987},[6318],[6376,790],{"slug":11989,"featured":6,"template":736},"why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass","content:en-us:blog:why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass.yml","Why We Have Implemented Our Own Sshd Solution On Gitlab Sass","en-us/blog/why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass.yml","en-us/blog/why-we-have-implemented-our-own-sshd-solution-on-gitlab-sass",{"_path":11995,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":11996,"content":12002,"config":12006,"_id":12008,"_type":16,"title":12009,"_source":17,"_file":12010,"_stem":12011,"_extension":20},"/en-us/blog/eight-steps-to-prepare-your-team-for-a-devops-platform-migration",{"title":11997,"description":11998,"ogTitle":11997,"ogDescription":11998,"noIndex":6,"ogImage":11999,"ogUrl":12000,"ogSiteName":995,"ogType":996,"canonicalUrls":12000,"schema":12001},"8 Steps to prepare your team for a DevOps platform migration","Getting teams ready enables them to migrate with more confidence and ease. Here's how to get started.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663786/Blog/Hero%20Images/craftsman-looks-at-continuous-integration.jpg","https://about.gitlab.com/blog/eight-steps-to-prepare-your-team-for-a-devops-platform-migration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"8 Steps to prepare your team for a DevOps platform migration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-08-16\",\n      }",{"title":11997,"description":11998,"authors":12003,"heroImage":11999,"date":12004,"category":577,"tags":12005},[3999],"2022-08-16",[564,110,2815],{"slug":12007,"featured":6,"template":736},"eight-steps-to-prepare-your-team-for-a-devops-platform-migration","content:en-us:blog:eight-steps-to-prepare-your-team-for-a-devops-platform-migration.yml","Eight Steps To Prepare Your Team For A Devops Platform Migration","en-us/blog/eight-steps-to-prepare-your-team-for-a-devops-platform-migration.yml","en-us/blog/eight-steps-to-prepare-your-team-for-a-devops-platform-migration",{"_path":12013,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12014,"content":12019,"config":12023,"_id":12025,"_type":16,"title":12026,"_source":17,"_file":12027,"_stem":12028,"_extension":20},"/en-us/blog/the-importance-of-compliance-in-devops",{"title":12015,"description":12016,"ogTitle":12015,"ogDescription":12016,"noIndex":6,"ogImage":10849,"ogUrl":12017,"ogSiteName":995,"ogType":996,"canonicalUrls":12017,"schema":12018},"The importance of compliance in DevOps","A basic understanding of what compliance means and how it impacts DevOps.","https://about.gitlab.com/blog/the-importance-of-compliance-in-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The importance of compliance in DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lauren Minning\"}],\n        \"datePublished\": \"2022-08-15\",\n      }",{"title":12015,"description":12016,"authors":12020,"heroImage":10849,"date":12021,"category":790,"tags":12022},[11842],"2022-08-15",[564,790,1988],{"slug":12024,"featured":6,"template":736},"the-importance-of-compliance-in-devops","content:en-us:blog:the-importance-of-compliance-in-devops.yml","The Importance Of Compliance In Devops","en-us/blog/the-importance-of-compliance-in-devops.yml","en-us/blog/the-importance-of-compliance-in-devops",{"_path":12030,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12031,"content":12036,"config":12041,"_id":12043,"_type":16,"title":12044,"_source":17,"_file":12045,"_stem":12046,"_extension":20},"/en-us/blog/upgrading-database-os",{"title":12032,"description":12033,"ogTitle":12032,"ogDescription":12033,"noIndex":6,"ogImage":8754,"ogUrl":12034,"ogSiteName":995,"ogType":996,"canonicalUrls":12034,"schema":12035},"We are upgrading the operating system on our Postgres database clusters","Learn when these upgrades will happen and how they will help boost performance and reliability on GitLab.com.","https://about.gitlab.com/blog/upgrading-database-os","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We are upgrading the operating system on our Postgres database clusters\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David Smith\"}],\n        \"datePublished\": \"2022-08-12\",\n      }",{"title":12032,"description":12033,"authors":12037,"heroImage":8754,"date":12039,"category":858,"tags":12040},[12038],"David Smith","2022-08-12",[1049,1988,564],{"slug":12042,"featured":6,"template":736},"upgrading-database-os","content:en-us:blog:upgrading-database-os.yml","Upgrading Database Os","en-us/blog/upgrading-database-os.yml","en-us/blog/upgrading-database-os",{"_path":12048,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12049,"content":12054,"config":12058,"_id":12060,"_type":16,"title":12061,"_source":17,"_file":12062,"_stem":12063,"_extension":20},"/en-us/blog/securing-the-software-supply-chain-through-automated-attestation",{"title":12050,"description":12051,"ogTitle":12050,"ogDescription":12051,"noIndex":6,"ogImage":9779,"ogUrl":12052,"ogSiteName":995,"ogType":996,"canonicalUrls":12052,"schema":12053},"Securing the software supply chain through automated attestation","Standards bodies want to know how orgs are protecting against software tampering. Learn how automating compliance attestation can help.","https://about.gitlab.com/blog/securing-the-software-supply-chain-through-automated-attestation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Securing the software supply chain through automated attestation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-08-10\",\n      }",{"title":12050,"description":12051,"authors":12055,"heroImage":9779,"date":12056,"category":790,"tags":12057},[3506],"2022-08-10",[564,790,1265,186],{"slug":12059,"featured":6,"template":736},"securing-the-software-supply-chain-through-automated-attestation","content:en-us:blog:securing-the-software-supply-chain-through-automated-attestation.yml","Securing The Software Supply Chain Through Automated Attestation","en-us/blog/securing-the-software-supply-chain-through-automated-attestation.yml","en-us/blog/securing-the-software-supply-chain-through-automated-attestation",{"_path":12065,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12066,"content":12072,"config":12077,"_id":12079,"_type":16,"title":12080,"_source":17,"_file":12081,"_stem":12082,"_extension":20},"/en-us/blog/virtual-reality-team-building",{"title":12067,"description":12068,"ogTitle":12067,"ogDescription":12068,"noIndex":6,"ogImage":12069,"ogUrl":12070,"ogSiteName":995,"ogType":996,"canonicalUrls":12070,"schema":12071},"How to use virtual reality for team building","Zoom meetings are fine, but are there better options for team bonding? We tested a few virtual reality games. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682413/Blog/Hero%20Images/jeshoots-com-xGtHjC_QNJM-unsplash.jpg","https://about.gitlab.com/blog/virtual-reality-team-building","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use virtual reality for team building\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Nohr\"}],\n        \"datePublished\": \"2022-08-09\",\n      }",{"title":12067,"description":12068,"authors":12073,"heroImage":12069,"date":12075,"category":6121,"tags":12076},[12074],"Matt Nohr","2022-08-09",[3914],{"slug":12078,"featured":6,"template":736},"virtual-reality-team-building","content:en-us:blog:virtual-reality-team-building.yml","Virtual Reality Team Building","en-us/blog/virtual-reality-team-building.yml","en-us/blog/virtual-reality-team-building",{"_path":12084,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12085,"content":12090,"config":12095,"_id":12097,"_type":16,"title":12098,"_source":17,"_file":12099,"_stem":12100,"_extension":20},"/en-us/blog/path-to-decomposing-gitlab-database-part1",{"title":12086,"description":12087,"ogTitle":12086,"ogDescription":12087,"noIndex":6,"ogImage":11046,"ogUrl":12088,"ogSiteName":995,"ogType":996,"canonicalUrls":12088,"schema":12089},"Decomposing the GitLab backend database, Part 1: Designing and planning","A technical summary of the yearlong project to decompose GitLab's Postgres database. This first part focuses on the initial designing and planning of the project.","https://about.gitlab.com/blog/path-to-decomposing-gitlab-database-part1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Decomposing the GitLab backend database, Part 1: Designing and planning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dylan Griffith\"}],\n        \"datePublished\": \"2022-08-04\",\n      }",{"title":12086,"description":12087,"authors":12091,"heroImage":11046,"date":12093,"category":858,"tags":12094},[12092],"Dylan Griffith","2022-08-04",[1569,2702],{"slug":12096,"featured":6,"template":736},"path-to-decomposing-gitlab-database-part1","content:en-us:blog:path-to-decomposing-gitlab-database-part1.yml","Path To Decomposing Gitlab Database Part1","en-us/blog/path-to-decomposing-gitlab-database-part1.yml","en-us/blog/path-to-decomposing-gitlab-database-part1",{"_path":12102,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12103,"content":12108,"config":12112,"_id":12114,"_type":16,"title":12115,"_source":17,"_file":12116,"_stem":12117,"_extension":20},"/en-us/blog/path-to-decomposing-gitlab-database-part2",{"title":12104,"description":12105,"ogTitle":12104,"ogDescription":12105,"noIndex":6,"ogImage":11046,"ogUrl":12106,"ogSiteName":995,"ogType":996,"canonicalUrls":12106,"schema":12107},"GitLab database decomposition: Final migration and results","This is the second in our three-part technical summary of the yearlong project to decompose GitLab's Postgres database.","https://about.gitlab.com/blog/path-to-decomposing-gitlab-database-part2","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Decomposing the GitLab backend database, Part 2: Final migration and results\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dylan Griffith\"}],\n        \"datePublished\": \"2022-08-04\",\n      }",{"title":12109,"description":12105,"authors":12110,"heroImage":11046,"date":12093,"category":858,"tags":12111},"Decomposing the GitLab backend database, Part 2: Final migration and results",[12092],[1569,2702],{"slug":12113,"featured":6,"template":736},"path-to-decomposing-gitlab-database-part2","content:en-us:blog:path-to-decomposing-gitlab-database-part2.yml","Path To Decomposing Gitlab Database Part2","en-us/blog/path-to-decomposing-gitlab-database-part2.yml","en-us/blog/path-to-decomposing-gitlab-database-part2",{"_path":12119,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12120,"content":12125,"config":12128,"_id":12130,"_type":16,"title":12131,"_source":17,"_file":12132,"_stem":12133,"_extension":20},"/en-us/blog/path-to-decomposing-gitlab-database-part3",{"title":12121,"description":12122,"ogTitle":12121,"ogDescription":12122,"noIndex":6,"ogImage":11046,"ogUrl":12123,"ogSiteName":995,"ogType":996,"canonicalUrls":12123,"schema":12124},"Decomposing the GitLab backend database, Part 3: Challenges and surprises","This is the final installment in our three-part series about our yearlong\nproject to decompose GitLab's Postgres database.","https://about.gitlab.com/blog/path-to-decomposing-gitlab-database-part3","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Decomposing the GitLab backend database, Part 3: Challenges and surprises\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dylan Griffith\"}],\n        \"datePublished\": \"2022-08-04\",\n      }",{"title":12121,"description":12122,"authors":12126,"heroImage":11046,"date":12093,"category":858,"tags":12127},[12092],[1569,2702],{"slug":12129,"featured":6,"template":736},"path-to-decomposing-gitlab-database-part3","content:en-us:blog:path-to-decomposing-gitlab-database-part3.yml","Path To Decomposing Gitlab Database Part3","en-us/blog/path-to-decomposing-gitlab-database-part3.yml","en-us/blog/path-to-decomposing-gitlab-database-part3",{"_path":12135,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12136,"content":12142,"config":12146,"_id":12148,"_type":16,"title":12149,"_source":17,"_file":12150,"_stem":12151,"_extension":20},"/en-us/blog/gitlab-ci-event-workflows",{"title":12137,"description":12138,"ogTitle":12137,"ogDescription":12138,"noIndex":6,"ogImage":12139,"ogUrl":12140,"ogSiteName":995,"ogType":996,"canonicalUrls":12140,"schema":12141},"Event-based CI workflows in GitLab","Learn about a proof of concept to automate more with GitLab CI workflows and share your feedback.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669444/Blog/Hero%20Images/kelly-sikkema-lFtttcsx5Vk-unsplash.jpg","https://about.gitlab.com/blog/gitlab-ci-event-workflows","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Event-based CI workflows in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grzegorz Bizon\"},{\"@type\":\"Person\",\"name\":\"Jackie Porter\"}],\n        \"datePublished\": \"2022-08-03\",\n      }",{"title":12137,"description":12138,"authors":12143,"heroImage":12139,"date":12144,"category":301,"tags":12145},[3109,3324],"2022-08-03",[730,731,729],{"slug":12147,"featured":6,"template":736},"gitlab-ci-event-workflows","content:en-us:blog:gitlab-ci-event-workflows.yml","Gitlab Ci Event Workflows","en-us/blog/gitlab-ci-event-workflows.yml","en-us/blog/gitlab-ci-event-workflows",{"_path":12153,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12154,"content":12159,"config":12162,"_id":12164,"_type":16,"title":12165,"_source":17,"_file":12166,"_stem":12167,"_extension":20},"/en-us/blog/gitlab-welcomes-janelle-romano-and-patty-molthen-to-federal-advisory-board",{"title":12155,"description":12156,"ogTitle":12155,"ogDescription":12156,"noIndex":6,"ogImage":9899,"ogUrl":12157,"ogSiteName":995,"ogType":996,"canonicalUrls":12157,"schema":12158},"GitLab welcomes Janelle Romano and Patty Molthen to Federal Advisory Board","The new board members come onboard as GitLab continues to identify opportunities to drive new technology adoption in the public sector.","https://about.gitlab.com/blog/gitlab-welcomes-janelle-romano-and-patty-molthen-to-federal-advisory-board","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab welcomes Janelle Romano and Patty Molthen to Federal Advisory Board\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-08-03\",\n      }",{"title":12155,"description":12156,"authors":12160,"heroImage":9899,"date":12144,"category":1049,"tags":12161},[1000],[1049,1569],{"slug":12163,"featured":6,"template":736},"gitlab-welcomes-janelle-romano-and-patty-molthen-to-federal-advisory-board","content:en-us:blog:gitlab-welcomes-janelle-romano-and-patty-molthen-to-federal-advisory-board.yml","Gitlab Welcomes Janelle Romano And Patty Molthen To Federal Advisory Board","en-us/blog/gitlab-welcomes-janelle-romano-and-patty-molthen-to-federal-advisory-board.yml","en-us/blog/gitlab-welcomes-janelle-romano-and-patty-molthen-to-federal-advisory-board",{"_path":12169,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12170,"content":12176,"config":12181,"_id":12183,"_type":16,"title":12184,"_source":17,"_file":12185,"_stem":12186,"_extension":20},"/en-us/blog/how-to-provision-reviewops",{"title":12171,"description":12172,"ogTitle":12171,"ogDescription":12172,"noIndex":6,"ogImage":12173,"ogUrl":12174,"ogSiteName":995,"ogType":996,"canonicalUrls":12174,"schema":12175},"Deploying dynamic review environments with MRs and Argo CD","Here's how to use the Argo CD ApplicationSet to provision a ‘ReviewOps’ environment based on merge request changes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681920/Blog/Hero%20Images/kubernetes.png","https://about.gitlab.com/blog/how-to-provision-reviewops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to provision dynamic review environments using merge requests and Argo CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joe Randazzo\"},{\"@type\":\"Person\",\"name\":\"Madou Coulibaly\"}],\n        \"datePublished\": \"2022-08-02\",\n      }",{"title":12177,"description":12172,"authors":12178,"heroImage":12173,"date":12179,"category":858,"tags":12180},"How to provision dynamic review environments using merge requests and Argo CD",[1295,7557],"2022-08-02",[1932,559,564],{"slug":12182,"featured":6,"template":736},"how-to-provision-reviewops","content:en-us:blog:how-to-provision-reviewops.yml","How To Provision Reviewops","en-us/blog/how-to-provision-reviewops.yml","en-us/blog/how-to-provision-reviewops",{"_path":12188,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12189,"content":12195,"config":12199,"_id":12201,"_type":16,"title":12202,"_source":17,"_file":12203,"_stem":12204,"_extension":20},"/en-us/blog/verify-week-hackathon",{"title":12190,"description":12191,"ogTitle":12190,"ogDescription":12191,"noIndex":6,"ogImage":12192,"ogUrl":12193,"ogSiteName":995,"ogType":996,"canonicalUrls":12193,"schema":12194},"What we learned during an internal Hackathon Week","The Verify team spent a week on Hackathon projects building new features, Proof of Concepts and cleaning up “dead code”","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682399/Blog/Hero%20Images/marvin-meyer-SYTO3xs06fU-unsplash.jpg","https://about.gitlab.com/blog/verify-week-hackathon","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we learned during an internal Hackathon Week\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Heimbuck\"}],\n        \"datePublished\": \"2022-07-28\",\n      }",{"title":12190,"description":12191,"authors":12196,"heroImage":12192,"date":12197,"category":301,"tags":12198},[6886],"2022-07-28",[2097,2815,731],{"slug":12200,"featured":6,"template":736},"verify-week-hackathon","content:en-us:blog:verify-week-hackathon.yml","Verify Week Hackathon","en-us/blog/verify-week-hackathon.yml","en-us/blog/verify-week-hackathon",{"_path":12206,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12207,"content":12213,"config":12217,"_id":12219,"_type":16,"title":12220,"_source":17,"_file":12221,"_stem":12222,"_extension":20},"/en-us/blog/cracking-our-bug-bounty-top-10",{"title":12208,"description":12209,"ogTitle":12208,"ogDescription":12209,"noIndex":6,"ogImage":12210,"ogUrl":12211,"ogSiteName":995,"ogType":996,"canonicalUrls":12211,"schema":12212},"Want to start hacking? Here's how to quickly dive in","We asked one of our top 10 hacker contributors, Johan Carlsson, to share his novel approach to bug bounty hunting.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670967/Blog/Hero%20Images/hack-gtlab-keyboard.png","https://about.gitlab.com/blog/cracking-our-bug-bounty-top-10","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Want to start hacking? Here's how to quickly dive in\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2022-07-27\",\n      }",{"title":12208,"description":12209,"authors":12214,"heroImage":12210,"date":12215,"category":790,"tags":12216},[11324],"2022-07-27",[790,2483],{"slug":12218,"featured":6,"template":736},"cracking-our-bug-bounty-top-10","content:en-us:blog:cracking-our-bug-bounty-top-10.yml","Cracking Our Bug Bounty Top 10","en-us/blog/cracking-our-bug-bounty-top-10.yml","en-us/blog/cracking-our-bug-bounty-top-10",{"_path":12224,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12225,"content":12231,"config":12235,"_id":12237,"_type":16,"title":12238,"_source":17,"_file":12239,"_stem":12240,"_extension":20},"/en-us/blog/r2devops-open-source-hub-cicd",{"title":12226,"description":12227,"ogTitle":12226,"ogDescription":12227,"noIndex":6,"ogImage":12228,"ogUrl":12229,"ogSiteName":995,"ogType":996,"canonicalUrls":12229,"schema":12230},"How to create a hub of GitLab CI/CD jobs with R2Devops","Here's how R2Devops and GitLab can work together to streamline CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682395/Blog/Hero%20Images/r2devops1.png","https://about.gitlab.com/blog/r2devops-open-source-hub-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to create a hub of GitLab CI/CD jobs with R2Devops\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Salerno\"}],\n        \"datePublished\": \"2022-07-27\",\n      }",{"title":12226,"description":12227,"authors":12232,"heroImage":12228,"date":12215,"category":1049,"tags":12234},[12233],"Sandra Salerno",[110,564,284],{"slug":12236,"featured":6,"template":736},"r2devops-open-source-hub-cicd","content:en-us:blog:r2devops-open-source-hub-cicd.yml","R2devops Open Source Hub Cicd","en-us/blog/r2devops-open-source-hub-cicd.yml","en-us/blog/r2devops-open-source-hub-cicd",{"_path":12242,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12243,"content":12249,"config":12254,"_id":12256,"_type":16,"title":12257,"_source":17,"_file":12258,"_stem":12259,"_extension":20},"/en-us/blog/5-problems-you-can-help-us-solve-right-now",{"title":12244,"description":12245,"ogTitle":12244,"ogDescription":12245,"noIndex":6,"ogImage":12246,"ogUrl":12247,"ogSiteName":995,"ogType":996,"canonicalUrls":12247,"schema":12248},"5 UX problems you can help us fix right now","“We spent 40 hours talking to 20 of you. Now we’ve got some issues we’d like your help on.”","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682386/Blog/Hero%20Images/pexels-sevenstorm-juhaszimrus-704767.jpg","https://about.gitlab.com/blog/5-problems-you-can-help-us-solve-right-now","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 UX problems you can help us fix right now\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ben Leduc-Mills\"}],\n        \"datePublished\": \"2022-07-25\",\n      }",{"title":12244,"description":12245,"authors":12250,"heroImage":12246,"date":12252,"category":1388,"tags":12253},[12251],"Ben Leduc-Mills","2022-07-25",[3074,269,1265,2025,2703],{"slug":12255,"featured":6,"template":736},"5-problems-you-can-help-us-solve-right-now","content:en-us:blog:5-problems-you-can-help-us-solve-right-now.yml","5 Problems You Can Help Us Solve Right Now","en-us/blog/5-problems-you-can-help-us-solve-right-now.yml","en-us/blog/5-problems-you-can-help-us-solve-right-now",{"_path":12261,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12262,"content":12267,"config":12271,"_id":12273,"_type":16,"title":12274,"_source":17,"_file":12275,"_stem":12276,"_extension":20},"/en-us/blog/how-to-access-gitlab-on-a-private-network-with-tailscale",{"title":12263,"description":12264,"ogTitle":12263,"ogDescription":12264,"noIndex":6,"ogImage":10975,"ogUrl":12265,"ogSiteName":995,"ogType":996,"canonicalUrls":12265,"schema":12266},"How to access GitLab on a private network with Tailscale","If issues around a private network were preventing a permanent GitLab installation, Brendan O'Leary has the solution with Tailscale.","https://about.gitlab.com/blog/how-to-access-gitlab-on-a-private-network-with-tailscale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to access GitLab on a private network with Tailscale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-07-21\",\n      }",{"title":12263,"description":12264,"authors":12268,"heroImage":10975,"date":12269,"category":858,"tags":12270},[10835],"2022-07-21",[772,1265,233],{"slug":12272,"featured":6,"template":736},"how-to-access-gitlab-on-a-private-network-with-tailscale","content:en-us:blog:how-to-access-gitlab-on-a-private-network-with-tailscale.yml","How To Access Gitlab On A Private Network With Tailscale","en-us/blog/how-to-access-gitlab-on-a-private-network-with-tailscale.yml","en-us/blog/how-to-access-gitlab-on-a-private-network-with-tailscale",{"_path":12278,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12279,"content":12285,"config":12288,"_id":12290,"_type":16,"title":12291,"_source":17,"_file":12292,"_stem":12293,"_extension":20},"/en-us/blog/quickly-onboarding-engineers-successfully",{"title":12280,"description":12281,"ogTitle":12280,"ogDescription":12281,"noIndex":6,"ogImage":12282,"ogUrl":12283,"ogSiteName":995,"ogType":996,"canonicalUrls":12283,"schema":12284},"How to quickly (and successfully) onboard engineers","It's a tough hiring market today. Here's how GitLab gets engineers onboard fast and sets them up for success.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670635/Blog/Hero%20Images/kubernetesterms.jpg","https://about.gitlab.com/blog/quickly-onboarding-engineers-successfully","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to quickly (and successfully) onboard engineers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2022-07-21\",\n      }",{"title":12280,"description":12281,"authors":12286,"heroImage":12282,"date":12269,"category":858,"tags":12287},[3053],[564,964,2815],{"slug":12289,"featured":6,"template":736},"quickly-onboarding-engineers-successfully","content:en-us:blog:quickly-onboarding-engineers-successfully.yml","Quickly Onboarding Engineers Successfully","en-us/blog/quickly-onboarding-engineers-successfully.yml","en-us/blog/quickly-onboarding-engineers-successfully",{"_path":12295,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12296,"content":12302,"config":12306,"_id":12308,"_type":16,"title":12309,"_source":17,"_file":12310,"_stem":12311,"_extension":20},"/en-us/blog/three-faces-of-user-calls",{"title":12297,"description":12298,"ogTitle":12297,"ogDescription":12298,"noIndex":6,"ogImage":12299,"ogUrl":12300,"ogSiteName":995,"ogType":996,"canonicalUrls":12300,"schema":12301},"How product managers can get more out of user calls","There are 3 types of user calls. Here's how GitLab product managers approach them and how we leverage our transparency value to better understand our users.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682372/Blog/Hero%20Images/michal-czyz-ALM7RNZuDH8-unsplash.jpg","https://about.gitlab.com/blog/three-faces-of-user-calls","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How product managers can get more out of user calls\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2022-07-20\",\n      }",{"title":12297,"description":12298,"authors":12303,"heroImage":12299,"date":12304,"category":731,"tags":12305},[2942],"2022-07-20",[564,3075,3074],{"slug":12307,"featured":6,"template":736},"three-faces-of-user-calls","content:en-us:blog:three-faces-of-user-calls.yml","Three Faces Of User Calls","en-us/blog/three-faces-of-user-calls.yml","en-us/blog/three-faces-of-user-calls",{"_path":12313,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12314,"content":12320,"config":12325,"_id":12327,"_type":16,"title":12328,"_source":17,"_file":12329,"_stem":12330,"_extension":20},"/en-us/blog/reducing-pager-fatigue-and-improving-on-call-life",{"title":12315,"description":12316,"ogTitle":12315,"ogDescription":12316,"noIndex":6,"ogImage":12317,"ogUrl":12318,"ogSiteName":995,"ogType":996,"canonicalUrls":12318,"schema":12319},"How we improved on-call life by reducing pager noise","Too many pages? Here's how we tackled on-call SRE quality of life by grouping alerts by service and only paging on downstream services.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682368/Blog/Hero%20Images/cover.png","https://about.gitlab.com/blog/reducing-pager-fatigue-and-improving-on-call-life","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we improved on-call life by reducing pager noise\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Azzopardi\"}],\n        \"datePublished\": \"2022-07-19\",\n      }",{"title":12315,"description":12316,"authors":12321,"heroImage":12317,"date":12323,"category":858,"tags":12324},[12322],"Steve Azzopardi","2022-07-19",[6376],{"slug":12326,"featured":6,"template":736},"reducing-pager-fatigue-and-improving-on-call-life","content:en-us:blog:reducing-pager-fatigue-and-improving-on-call-life.yml","Reducing Pager Fatigue And Improving On Call Life","en-us/blog/reducing-pager-fatigue-and-improving-on-call-life.yml","en-us/blog/reducing-pager-fatigue-and-improving-on-call-life",{"_path":12332,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12333,"content":12339,"config":12343,"_id":12345,"_type":16,"title":12346,"_source":17,"_file":12347,"_stem":12348,"_extension":20},"/en-us/blog/open-core-is-worse-than-plugins",{"title":12334,"description":12335,"ogTitle":12334,"ogDescription":12335,"noIndex":6,"ogImage":12336,"ogUrl":12337,"ogSiteName":995,"ogType":996,"canonicalUrls":12337,"schema":12338},"Open core is worse than plugins... and that’s why it’s better","Learn why GitLab's decision to opt for the \"worse\" choice has been a great success.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681581/Blog/Hero%20Images/gitlab-linux-ibm-z-redhat-openshift.jpg","https://about.gitlab.com/blog/open-core-is-worse-than-plugins","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Open core is worse than plugins... and that’s why it’s better\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-07-14\",\n      }",{"title":12334,"description":12335,"authors":12340,"heroImage":12336,"date":12341,"category":8140,"tags":12342},[3701],"2022-07-14",[564,1265,269],{"slug":12344,"featured":6,"template":736},"open-core-is-worse-than-plugins","content:en-us:blog:open-core-is-worse-than-plugins.yml","Open Core Is Worse Than Plugins","en-us/blog/open-core-is-worse-than-plugins.yml","en-us/blog/open-core-is-worse-than-plugins",{"_path":12350,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12351,"content":12357,"config":12361,"_id":12363,"_type":16,"title":12364,"_source":17,"_file":12365,"_stem":12366,"_extension":20},"/en-us/blog/top-5-compliance-features-to-leverage-in-gitlab",{"title":12352,"description":12353,"ogTitle":12352,"ogDescription":12353,"noIndex":6,"ogImage":12354,"ogUrl":12355,"ogSiteName":995,"ogType":996,"canonicalUrls":12355,"schema":12356},"Top 5 compliance features to leverage in GitLab","Highlighting features we use daily, our security team outlines 5 ways to configure your GitLab instance for increased security and compliance.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679391/Blog/Hero%20Images/pexels-5strike.jpg","https://about.gitlab.com/blog/top-5-compliance-features-to-leverage-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 5 compliance features to leverage in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Madeline Lake\"}],\n        \"datePublished\": \"2022-07-13\",\n      }",{"title":12352,"description":12353,"authors":12358,"heroImage":12354,"date":12359,"category":790,"tags":12360},[1565],"2022-07-13",[790],{"slug":12362,"featured":6,"template":736},"top-5-compliance-features-to-leverage-in-gitlab","content:en-us:blog:top-5-compliance-features-to-leverage-in-gitlab.yml","Top 5 Compliance Features To Leverage In Gitlab","en-us/blog/top-5-compliance-features-to-leverage-in-gitlab.yml","en-us/blog/top-5-compliance-features-to-leverage-in-gitlab",{"_path":12368,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12369,"content":12375,"config":12379,"_id":12381,"_type":16,"title":12382,"_source":17,"_file":12383,"_stem":12384,"_extension":20},"/en-us/blog/tips-for-managing-monorepos-in-gitlab",{"title":12370,"description":12371,"ogTitle":12370,"ogDescription":12371,"noIndex":6,"ogImage":12372,"ogUrl":12373,"ogSiteName":995,"ogType":996,"canonicalUrls":12373,"schema":12374},"5 Tips for managing monorepos in GitLab","Learn the benefits of operating a monolothic repository and how to get the most out of this structure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667591/Blog/Hero%20Images/code-review-blog.jpg","https://about.gitlab.com/blog/tips-for-managing-monorepos-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Tips for managing monorepos in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Waldner\"}],\n        \"datePublished\": \"2022-07-12\",\n      }",{"title":12370,"description":12371,"authors":12376,"heroImage":12372,"date":12377,"category":858,"tags":12378},[9229],"2022-07-12",[564,730,1988,731,1335],{"slug":12380,"featured":6,"template":736},"tips-for-managing-monorepos-in-gitlab","content:en-us:blog:tips-for-managing-monorepos-in-gitlab.yml","Tips For Managing Monorepos In Gitlab","en-us/blog/tips-for-managing-monorepos-in-gitlab.yml","en-us/blog/tips-for-managing-monorepos-in-gitlab",{"_path":12386,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12387,"content":12393,"config":12399,"_id":12401,"_type":16,"title":12402,"_source":17,"_file":12403,"_stem":12404,"_extension":20},"/en-us/blog/how-to-migrate-atlassians-bamboo-servers-ci-cd-infrastructure-to-gitlab-ci-part-two",{"title":12388,"description":12389,"ogTitle":12388,"ogDescription":12389,"noIndex":6,"ogImage":12390,"ogUrl":12391,"ogSiteName":995,"ogType":996,"canonicalUrls":12391,"schema":12392},"Bamboo Server to GitLab CI migration: Advanced techniques","A real-world look at how a migrated CI/CD infrastructure will work in GitLab CI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679081/Blog/Hero%20Images/jenkins-migration.jpg","https://about.gitlab.com/blog/how-to-migrate-atlassians-bamboo-servers-ci-cd-infrastructure-to-gitlab-ci-part-two","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to migrate Atlassian's Bamboo server's CI/CD infrastructure to GitLab CI, part two\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ivan Lychev\"}],\n        \"datePublished\": \"2022-07-11\",\n      }",{"title":12394,"description":12389,"authors":12395,"heroImage":12390,"date":12397,"category":858,"tags":12398},"How to migrate Atlassian's Bamboo server's CI/CD infrastructure to GitLab CI, part two",[12396],"Ivan Lychev","2022-07-11",[110,564,772],{"slug":12400,"featured":6,"template":736},"how-to-migrate-atlassians-bamboo-servers-ci-cd-infrastructure-to-gitlab-ci-part-two","content:en-us:blog:how-to-migrate-atlassians-bamboo-servers-ci-cd-infrastructure-to-gitlab-ci-part-two.yml","How To Migrate Atlassians Bamboo Servers Ci Cd Infrastructure To Gitlab Ci Part Two","en-us/blog/how-to-migrate-atlassians-bamboo-servers-ci-cd-infrastructure-to-gitlab-ci-part-two.yml","en-us/blog/how-to-migrate-atlassians-bamboo-servers-ci-cd-infrastructure-to-gitlab-ci-part-two",{"_path":12406,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12407,"content":12412,"config":12418,"_id":12420,"_type":16,"title":12421,"_source":17,"_file":12422,"_stem":12423,"_extension":20},"/en-us/blog/tackle-nists-plan-of-action-and-milestones-with-gitlabs-risk-management-features",{"title":12408,"description":12409,"ogTitle":12408,"ogDescription":12409,"noIndex":6,"ogImage":9779,"ogUrl":12410,"ogSiteName":995,"ogType":996,"canonicalUrls":12410,"schema":12411},"Managing risk with GitLab's plan of actions & milestones","The One DevOps Platform helps identify interdependencies and vulnerabilities as required by government compliance frameworks.","https://about.gitlab.com/blog/tackle-nists-plan-of-action-and-milestones-with-gitlabs-risk-management-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tackle a Plan of Actions and Milestones with GitLab’s risk management features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sameer Kamani\"}],\n        \"datePublished\": \"2022-07-07\",\n      }",{"title":12413,"description":12409,"authors":12414,"heroImage":9779,"date":12416,"category":790,"tags":12417},"Tackle a Plan of Actions and Milestones with GitLab’s risk management features",[12415],"Sameer Kamani","2022-07-07",[564,1050,790],{"slug":12419,"featured":6,"template":736},"tackle-nists-plan-of-action-and-milestones-with-gitlabs-risk-management-features","content:en-us:blog:tackle-nists-plan-of-action-and-milestones-with-gitlabs-risk-management-features.yml","Tackle Nists Plan Of Action And Milestones With Gitlabs Risk Management Features","en-us/blog/tackle-nists-plan-of-action-and-milestones-with-gitlabs-risk-management-features.yml","en-us/blog/tackle-nists-plan-of-action-and-milestones-with-gitlabs-risk-management-features",{"_path":12425,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12426,"content":12431,"config":12436,"_id":12438,"_type":16,"title":12439,"_source":17,"_file":12440,"_stem":12441,"_extension":20},"/en-us/blog/migration-from-atlassian-bamboo-server-to-gitlab-ci",{"title":12427,"description":12428,"ogTitle":12427,"ogDescription":12428,"noIndex":6,"ogImage":11046,"ogUrl":12429,"ogSiteName":995,"ogType":996,"canonicalUrls":12429,"schema":12430},"Migrating from Bamboo Server to GitLab CI: Getting started","Theoretical reasoning and practical proposal on migrating an existing CI/CD infrastructure of some multi-component application from Bamboo Server to GitLab CI","https://about.gitlab.com/blog/migration-from-atlassian-bamboo-server-to-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to migrate Atlassian Bamboo Server's CI/CD infrastructure to GitLab CI, part one\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ivan Lychev\"}],\n        \"datePublished\": \"2022-07-06\",\n      }",{"title":12432,"description":12428,"authors":12433,"heroImage":11046,"date":12434,"category":858,"tags":12435},"How to migrate Atlassian Bamboo Server's CI/CD infrastructure to GitLab CI, part one",[12396],"2022-07-06",[110,564,772],{"slug":12437,"featured":6,"template":736},"migration-from-atlassian-bamboo-server-to-gitlab-ci","content:en-us:blog:migration-from-atlassian-bamboo-server-to-gitlab-ci.yml","Migration From Atlassian Bamboo Server To Gitlab Ci","en-us/blog/migration-from-atlassian-bamboo-server-to-gitlab-ci.yml","en-us/blog/migration-from-atlassian-bamboo-server-to-gitlab-ci",{"_path":12443,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12444,"content":12450,"config":12453,"_id":12455,"_type":16,"title":12456,"_source":17,"_file":12457,"_stem":12458,"_extension":20},"/en-us/blog/why-were-sticking-with-ruby-on-rails",{"title":12445,"description":12446,"ogTitle":12445,"ogDescription":12446,"noIndex":6,"ogImage":12447,"ogUrl":12448,"ogSiteName":995,"ogType":996,"canonicalUrls":12448,"schema":12449},"Why we're sticking with Ruby on Rails","GitLab CEO and co-founder Sid Sijbrandij makes the case for Ruby on Rails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668296/Blog/Hero%20Images/gitlab-ruby.jpg","https://about.gitlab.com/blog/why-were-sticking-with-ruby-on-rails","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we're sticking with Ruby on Rails\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-07-06\",\n      }",{"title":12445,"description":12446,"authors":12451,"heroImage":12447,"date":12434,"category":577,"tags":12452},[3701],[564,1265,3074],{"slug":12454,"featured":6,"template":736},"why-were-sticking-with-ruby-on-rails","content:en-us:blog:why-were-sticking-with-ruby-on-rails.yml","Why Were Sticking With Ruby On Rails","en-us/blog/why-were-sticking-with-ruby-on-rails.yml","en-us/blog/why-were-sticking-with-ruby-on-rails",{"_path":12460,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12461,"content":12466,"config":12470,"_id":12472,"_type":16,"title":12473,"_source":17,"_file":12474,"_stem":12475,"_extension":20},"/en-us/blog/how-to-leverage-modern-software-testing-skills-in-devops",{"title":12462,"description":12463,"ogTitle":12462,"ogDescription":12463,"noIndex":6,"ogImage":11947,"ogUrl":12464,"ogSiteName":995,"ogType":996,"canonicalUrls":12464,"schema":12465},"How to leverage modern software testing skills in DevOps","Test automation is finally happening, but do teams have the necessary modern software testing skills? Here's what you need to know","https://about.gitlab.com/blog/how-to-leverage-modern-software-testing-skills-in-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to leverage modern software testing skills in DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lauren Minning\"}],\n        \"datePublished\": \"2022-07-05\",\n      }",{"title":12462,"description":12463,"authors":12467,"heroImage":11947,"date":12468,"category":8140,"tags":12469},[11842],"2022-07-05",[564,964,790],{"slug":12471,"featured":6,"template":736},"how-to-leverage-modern-software-testing-skills-in-devops","content:en-us:blog:how-to-leverage-modern-software-testing-skills-in-devops.yml","How To Leverage Modern Software Testing Skills In Devops","en-us/blog/how-to-leverage-modern-software-testing-skills-in-devops.yml","en-us/blog/how-to-leverage-modern-software-testing-skills-in-devops",{"_path":12477,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12478,"content":12483,"config":12488,"_id":12490,"_type":16,"title":12491,"_source":17,"_file":12492,"_stem":12493,"_extension":20},"/en-us/blog/a-story-of-runner-scaling",{"title":12479,"description":10810,"ogTitle":12479,"ogDescription":10810,"noIndex":6,"ogImage":12480,"ogUrl":12481,"ogSiteName":995,"ogType":996,"canonicalUrls":12481,"schema":12482},"An SA story about hyperscaling GitLab Runner workloads using Kubernetes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669897/Blog/Hero%20Images/kaleidico-26MJGnCM0Wc-unsplash.jpg","https://about.gitlab.com/blog/a-story-of-runner-scaling","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"An SA story about hyperscaling GitLab Runner workloads using Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"},{\"@type\":\"Person\",\"name\":\"Brian Wald\"}],\n        \"datePublished\": \"2022-06-29\",\n      }",{"title":12479,"description":10810,"authors":12484,"heroImage":12480,"date":12486,"category":858,"tags":12487},[959,12485],"Brian Wald","2022-06-29",[2097,2098,1988,2889],{"slug":12489,"featured":6,"template":736},"a-story-of-runner-scaling","content:en-us:blog:a-story-of-runner-scaling.yml","A Story Of Runner Scaling","en-us/blog/a-story-of-runner-scaling.yml","en-us/blog/a-story-of-runner-scaling",{"_path":12495,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12496,"content":12502,"config":12507,"_id":12509,"_type":16,"title":12510,"_source":17,"_file":12511,"_stem":12512,"_extension":20},"/en-us/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream",{"title":12497,"description":12498,"ogTitle":12497,"ogDescription":12498,"noIndex":6,"ogImage":12499,"ogUrl":12500,"ogSiteName":995,"ogType":996,"canonicalUrls":12500,"schema":12501},"Streaming audit events: Connect GitLab to your tech stack","Automation lets your DevSecOps teams have logic in place for how to handle events as they come in.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667845/Blog/Hero%20Images/gl15.jpg","https://about.gitlab.com/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Use Streaming Audit Events to connect your technology stack with GitLab and Pipedream\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Kerr\"}],\n        \"datePublished\": \"2022-06-27\",\n      }",{"title":12503,"description":12498,"authors":12504,"heroImage":12499,"date":12505,"category":790,"tags":12506},"Use Streaming Audit Events to connect your technology stack with GitLab and Pipedream",[6887],"2022-06-27",[564,233,790],{"slug":12508,"featured":6,"template":736},"use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream","content:en-us:blog:use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream.yml","Use Streaming Audit Events To Connect Your Technology Stack With Gitlab And Pipedream","en-us/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream.yml","en-us/blog/use-streaming-audit-events-to-connect-your-technology-stack-with-gitlab-and-pipedream",{"_path":12514,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12515,"content":12520,"config":12526,"_id":12528,"_type":16,"title":12529,"_source":17,"_file":12530,"_stem":12531,"_extension":20},"/en-us/blog/external-postgresql-servers-should-be-upgraded-to-latest-version",{"title":12516,"description":12517,"ogTitle":12516,"ogDescription":12517,"noIndex":6,"ogImage":8754,"ogUrl":12518,"ogSiteName":995,"ogType":996,"canonicalUrls":12518,"schema":12519},"Upgrade your external PostgreSQL 12 & 13 servers now","External PostgreSQL 12.7- and 13.3- servers used with GitLab should be upgraded to the latest minor version.","https://about.gitlab.com/blog/external-postgresql-servers-should-be-upgraded-to-latest-version","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"External PostgreSQL 12 and 13 servers should be upgraded to the latest minor version\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yannis Roussos\"}],\n        \"datePublished\": \"2022-06-23\",\n      }",{"title":12521,"description":12517,"authors":12522,"heroImage":8754,"date":12524,"category":301,"tags":12525},"External PostgreSQL 12 and 13 servers should be upgraded to the latest minor version",[12523],"Yannis Roussos","2022-06-23",[729,3074],{"slug":12527,"featured":6,"template":736},"external-postgresql-servers-should-be-upgraded-to-latest-version","content:en-us:blog:external-postgresql-servers-should-be-upgraded-to-latest-version.yml","External Postgresql Servers Should Be Upgraded To Latest Version","en-us/blog/external-postgresql-servers-should-be-upgraded-to-latest-version.yml","en-us/blog/external-postgresql-servers-should-be-upgraded-to-latest-version",{"_path":12533,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12534,"content":12540,"config":12543,"_id":12545,"_type":16,"title":12546,"_source":17,"_file":12547,"_stem":12548,"_extension":20},"/en-us/blog/gitlab-is-the-single-source-of-truth-for-ecommerce-provider",{"title":12535,"description":12536,"ogTitle":12535,"ogDescription":12536,"noIndex":6,"ogImage":12537,"ogUrl":12538,"ogSiteName":995,"ogType":996,"canonicalUrls":12538,"schema":12539},"GitLab is the single source of truth for eCommerce provider","Swell uses GitLab company-wide and says the biggest advantage so far is the review operations capability.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668755/Blog/Hero%20Images/swelllogo3.png","https://about.gitlab.com/blog/gitlab-is-the-single-source-of-truth-for-ecommerce-provider","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is the single source of truth for eCommerce provider\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-06-23\",\n      }",{"title":12535,"description":12536,"authors":12541,"heroImage":12537,"date":12524,"category":577,"tags":12542},[1000],[564,2097,2098,790,3075],{"slug":12544,"featured":6,"template":736},"gitlab-is-the-single-source-of-truth-for-ecommerce-provider","content:en-us:blog:gitlab-is-the-single-source-of-truth-for-ecommerce-provider.yml","Gitlab Is The Single Source Of Truth For Ecommerce Provider","en-us/blog/gitlab-is-the-single-source-of-truth-for-ecommerce-provider.yml","en-us/blog/gitlab-is-the-single-source-of-truth-for-ecommerce-provider",{"_path":12550,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12551,"content":12556,"config":12560,"_id":12562,"_type":16,"title":12563,"_source":17,"_file":12564,"_stem":12565,"_extension":20},"/en-us/blog/how-to-ask-smarter-devops-questions",{"title":12552,"description":12553,"ogTitle":12552,"ogDescription":12553,"noIndex":6,"ogImage":12499,"ogUrl":12554,"ogSiteName":995,"ogType":996,"canonicalUrls":12554,"schema":12555},"How to ask smarter DevOps questions","Take your DevOps practice to the next level by asking 10 critical questions.","https://about.gitlab.com/blog/how-to-ask-smarter-devops-questions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to ask smarter DevOps questions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-06-22\",\n      }",{"title":12552,"description":12553,"authors":12557,"heroImage":12499,"date":12558,"category":577,"tags":12559},[10672],"2022-06-22",[564,730,2815],{"slug":12561,"featured":6,"template":736},"how-to-ask-smarter-devops-questions","content:en-us:blog:how-to-ask-smarter-devops-questions.yml","How To Ask Smarter Devops Questions","en-us/blog/how-to-ask-smarter-devops-questions.yml","en-us/blog/how-to-ask-smarter-devops-questions",{"_path":12567,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12568,"content":12573,"config":12577,"_id":12579,"_type":16,"title":12580,"_source":17,"_file":12581,"_stem":12582,"_extension":20},"/en-us/blog/battling-toolchain-technical-debt",{"title":12569,"description":12570,"ogTitle":12569,"ogDescription":12570,"noIndex":6,"ogImage":12499,"ogUrl":12571,"ogSiteName":995,"ogType":996,"canonicalUrls":12571,"schema":12572},"Battling toolchain technical debt","DevOps teams can hinder the software development lifecycles and application performance if they let their toolchains become unruly. Read how GitLab can help reduce that technical debt.","https://about.gitlab.com/blog/battling-toolchain-technical-debt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Battling toolchain technical debt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-06-21\",\n      }",{"title":12569,"description":12570,"authors":12574,"heroImage":12499,"date":12575,"category":577,"tags":12576},[3506],"2022-06-21",[564,1988,1335],{"slug":12578,"featured":6,"template":736},"battling-toolchain-technical-debt","content:en-us:blog:battling-toolchain-technical-debt.yml","Battling Toolchain Technical Debt","en-us/blog/battling-toolchain-technical-debt.yml","en-us/blog/battling-toolchain-technical-debt",{"_path":12584,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12585,"content":12590,"config":12594,"_id":12596,"_type":16,"title":12597,"_source":17,"_file":12598,"_stem":12599,"_extension":20},"/en-us/blog/security-gitlab-15",{"title":12586,"description":12587,"ogTitle":12586,"ogDescription":12587,"noIndex":6,"ogImage":12499,"ogUrl":12588,"ogSiteName":995,"ogType":996,"canonicalUrls":12588,"schema":12589},"GitLab's Commitment to Enhanced AppSec in Modern DevOps","Security abounds in our latest DevOps platform release, GitLab 15.","https://about.gitlab.com/blog/security-gitlab-15","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's commitment to enhanced application security in the modern DevOps world\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2022-06-21\",\n      }",{"title":12591,"description":12587,"authors":12592,"heroImage":12499,"date":12575,"category":790,"tags":12593},"GitLab's commitment to enhanced application security in the modern DevOps world",[1097],[790,564],{"slug":12595,"featured":6,"template":736},"security-gitlab-15","content:en-us:blog:security-gitlab-15.yml","Security Gitlab 15","en-us/blog/security-gitlab-15.yml","en-us/blog/security-gitlab-15",{"_path":12601,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12602,"content":12607,"config":12612,"_id":12614,"_type":16,"title":12615,"_source":17,"_file":12616,"_stem":12617,"_extension":20},"/en-us/blog/gitlab-value-stream-management-and-dora",{"title":12603,"description":12604,"ogTitle":12603,"ogDescription":12604,"noIndex":6,"ogImage":12499,"ogUrl":12605,"ogSiteName":995,"ogType":996,"canonicalUrls":12605,"schema":12606},"Improving visibility: GitLab's value stream and DORA metrics","Optimize DevOps with the new DORA metrics in GitLab Value Stream Management.","https://about.gitlab.com/blog/gitlab-value-stream-management-and-dora","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Break the black box of software delivery with GitLab Value Stream Management and DORA Metrics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2022-06-20\",\n      }",{"title":12608,"description":12604,"authors":12609,"heroImage":12499,"date":12610,"category":577,"tags":12611},"Break the black box of software delivery with GitLab Value Stream Management and DORA Metrics",[2886],"2022-06-20",[729,564,730,1988,1335],{"slug":12613,"featured":6,"template":736},"gitlab-value-stream-management-and-dora","content:en-us:blog:gitlab-value-stream-management-and-dora.yml","Gitlab Value Stream Management And Dora","en-us/blog/gitlab-value-stream-management-and-dora.yml","en-us/blog/gitlab-value-stream-management-and-dora",{"_path":12619,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12620,"content":12625,"config":12628,"_id":12630,"_type":16,"title":12631,"_source":17,"_file":12632,"_stem":12633,"_extension":20},"/en-us/blog/take-our-devops-quiz",{"title":12621,"description":12622,"ogTitle":12621,"ogDescription":12622,"noIndex":6,"ogImage":12499,"ogUrl":12623,"ogSiteName":995,"ogType":996,"canonicalUrls":12623,"schema":12624},"Take our DevOps quiz!","From random terms to fun facts, will your DevOps knowledge be up to the task? Take our quiz and find out.","https://about.gitlab.com/blog/take-our-devops-quiz","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Take our DevOps quiz!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-06-16\",\n      }",{"title":12621,"description":12622,"authors":12626,"heroImage":12499,"date":12627,"category":577},[1000],"2022-06-16",{"slug":12629,"featured":6,"template":736},"take-our-devops-quiz","content:en-us:blog:take-our-devops-quiz.yml","Take Our Devops Quiz","en-us/blog/take-our-devops-quiz.yml","en-us/blog/take-our-devops-quiz",{"_path":12635,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12636,"content":12641,"config":12646,"_id":12648,"_type":16,"title":12649,"_source":17,"_file":12650,"_stem":12651,"_extension":20},"/en-us/blog/gitlab-and-the-three-ways-of-devops",{"title":12637,"description":12638,"ogTitle":12637,"ogDescription":12638,"noIndex":6,"ogImage":12499,"ogUrl":12639,"ogSiteName":995,"ogType":996,"canonicalUrls":12639,"schema":12640},"GitLab and the three ways of DevOps","DevOps isn't just an esoteric philosophy - it actually is a roadmap for faster and safer software releases, if you choose the right tool. Here's how to take the principles of DevOps and get the most out of the One DevOps Platform.","https://about.gitlab.com/blog/gitlab-and-the-three-ways-of-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and the three ways of DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vlad Budica\"}],\n        \"datePublished\": \"2022-06-15\",\n      }",{"title":12637,"description":12638,"authors":12642,"heroImage":12499,"date":12644,"category":577,"tags":12645},[12643],"Vlad Budica","2022-06-15",[564,269,3074],{"slug":12647,"featured":6,"template":736},"gitlab-and-the-three-ways-of-devops","content:en-us:blog:gitlab-and-the-three-ways-of-devops.yml","Gitlab And The Three Ways Of Devops","en-us/blog/gitlab-and-the-three-ways-of-devops.yml","en-us/blog/gitlab-and-the-three-ways-of-devops",{"_path":12653,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12654,"content":12660,"config":12664,"_id":12666,"_type":16,"title":12667,"_source":17,"_file":12668,"_stem":12669,"_extension":20},"/en-us/blog/observability-vs-monitoring-in-devops",{"title":12655,"description":12656,"ogTitle":12655,"ogDescription":12656,"noIndex":6,"ogImage":12657,"ogUrl":12658,"ogSiteName":995,"ogType":996,"canonicalUrls":12658,"schema":12659},"Observability vs. monitoring in DevOps","Want to gain true and actionable visibility across your software development lifecycle? Observability is the answer.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665484/Blog/Hero%20Images/monitoring-update-feature-image.jpg","https://about.gitlab.com/blog/observability-vs-monitoring-in-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Observability vs. monitoring in DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Vanbuskirk\"}],\n        \"datePublished\": \"2022-06-14\",\n      }",{"title":12655,"description":12656,"authors":12661,"heroImage":12657,"date":12662,"category":858,"tags":12663},[11177],"2022-06-14",[564,790,1988],{"slug":12665,"featured":6,"template":736},"observability-vs-monitoring-in-devops","content:en-us:blog:observability-vs-monitoring-in-devops.yml","Observability Vs Monitoring In Devops","en-us/blog/observability-vs-monitoring-in-devops.yml","en-us/blog/observability-vs-monitoring-in-devops",{"_path":12671,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12672,"content":12677,"config":12681,"_id":12683,"_type":16,"title":12684,"_source":17,"_file":12685,"_stem":12686,"_extension":20},"/en-us/blog/gitlab-15-the-retrospective",{"title":12673,"description":12674,"ogTitle":12673,"ogDescription":12674,"noIndex":6,"ogImage":12499,"ogUrl":12675,"ogSiteName":995,"ogType":996,"canonicalUrls":12675,"schema":12676},"GitLab 15: The retrospective","GitLab was founded in 2011 but that was a world nearly unrecognizable today. Here's a look back at what life was like then.","https://about.gitlab.com/blog/gitlab-15-the-retrospective","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 15: The retrospective\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-06-13\",\n      }",{"title":12673,"description":12674,"authors":12678,"heroImage":12499,"date":12679,"category":577,"tags":12680},[10835],"2022-06-13",[564,110,790],{"slug":12682,"featured":6,"template":736},"gitlab-15-the-retrospective","content:en-us:blog:gitlab-15-the-retrospective.yml","Gitlab 15 The Retrospective","en-us/blog/gitlab-15-the-retrospective.yml","en-us/blog/gitlab-15-the-retrospective",{"_path":12688,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12689,"content":12695,"config":12699,"_id":12701,"_type":16,"title":12702,"_source":17,"_file":12703,"_stem":12704,"_extension":20},"/en-us/blog/how-gitlab-iteration-value-drives-innovation-through-the-engineering-organization",{"title":12690,"description":12691,"ogTitle":12690,"ogDescription":12691,"noIndex":6,"ogImage":12692,"ogUrl":12693,"ogSiteName":995,"ogType":996,"canonicalUrls":12693,"schema":12694},"How the GitLab iteration value drives innovation through the engineering","GitLab is a unique place to be a developer. Here's why.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668224/Blog/Hero%20Images/inside-our-new-development-team-lead-persona.jpg","https://about.gitlab.com/blog/how-gitlab-iteration-value-drives-innovation-through-the-engineering-organization","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the GitLab iteration value drives innovation through the engineering\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-06-10\",\n      }",{"title":12690,"description":12691,"authors":12696,"heroImage":12692,"date":12697,"category":6121,"tags":12698},[1000],"2022-06-10",[564,564,1569],{"slug":12700,"featured":6,"template":736},"how-gitlab-iteration-value-drives-innovation-through-the-engineering-organization","content:en-us:blog:how-gitlab-iteration-value-drives-innovation-through-the-engineering-organization.yml","How Gitlab Iteration Value Drives Innovation Through The Engineering Organization","en-us/blog/how-gitlab-iteration-value-drives-innovation-through-the-engineering-organization.yml","en-us/blog/how-gitlab-iteration-value-drives-innovation-through-the-engineering-organization",{"_path":12706,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12707,"content":12712,"config":12716,"_id":12718,"_type":16,"title":12719,"_source":17,"_file":12720,"_stem":12721,"_extension":20},"/en-us/blog/how-to-automate-software-delivery-using-quarkus-and-gitlab",{"title":12708,"description":12709,"ogTitle":12708,"ogDescription":12709,"noIndex":6,"ogImage":10059,"ogUrl":12710,"ogSiteName":995,"ogType":996,"canonicalUrls":12710,"schema":12711},"How to automate software delivery using Quarkus and GitLab","Here's a step-by-step guide to automated software delivery using Supersonic Subatomic Java (Quarkus) and GitLab.","https://about.gitlab.com/blog/how-to-automate-software-delivery-using-quarkus-and-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to automate software delivery using Quarkus and GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2022-06-09\",\n      }",{"title":12708,"description":12709,"authors":12713,"heroImage":10059,"date":12714,"category":577,"tags":12715},[767],"2022-06-09",[564,110,269],{"slug":12717,"featured":6,"template":736},"how-to-automate-software-delivery-using-quarkus-and-gitlab","content:en-us:blog:how-to-automate-software-delivery-using-quarkus-and-gitlab.yml","How To Automate Software Delivery Using Quarkus And Gitlab","en-us/blog/how-to-automate-software-delivery-using-quarkus-and-gitlab.yml","en-us/blog/how-to-automate-software-delivery-using-quarkus-and-gitlab",{"_path":12723,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12724,"content":12730,"config":12736,"_id":12738,"_type":16,"title":12739,"_source":17,"_file":12740,"_stem":12741,"_extension":20},"/en-us/blog/configuring-your-cluster-with-kubernetes-integration",{"title":12725,"description":12726,"ogTitle":12725,"ogDescription":12726,"noIndex":6,"ogImage":12727,"ogUrl":12728,"ogSiteName":995,"ogType":996,"canonicalUrls":12728,"schema":12729},"Heroes journey: Working with GitLab's Kubernetes agent","A tutorial on deploying and monitoring an application in Kubernetes without leaving GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682342/Blog/Hero%20Images/treasure.jpg","https://about.gitlab.com/blog/configuring-your-cluster-with-kubernetes-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Heroes Unmasked - How I became acquainted with the GitLab Agent for Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jean-Philippe Baconnais\"}],\n        \"datePublished\": \"2022-06-08\",\n      }",{"title":12731,"description":12726,"authors":12732,"heroImage":12727,"date":12734,"category":1388,"tags":12735},"GitLab Heroes Unmasked - How I became acquainted with the GitLab Agent for Kubernetes",[12733],"Jean-Philippe Baconnais","2022-06-08",[2908,269,4665,8475,3074],{"slug":12737,"featured":6,"template":736},"configuring-your-cluster-with-kubernetes-integration","content:en-us:blog:configuring-your-cluster-with-kubernetes-integration.yml","Configuring Your Cluster With Kubernetes Integration","en-us/blog/configuring-your-cluster-with-kubernetes-integration.yml","en-us/blog/configuring-your-cluster-with-kubernetes-integration",{"_path":12743,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12744,"content":12750,"config":12754,"_id":12756,"_type":16,"title":12757,"_source":17,"_file":12758,"_stem":12759,"_extension":20},"/en-us/blog/best-life-best-work",{"title":12745,"description":12746,"ogTitle":12745,"ogDescription":12746,"noIndex":6,"ogImage":12747,"ogUrl":12748,"ogSiteName":995,"ogType":996,"canonicalUrls":12748,"schema":12749},"Ski first, work later - How to win the burnout battle","How I truly achieved work/life balance with an all-remote async working style.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682336/Blog/Hero%20Images/taylor-peak.jpg","https://about.gitlab.com/blog/best-life-best-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ski first, work later - How to win the burnout battle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2022-06-07\",\n      }",{"title":12745,"description":12746,"authors":12751,"heroImage":12747,"date":12752,"category":301,"tags":12753},[6299],"2022-06-07",[1569,3914],{"slug":12755,"featured":6,"template":736},"best-life-best-work","content:en-us:blog:best-life-best-work.yml","Best Life Best Work","en-us/blog/best-life-best-work.yml","en-us/blog/best-life-best-work",{"_path":12761,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12762,"content":12767,"config":12772,"_id":12774,"_type":16,"title":12775,"_source":17,"_file":12776,"_stem":12777,"_extension":20},"/en-us/blog/splitting-database-into-main-and-ci",{"title":12763,"description":12764,"ogTitle":12763,"ogDescription":12764,"noIndex":6,"ogImage":8754,"ogUrl":12765,"ogSiteName":995,"ogType":996,"canonicalUrls":12765,"schema":12766},"We are splitting our database into Main and CI","We are splitting our database into Main and CI to improve the scalability and reliability of GitLab.com.","https://about.gitlab.com/blog/splitting-database-into-main-and-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We are splitting our database into Main and CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabian Zimmer\"},{\"@type\":\"Person\",\"name\":\"Douglas Alexandre\"}],\n        \"datePublished\": \"2022-06-02\",\n      }",{"title":12763,"description":12764,"authors":12768,"heroImage":8754,"date":12770,"category":301,"tags":12771},[2318,12769],"Douglas Alexandre","2022-06-02",[730,730,892,269],{"slug":12773,"featured":6,"template":736},"splitting-database-into-main-and-ci","content:en-us:blog:splitting-database-into-main-and-ci.yml","Splitting Database Into Main And Ci","en-us/blog/splitting-database-into-main-and-ci.yml","en-us/blog/splitting-database-into-main-and-ci",{"_path":12779,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12780,"content":12786,"config":12790,"_id":12792,"_type":16,"title":12793,"_source":17,"_file":12794,"_stem":12795,"_extension":20},"/en-us/blog/unreview-a-year-later-how-gitlab-is-being-transformed-by-ml-powered-code-review",{"title":12781,"description":12782,"ogTitle":12781,"ogDescription":12782,"noIndex":6,"ogImage":12783,"ogUrl":12784,"ogSiteName":995,"ogType":996,"canonicalUrls":12784,"schema":12785},"GitLab transforms code review with machine learning tools","Learn how last year's acquisition has resulted in impactful features for the One DevOps Platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668002/Blog/Hero%20Images/pg-gear.jpg","https://about.gitlab.com/blog/unreview-a-year-later-how-gitlab-is-being-transformed-by-ml-powered-code-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"UnReview a year later: How GitLab is transforming DevOps code review with ML-powered functionality\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2022-06-02\",\n      }",{"title":12787,"description":12782,"authors":12788,"heroImage":12783,"date":12770,"category":577,"tags":12789},"UnReview a year later: How GitLab is transforming DevOps code review with ML-powered functionality",[6299],[564,1932,2097,233,728],{"slug":12791,"featured":6,"template":736},"unreview-a-year-later-how-gitlab-is-being-transformed-by-ml-powered-code-review","content:en-us:blog:unreview-a-year-later-how-gitlab-is-being-transformed-by-ml-powered-code-review.yml","Unreview A Year Later How Gitlab Is Being Transformed By Ml Powered Code Review","en-us/blog/unreview-a-year-later-how-gitlab-is-being-transformed-by-ml-powered-code-review.yml","en-us/blog/unreview-a-year-later-how-gitlab-is-being-transformed-by-ml-powered-code-review",{"_path":12797,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12798,"content":12804,"config":12808,"_id":12810,"_type":16,"title":12811,"_source":17,"_file":12812,"_stem":12813,"_extension":20},"/en-us/blog/learn-python-with-pj-part-5-building-something-with-the-twitter-api",{"title":12799,"description":12800,"ogTitle":12799,"ogDescription":12800,"noIndex":6,"ogImage":12801,"ogUrl":12802,"ogSiteName":995,"ogType":996,"canonicalUrls":12802,"schema":12803},"Learn Python with Pj! Part 5 - Build a hashtag tracker with the Twitter API","Our Education Evangelist Pj Metz wraps up his five-part series with this penultimate tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664962/Blog/Hero%20Images/python.jpg","https://about.gitlab.com/blog/learn-python-with-pj-part-5-building-something-with-the-twitter-api","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learn Python with Pj! Part 5 - Build a hashtag tracker with the Twitter API\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-06-01\",\n      }",{"title":12799,"description":12800,"authors":12805,"heroImage":12801,"date":12806,"category":6980,"tags":12807},[11595],"2022-06-01",[6980,772,8475],{"slug":12809,"featured":6,"template":736},"learn-python-with-pj-part-5-building-something-with-the-twitter-api","content:en-us:blog:learn-python-with-pj-part-5-building-something-with-the-twitter-api.yml","Learn Python With Pj Part 5 Building Something With The Twitter Api","en-us/blog/learn-python-with-pj-part-5-building-something-with-the-twitter-api.yml","en-us/blog/learn-python-with-pj-part-5-building-something-with-the-twitter-api",{"_path":12815,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12816,"content":12822,"config":12826,"_id":12828,"_type":16,"title":12829,"_source":17,"_file":12830,"_stem":12831,"_extension":20},"/en-us/blog/terraform-as-part-of-software-supply-chain-part1-modules-and-providers",{"title":12817,"description":12818,"ogTitle":12817,"ogDescription":12818,"noIndex":6,"ogImage":12819,"ogUrl":12820,"ogSiteName":995,"ogType":996,"canonicalUrls":12820,"schema":12821},"Terraform in the software supply chain: Modules & providers","We examine the supply chain aspects of Terraform, starting with a closer look at malicious Terraform modules and providers and how you can better secure them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682329/Blog/Hero%20Images/pexels-mateusz-dach-353641.jpg","https://about.gitlab.com/blog/terraform-as-part-of-software-supply-chain-part1-modules-and-providers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Terraform as part of the software supply chain, Part 1 - Modules and Providers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joern Schneeweisz\"}],\n        \"datePublished\": \"2022-06-01\",\n      }",{"title":12823,"description":12818,"authors":12824,"heroImage":12819,"date":12806,"category":790,"tags":12825},"Terraform as part of the software supply chain, Part 1 - Modules and Providers",[10316],[790],{"slug":12827,"featured":6,"template":736},"terraform-as-part-of-software-supply-chain-part1-modules-and-providers","content:en-us:blog:terraform-as-part-of-software-supply-chain-part1-modules-and-providers.yml","Terraform As Part Of Software Supply Chain Part1 Modules And Providers","en-us/blog/terraform-as-part-of-software-supply-chain-part1-modules-and-providers.yml","en-us/blog/terraform-as-part-of-software-supply-chain-part1-modules-and-providers",{"_path":12833,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12834,"content":12840,"config":12844,"_id":12846,"_type":16,"title":12847,"_source":17,"_file":12848,"_stem":12849,"_extension":20},"/en-us/blog/the-kubecon-summary-from-a-product-perspective",{"title":12835,"description":12836,"ogTitle":12835,"ogDescription":12836,"noIndex":6,"ogImage":12837,"ogUrl":12838,"ogSiteName":995,"ogType":996,"canonicalUrls":12838,"schema":12839},"How what we learned at KubeCon EU 2022 will impact our product roadmaps","Platform integrations and secrets management are among our product team's primary takeaways. Find out why.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097776/Blog/Hero%20Images/Blog/Hero%20Images/2_2.png_1750097776369.png","https://about.gitlab.com/blog/the-kubecon-summary-from-a-product-perspective","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How what we learned at KubeCon EU 2022 will impact our product roadmaps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2022-05-31\",\n      }",{"title":12835,"description":12836,"authors":12841,"heroImage":12837,"date":12842,"category":577,"tags":12843},[2942],"2022-05-31",[2908,2097,2098,559,582,564],{"slug":12845,"featured":6,"template":736},"the-kubecon-summary-from-a-product-perspective","content:en-us:blog:the-kubecon-summary-from-a-product-perspective.yml","The Kubecon Summary From A Product Perspective","en-us/blog/the-kubecon-summary-from-a-product-perspective.yml","en-us/blog/the-kubecon-summary-from-a-product-perspective",{"_path":12851,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12852,"content":12858,"config":12862,"_id":12864,"_type":16,"title":12865,"_source":17,"_file":12866,"_stem":12867,"_extension":20},"/en-us/blog/a-go-micro-language-framework-for-building-dsls",{"title":12853,"description":12854,"ogTitle":12853,"ogDescription":12854,"noIndex":6,"ogImage":12855,"ogUrl":12856,"ogSiteName":995,"ogType":996,"canonicalUrls":12856,"schema":12857},"Lingo: A Go micro language framework for building Domain Specific Languages","Design, build and integrate your own Domain Specific Language with Lingo.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682320/Blog/Hero%20Images/typeset.png","https://about.gitlab.com/blog/a-go-micro-language-framework-for-building-dsls","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Lingo: A Go micro language framework for building Domain Specific Languages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julian Thome\"}],\n        \"datePublished\": \"2022-05-26\",\n      }",{"title":12853,"description":12854,"authors":12859,"heroImage":12855,"date":12860,"category":1388,"tags":12861},[3289],"2022-05-26",[2815,772,730],{"slug":12863,"featured":6,"template":736},"a-go-micro-language-framework-for-building-dsls","content:en-us:blog:a-go-micro-language-framework-for-building-dsls.yml","A Go Micro Language Framework For Building Dsls","en-us/blog/a-go-micro-language-framework-for-building-dsls.yml","en-us/blog/a-go-micro-language-framework-for-building-dsls",{"_path":12869,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12870,"content":12876,"config":12881,"_id":12883,"_type":16,"title":12884,"_source":17,"_file":12885,"_stem":12886,"_extension":20},"/en-us/blog/keys-to-success-for-product-operations",{"title":12871,"description":12872,"ogTitle":12871,"ogDescription":12872,"noIndex":6,"ogImage":12873,"ogUrl":12874,"ogSiteName":995,"ogType":996,"canonicalUrls":12874,"schema":12875},"3 keys to success for product operations","Learn how to set a foundation for product operations at your organization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682313/Blog/Hero%20Images/prodops-keys-elena-mozhvilo-Lp9uH9s9fss-unsplash.jpg","https://about.gitlab.com/blog/keys-to-success-for-product-operations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 keys to success for product operations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Farnoosh Seifoddini\"}],\n        \"datePublished\": \"2022-05-24\",\n      }",{"title":12871,"description":12872,"authors":12877,"heroImage":12873,"date":12879,"category":6121,"tags":12880},[12878],"Farnoosh Seifoddini","2022-05-24",[2815,1569,1335,3914],{"slug":12882,"featured":6,"template":736},"keys-to-success-for-product-operations","content:en-us:blog:keys-to-success-for-product-operations.yml","Keys To Success For Product Operations","en-us/blog/keys-to-success-for-product-operations.yml","en-us/blog/keys-to-success-for-product-operations",{"_path":12888,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12889,"content":12894,"config":12898,"_id":12900,"_type":16,"title":12901,"_source":17,"_file":12902,"_stem":12903,"_extension":20},"/en-us/blog/second-law-of-complexity-dynamics",{"title":12890,"description":12891,"ogTitle":12890,"ogDescription":12891,"noIndex":6,"ogImage":11046,"ogUrl":12892,"ogSiteName":995,"ogType":996,"canonicalUrls":12892,"schema":12893},"How pursuit of simplicity complicates container-based CI","Simplicity always has a certain player in mind - learn how to avoid antipatterns by ensuring simplicity themes do not compromise your productivity by over-focusing on machine efficiencies.","https://about.gitlab.com/blog/second-law-of-complexity-dynamics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"When the pursuit of simplicity creates complexity in container-based CI pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2022-05-24\",\n      }",{"title":12895,"description":12891,"authors":12896,"heroImage":11046,"date":12879,"category":858,"tags":12897},"When the pursuit of simplicity creates complexity in container-based CI pipelines",[959],[2097,2098,772,1932,2889],{"slug":12899,"featured":6,"template":736},"second-law-of-complexity-dynamics","content:en-us:blog:second-law-of-complexity-dynamics.yml","Second Law Of Complexity Dynamics","en-us/blog/second-law-of-complexity-dynamics.yml","en-us/blog/second-law-of-complexity-dynamics",{"_path":12905,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12906,"content":12912,"config":12916,"_id":12918,"_type":16,"title":12919,"_source":17,"_file":12920,"_stem":12921,"_extension":20},"/en-us/blog/the-future-of-the-gitlab-web-ide",{"title":12907,"description":12908,"ogTitle":12907,"ogDescription":12908,"noIndex":6,"ogImage":12909,"ogUrl":12910,"ogSiteName":995,"ogType":996,"canonicalUrls":12910,"schema":12911},"The Future of the GitLab Web IDE","There are big changes in store for the Web IDE in the coming milestones.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679284/Blog/Hero%20Images/johannes-plenio-2TQwrtZnl08-unsplash.jpg","https://about.gitlab.com/blog/the-future-of-the-gitlab-web-ide","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Future of the GitLab Web IDE\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Schurter\"}],\n        \"datePublished\": \"2022-05-23\",\n      }",{"title":12907,"description":12908,"authors":12913,"heroImage":12909,"date":12914,"category":1049,"tags":12915},[9264],"2022-05-23",[730,1049,2703,1569],{"slug":12917,"featured":6,"template":736},"the-future-of-the-gitlab-web-ide","content:en-us:blog:the-future-of-the-gitlab-web-ide.yml","The Future Of The Gitlab Web Ide","en-us/blog/the-future-of-the-gitlab-web-ide.yml","en-us/blog/the-future-of-the-gitlab-web-ide",{"_path":12923,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12924,"content":12930,"config":12935,"_id":12937,"_type":16,"title":12938,"_source":17,"_file":12939,"_stem":12940,"_extension":20},"/en-us/blog/gitlab-provides-small-business-with-a-professional-mature-devops-platform",{"title":12925,"description":12926,"ogTitle":12925,"ogDescription":12926,"noIndex":6,"ogImage":12927,"ogUrl":12928,"ogSiteName":995,"ogType":996,"canonicalUrls":12928,"schema":12929},"GitLab provides small business with a professional, mature DevOps platform","Blonk had a small team but a big need for professional software development. Here's how GitLab helped.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668272/Blog/Hero%20Images/blonklogo.png","https://about.gitlab.com/blog/gitlab-provides-small-business-with-a-professional-mature-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab provides small business with a professional, mature DevOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Esther Shein\"}],\n        \"datePublished\": \"2022-05-19\",\n      }",{"title":12925,"description":12926,"authors":12931,"heroImage":12927,"date":12933,"category":577,"tags":12934},[12932],"Esther Shein","2022-05-19",[564,3075,110],{"slug":12936,"featured":6,"template":736},"gitlab-provides-small-business-with-a-professional-mature-devops-platform","content:en-us:blog:gitlab-provides-small-business-with-a-professional-mature-devops-platform.yml","Gitlab Provides Small Business With A Professional Mature Devops Platform","en-us/blog/gitlab-provides-small-business-with-a-professional-mature-devops-platform.yml","en-us/blog/gitlab-provides-small-business-with-a-professional-mature-devops-platform",{"_path":12942,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12943,"content":12949,"config":12953,"_id":12955,"_type":16,"title":12956,"_source":17,"_file":12957,"_stem":12958,"_extension":20},"/en-us/blog/manager-of-frances-fr-domain-selects-gitlab",{"title":12944,"description":12945,"ogTitle":12944,"ogDescription":12945,"noIndex":6,"ogImage":12946,"ogUrl":12947,"ogSiteName":995,"ogType":996,"canonicalUrls":12947,"schema":12948},"France's .fr domain manager selects GitLab for security","Afnic looks to The One DevOps Platform to modernize its software development with automation, security and compliance, and support for multi-cloud environments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667869/Blog/Hero%20Images/afniclogo.png","https://about.gitlab.com/blog/manager-of-frances-fr-domain-selects-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Manager of France's .fr domain selects GitLab for its DevSecOps capabilities\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-05-19\",\n      }",{"title":12950,"description":12945,"authors":12951,"heroImage":12946,"date":12933,"category":577,"tags":12952},"Manager of France's .fr domain selects GitLab for its DevSecOps capabilities",[1000],[564,790,2097,2098],{"slug":12954,"featured":6,"template":736},"manager-of-frances-fr-domain-selects-gitlab","content:en-us:blog:manager-of-frances-fr-domain-selects-gitlab.yml","Manager Of Frances Fr Domain Selects Gitlab","en-us/blog/manager-of-frances-fr-domain-selects-gitlab.yml","en-us/blog/manager-of-frances-fr-domain-selects-gitlab",{"_path":12960,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12961,"content":12967,"config":12971,"_id":12973,"_type":16,"title":12974,"_source":17,"_file":12975,"_stem":12976,"_extension":20},"/en-us/blog/pull-based-kubernetes-deployments-coming-to-gitlab-free-tier",{"title":12962,"description":12963,"ogTitle":12962,"ogDescription":12963,"noIndex":6,"ogImage":12964,"ogUrl":12965,"ogSiteName":995,"ogType":996,"canonicalUrls":12965,"schema":12966},"Pull-based GitOps moving to GitLab Free tier","Learn how this change provides organizations increased flexibility, security, scalability, and automation in cloud-native environments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670178/Blog/Hero%20Images/GitLab-Ops.png","https://about.gitlab.com/blog/pull-based-kubernetes-deployments-coming-to-gitlab-free-tier","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pull-based GitOps moving to GitLab Free tier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"},{\"@type\":\"Person\",\"name\":\"Lauren Minning\"}],\n        \"datePublished\": \"2022-05-18\",\n      }",{"title":12962,"description":12963,"authors":12968,"heroImage":12964,"date":12969,"category":1049,"tags":12970},[3506,11842],"2022-05-18",[1050,2908,790,582,559],{"slug":12972,"featured":6,"template":736},"pull-based-kubernetes-deployments-coming-to-gitlab-free-tier","content:en-us:blog:pull-based-kubernetes-deployments-coming-to-gitlab-free-tier.yml","Pull Based Kubernetes Deployments Coming To Gitlab Free Tier","en-us/blog/pull-based-kubernetes-deployments-coming-to-gitlab-free-tier.yml","en-us/blog/pull-based-kubernetes-deployments-coming-to-gitlab-free-tier",{"_path":12978,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12979,"content":12985,"config":12989,"_id":12991,"_type":16,"title":12992,"_source":17,"_file":12993,"_stem":12994,"_extension":20},"/en-us/blog/how-we-removed-all-502-errors-by-caring-about-pid-1-in-kubernetes",{"title":12980,"description":12981,"ogTitle":12980,"ogDescription":12981,"noIndex":6,"ogImage":12982,"ogUrl":12983,"ogSiteName":995,"ogType":996,"canonicalUrls":12983,"schema":12984},"How we reduced 502 errors by caring about PID 1 in Kubernetes","For every deploy, scale down event, or pod termination, users of GitLab's Pages service were experiencing 502 errors. This explains how we found the root cause and rolled out a fix for it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682305/Blog/Hero%20Images/KubeCon2022.jpg","https://about.gitlab.com/blog/how-we-removed-all-502-errors-by-caring-about-pid-1-in-kubernetes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we reduced 502 errors by caring about PID 1 in Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Azzopardi\"}],\n        \"datePublished\": \"2022-05-17\",\n      }",{"title":12980,"description":12981,"authors":12986,"heroImage":12982,"date":12987,"category":858,"tags":12988},[12322],"2022-05-17",[2908],{"slug":12990,"featured":6,"template":736},"how-we-removed-all-502-errors-by-caring-about-pid-1-in-kubernetes","content:en-us:blog:how-we-removed-all-502-errors-by-caring-about-pid-1-in-kubernetes.yml","How We Removed All 502 Errors By Caring About Pid 1 In Kubernetes","en-us/blog/how-we-removed-all-502-errors-by-caring-about-pid-1-in-kubernetes.yml","en-us/blog/how-we-removed-all-502-errors-by-caring-about-pid-1-in-kubernetes",{"_path":12996,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":12997,"content":13003,"config":13008,"_id":13010,"_type":16,"title":13011,"_source":17,"_file":13012,"_stem":13013,"_extension":20},"/en-us/blog/biden-administration-celebrates-1-year-anniversary-of-eo-by-accelerating-software-supply-chain-security",{"title":12998,"description":12999,"ogTitle":12998,"ogDescription":12999,"noIndex":6,"ogImage":13000,"ogUrl":13001,"ogSiteName":995,"ogType":996,"canonicalUrls":13001,"schema":13002},"Biden administration updates software supply chain security requirements","GitLab's One DevOps Platform can help agencies comply with government requirements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667852/Blog/Hero%20Images/eosecurity.jpg","https://about.gitlab.com/blog/biden-administration-celebrates-1-year-anniversary-of-eo-by-accelerating-software-supply-chain-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Biden administration accelerates software supply chain security expectations a year into Executive Order\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-05-12\",\n      }",{"title":13004,"description":12999,"authors":13005,"heroImage":13000,"date":13006,"category":577,"tags":13007},"Biden administration accelerates software supply chain security expectations a year into Executive Order",[3506],"2022-05-12",[564,790,1265],{"slug":13009,"featured":6,"template":736},"biden-administration-celebrates-1-year-anniversary-of-eo-by-accelerating-software-supply-chain-security","content:en-us:blog:biden-administration-celebrates-1-year-anniversary-of-eo-by-accelerating-software-supply-chain-security.yml","Biden Administration Celebrates 1 Year Anniversary Of Eo By Accelerating Software Supply Chain Security","en-us/blog/biden-administration-celebrates-1-year-anniversary-of-eo-by-accelerating-software-supply-chain-security.yml","en-us/blog/biden-administration-celebrates-1-year-anniversary-of-eo-by-accelerating-software-supply-chain-security",{"_path":13015,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13016,"content":13022,"config":13025,"_id":13027,"_type":16,"title":13028,"_source":17,"_file":13029,"_stem":13030,"_extension":20},"/en-us/blog/gitlab-heroes-unmasked-elevating-my-company-using-gitlab",{"title":13017,"description":13018,"ogTitle":13017,"ogDescription":13018,"noIndex":6,"ogImage":13019,"ogUrl":13020,"ogSiteName":995,"ogType":996,"canonicalUrls":13020,"schema":13021},"GitLab Heroes Unmasked: How I am elevating my company using GitLab","Tickett Enterprises Limited Director Lee Tickett shares the details of his ongoing journey to use the DevOps platform to its fullest.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667569/Blog/Hero%20Images/heroestickett.jpg","https://about.gitlab.com/blog/gitlab-heroes-unmasked-elevating-my-company-using-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Heroes Unmasked: How I am elevating my company using GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Tickett\"}],\n        \"datePublished\": \"2022-05-12\",\n      }",{"title":13017,"description":13018,"authors":13023,"heroImage":13019,"date":13006,"category":577,"tags":13024},[1646],[269,3074,4665],{"slug":13026,"featured":6,"template":736},"gitlab-heroes-unmasked-elevating-my-company-using-gitlab","content:en-us:blog:gitlab-heroes-unmasked-elevating-my-company-using-gitlab.yml","Gitlab Heroes Unmasked Elevating My Company Using Gitlab","en-us/blog/gitlab-heroes-unmasked-elevating-my-company-using-gitlab.yml","en-us/blog/gitlab-heroes-unmasked-elevating-my-company-using-gitlab",{"_path":13032,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13033,"content":13039,"config":13043,"_id":13045,"_type":16,"title":13046,"_source":17,"_file":13047,"_stem":13048,"_extension":20},"/en-us/blog/how-we-run-red-team-operations-remotely",{"title":13034,"description":13035,"ogTitle":13034,"ogDescription":13035,"noIndex":6,"ogImage":13036,"ogUrl":13037,"ogSiteName":995,"ogType":996,"canonicalUrls":13037,"schema":13038},"How we run Red Team operations remotely","Our team shares the process and templates that drive our successful red team ops in our all-remote environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679403/Blog/Hero%20Images/pexels-andrey-grushnikov-707676_crop.jpg","https://about.gitlab.com/blog/how-we-run-red-team-operations-remotely","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we run Red Team operations remotely\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Moberly\"}],\n        \"datePublished\": \"2022-05-11\",\n      }",{"title":13034,"description":13035,"authors":13040,"heroImage":13036,"date":13041,"category":790,"tags":13042},[2720],"2022-05-11",[790],{"slug":13044,"featured":6,"template":736},"how-we-run-red-team-operations-remotely","content:en-us:blog:how-we-run-red-team-operations-remotely.yml","How We Run Red Team Operations Remotely","en-us/blog/how-we-run-red-team-operations-remotely.yml","en-us/blog/how-we-run-red-team-operations-remotely",{"_path":13050,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13051,"content":13057,"config":13064,"_id":13066,"_type":16,"title":13067,"_source":17,"_file":13068,"_stem":13069,"_extension":20},"/en-us/blog/enable-slos-as-code",{"title":13052,"description":13053,"ogTitle":13052,"ogDescription":13053,"noIndex":6,"ogImage":13054,"ogUrl":13055,"ogSiteName":995,"ogType":996,"canonicalUrls":13055,"schema":13056},"Enable SLO-as-Code with Nobl9 and GitLab","Learn how to take advantage of a streamlined SLO process and maintain a single source of truth for SLO definitions within your DevOps platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669455/Blog/Hero%20Images/nobl9_1.jpg","https://about.gitlab.com/blog/enable-slos-as-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Enable SLO-as-Code with Nobl9 and GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Quan To\"},{\"@type\":\"Person\",\"name\":\"Jeremy Cooper\"},{\"@type\":\"Person\",\"name\":\"Ian Bartholomew\"}],\n        \"datePublished\": \"2022-05-09\",\n      }",{"title":13052,"description":13053,"authors":13058,"heroImage":13054,"date":13062,"category":1049,"tags":13063},[13059,13060,13061],"Quan To","Jeremy Cooper","Ian Bartholomew","2022-05-09",[233,2097,564],{"slug":13065,"featured":6,"template":736},"enable-slos-as-code","content:en-us:blog:enable-slos-as-code.yml","Enable Slos As Code","en-us/blog/enable-slos-as-code.yml","en-us/blog/enable-slos-as-code",{"_path":13071,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13072,"content":13077,"config":13080,"_id":13082,"_type":16,"title":13083,"_source":17,"_file":13084,"_stem":13085,"_extension":20},"/en-us/blog/one-devops-platform-can-help-you-achieve-devsecops",{"title":13073,"description":13074,"ogTitle":13073,"ogDescription":13074,"noIndex":6,"ogImage":10975,"ogUrl":13075,"ogSiteName":995,"ogType":996,"canonicalUrls":13075,"schema":13076},"One DevOps platform can help you achieve DevSecOps","GitLab drives innovation in the AST market to secure cloud-native applications.","https://about.gitlab.com/blog/one-devops-platform-can-help-you-achieve-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"One DevOps platform can help you achieve DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-05-09\",\n      }",{"title":13073,"description":13074,"authors":13078,"heroImage":10975,"date":13062,"category":790,"tags":13079},[3506],[564,574,2025,790,964],{"slug":13081,"featured":6,"template":736},"one-devops-platform-can-help-you-achieve-devsecops","content:en-us:blog:one-devops-platform-can-help-you-achieve-devsecops.yml","One Devops Platform Can Help You Achieve Devsecops","en-us/blog/one-devops-platform-can-help-you-achieve-devsecops.yml","en-us/blog/one-devops-platform-can-help-you-achieve-devsecops",{"_path":13087,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13088,"content":13094,"config":13098,"_id":13100,"_type":16,"title":13101,"_source":17,"_file":13102,"_stem":13103,"_extension":20},"/en-us/blog/updates-regarding-rubygems-unauthorized-gem-takeover-for-some-gems-vulnerability",{"title":13089,"description":13090,"ogTitle":13089,"ogDescription":13090,"noIndex":6,"ogImage":13091,"ogUrl":13092,"ogSiteName":995,"ogType":996,"canonicalUrls":13092,"schema":13093},"The Rubygems unauthorized gem takeover vulnerability","Actions we've taken to investigate the Rubygems takeover vulnerability.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666816/Blog/Hero%20Images/security-cover.png","https://about.gitlab.com/blog/updates-regarding-rubygems-unauthorized-gem-takeover-for-some-gems-vulnerability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Updates regarding Rubygems ‘Unauthorized gem takeover for some gems’ vulnerability CVE-2022-29176\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-05-09\",\n      }",{"title":13095,"description":13090,"authors":13096,"heroImage":13091,"date":13062,"category":790,"tags":13097},"Updates regarding Rubygems ‘Unauthorized gem takeover for some gems’ vulnerability CVE-2022-29176",[1000],[790],{"slug":13099,"featured":6,"template":736},"updates-regarding-rubygems-unauthorized-gem-takeover-for-some-gems-vulnerability","content:en-us:blog:updates-regarding-rubygems-unauthorized-gem-takeover-for-some-gems-vulnerability.yml","Updates Regarding Rubygems Unauthorized Gem Takeover For Some Gems Vulnerability","en-us/blog/updates-regarding-rubygems-unauthorized-gem-takeover-for-some-gems-vulnerability.yml","en-us/blog/updates-regarding-rubygems-unauthorized-gem-takeover-for-some-gems-vulnerability",{"_path":13105,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13106,"content":13111,"config":13115,"_id":13117,"_type":16,"title":13118,"_source":17,"_file":13119,"_stem":13120,"_extension":20},"/en-us/blog/learn-python-with-pj-part-4-dictionaries-and-files",{"title":13107,"description":13108,"ogTitle":13107,"ogDescription":13108,"noIndex":6,"ogImage":12801,"ogUrl":13109,"ogSiteName":995,"ogType":996,"canonicalUrls":13109,"schema":13110},"Learn Python with Pj! Part 4 - Dictionaries and Files","Our education evangelist Pj Metz continues his journey to learn how to code in Python.","https://about.gitlab.com/blog/learn-python-with-pj-part-4-dictionaries-and-files","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learn Python with Pj! Part 4 - Dictionaries and Files\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-05-05\",\n      }",{"title":13107,"description":13108,"authors":13112,"heroImage":12801,"date":13113,"category":6980,"tags":13114},[11595],"2022-05-05",[6980,772,8475],{"slug":13116,"featured":6,"template":736},"learn-python-with-pj-part-4-dictionaries-and-files","content:en-us:blog:learn-python-with-pj-part-4-dictionaries-and-files.yml","Learn Python With Pj Part 4 Dictionaries And Files","en-us/blog/learn-python-with-pj-part-4-dictionaries-and-files.yml","en-us/blog/learn-python-with-pj-part-4-dictionaries-and-files",{"_path":13122,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13123,"content":13129,"config":13134,"_id":13136,"_type":16,"title":13137,"_source":17,"_file":13138,"_stem":13139,"_extension":20},"/en-us/blog/devops-in-education-2021-survey-results",{"title":13124,"description":13125,"ogTitle":13124,"ogDescription":13125,"noIndex":6,"ogImage":13126,"ogUrl":13127,"ogSiteName":995,"ogType":996,"canonicalUrls":13127,"schema":13128},"DevOps in Education 2021 Survey results","DevOps and GitLab are helping transform higher education. Here's what we learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668253/Blog/Hero%20Images/pencil2.jpg","https://about.gitlab.com/blog/devops-in-education-2021-survey-results","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps in Education 2021 Survey results\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2022-05-04\",\n      }",{"title":13124,"description":13125,"authors":13130,"heroImage":13126,"date":13132,"category":577,"tags":13133},[13131],"Christina Hupy, Ph.D.","2022-05-04",[564,6376,269],{"slug":13135,"featured":6,"template":736},"devops-in-education-2021-survey-results","content:en-us:blog:devops-in-education-2021-survey-results.yml","Devops In Education 2021 Survey Results","en-us/blog/devops-in-education-2021-survey-results.yml","en-us/blog/devops-in-education-2021-survey-results",{"_path":13141,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13142,"content":13148,"config":13153,"_id":13155,"_type":16,"title":13156,"_source":17,"_file":13157,"_stem":13158,"_extension":20},"/en-us/blog/how-gitlabs-customer-and-partner-focus-fuels-our-culture",{"title":13143,"description":13144,"ogTitle":13143,"ogDescription":13144,"noIndex":6,"ogImage":13145,"ogUrl":13146,"ogSiteName":995,"ogType":996,"canonicalUrls":13146,"schema":13147},"How GitLab's customer and partner focus fuels our culture","It’s an exciting time to be working in a customer- or partner-facing role at GitLab. Our sales team members explain why.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679412/Blog/Hero%20Images/sales_blog_image_tiny.jpg","https://about.gitlab.com/blog/how-gitlabs-customer-and-partner-focus-fuels-our-culture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab's customer and partner focus fuels our culture\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jake Foster\"}],\n        \"datePublished\": \"2022-05-03\",\n      }",{"title":13143,"description":13144,"authors":13149,"heroImage":13145,"date":13151,"category":6121,"tags":13152},[13150],"Jake Foster","2022-05-03",[1569,6980,564],{"slug":13154,"featured":6,"template":736},"how-gitlabs-customer-and-partner-focus-fuels-our-culture","content:en-us:blog:how-gitlabs-customer-and-partner-focus-fuels-our-culture.yml","How Gitlabs Customer And Partner Focus Fuels Our Culture","en-us/blog/how-gitlabs-customer-and-partner-focus-fuels-our-culture.yml","en-us/blog/how-gitlabs-customer-and-partner-focus-fuels-our-culture",{"_path":13160,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13161,"content":13166,"config":13169,"_id":13171,"_type":16,"title":13172,"_source":17,"_file":13173,"_stem":13174,"_extension":20},"/en-us/blog/preventing-burnout-a-managers-toolkit",{"title":13162,"description":13163,"ogTitle":13162,"ogDescription":13163,"noIndex":6,"ogImage":6170,"ogUrl":13164,"ogSiteName":995,"ogType":996,"canonicalUrls":13164,"schema":13165},"Preventing burnout: A manager's toolkit","GitLab CEO Sid Sijbrandij shares 12 steps that managers can take to help employees avoid burnout.","https://about.gitlab.com/blog/preventing-burnout-a-managers-toolkit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Preventing burnout: A manager's toolkit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-05-03\",\n      }",{"title":13162,"description":13163,"authors":13167,"heroImage":6170,"date":13151,"category":6121,"tags":13168},[1000],[1569,3914,6980],{"slug":13170,"featured":6,"template":736},"preventing-burnout-a-managers-toolkit","content:en-us:blog:preventing-burnout-a-managers-toolkit.yml","Preventing Burnout A Managers Toolkit","en-us/blog/preventing-burnout-a-managers-toolkit.yml","en-us/blog/preventing-burnout-a-managers-toolkit",{"_path":13176,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13177,"content":13183,"config":13187,"_id":13189,"_type":16,"title":13190,"_source":17,"_file":13191,"_stem":13192,"_extension":20},"/en-us/blog/5-ways-collaboration-boosts-productivity-and-your-career",{"title":13178,"description":13179,"ogTitle":13178,"ogDescription":13179,"noIndex":6,"ogImage":13180,"ogUrl":13181,"ogSiteName":995,"ogType":996,"canonicalUrls":13181,"schema":13182},"5 ways collaboration boosts productivity and your career","Collaboration is a powerful tool and DevOps pros that learn how to master it will expand their growth opportunities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668473/Blog/Hero%20Images/john-schnobrich-FlPc9_VocJ4-unsplash.jpg","https://about.gitlab.com/blog/5-ways-collaboration-boosts-productivity-and-your-career","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 ways collaboration boosts productivity and your career\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-05-02\",\n      }",{"title":13178,"description":13179,"authors":13184,"heroImage":13180,"date":13185,"category":6980,"tags":13186},[3999],"2022-05-02",[564,6980,2815],{"slug":13188,"featured":6,"template":736},"5-ways-collaboration-boosts-productivity-and-your-career","content:en-us:blog:5-ways-collaboration-boosts-productivity-and-your-career.yml","5 Ways Collaboration Boosts Productivity And Your Career","en-us/blog/5-ways-collaboration-boosts-productivity-and-your-career.yml","en-us/blog/5-ways-collaboration-boosts-productivity-and-your-career",{"_path":13194,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13195,"content":13201,"config":13204,"_id":13206,"_type":16,"title":13207,"_source":17,"_file":13208,"_stem":13209,"_extension":20},"/en-us/blog/amazon-linux-2-support-and-distro-specific-packages",{"title":13196,"description":13197,"ogTitle":13196,"ogDescription":13197,"noIndex":6,"ogImage":13198,"ogUrl":13199,"ogSiteName":995,"ogType":996,"canonicalUrls":13199,"schema":13200},"Amazon Linux 2 support and distro-specific packages for GitLab","Learn how to do early testing as well as how to peg your automation to the EL 7 packages until you are able to properly integrate the changes into your automation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682299/Blog/Hero%20Images/gitlab-blog-banner.png","https://about.gitlab.com/blog/amazon-linux-2-support-and-distro-specific-packages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Amazon Linux 2 support and distro-specific packages for GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2022-05-02\",\n      }",{"title":13196,"description":13197,"authors":13202,"heroImage":13198,"date":13185,"category":1049,"tags":13203},[959],[892,2097,2098,772,771],{"slug":13205,"featured":6,"template":736},"amazon-linux-2-support-and-distro-specific-packages","content:en-us:blog:amazon-linux-2-support-and-distro-specific-packages.yml","Amazon Linux 2 Support And Distro Specific Packages","en-us/blog/amazon-linux-2-support-and-distro-specific-packages.yml","en-us/blog/amazon-linux-2-support-and-distro-specific-packages",{"_path":13211,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13212,"content":13217,"config":13220,"_id":13222,"_type":16,"title":13223,"_source":17,"_file":13224,"_stem":13225,"_extension":20},"/en-us/blog/two-sizes-fit-most-postgresql-and-clickhouse",{"title":13213,"description":13214,"ogTitle":13213,"ogDescription":13214,"noIndex":6,"ogImage":11046,"ogUrl":13215,"ogSiteName":995,"ogType":996,"canonicalUrls":13215,"schema":13216},"Two sizes fit most: PostgreSQL and Clickhouse","Relational databases are not in decline. Here's why.","https://about.gitlab.com/blog/two-sizes-fit-most-postgresql-and-clickhouse","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Two sizes fit most: PostgreSQL and Clickhouse\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-04-29\",\n      }",{"title":13213,"description":13214,"authors":13218,"heroImage":11046,"date":13219,"category":8140},[3701],"2022-04-29",{"slug":13221,"featured":6,"template":736},"two-sizes-fit-most-postgresql-and-clickhouse","content:en-us:blog:two-sizes-fit-most-postgresql-and-clickhouse.yml","Two Sizes Fit Most Postgresql And Clickhouse","en-us/blog/two-sizes-fit-most-postgresql-and-clickhouse.yml","en-us/blog/two-sizes-fit-most-postgresql-and-clickhouse",{"_path":13227,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13228,"content":13234,"config":13239,"_id":13241,"_type":16,"title":13242,"_source":17,"_file":13243,"_stem":13244,"_extension":20},"/en-us/blog/how-we-built-a-stack-overflow-community-questions-analyzer-and-you-can-too",{"title":13229,"description":13230,"ogTitle":13229,"ogDescription":13230,"noIndex":6,"ogImage":13231,"ogUrl":13232,"ogSiteName":995,"ogType":996,"canonicalUrls":13232,"schema":13233},"How We Built a Stack Overflow Community Questions Analyzer","We wanted to better understand what Stack Overflow GitLab Community members wanted to know, so we automated a way to keep track of it all. Here's a step-by-step look at how we did it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667552/Blog/Hero%20Images/gitlabonstackoverflow.png","https://about.gitlab.com/blog/how-we-built-a-stack-overflow-community-questions-analyzer-and-you-can-too","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we built a Stack Overflow Community questions analyzer (and you can too)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2022-04-28\",\n      }",{"title":13235,"description":13230,"authors":13236,"heroImage":13231,"date":13237,"category":858,"tags":13238},"How we built a Stack Overflow Community questions analyzer (and you can too)",[855],"2022-04-28",[564,269,3074],{"slug":13240,"featured":6,"template":736},"how-we-built-a-stack-overflow-community-questions-analyzer-and-you-can-too","content:en-us:blog:how-we-built-a-stack-overflow-community-questions-analyzer-and-you-can-too.yml","How We Built A Stack Overflow Community Questions Analyzer And You Can Too","en-us/blog/how-we-built-a-stack-overflow-community-questions-analyzer-and-you-can-too.yml","en-us/blog/how-we-built-a-stack-overflow-community-questions-analyzer-and-you-can-too",{"_path":13246,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13247,"content":13253,"config":13257,"_id":13259,"_type":16,"title":13260,"_source":17,"_file":13261,"_stem":13262,"_extension":20},"/en-us/blog/devops-is-at-the-center-of-gitlab",{"title":13248,"description":13249,"ogTitle":13248,"ogDescription":13249,"noIndex":6,"ogImage":13250,"ogUrl":13251,"ogSiteName":995,"ogType":996,"canonicalUrls":13251,"schema":13252},"DevOps is at the center of GitLab","GitLab allows companies to do away with the many point solutions that have been digitally duct taped together and instead bring all DevOps functionalities together in ONE place","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683273/Blog/Hero%20Images/Apr_27_Blog_Post_Image_2_-_light.png","https://about.gitlab.com/blog/devops-is-at-the-center-of-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps is at the center of GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-04-27\",\n      }",{"title":13248,"description":13249,"authors":13254,"heroImage":13250,"date":13255,"category":1049,"tags":13256},[3701],"2022-04-27",[1049,564],{"slug":13258,"featured":6,"template":736},"devops-is-at-the-center-of-gitlab","content:en-us:blog:devops-is-at-the-center-of-gitlab.yml","Devops Is At The Center Of Gitlab","en-us/blog/devops-is-at-the-center-of-gitlab.yml","en-us/blog/devops-is-at-the-center-of-gitlab",{"_path":13264,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13265,"content":13271,"config":13277,"_id":13279,"_type":16,"title":13280,"_source":17,"_file":13281,"_stem":13282,"_extension":20},"/en-us/blog/gitlab-heroes-unmasked-lessons-from-early-mistakes",{"title":13266,"description":13267,"ogTitle":13266,"ogDescription":13267,"noIndex":6,"ogImage":13268,"ogUrl":13269,"ogSiteName":995,"ogType":996,"canonicalUrls":13269,"schema":13270},"Overcoming coding challenges to become a valued GitLab hero","Niklas van Schrick shares his journey from learning a new language to becoming an active contributor to GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668009/Blog/Hero%20Images/wrong-way-2.jpg","https://about.gitlab.com/blog/gitlab-heroes-unmasked-lessons-from-early-mistakes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Heroes Unmasked: How a difficult start in coding led to being a valued contributor\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jamie Rachel\"}],\n        \"datePublished\": \"2022-04-26\",\n      }",{"title":13272,"description":13267,"authors":13273,"heroImage":13268,"date":13275,"category":577,"tags":13276},"GitLab Heroes Unmasked: How a difficult start in coding led to being a valued contributor",[13274],"Jamie Rachel","2022-04-26",[3074,1265,269],{"slug":13278,"featured":6,"template":736},"gitlab-heroes-unmasked-lessons-from-early-mistakes","content:en-us:blog:gitlab-heroes-unmasked-lessons-from-early-mistakes.yml","Gitlab Heroes Unmasked Lessons From Early Mistakes","en-us/blog/gitlab-heroes-unmasked-lessons-from-early-mistakes.yml","en-us/blog/gitlab-heroes-unmasked-lessons-from-early-mistakes",{"_path":13284,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13285,"content":13291,"config":13296,"_id":13298,"_type":16,"title":13299,"_source":17,"_file":13300,"_stem":13301,"_extension":20},"/en-us/blog/career-spotlight-sre-vs-devops-engineer-vs-devops-platform-engineer",{"title":13286,"description":13287,"ogTitle":13286,"ogDescription":13287,"noIndex":6,"ogImage":13288,"ogUrl":13289,"ogSiteName":995,"ogType":996,"canonicalUrls":13289,"schema":13290},"DevOps careers: SRE, engineer, and platform engineer","Where does an SRE leave off and a DevOps engineer (or platform engineer) begin? Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666685/Blog/Hero%20Images/comparing-confusing-terms-in-github-bitbucket-and-gitlab-cover.jpg","https://about.gitlab.com/blog/career-spotlight-sre-vs-devops-engineer-vs-devops-platform-engineer","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps careers: SRE, engineer, and platform engineer\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lauren Gibbons Paul\"}],\n        \"datePublished\": \"2022-04-25\",\n      }",{"title":13286,"description":13287,"authors":13292,"heroImage":13288,"date":13294,"category":577,"tags":13295},[13293],"Lauren Gibbons Paul","2022-04-25",[564,6980,964],{"slug":13297,"featured":6,"template":736},"career-spotlight-sre-vs-devops-engineer-vs-devops-platform-engineer","content:en-us:blog:career-spotlight-sre-vs-devops-engineer-vs-devops-platform-engineer.yml","Career Spotlight Sre Vs Devops Engineer Vs Devops Platform Engineer","en-us/blog/career-spotlight-sre-vs-devops-engineer-vs-devops-platform-engineer.yml","en-us/blog/career-spotlight-sre-vs-devops-engineer-vs-devops-platform-engineer",{"_path":13303,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13304,"content":13310,"config":13313,"_id":13315,"_type":16,"title":13316,"_source":17,"_file":13317,"_stem":13318,"_extension":20},"/en-us/blog/how-a-devops-platform-can-help-solve-5-key-smb-frustrations",{"title":13305,"description":13306,"ogTitle":13305,"ogDescription":13306,"noIndex":6,"ogImage":13307,"ogUrl":13308,"ogSiteName":995,"ogType":996,"canonicalUrls":13308,"schema":13309},"How a DevOps platform can help solve 5 key SMB frustrations","SMBs already wear all of the hats. Here are 5 ways a DevOps platform can ease the burden.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668242/Blog/Hero%20Images/assembly-3830652.jpg","https://about.gitlab.com/blog/how-a-devops-platform-can-help-solve-5-key-smb-frustrations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How a DevOps platform can help solve 5 key SMB frustrations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-04-25\",\n      }",{"title":13305,"description":13306,"authors":13311,"heroImage":13307,"date":13294,"category":577,"tags":13312},[3999],[564,3075,2815],{"slug":13314,"featured":6,"template":736},"how-a-devops-platform-can-help-solve-5-key-smb-frustrations","content:en-us:blog:how-a-devops-platform-can-help-solve-5-key-smb-frustrations.yml","How A Devops Platform Can Help Solve 5 Key Smb Frustrations","en-us/blog/how-a-devops-platform-can-help-solve-5-key-smb-frustrations.yml","en-us/blog/how-a-devops-platform-can-help-solve-5-key-smb-frustrations",{"_path":13320,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13321,"content":13327,"config":13332,"_id":13334,"_type":16,"title":13335,"_source":17,"_file":13336,"_stem":13337,"_extension":20},"/en-us/blog/making-remote-work-better",{"title":13322,"description":13323,"ogTitle":13322,"ogDescription":13323,"noIndex":6,"ogImage":13324,"ogUrl":13325,"ogSiteName":995,"ogType":996,"canonicalUrls":13325,"schema":13326},"Tangram Vision engineers succeed at remote work with GitLab","The start-up's developers can collaborate efficiently, handling everything from merge requests to code reviews, and providing a single source of the truth.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668018/Blog/Hero%20Images/allremote.jpg","https://about.gitlab.com/blog/making-remote-work-better","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's DevOps platform enables Tangram Vision's engineering team to succeed at remote work\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lauren Gibbons Paul\"}],\n        \"datePublished\": \"2022-04-21\",\n      }",{"title":13328,"description":13323,"authors":13329,"heroImage":13324,"date":13330,"category":577,"tags":13331},"GitLab's DevOps platform enables Tangram Vision's engineering team to succeed at remote work",[13293],"2022-04-21",[2815,3075,564],{"slug":13333,"featured":6,"template":736},"making-remote-work-better","content:en-us:blog:making-remote-work-better.yml","Making Remote Work Better","en-us/blog/making-remote-work-better.yml","en-us/blog/making-remote-work-better",{"_path":13339,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13340,"content":13346,"config":13350,"_id":13352,"_type":16,"title":13353,"_source":17,"_file":13354,"_stem":13355,"_extension":20},"/en-us/blog/how-the-dora-metrics-can-help-devops-team-performance",{"title":13341,"description":13342,"ogTitle":13341,"ogDescription":13342,"noIndex":6,"ogImage":13343,"ogUrl":13344,"ogSiteName":995,"ogType":996,"canonicalUrls":13344,"schema":13345},"How the DORA metrics can help DevOps team performance ","The best DevOps teams measure their results. Here's a deep dive into the DORA metrics that matter.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749676702/Blog/Hero%20Images/data.jpg","https://about.gitlab.com/blog/how-the-dora-metrics-can-help-devops-team-performance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the DORA metrics can help DevOps team performance \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aathira Nair\"}],\n        \"datePublished\": \"2022-04-20\",\n      }",{"title":13341,"description":13342,"authors":13347,"heroImage":13343,"date":13348,"category":577,"tags":13349},[733],"2022-04-20",[564,6980,2815],{"slug":13351,"featured":6,"template":736},"how-the-dora-metrics-can-help-devops-team-performance","content:en-us:blog:how-the-dora-metrics-can-help-devops-team-performance.yml","How The Dora Metrics Can Help Devops Team Performance","en-us/blog/how-the-dora-metrics-can-help-devops-team-performance.yml","en-us/blog/how-the-dora-metrics-can-help-devops-team-performance",{"_path":13357,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13358,"content":13364,"config":13368,"_id":13370,"_type":16,"title":13371,"_source":17,"_file":13372,"_stem":13373,"_extension":20},"/en-us/blog/gitlab-is-now-an-approved-slp-vendor-in-california",{"title":13359,"description":13360,"ogTitle":13359,"ogDescription":13360,"noIndex":6,"ogImage":13361,"ogUrl":13362,"ogSiteName":995,"ogType":996,"canonicalUrls":13362,"schema":13363},"GitLab is now an approved SLP vendor in California","State and local agencies in California can now purchase GitLab licenses at an agreed-upon discount.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668402/Blog/Hero%20Images/code-gitlab-tanuki.png","https://about.gitlab.com/blog/gitlab-is-now-an-approved-slp-vendor-in-california","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is now an approved SLP vendor in California\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-04-19\",\n      }",{"title":13359,"description":13360,"authors":13365,"heroImage":13361,"date":13366,"category":577,"tags":13367},[1000],"2022-04-19",[564,284,790],{"slug":13369,"featured":6,"template":736},"gitlab-is-now-an-approved-slp-vendor-in-california","content:en-us:blog:gitlab-is-now-an-approved-slp-vendor-in-california.yml","Gitlab Is Now An Approved Slp Vendor In California","en-us/blog/gitlab-is-now-an-approved-slp-vendor-in-california.yml","en-us/blog/gitlab-is-now-an-approved-slp-vendor-in-california",{"_path":13375,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13376,"content":13382,"config":13386,"_id":13388,"_type":16,"title":13389,"_source":17,"_file":13390,"_stem":13391,"_extension":20},"/en-us/blog/comparing-static-site-generators",{"title":13377,"description":13378,"ogTitle":13377,"ogDescription":13378,"noIndex":6,"ogImage":13379,"ogUrl":13380,"ogSiteName":995,"ogType":996,"canonicalUrls":13380,"schema":13381},"How to choose the right static site generator","Here's an in-depth look at 6 static site generators that deploy to GitLab Pages.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682290/Blog/Hero%20Images/kelly-sikkema-gchfxsdcmje-unsplash-resized.jpg","https://about.gitlab.com/blog/comparing-static-site-generators","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to choose the right static site generator\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2022-04-18\",\n      }",{"title":13377,"description":13378,"authors":13383,"heroImage":13379,"date":13384,"category":858,"tags":13385},[1439],"2022-04-18",[10121,269,1265],{"slug":13387,"featured":6,"template":736},"comparing-static-site-generators","content:en-us:blog:comparing-static-site-generators.yml","Comparing Static Site Generators","en-us/blog/comparing-static-site-generators.yml","en-us/blog/comparing-static-site-generators",{"_path":13393,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13394,"content":13400,"config":13404,"_id":13406,"_type":16,"title":13407,"_source":17,"_file":13408,"_stem":13409,"_extension":20},"/en-us/blog/gitlab-releases-15-breaking-changes",{"title":13395,"description":13396,"ogTitle":13395,"ogDescription":13396,"noIndex":6,"ogImage":13397,"ogUrl":13398,"ogSiteName":995,"ogType":996,"canonicalUrls":13398,"schema":13399},"GitLab.com is moving to 15.0 with a few breaking changes","These are the features that will be removed in GitLab 15.0.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667351/Blog/Hero%20Images/14_0_breaking_changes.jpg","https://about.gitlab.com/blog/gitlab-releases-15-breaking-changes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com is moving to 15.0 with a few breaking changes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brian Rhea\"}],\n        \"datePublished\": \"2022-04-18\",\n      }",{"title":13395,"description":13396,"authors":13401,"heroImage":13397,"date":13384,"category":301,"tags":13403},[13402],"Brian Rhea",[1049,892,6376],{"slug":13405,"featured":6,"template":736},"gitlab-releases-15-breaking-changes","content:en-us:blog:gitlab-releases-15-breaking-changes.yml","Gitlab Releases 15 Breaking Changes","en-us/blog/gitlab-releases-15-breaking-changes.yml","en-us/blog/gitlab-releases-15-breaking-changes",{"_path":13411,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13412,"content":13418,"config":13422,"_id":13424,"_type":16,"title":13425,"_source":17,"_file":13426,"_stem":13427,"_extension":20},"/en-us/blog/deploy-shopify-themes-with-gitlab",{"title":13413,"description":13414,"ogTitle":13413,"ogDescription":13414,"noIndex":6,"ogImage":13415,"ogUrl":13416,"ogSiteName":995,"ogType":996,"canonicalUrls":13416,"schema":13417},"How to deploy Shopify themes with GitLab","Streamline your development workflow by configuring auto deployments for Shopify themes with GitLab pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683288/Blog/Hero%20Images/storefront.jpg","https://about.gitlab.com/blog/deploy-shopify-themes-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to deploy Shopify themes with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Austin Regnery\"}],\n        \"datePublished\": \"2022-04-14\",\n      }",{"title":13413,"description":13414,"authors":13419,"heroImage":13415,"date":13420,"category":858,"tags":13421},[9350],"2022-04-14",[772],{"slug":13423,"featured":6,"template":736},"deploy-shopify-themes-with-gitlab","content:en-us:blog:deploy-shopify-themes-with-gitlab.yml","Deploy Shopify Themes With Gitlab","en-us/blog/deploy-shopify-themes-with-gitlab.yml","en-us/blog/deploy-shopify-themes-with-gitlab",{"_path":13429,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13430,"content":13435,"config":13439,"_id":13441,"_type":16,"title":13442,"_source":17,"_file":13443,"_stem":13444,"_extension":20},"/en-us/blog/how-to-learn-ci-cd-fast",{"title":13431,"description":13432,"ogTitle":13431,"ogDescription":13432,"noIndex":6,"ogImage":1211,"ogUrl":13433,"ogSiteName":995,"ogType":996,"canonicalUrls":13433,"schema":13434},"How to learn CI/CD fast","Continuous integration and continuous delivery (CI/CD) are critical to faster software releases and it's less complicated than it seems to get rolling. Here's how to start fast with CI/CD.","https://about.gitlab.com/blog/how-to-learn-ci-cd-fast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to learn CI/CD fast\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2025-09-19\",\n      }",{"title":13431,"description":13432,"authors":13436,"heroImage":1211,"date":13437,"updatedDate":980,"category":577,"tags":13438},[1016],"2022-04-13",[110,574,2815],{"slug":13440,"featured":6,"template":736},"how-to-learn-ci-cd-fast","content:en-us:blog:how-to-learn-ci-cd-fast.yml","How To Learn Ci Cd Fast","en-us/blog/how-to-learn-ci-cd-fast.yml","en-us/blog/how-to-learn-ci-cd-fast",{"_path":13446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13447,"content":13452,"config":13456,"_id":13458,"_type":16,"title":13459,"_source":17,"_file":13460,"_stem":13461,"_extension":20},"/en-us/blog/6-ways-smbs-can-leverage-the-power-of-a-devops-platform",{"title":13448,"description":13449,"ogTitle":13448,"ogDescription":13449,"noIndex":6,"ogImage":12692,"ogUrl":13450,"ogSiteName":995,"ogType":996,"canonicalUrls":13450,"schema":13451},"6 ways SMBs can leverage the power of a DevOps platform","Bringing a DevOps platform into a small business can be a game changer. It can also cut down on the hat wearing. Here are the top 6 benefits.","https://about.gitlab.com/blog/6-ways-smbs-can-leverage-the-power-of-a-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"6 ways SMBs can leverage the power of a DevOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-04-12\",\n      }",{"title":13448,"description":13449,"authors":13453,"heroImage":12692,"date":13454,"category":577,"tags":13455},[3999],"2022-04-12",[564,790,110],{"slug":13457,"featured":6,"template":736},"6-ways-smbs-can-leverage-the-power-of-a-devops-platform","content:en-us:blog:6-ways-smbs-can-leverage-the-power-of-a-devops-platform.yml","6 Ways Smbs Can Leverage The Power Of A Devops Platform","en-us/blog/6-ways-smbs-can-leverage-the-power-of-a-devops-platform.yml","en-us/blog/6-ways-smbs-can-leverage-the-power-of-a-devops-platform",{"_path":13463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13464,"content":13470,"config":13473,"_id":13475,"_type":16,"title":13476,"_source":17,"_file":13477,"_stem":13478,"_extension":20},"/en-us/blog/next-generation-container-registry",{"title":13465,"description":13466,"ogTitle":13465,"ogDescription":13466,"noIndex":6,"ogImage":13467,"ogUrl":13468,"ogSiteName":995,"ogType":996,"canonicalUrls":13468,"schema":13469},"Introducing the next generation of the GitLab.com Container Registry","A new version of our Container Registry is coming with improvements we're excited about. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663383/Blog/Hero%20Images/tanuki-bg-full.png","https://about.gitlab.com/blog/next-generation-container-registry","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing the next generation of the GitLab.com Container Registry\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2022-04-12\",\n      }",{"title":13465,"description":13466,"authors":13471,"heroImage":13467,"date":13454,"category":1049,"tags":13472},[907],[564,1569,233],{"slug":13474,"featured":6,"template":736},"next-generation-container-registry","content:en-us:blog:next-generation-container-registry.yml","Next Generation Container Registry","en-us/blog/next-generation-container-registry.yml","en-us/blog/next-generation-container-registry",{"_path":13480,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13481,"content":13487,"config":13491,"_id":13493,"_type":16,"title":13494,"_source":17,"_file":13495,"_stem":13496,"_extension":20},"/en-us/blog/celebrating-17-years-of-git",{"title":13482,"description":13483,"ogTitle":13482,"ogDescription":13483,"noIndex":6,"ogImage":13484,"ogUrl":13485,"ogSiteName":995,"ogType":996,"canonicalUrls":13485,"schema":13486},"Celebrating 17 years of Git","Here's the history, tips, tricks and even a mea culpa to help celebrate the 17th anniversary of Git.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679424/Blog/Hero%20Images/gitbirthday.jpg","https://about.gitlab.com/blog/celebrating-17-years-of-git","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Celebrating 17 years of Git\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-04-07\",\n      }",{"title":13482,"description":13483,"authors":13488,"heroImage":13484,"date":13489,"category":8140,"tags":13490},[10672],"2022-04-07",[1195,564,2815],{"slug":13492,"featured":6,"template":736},"celebrating-17-years-of-git","content:en-us:blog:celebrating-17-years-of-git.yml","Celebrating 17 Years Of Git","en-us/blog/celebrating-17-years-of-git.yml","en-us/blog/celebrating-17-years-of-git",{"_path":13498,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13499,"content":13504,"config":13507,"_id":13509,"_type":16,"title":13510,"_source":17,"_file":13511,"_stem":13512,"_extension":20},"/en-us/blog/the-ultimate-guide-to-gitops-with-gitlab",{"title":13500,"description":13501,"ogTitle":13500,"ogDescription":13501,"noIndex":6,"ogImage":12964,"ogUrl":13502,"ogSiteName":995,"ogType":996,"canonicalUrls":13502,"schema":13503},"The ultimate guide to GitOps with GitLab","This eight-part tutorial series demonstrates how to use GitLab as a best-in-class GitOps tool.","https://about.gitlab.com/blog/the-ultimate-guide-to-gitops-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The ultimate guide to GitOps with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2022-04-07\",\n      }",{"title":13500,"description":13501,"authors":13505,"heroImage":12964,"date":13489,"category":858,"tags":13506},[2942],[564,772,559],{"slug":13508,"featured":6,"template":736},"the-ultimate-guide-to-gitops-with-gitlab","content:en-us:blog:the-ultimate-guide-to-gitops-with-gitlab.yml","The Ultimate Guide To Gitops With Gitlab","en-us/blog/the-ultimate-guide-to-gitops-with-gitlab.yml","en-us/blog/the-ultimate-guide-to-gitops-with-gitlab",{"_path":13514,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13515,"content":13520,"config":13524,"_id":13526,"_type":16,"title":13527,"_source":17,"_file":13528,"_stem":13529,"_extension":20},"/en-us/blog/updates-regarding-spring-rce-vulnerabilities",{"title":13516,"description":13517,"ogTitle":13516,"ogDescription":13517,"noIndex":6,"ogImage":13091,"ogUrl":13518,"ogSiteName":995,"ogType":996,"canonicalUrls":13518,"schema":13519},"Spring framework remote code execution vulnerability updates","Actions we've taken to investigate the Spring RCE vulnerabilities.","https://about.gitlab.com/blog/updates-regarding-spring-rce-vulnerabilities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Updates regarding Spring remote code execution vulnerabilities CVE-2022-22965 and CVE-2022-22963\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-04-07\",\n      }",{"title":13521,"description":13517,"authors":13522,"heroImage":13091,"date":13489,"category":790,"tags":13523},"Updates regarding Spring remote code execution vulnerabilities CVE-2022-22965 and CVE-2022-22963",[1000],[790],{"slug":13525,"featured":6,"template":736},"updates-regarding-spring-rce-vulnerabilities","content:en-us:blog:updates-regarding-spring-rce-vulnerabilities.yml","Updates Regarding Spring Rce Vulnerabilities","en-us/blog/updates-regarding-spring-rce-vulnerabilities.yml","en-us/blog/updates-regarding-spring-rce-vulnerabilities",{"_path":13531,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13532,"content":13537,"config":13541,"_id":13543,"_type":16,"title":13544,"_source":17,"_file":13545,"_stem":13546,"_extension":20},"/en-us/blog/can-an-smb-or-start-up-be-too-small-for-a-devops-platform",{"title":13533,"description":13534,"ogTitle":13533,"ogDescription":13534,"noIndex":6,"ogImage":9726,"ogUrl":13535,"ogSiteName":995,"ogType":996,"canonicalUrls":13535,"schema":13536},"Can an SMB or start-up be too small for a DevOps platform?","It may sound counter-intuitive but even a very small company or startup can take advantage of the power of a DevOps platform. Here's how.","https://about.gitlab.com/blog/can-an-smb-or-start-up-be-too-small-for-a-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Can an SMB or start-up be too small for a DevOps platform?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-04-06\",\n      }",{"title":13533,"description":13534,"authors":13538,"heroImage":9726,"date":13539,"category":577,"tags":13540},[3999],"2022-04-06",[564,2815,2815],{"slug":13542,"featured":6,"template":736},"can-an-smb-or-start-up-be-too-small-for-a-devops-platform","content:en-us:blog:can-an-smb-or-start-up-be-too-small-for-a-devops-platform.yml","Can An Smb Or Start Up Be Too Small For A Devops Platform","en-us/blog/can-an-smb-or-start-up-be-too-small-for-a-devops-platform.yml","en-us/blog/can-an-smb-or-start-up-be-too-small-for-a-devops-platform",{"_path":13548,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13549,"content":13555,"config":13560,"_id":13562,"_type":16,"title":13563,"_source":17,"_file":13564,"_stem":13565,"_extension":20},"/en-us/blog/gitlab-top-devops-tooling-metrics-and-targets",{"title":13550,"description":13551,"ogTitle":13550,"ogDescription":13551,"noIndex":6,"ogImage":13552,"ogUrl":13553,"ogSiteName":995,"ogType":996,"canonicalUrls":13553,"schema":13554},"The top DevOps tooling metrics and targets at GitLab","Here is how we measure DevOps success and why we always try to look forward.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665635/Blog/Hero%20Images/blog-performance-metrics.jpg","https://about.gitlab.com/blog/gitlab-top-devops-tooling-metrics-and-targets","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The top DevOps tooling metrics and targets at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mek Stittri\"}],\n        \"datePublished\": \"2022-04-05\",\n      }",{"title":13550,"description":13551,"authors":13556,"heroImage":13552,"date":13558,"category":858,"tags":13559},[13557],"Mek Stittri","2022-04-05",[564,1569,964],{"slug":13561,"featured":6,"template":736},"gitlab-top-devops-tooling-metrics-and-targets","content:en-us:blog:gitlab-top-devops-tooling-metrics-and-targets.yml","Gitlab Top Devops Tooling Metrics And Targets","en-us/blog/gitlab-top-devops-tooling-metrics-and-targets.yml","en-us/blog/gitlab-top-devops-tooling-metrics-and-targets",{"_path":13567,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13568,"content":13573,"config":13577,"_id":13579,"_type":16,"title":13580,"_source":17,"_file":13581,"_stem":13582,"_extension":20},"/en-us/blog/observability-is-key-to-cloud-native-transitions-and-modern-application-development",{"title":13569,"description":13570,"ogTitle":13569,"ogDescription":13570,"noIndex":6,"ogImage":9899,"ogUrl":13571,"ogSiteName":995,"ogType":996,"canonicalUrls":13571,"schema":13572},"Observability's role in cloud-native app development","Want better visibility into the entire software development lifecycle across environments? Learn how observability can help.","https://about.gitlab.com/blog/observability-is-key-to-cloud-native-transitions-and-modern-application-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Observability is key to cloud-native transitions and modern application development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-04-05\",\n      }",{"title":13574,"description":13570,"authors":13575,"heroImage":9899,"date":13558,"category":8140,"tags":13576},"Observability is key to cloud-native transitions and modern application development",[3506],[564,582,1265,730],{"slug":13578,"featured":6,"template":736},"observability-is-key-to-cloud-native-transitions-and-modern-application-development","content:en-us:blog:observability-is-key-to-cloud-native-transitions-and-modern-application-development.yml","Observability Is Key To Cloud Native Transitions And Modern Application Development","en-us/blog/observability-is-key-to-cloud-native-transitions-and-modern-application-development.yml","en-us/blog/observability-is-key-to-cloud-native-transitions-and-modern-application-development",{"_path":13584,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13585,"content":13591,"config":13597,"_id":13599,"_type":16,"title":13600,"_source":17,"_file":13601,"_stem":13602,"_extension":20},"/en-us/blog/advice-for-women-seeking-careers-in-tech",{"title":13586,"description":13587,"ogTitle":13586,"ogDescription":13587,"noIndex":6,"ogImage":13588,"ogUrl":13589,"ogSiteName":995,"ogType":996,"canonicalUrls":13589,"schema":13590},"Women in Tech: Use Your Uniqueness as a Career Superpower","GitLab's Women's Team Member Resource Group shares tips on how to make a mark in this industry.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677856/Blog/Hero%20Images/collaboration.png","https://about.gitlab.com/blog/advice-for-women-seeking-careers-in-tech","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Use your uniqueness as a superpower and other advice for women seeking careers in tech\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kyla Gradin Dahl\"}],\n        \"datePublished\": \"2022-04-04\",\n      }",{"title":13592,"description":13587,"authors":13593,"heroImage":13588,"date":13595,"category":6121,"tags":13596},"Use your uniqueness as a superpower and other advice for women seeking careers in tech",[13594],"Kyla Gradin Dahl","2022-04-04",[1569,6980,2815],{"slug":13598,"featured":6,"template":736},"advice-for-women-seeking-careers-in-tech","content:en-us:blog:advice-for-women-seeking-careers-in-tech.yml","Advice For Women Seeking Careers In Tech","en-us/blog/advice-for-women-seeking-careers-in-tech.yml","en-us/blog/advice-for-women-seeking-careers-in-tech",{"_path":13604,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13605,"content":13611,"config":13615,"_id":13617,"_type":16,"title":13618,"_source":17,"_file":13619,"_stem":13620,"_extension":20},"/en-us/blog/ensuring-compliance",{"title":13606,"description":13607,"ogTitle":13606,"ogDescription":13607,"noIndex":6,"ogImage":13608,"ogUrl":13609,"ogSiteName":995,"ogType":996,"canonicalUrls":13609,"schema":13610},"How to ensure separation of duties and enforce compliance with GitLab","Use your DevSecOps platform to help maintain compliance without compromising on development speed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098232/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_479904468%20%281%29_4lmOEVlaXP0YC3hSFmOw6i_1750098232241.jpg","https://about.gitlab.com/blog/ensuring-compliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to ensure separation of duties and enforce compliance with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Beatriz Barbosa\"},{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2022-04-04\",\n      }",{"title":13606,"description":13607,"authors":13612,"heroImage":13608,"date":13595,"category":790,"tags":13614,"updatedDate":3576},[13613,1097],"Beatriz Barbosa",[790,2097,2098,730],{"slug":13616,"featured":6,"template":736},"ensuring-compliance","content:en-us:blog:ensuring-compliance.yml","Ensuring Compliance","en-us/blog/ensuring-compliance.yml","en-us/blog/ensuring-compliance",{"_path":13622,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13623,"content":13628,"config":13631,"_id":13633,"_type":16,"title":13634,"_source":17,"_file":13635,"_stem":13636,"_extension":20},"/en-us/blog/learn-python-with-pj-part-3",{"title":13624,"description":13625,"ogTitle":13624,"ogDescription":13625,"noIndex":6,"ogImage":12801,"ogUrl":13626,"ogSiteName":995,"ogType":996,"canonicalUrls":13626,"schema":13627},"Learn Python with Pj! Part 3 - Functions and strings","Pj shares his experiences learning how to program functions and strings.","https://about.gitlab.com/blog/learn-python-with-pj-part-3","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learn Python with Pj! Part 3 - Functions and strings\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-04-04\",\n      }",{"title":13624,"description":13625,"authors":13629,"heroImage":12801,"date":13595,"category":858,"tags":13630},[11595],[6980,8475,772],{"slug":13632,"featured":6,"template":736},"learn-python-with-pj-part-3","content:en-us:blog:learn-python-with-pj-part-3.yml","Learn Python With Pj Part 3","en-us/blog/learn-python-with-pj-part-3.yml","en-us/blog/learn-python-with-pj-part-3",{"_path":13638,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13639,"content":13645,"config":13649,"_id":13651,"_type":16,"title":13652,"_source":17,"_file":13653,"_stem":13654,"_extension":20},"/en-us/blog/engineering-director-shadow",{"title":13640,"description":13641,"ogTitle":13640,"ogDescription":13641,"noIndex":6,"ogImage":13642,"ogUrl":13643,"ogSiteName":995,"ogType":996,"canonicalUrls":13643,"schema":13644},"The engineering director shadow experience at GitLab","Shadowing an engineering director at GitLab was an immersive, collaborative experience. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667509/Blog/Hero%20Images/continuous-integration-from-jenkins-to-gitlab-using-docker.jpg","https://about.gitlab.com/blog/engineering-director-shadow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The engineering director shadow experience at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2022-04-01\",\n      }",{"title":13640,"description":13641,"authors":13646,"heroImage":13642,"date":13647,"category":301,"tags":13648},[855],"2022-04-01",[964,1569,6980],{"slug":13650,"featured":6,"template":736},"engineering-director-shadow","content:en-us:blog:engineering-director-shadow.yml","Engineering Director Shadow","en-us/blog/engineering-director-shadow.yml","en-us/blog/engineering-director-shadow",{"_path":13656,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13657,"content":13663,"config":13669,"_id":13671,"_type":16,"title":13672,"_source":17,"_file":13673,"_stem":13674,"_extension":20},"/en-us/blog/kontra-and-gitlab-integrate-vulnerability-education-into-the-devops-workflow",{"title":13658,"description":13659,"ogTitle":13658,"ogDescription":13659,"noIndex":6,"ogImage":13660,"ogUrl":13661,"ogSiteName":995,"ogType":996,"canonicalUrls":13661,"schema":13662},"Integrating vulnerability education into DevOps workflows","Interactive training labs are now available within the GitLab platform from Kontra Application Security, a ThriveDX company.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668199/Blog/Hero%20Images/KontraCover.png","https://about.gitlab.com/blog/kontra-and-gitlab-integrate-vulnerability-education-into-the-devops-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Kontra and GitLab integrate vulnerability education into the DevOps workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gyan Chawdhary\"}],\n        \"datePublished\": \"2022-03-31\",\n      }",{"title":13664,"description":13659,"authors":13665,"heroImage":13660,"date":13667,"category":577,"tags":13668},"Kontra and GitLab integrate vulnerability education into the DevOps workflow",[13666],"Gyan Chawdhary","2022-03-31",[233,790,564],{"slug":13670,"featured":6,"template":736},"kontra-and-gitlab-integrate-vulnerability-education-into-the-devops-workflow","content:en-us:blog:kontra-and-gitlab-integrate-vulnerability-education-into-the-devops-workflow.yml","Kontra And Gitlab Integrate Vulnerability Education Into The Devops Workflow","en-us/blog/kontra-and-gitlab-integrate-vulnerability-education-into-the-devops-workflow.yml","en-us/blog/kontra-and-gitlab-integrate-vulnerability-education-into-the-devops-workflow",{"_path":13676,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13677,"content":13682,"config":13687,"_id":13689,"_type":16,"title":13690,"_source":17,"_file":13691,"_stem":13692,"_extension":20},"/en-us/blog/gitops-with-gitlab-manage-the-agent",{"title":13678,"description":13679,"ogTitle":13678,"ogDescription":13679,"noIndex":6,"ogImage":12964,"ogUrl":13680,"ogSiteName":995,"ogType":996,"canonicalUrls":13680,"schema":13681},"Self-managing Kubernetes agent installation with GitOps","This is the eighth and last article in a series of tutorials on how to do GitOps with GitLab.","https://about.gitlab.com/blog/gitops-with-gitlab-manage-the-agent","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps with GitLab: Turn a GitLab agent for Kubernetes installation to manage itself\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2022-03-30\",\n      }",{"title":13683,"description":13679,"authors":13684,"heroImage":12964,"date":13685,"category":858,"tags":13686},"GitOps with GitLab: Turn a GitLab agent for Kubernetes installation to manage itself",[2942],"2022-03-30",[559,2908,772],{"slug":13688,"featured":6,"template":736},"gitops-with-gitlab-manage-the-agent","content:en-us:blog:gitops-with-gitlab-manage-the-agent.yml","Gitops With Gitlab Manage The Agent","en-us/blog/gitops-with-gitlab-manage-the-agent.yml","en-us/blog/gitops-with-gitlab-manage-the-agent",{"_path":13694,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13695,"content":13700,"config":13704,"_id":13706,"_type":16,"title":13707,"_source":17,"_file":13708,"_stem":13709,"_extension":20},"/en-us/blog/comply-with-nist-secure-supply-chain-framework-with-gitlab",{"title":13696,"description":13697,"ogTitle":13696,"ogDescription":13697,"noIndex":6,"ogImage":10041,"ogUrl":13698,"ogSiteName":995,"ogType":996,"canonicalUrls":13698,"schema":13699},"Comply with NIST's secure software supply chain framework with GitLab","The U.S. government's Secure Software Development Framework has four key practices. GitLab's DevOps platform has features to address them all.","https://about.gitlab.com/blog/comply-with-nist-secure-supply-chain-framework-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Comply with NIST's secure software supply chain framework with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-03-29\",\n      }",{"title":13696,"description":13697,"authors":13701,"heroImage":10041,"date":13702,"category":790,"tags":13703},[3506],"2022-03-29",[574,543,790,186],{"slug":13705,"featured":6,"template":736},"comply-with-nist-secure-supply-chain-framework-with-gitlab","content:en-us:blog:comply-with-nist-secure-supply-chain-framework-with-gitlab.yml","Comply With Nist Secure Supply Chain Framework With Gitlab","en-us/blog/comply-with-nist-secure-supply-chain-framework-with-gitlab.yml","en-us/blog/comply-with-nist-secure-supply-chain-framework-with-gitlab",{"_path":13711,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13712,"content":13717,"config":13721,"_id":13723,"_type":16,"title":13724,"_source":17,"_file":13725,"_stem":13726,"_extension":20},"/en-us/blog/efficient-free-tier",{"title":13713,"description":13714,"ogTitle":13713,"ogDescription":13714,"noIndex":6,"ogImage":11046,"ogUrl":13715,"ogSiteName":995,"ogType":996,"canonicalUrls":13715,"schema":13716},"Upcoming changes to user limits on Free tier of GitLab SaaS","5 user limit per top-level group on GitLab SaaS Free tier","https://about.gitlab.com/blog/efficient-free-tier","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Upcoming changes to user limits on Free tier of GitLab SaaS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-03-24\",\n      }",{"title":13713,"description":13714,"authors":13718,"heroImage":11046,"date":13719,"category":1049,"tags":13720},[3701],"2022-03-24",[1049],{"slug":13722,"featured":6,"template":736},"efficient-free-tier","content:en-us:blog:efficient-free-tier.yml","Efficient Free Tier","en-us/blog/efficient-free-tier.yml","en-us/blog/efficient-free-tier",{"_path":13728,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13729,"content":13734,"config":13737,"_id":13739,"_type":16,"title":13740,"_source":17,"_file":13741,"_stem":13742,"_extension":20},"/en-us/blog/heres-how-to-get-integrated-secure-coding-advice-in-gitlab",{"title":13730,"description":13731,"ogTitle":13730,"ogDescription":13731,"noIndex":6,"ogImage":5461,"ogUrl":13732,"ogSiteName":995,"ogType":996,"canonicalUrls":13732,"schema":13733},"How to get integrated secure coding advice in GitLab","Secure Code Warrior now offers integrated security training and guidance within the GitLab DevOps Platform.","https://about.gitlab.com/blog/heres-how-to-get-integrated-secure-coding-advice-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to get integrated secure coding advice in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-03-24\",\n      }",{"title":13730,"description":13731,"authors":13735,"heroImage":5461,"date":13719,"category":1049,"tags":13736},[1000],[790,564,964],{"slug":13738,"featured":6,"template":736},"heres-how-to-get-integrated-secure-coding-advice-in-gitlab","content:en-us:blog:heres-how-to-get-integrated-secure-coding-advice-in-gitlab.yml","Heres How To Get Integrated Secure Coding Advice In Gitlab","en-us/blog/heres-how-to-get-integrated-secure-coding-advice-in-gitlab.yml","en-us/blog/heres-how-to-get-integrated-secure-coding-advice-in-gitlab",{"_path":13744,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13745,"content":13750,"config":13756,"_id":13758,"_type":16,"title":13759,"_source":17,"_file":13760,"_stem":13761,"_extension":20},"/en-us/blog/gitlab-rezilion-integration-reduces-vulnerability-backlog-identifies-exploitable-risks-to-fix",{"title":13746,"description":13747,"ogTitle":13746,"ogDescription":13747,"noIndex":6,"ogImage":10202,"ogUrl":13748,"ogSiteName":995,"ogType":996,"canonicalUrls":13748,"schema":13749},"Reducing vulnerability backlog with Rezilion and GitLab","The native integration helps developers detect and remediate vulnerabilities that are exploitable early on in the development process.","https://about.gitlab.com/blog/gitlab-rezilion-integration-reduces-vulnerability-backlog-identifies-exploitable-risks-to-fix","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab's integration with Rezilion reduces vulnerability backlog and identifies exploitable risks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Baksheesh Singh Ghuman\"}],\n        \"datePublished\": \"2022-03-23\",\n      }",{"title":13751,"description":13747,"authors":13752,"heroImage":10202,"date":13754,"category":790,"tags":13755},"How GitLab's integration with Rezilion reduces vulnerability backlog and identifies exploitable risks",[13753],"Baksheesh Singh Ghuman","2022-03-23",[790,574,233,1049],{"slug":13757,"featured":6,"template":736},"gitlab-rezilion-integration-reduces-vulnerability-backlog-identifies-exploitable-risks-to-fix","content:en-us:blog:gitlab-rezilion-integration-reduces-vulnerability-backlog-identifies-exploitable-risks-to-fix.yml","Gitlab Rezilion Integration Reduces Vulnerability Backlog Identifies Exploitable Risks To Fix","en-us/blog/gitlab-rezilion-integration-reduces-vulnerability-backlog-identifies-exploitable-risks-to-fix.yml","en-us/blog/gitlab-rezilion-integration-reduces-vulnerability-backlog-identifies-exploitable-risks-to-fix",{"_path":13763,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13764,"content":13769,"config":13773,"_id":13775,"_type":16,"title":13776,"_source":17,"_file":13777,"_stem":13778,"_extension":20},"/en-us/blog/action-weve-taken-in-response-to-potential-okta-breach",{"title":13765,"description":13766,"ogTitle":13765,"ogDescription":13766,"noIndex":6,"ogImage":13091,"ogUrl":13767,"ogSiteName":995,"ogType":996,"canonicalUrls":13767,"schema":13768},"Action we've taken in response to a potential Okta breach","Actions we've taken to investigate a potential Okta breach.","https://about.gitlab.com/blog/action-weve-taken-in-response-to-potential-okta-breach","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Action we've taken in response to a potential Okta breach\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-03-22\",\n      }",{"title":13765,"description":13766,"authors":13770,"heroImage":13091,"date":13771,"category":790,"tags":13772},[1000],"2022-03-22",[790],{"slug":13774,"featured":6,"template":736},"action-weve-taken-in-response-to-potential-okta-breach","content:en-us:blog:action-weve-taken-in-response-to-potential-okta-breach.yml","Action Weve Taken In Response To Potential Okta Breach","en-us/blog/action-weve-taken-in-response-to-potential-okta-breach.yml","en-us/blog/action-weve-taken-in-response-to-potential-okta-breach",{"_path":13780,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13781,"content":13786,"config":13791,"_id":13793,"_type":16,"title":13794,"_source":17,"_file":13795,"_stem":13796,"_extension":20},"/en-us/blog/security-hygiene-best-practices-for-gitlab-users",{"title":13782,"description":13783,"ogTitle":13782,"ogDescription":13783,"noIndex":6,"ogImage":13091,"ogUrl":13784,"ogSiteName":995,"ogType":996,"canonicalUrls":13784,"schema":13785},"Security hygiene best practices for GitLab users","Security hygiene measures that GitLab.com and Self-managed users should consider implementing.","https://about.gitlab.com/blog/security-hygiene-best-practices-for-gitlab-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Security hygiene best practices for GitLab users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Johnathan Hunt\"}],\n        \"datePublished\": \"2022-03-21\",\n      }",{"title":13782,"description":13783,"authors":13787,"heroImage":13091,"date":13789,"category":790,"tags":13790},[13788],"Johnathan Hunt","2022-03-21",[790],{"slug":13792,"featured":6,"template":736},"security-hygiene-best-practices-for-gitlab-users","content:en-us:blog:security-hygiene-best-practices-for-gitlab-users.yml","Security Hygiene Best Practices For Gitlab Users","en-us/blog/security-hygiene-best-practices-for-gitlab-users.yml","en-us/blog/security-hygiene-best-practices-for-gitlab-users",{"_path":13798,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13799,"content":13805,"config":13810,"_id":13812,"_type":16,"title":13813,"_source":17,"_file":13814,"_stem":13815,"_extension":20},"/en-us/blog/want-a-better-devops-career-learn-the-business",{"title":13800,"description":13801,"ogTitle":13800,"ogDescription":13801,"noIndex":6,"ogImage":13802,"ogUrl":13803,"ogSiteName":995,"ogType":996,"canonicalUrls":13803,"schema":13804},"Want a better DevOps career? Learn the business","A better DevOps career starts with a thorough understanding of business. Here's how to get started.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669715/Blog/Hero%20Images/synchronous-collaboration-as-a-remote-designer.jpg","https://about.gitlab.com/blog/want-a-better-devops-career-learn-the-business","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Want a better DevOps career? Learn the business\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Johanna Ambrosio\"}],\n        \"datePublished\": \"2022-03-17\",\n      }",{"title":13800,"description":13801,"authors":13806,"heroImage":13802,"date":13808,"category":8140,"tags":13809},[13807],"Johanna Ambrosio","2022-03-17",[564,6980,2815],{"slug":13811,"featured":6,"template":736},"want-a-better-devops-career-learn-the-business","content:en-us:blog:want-a-better-devops-career-learn-the-business.yml","Want A Better Devops Career Learn The Business","en-us/blog/want-a-better-devops-career-learn-the-business.yml","en-us/blog/want-a-better-devops-career-learn-the-business",{"_path":13817,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13818,"content":13823,"config":13828,"_id":13830,"_type":16,"title":13831,"_source":17,"_file":13832,"_stem":13833,"_extension":20},"/en-us/blog/gitlab-and-testify-sec-witness-alliance",{"title":13819,"description":13820,"ogTitle":13819,"ogDescription":13820,"noIndex":6,"ogImage":11046,"ogUrl":13821,"ogSiteName":995,"ogType":996,"canonicalUrls":13821,"schema":13822},"How to enhance supply chain security with GitLab and TestifySec","New alliance partner TestifySec makes Witness available in GitLab","https://about.gitlab.com/blog/gitlab-and-testify-sec-witness-alliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to enhance supply chain security with GitLab and TestifySec\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nicole Schwartz\"}],\n        \"datePublished\": \"2022-03-16\",\n      }",{"title":13819,"description":13820,"authors":13824,"heroImage":11046,"date":13826,"category":858,"tags":13827},[13825],"Nicole Schwartz","2022-03-16",[790,2815,1335],{"slug":13829,"featured":6,"template":736},"gitlab-and-testify-sec-witness-alliance","content:en-us:blog:gitlab-and-testify-sec-witness-alliance.yml","Gitlab And Testify Sec Witness Alliance","en-us/blog/gitlab-and-testify-sec-witness-alliance.yml","en-us/blog/gitlab-and-testify-sec-witness-alliance",{"_path":13835,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13836,"content":13841,"config":13846,"_id":13848,"_type":16,"title":13849,"_source":17,"_file":13850,"_stem":13851,"_extension":20},"/en-us/blog/publishing-obsidian-notes-with-gitlab-pages",{"title":13837,"description":13838,"ogTitle":13837,"ogDescription":13838,"noIndex":6,"ogImage":11046,"ogUrl":13839,"ogSiteName":995,"ogType":996,"canonicalUrls":13839,"schema":13840},"Publishing Obsidian.md notes with GitLab Pages","How to publish your Obsidian.md documents to a GitLab Pages site","https://about.gitlab.com/blog/publishing-obsidian-notes-with-gitlab-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Publishing Obsidian.md notes with GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Scott Hampton\"}],\n        \"datePublished\": \"2022-03-15\",\n      }",{"title":13837,"description":13838,"authors":13842,"heroImage":11046,"date":13844,"category":858,"tags":13845},[13843],"Scott Hampton","2022-03-15",[772],{"slug":13847,"featured":6,"template":736},"publishing-obsidian-notes-with-gitlab-pages","content:en-us:blog:publishing-obsidian-notes-with-gitlab-pages.yml","Publishing Obsidian Notes With Gitlab Pages","en-us/blog/publishing-obsidian-notes-with-gitlab-pages.yml","en-us/blog/publishing-obsidian-notes-with-gitlab-pages",{"_path":13853,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13854,"content":13860,"config":13864,"_id":13866,"_type":16,"title":13867,"_source":17,"_file":13868,"_stem":13869,"_extension":20},"/en-us/blog/installing-gitlab-on-raspberry-pi-64-bit-os",{"title":13855,"description":13856,"ogTitle":13855,"ogDescription":13856,"noIndex":6,"ogImage":13857,"ogUrl":13858,"ogSiteName":995,"ogType":996,"canonicalUrls":13858,"schema":13859},"Installing GitLab on Raspberry Pi 64-bit OS","A Raspberry Pi enthusiast tries to run GitLab on the new 64-bit OS...and here's what happened.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679433/Blog/Hero%20Images/anto-meneghini-gqytxsrctvw-unsplash.jpg","https://about.gitlab.com/blog/installing-gitlab-on-raspberry-pi-64-bit-os","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Installing GitLab on Raspberry Pi 64-bit OS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-03-14\",\n      }",{"title":13855,"description":13856,"authors":13861,"heroImage":13857,"date":13862,"category":858,"tags":13863},[10835],"2022-03-14",[4182,233,1988],{"slug":13865,"featured":6,"template":736},"installing-gitlab-on-raspberry-pi-64-bit-os","content:en-us:blog:installing-gitlab-on-raspberry-pi-64-bit-os.yml","Installing Gitlab On Raspberry Pi 64 Bit Os","en-us/blog/installing-gitlab-on-raspberry-pi-64-bit-os.yml","en-us/blog/installing-gitlab-on-raspberry-pi-64-bit-os",{"_path":13871,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13872,"content":13877,"config":13880,"_id":13882,"_type":16,"title":13883,"_source":17,"_file":13884,"_stem":13885,"_extension":20},"/en-us/blog/gitlab-actions-to-date-regarding-russian-invasion-of-ukraine",{"title":13873,"description":13874,"ogTitle":13873,"ogDescription":13874,"noIndex":6,"ogImage":11046,"ogUrl":13875,"ogSiteName":995,"ogType":996,"canonicalUrls":13875,"schema":13876},"GitLab actions to date regarding Russian invasion of Ukraine","Our actions to date regarding the Russian invasion of Ukraine.","https://about.gitlab.com/blog/gitlab-actions-to-date-regarding-russian-invasion-of-ukraine","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab actions to date regarding Russian invasion of Ukraine\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2022-03-11\",\n      }",{"title":13873,"description":13874,"authors":13878,"heroImage":11046,"date":13879,"category":301},[3701],"2022-03-11",{"slug":13881,"featured":6,"template":736},"gitlab-actions-to-date-regarding-russian-invasion-of-ukraine","content:en-us:blog:gitlab-actions-to-date-regarding-russian-invasion-of-ukraine.yml","Gitlab Actions To Date Regarding Russian Invasion Of Ukraine","en-us/blog/gitlab-actions-to-date-regarding-russian-invasion-of-ukraine.yml","en-us/blog/gitlab-actions-to-date-regarding-russian-invasion-of-ukraine",{"_path":13887,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13888,"content":13893,"config":13897,"_id":13899,"_type":16,"title":13900,"_source":17,"_file":13901,"_stem":13902,"_extension":20},"/en-us/blog/if-its-time-to-learn-devops-heres-where-to-begin",{"title":13889,"description":13890,"ogTitle":13889,"ogDescription":13890,"noIndex":6,"ogImage":11609,"ogUrl":13891,"ogSiteName":995,"ogType":996,"canonicalUrls":13891,"schema":13892},"It's time to learn DevOps and here's where to begin","DevOps is a unique blend of tech, tools and culture. Take it step-by-step and it's easy to learn. This simple guide shows you how to get started. Learn more here!","https://about.gitlab.com/blog/if-its-time-to-learn-devops-heres-where-to-begin","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"It's time to learn DevOps and here's where to begin\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-03-10\",\n      }",{"title":13889,"description":13890,"authors":13894,"heroImage":11609,"date":13895,"category":577,"tags":13896},[3999],"2022-03-10",[564,110,2815],{"slug":13898,"featured":6,"template":736},"if-its-time-to-learn-devops-heres-where-to-begin","content:en-us:blog:if-its-time-to-learn-devops-heres-where-to-begin.yml","If Its Time To Learn Devops Heres Where To Begin","en-us/blog/if-its-time-to-learn-devops-heres-where-to-begin.yml","en-us/blog/if-its-time-to-learn-devops-heres-where-to-begin",{"_path":13904,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13905,"content":13910,"config":13914,"_id":13916,"_type":16,"title":13917,"_source":17,"_file":13918,"_stem":13919,"_extension":20},"/en-us/blog/sharing-slis-across-departments",{"title":13906,"description":13907,"ogTitle":13906,"ogDescription":13907,"noIndex":6,"ogImage":11046,"ogUrl":13908,"ogSiteName":995,"ogType":996,"canonicalUrls":13908,"schema":13909},"How we share SLIs across engineering departments","The Scalability team engages with the Development department for collaborating on SLIs. The first post in this series explains how we made available information accessible for development groups.","https://about.gitlab.com/blog/sharing-slis-across-departments","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we share SLIs across engineering departments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bob Van Landuyt\"}],\n        \"datePublished\": \"2022-03-10\",\n      }",{"title":13906,"description":13907,"authors":13911,"heroImage":11046,"date":13895,"category":858,"tags":13913},[13912],"Bob Van Landuyt",[6376,1988,1335,2815],{"slug":13915,"featured":6,"template":736},"sharing-slis-across-departments","content:en-us:blog:sharing-slis-across-departments.yml","Sharing Slis Across Departments","en-us/blog/sharing-slis-across-departments.yml","en-us/blog/sharing-slis-across-departments",{"_path":13921,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13922,"content":13927,"config":13931,"_id":13933,"_type":16,"title":13934,"_source":17,"_file":13935,"_stem":13936,"_extension":20},"/en-us/blog/developing-a-successful-devops-strategy",{"title":13923,"description":13924,"ogTitle":13923,"ogDescription":13924,"noIndex":6,"ogImage":10830,"ogUrl":13925,"ogSiteName":995,"ogType":996,"canonicalUrls":13925,"schema":13926},"Developing a successful DevOps strategy","Here's what it takes to build a DevOps practice that works for everyone on the team.","https://about.gitlab.com/blog/developing-a-successful-devops-strategy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Developing a successful DevOps strategy\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-03-09\",\n      }",{"title":13923,"description":13924,"authors":13928,"heroImage":10830,"date":13929,"category":577,"tags":13930},[1000],"2022-03-09",[564,2815,729],{"slug":13932,"featured":6,"template":736},"developing-a-successful-devops-strategy","content:en-us:blog:developing-a-successful-devops-strategy.yml","Developing A Successful Devops Strategy","en-us/blog/developing-a-successful-devops-strategy.yml","en-us/blog/developing-a-successful-devops-strategy",{"_path":13938,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13939,"content":13945,"config":13948,"_id":13950,"_type":16,"title":13951,"_source":17,"_file":13952,"_stem":13953,"_extension":20},"/en-us/blog/efficient-pipelines",{"title":13940,"description":13941,"ogTitle":13940,"ogDescription":13941,"noIndex":6,"ogImage":13942,"ogUrl":13943,"ogSiteName":995,"ogType":996,"canonicalUrls":13943,"schema":13944},"Extract greater efficiency from your CI pipelines","Learn some techniques to find the balance between pipeline performance and resource utilization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667534/Blog/Hero%20Images/ci-pipeline.jpg","https://about.gitlab.com/blog/efficient-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Extract greater efficiency from your CI pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vlad Budica\"}],\n        \"datePublished\": \"2022-03-09\",\n      }",{"title":13940,"description":13941,"authors":13946,"heroImage":13942,"date":13929,"category":858,"tags":13947},[12643],[564,2097,2098],{"slug":13949,"featured":6,"template":736},"efficient-pipelines","content:en-us:blog:efficient-pipelines.yml","Efficient Pipelines","en-us/blog/efficient-pipelines.yml","en-us/blog/efficient-pipelines",{"_path":13955,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13956,"content":13962,"config":13966,"_id":13968,"_type":16,"title":13969,"_source":17,"_file":13970,"_stem":13971,"_extension":20},"/en-us/blog/key-organizational-models-for-devops-teams",{"title":13957,"description":13958,"ogTitle":13957,"ogDescription":13958,"noIndex":6,"ogImage":13959,"ogUrl":13960,"ogSiteName":995,"ogType":996,"canonicalUrls":13960,"schema":13961},"5 key organizational models for DevOps teams","DevOps teams can be organized in multiple ways. Identify the one that fits your organization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667194/Blog/Hero%20Images/2020-11-19-integration-management-header.jpg","https://about.gitlab.com/blog/key-organizational-models-for-devops-teams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 key organizational models for DevOps teams\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Johanna Ambrosio\"}],\n        \"datePublished\": \"2022-03-08\",\n      }",{"title":13957,"description":13958,"authors":13963,"heroImage":13959,"date":13964,"category":8140,"tags":13965},[13807],"2022-03-08",[564,2815,8475],{"slug":13967,"featured":6,"template":736},"key-organizational-models-for-devops-teams","content:en-us:blog:key-organizational-models-for-devops-teams.yml","Key Organizational Models For Devops Teams","en-us/blog/key-organizational-models-for-devops-teams.yml","en-us/blog/key-organizational-models-for-devops-teams",{"_path":13973,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13974,"content":13980,"config":13984,"_id":13986,"_type":16,"title":13987,"_source":17,"_file":13988,"_stem":13989,"_extension":20},"/en-us/blog/how-to-protect-gitlab-connected-ssh-key-with-yubikey",{"title":13975,"description":13976,"ogTitle":13975,"ogDescription":13976,"noIndex":6,"ogImage":13977,"ogUrl":13978,"ogSiteName":995,"ogType":996,"canonicalUrls":13978,"schema":13979},"How to protect GitLab-connected SSH key with Yubikey","Add a layer of security to SSH keys by restricting physical access to YubiKey.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667202/Blog/Hero%20Images/gitlabultimatesecurity.jpg","https://about.gitlab.com/blog/how-to-protect-gitlab-connected-ssh-key-with-yubikey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to protect GitLab-connected SSH key with Yubikey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-03-03\",\n      }",{"title":13975,"description":13976,"authors":13981,"heroImage":13977,"date":13982,"category":858,"tags":13983},[10835],"2022-03-03",[564,790,772],{"slug":13985,"featured":6,"template":736},"how-to-protect-gitlab-connected-ssh-key-with-yubikey","content:en-us:blog:how-to-protect-gitlab-connected-ssh-key-with-yubikey.yml","How To Protect Gitlab Connected Ssh Key With Yubikey","en-us/blog/how-to-protect-gitlab-connected-ssh-key-with-yubikey.yml","en-us/blog/how-to-protect-gitlab-connected-ssh-key-with-yubikey",{"_path":13991,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":13992,"content":13998,"config":14003,"_id":14005,"_type":16,"title":14006,"_source":17,"_file":14007,"_stem":14008,"_extension":20},"/en-us/blog/bringing-ai-gitlab-repository",{"title":13993,"description":13994,"ogTitle":13993,"ogDescription":13994,"noIndex":6,"ogImage":13995,"ogUrl":13996,"ogSiteName":995,"ogType":996,"canonicalUrls":13996,"schema":13997},"GitLab and Tabnine: AI-powered code completion for GitLab repositories","Development teams can get a custom AI model based on their private code that enables knowledge sharing, reduced technical debt, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682249/Blog/Hero%20Images/blog_2757.png","https://about.gitlab.com/blog/bringing-ai-gitlab-repository","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and Tabnine: AI-powered code completion for GitLab repositories\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brandon Jung\"}],\n        \"datePublished\": \"2022-03-02\",\n      }",{"title":13993,"description":13994,"authors":13999,"heroImage":13995,"date":14001,"category":858,"tags":14002},[14000],"Brandon Jung","2022-03-02",[564,1049,1932],{"slug":14004,"featured":6,"template":736},"bringing-ai-gitlab-repository","content:en-us:blog:bringing-ai-gitlab-repository.yml","Bringing Ai Gitlab Repository","en-us/blog/bringing-ai-gitlab-repository.yml","en-us/blog/bringing-ai-gitlab-repository",{"_path":14010,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14011,"content":14017,"config":14021,"_id":14023,"_type":16,"title":14024,"_source":17,"_file":14025,"_stem":14026,"_extension":20},"/en-us/blog/how-to-move-from-ic-to-devops-manager-and-succeed",{"title":14012,"description":14013,"ogTitle":14012,"ogDescription":14013,"noIndex":6,"ogImage":14014,"ogUrl":14015,"ogSiteName":995,"ogType":996,"canonicalUrls":14015,"schema":14016},"How to move from IC to DevOps manager and succeed","Transitioning from great DevOps engineer to great DevOps manager isn't always easy. Here are some tools to help you get a management role and keep it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663753/Blog/Hero%20Images/managers-more-optimistic-than-developers.jpg","https://about.gitlab.com/blog/how-to-move-from-ic-to-devops-manager-and-succeed","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to move from IC to DevOps manager and succeed\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lauren Gibbons Paul\"}],\n        \"datePublished\": \"2022-03-01\",\n      }",{"title":14012,"description":14013,"authors":14018,"heroImage":14014,"date":14019,"category":8140,"tags":14020},[13293],"2022-03-01",[564,6980,2815],{"slug":14022,"featured":6,"template":736},"how-to-move-from-ic-to-devops-manager-and-succeed","content:en-us:blog:how-to-move-from-ic-to-devops-manager-and-succeed.yml","How To Move From Ic To Devops Manager And Succeed","en-us/blog/how-to-move-from-ic-to-devops-manager-and-succeed.yml","en-us/blog/how-to-move-from-ic-to-devops-manager-and-succeed",{"_path":14028,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14029,"content":14034,"config":14037,"_id":14039,"_type":16,"title":14040,"_source":17,"_file":14041,"_stem":14042,"_extension":20},"/en-us/blog/learn-python-with-pj-part-2",{"title":14030,"description":14031,"ogTitle":14030,"ogDescription":14031,"noIndex":6,"ogImage":12801,"ogUrl":14032,"ogSiteName":995,"ogType":996,"canonicalUrls":14032,"schema":14033},"Learn Python with Pj! Part 2 - Lists and loops","Follow along as our education evangelist Pj Metz learns about lists and loops in the second of this multipart series.","https://about.gitlab.com/blog/learn-python-with-pj-part-2","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learn Python with Pj! Part 2 - Lists and loops\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-03-01\",\n      }",{"title":14030,"description":14031,"authors":14035,"heroImage":12801,"date":14019,"category":858,"tags":14036},[11595],[6980,564,8475],{"slug":14038,"featured":6,"template":736},"learn-python-with-pj-part-2","content:en-us:blog:learn-python-with-pj-part-2.yml","Learn Python With Pj Part 2","en-us/blog/learn-python-with-pj-part-2.yml","en-us/blog/learn-python-with-pj-part-2",{"_path":14044,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14045,"content":14051,"config":14057,"_id":14059,"_type":16,"title":14060,"_source":17,"_file":14061,"_stem":14062,"_extension":20},"/en-us/blog/parent-child-vs-multi-project-pipelines",{"title":14046,"description":14047,"ogTitle":14046,"ogDescription":14047,"noIndex":6,"ogImage":14048,"ogUrl":14049,"ogSiteName":995,"ogType":996,"canonicalUrls":14049,"schema":14050},"CI/CD patterns with parent-child and multi-project pipelines","Parent-child pipelines inherit a lot of the design from multi-project pipelines, but they also have differences that make them unique.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659961/Blog/Hero%20Images/parent-child-multi-project-pipelines-unsplash.jpg","https://about.gitlab.com/blog/parent-child-vs-multi-project-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Breaking down CI/CD complexity with parent-child and multi-project pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabio Pitino\"}],\n        \"datePublished\": \"2022-02-22\",\n      }",{"title":14052,"description":14047,"authors":14053,"heroImage":14048,"date":14055,"category":858,"tags":14056},"Breaking down CI/CD complexity with parent-child and multi-project pipelines",[14054],"Fabio Pitino","2022-02-22",[2097,2098,730],{"slug":14058,"featured":6,"template":736},"parent-child-vs-multi-project-pipelines","content:en-us:blog:parent-child-vs-multi-project-pipelines.yml","Parent Child Vs Multi Project Pipelines","en-us/blog/parent-child-vs-multi-project-pipelines.yml","en-us/blog/parent-child-vs-multi-project-pipelines",{"_path":14064,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14065,"content":14070,"config":14074,"_id":14076,"_type":16,"title":14077,"_source":17,"_file":14078,"_stem":14079,"_extension":20},"/en-us/blog/the-best-of-gitlabs-devops-platform-2021",{"title":14066,"description":14067,"ogTitle":14066,"ogDescription":14067,"noIndex":6,"ogImage":13642,"ogUrl":14068,"ogSiteName":995,"ogType":996,"canonicalUrls":14068,"schema":14069},"The best of GitLab's DevOps Platform 2021","Some highlights from last year, and what to expect from 2022.","https://about.gitlab.com/blog/the-best-of-gitlabs-devops-platform-2021","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The best of GitLab's DevOps Platform 2021\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-02-18\",\n      }",{"title":14066,"description":14067,"authors":14071,"heroImage":13642,"date":14072,"category":577,"tags":14073},[10835],"2022-02-18",[564,790,2815],{"slug":14075,"featured":6,"template":736},"the-best-of-gitlabs-devops-platform-2021","content:en-us:blog:the-best-of-gitlabs-devops-platform-2021.yml","The Best Of Gitlabs Devops Platform 2021","en-us/blog/the-best-of-gitlabs-devops-platform-2021.yml","en-us/blog/the-best-of-gitlabs-devops-platform-2021",{"_path":14081,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14082,"content":14088,"config":14092,"_id":14094,"_type":16,"title":14095,"_source":17,"_file":14096,"_stem":14097,"_extension":20},"/en-us/blog/fantastic-infrastructure-as-code-security-attacks-and-how-to-find-them",{"title":14083,"description":14084,"ogTitle":14083,"ogDescription":14084,"noIndex":6,"ogImage":14085,"ogUrl":14086,"ogSiteName":995,"ogType":996,"canonicalUrls":14086,"schema":14087},"Fantastic Infrastructure as Code security attacks and how to find them","Learn about possible attack scenarios in Infrastructure as Code and GitOps environments, evaluate tools and scanners with Terraform, Kubernetes, etc., and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667482/Blog/Hero%20Images/cover-image-unsplash.jpg","https://about.gitlab.com/blog/fantastic-infrastructure-as-code-security-attacks-and-how-to-find-them","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Fantastic Infrastructure as Code security attacks and how to find them\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2022-02-17\",\n      }",{"title":14083,"description":14084,"authors":14089,"heroImage":14085,"date":14090,"category":8140,"tags":14091},[1424],"2022-02-17",[790,2908,564],{"slug":14093,"featured":6,"template":736},"fantastic-infrastructure-as-code-security-attacks-and-how-to-find-them","content:en-us:blog:fantastic-infrastructure-as-code-security-attacks-and-how-to-find-them.yml","Fantastic Infrastructure As Code Security Attacks And How To Find Them","en-us/blog/fantastic-infrastructure-as-code-security-attacks-and-how-to-find-them.yml","en-us/blog/fantastic-infrastructure-as-code-security-attacks-and-how-to-find-them",{"_path":14099,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14100,"content":14105,"config":14108,"_id":14110,"_type":16,"title":14111,"_source":17,"_file":14112,"_stem":14113,"_extension":20},"/en-us/blog/how-gitlab-handles-security-bugs",{"title":14101,"description":14102,"ogTitle":14101,"ogDescription":14102,"noIndex":6,"ogImage":10438,"ogUrl":14103,"ogSiteName":995,"ogType":996,"canonicalUrls":14103,"schema":14104},"How GitLab handles security bugs (and why it matters)","Learn what makes our approach to handling and transparently disclosing security bugs unique.","https://about.gitlab.com/blog/how-gitlab-handles-security-bugs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab handles security bugs (and why it matters)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nick Malcolm\"}],\n        \"datePublished\": \"2022-02-17\",\n      }",{"title":14101,"description":14102,"authors":14106,"heroImage":10438,"date":14090,"category":790,"tags":14107},[10567],[790],{"slug":14109,"featured":6,"template":736},"how-gitlab-handles-security-bugs","content:en-us:blog:how-gitlab-handles-security-bugs.yml","How Gitlab Handles Security Bugs","en-us/blog/how-gitlab-handles-security-bugs.yml","en-us/blog/how-gitlab-handles-security-bugs",{"_path":14115,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14116,"content":14121,"config":14126,"_id":14128,"_type":16,"title":14129,"_source":17,"_file":14130,"_stem":14131,"_extension":20},"/en-us/blog/a-community-driven-advisory-database",{"title":14117,"description":14118,"ogTitle":14117,"ogDescription":14118,"noIndex":6,"ogImage":11699,"ogUrl":14119,"ogSiteName":995,"ogType":996,"canonicalUrls":14119,"schema":14120},"Community-driven advisory database for dependencies launched","The advisory data can be readily adopted, adapted, and exchanged. Learn more here.","https://about.gitlab.com/blog/a-community-driven-advisory-database","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing a community-driven advisory database for third-party software dependencies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Art\"},{\"@type\":\"Person\",\"name\":\"Dinesh Bolkensteyn\"},{\"@type\":\"Person\",\"name\":\"Isaac Dawson\"},{\"@type\":\"Person\",\"name\":\"Julian Thome\"}],\n        \"datePublished\": \"2022-02-16\",\n      }",{"title":14122,"description":14118,"authors":14123,"heroImage":11699,"date":14124,"category":790,"tags":14125},"Introducing a community-driven advisory database for third-party software dependencies",[11449,11450,11124,3289],"2022-02-16",[790,2815],{"slug":14127,"featured":6,"template":736},"a-community-driven-advisory-database","content:en-us:blog:a-community-driven-advisory-database.yml","A Community Driven Advisory Database","en-us/blog/a-community-driven-advisory-database.yml","en-us/blog/a-community-driven-advisory-database",{"_path":14133,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14134,"content":14140,"config":14144,"_id":14146,"_type":16,"title":14147,"_source":17,"_file":14148,"_stem":14149,"_extension":20},"/en-us/blog/devops-and-the-scientific-process-a-perfect-pairing",{"title":14135,"description":14136,"ogTitle":14135,"ogDescription":14136,"noIndex":6,"ogImage":14137,"ogUrl":14138,"ogSiteName":995,"ogType":996,"canonicalUrls":14138,"schema":14139},"DevOps and the scientific process: A perfect pairing","Research teams have taken to DevOps principles and practices. Find out why and how to adopt DevOps in your organization.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668378/Blog/Hero%20Images/hans-reniers-lQGJCMY5qcM-unsplash.jpg","https://about.gitlab.com/blog/devops-and-the-scientific-process-a-perfect-pairing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps and the scientific process: A perfect pairing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2022-02-15\",\n      }",{"title":14135,"description":14136,"authors":14141,"heroImage":14137,"date":14142,"category":577,"tags":14143},[13131],"2022-02-15",[564,269,3075],{"slug":14145,"featured":6,"template":736},"devops-and-the-scientific-process-a-perfect-pairing","content:en-us:blog:devops-and-the-scientific-process-a-perfect-pairing.yml","Devops And The Scientific Process A Perfect Pairing","en-us/blog/devops-and-the-scientific-process-a-perfect-pairing.yml","en-us/blog/devops-and-the-scientific-process-a-perfect-pairing",{"_path":14151,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14152,"content":14158,"config":14161,"_id":14163,"_type":16,"title":14164,"_source":17,"_file":14165,"_stem":14166,"_extension":20},"/en-us/blog/gitlab-supply-chain-security",{"title":14153,"description":14154,"ogTitle":14153,"ogDescription":14154,"noIndex":6,"ogImage":14155,"ogUrl":14156,"ogSiteName":995,"ogType":996,"canonicalUrls":14156,"schema":14157},"Introducing GitLab’s supply chain security direction and landscape","Learn about software supply chain security at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667466/Blog/Hero%20Images/GitLab-Sec.png","https://about.gitlab.com/blog/gitlab-supply-chain-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab’s supply chain security direction and landscape\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam White\"}],\n        \"datePublished\": \"2022-02-15\",\n      }",{"title":14153,"description":14154,"authors":14159,"heroImage":14155,"date":14142,"category":301,"tags":14160},[7768],[790,564,730],{"slug":14162,"featured":6,"template":736},"gitlab-supply-chain-security","content:en-us:blog:gitlab-supply-chain-security.yml","Gitlab Supply Chain Security","en-us/blog/gitlab-supply-chain-security.yml","en-us/blog/gitlab-supply-chain-security",{"_path":14168,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14169,"content":14174,"config":14177,"_id":14179,"_type":16,"title":14180,"_source":17,"_file":14181,"_stem":14182,"_extension":20},"/en-us/blog/ten-reasons-why-your-business-needs-ci-cd",{"title":14170,"description":14171,"ogTitle":14170,"ogDescription":14171,"noIndex":6,"ogImage":8911,"ogUrl":14172,"ogSiteName":995,"ogType":996,"canonicalUrls":14172,"schema":14173},"10 Reasons why your business needs CI/CD","Want to know why you should consider using CI/CD? Learn more here about the many business benefits of adopting a CI/CD workflow for you and your organization.","https://about.gitlab.com/blog/ten-reasons-why-your-business-needs-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"10 Reasons why your business needs CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-02-15\",\n      }",{"title":14170,"description":14171,"authors":14175,"heroImage":8911,"date":14142,"category":8140,"tags":14176},[10672],[564,110,2815],{"slug":14178,"featured":6,"template":736},"ten-reasons-why-your-business-needs-ci-cd","content:en-us:blog:ten-reasons-why-your-business-needs-ci-cd.yml","Ten Reasons Why Your Business Needs Ci Cd","en-us/blog/ten-reasons-why-your-business-needs-ci-cd.yml","en-us/blog/ten-reasons-why-your-business-needs-ci-cd",{"_path":14184,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14185,"content":14191,"config":14195,"_id":14197,"_type":16,"title":14198,"_source":17,"_file":14199,"_stem":14200,"_extension":20},"/en-us/blog/top-10-ways-machine-learning-may-help-devops",{"title":14186,"description":14187,"ogTitle":14186,"ogDescription":14187,"noIndex":6,"ogImage":14188,"ogUrl":14189,"ogSiteName":995,"ogType":996,"canonicalUrls":14189,"schema":14190},"Top 10 ways machine learning may help DevOps","Is machine learning part of your DevOps plan? Here are some ways ML could fit right in.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668426/Blog/Hero%20Images/retrospectivesgitlabpost.jpg","https://about.gitlab.com/blog/top-10-ways-machine-learning-may-help-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 10 ways machine learning may help DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-02-14\",\n      }",{"title":14186,"description":14187,"authors":14192,"heroImage":14188,"date":14193,"category":8140,"tags":14194},[1000],"2022-02-14",[564,1932,7788,728],{"slug":14196,"featured":6,"template":736},"top-10-ways-machine-learning-may-help-devops","content:en-us:blog:top-10-ways-machine-learning-may-help-devops.yml","Top 10 Ways Machine Learning May Help Devops","en-us/blog/top-10-ways-machine-learning-may-help-devops.yml","en-us/blog/top-10-ways-machine-learning-may-help-devops",{"_path":14202,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14203,"content":14209,"config":14213,"_id":14215,"_type":16,"title":14216,"_source":17,"_file":14217,"_stem":14218,"_extension":20},"/en-us/blog/4-must-know-devops-principles",{"title":14204,"description":14205,"ogTitle":14204,"ogDescription":14205,"noIndex":6,"ogImage":14206,"ogUrl":14207,"ogSiteName":995,"ogType":996,"canonicalUrls":14207,"schema":14208},"4 Must-know DevOps principles","Learn four key DevOps principles and why they are essential to successful development and deployment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665982/Blog/Hero%20Images/jpvalery-9pLx0sLli4unsplash.jpg","https://about.gitlab.com/blog/4-must-know-devops-principles","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 Must-know DevOps principles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-02-11\",\n      }",{"title":14204,"description":14205,"authors":14210,"heroImage":14206,"date":14211,"category":8140,"tags":14212},[1000],"2022-02-11",[564,2815,233],{"slug":14214,"featured":6,"template":736},"4-must-know-devops-principles","content:en-us:blog:4-must-know-devops-principles.yml","4 Must Know Devops Principles","en-us/blog/4-must-know-devops-principles.yml","en-us/blog/4-must-know-devops-principles",{"_path":14220,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14221,"content":14226,"config":14230,"_id":14232,"_type":16,"title":14233,"_source":17,"_file":14234,"_stem":14235,"_extension":20},"/en-us/blog/how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod",{"title":14222,"description":14223,"ogTitle":14222,"ogDescription":14223,"noIndex":6,"ogImage":12964,"ogUrl":14224,"ogSiteName":995,"ogType":996,"canonicalUrls":14224,"schema":14225},"How to code, build, and deploy from an iPad using GitLab and Gitpod","Senior Developer Evangelist Brendan O'Leary tackles the challenge of doing DevOps from a tablet.","https://about.gitlab.com/blog/how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to code, build, and deploy from an iPad using GitLab and Gitpod\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2022-02-10\",\n      }",{"title":14222,"description":14223,"authors":14227,"heroImage":12964,"date":14228,"category":858,"tags":14229},[10835],"2022-02-10",[564,772,2815],{"slug":14231,"featured":6,"template":736},"how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod","content:en-us:blog:how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod.yml","How To Code Build And Deploy From An Ipad Using Gitlab And Gitpod","en-us/blog/how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod.yml","en-us/blog/how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod",{"_path":14237,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14238,"content":14243,"config":14248,"_id":14250,"_type":16,"title":14251,"_source":17,"_file":14252,"_stem":14253,"_extension":20},"/en-us/blog/gitlabs-newest-continuous-compliance-features-bolster-software",{"title":14239,"description":14240,"ogTitle":14239,"ogDescription":14240,"noIndex":6,"ogImage":14155,"ogUrl":14241,"ogSiteName":995,"ogType":996,"canonicalUrls":14241,"schema":14242},"GitLab strengthens supply chain with compliance features","Business leaders and DevOps teams can continuously mitigate the risk of cloud-native environments and use guard rails to automate software compliance.","https://about.gitlab.com/blog/gitlabs-newest-continuous-compliance-features-bolster-software","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s newest continuous compliance features bolster software supply chain security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2022-02-09\",\n      }",{"title":14244,"description":14240,"authors":14245,"heroImage":14155,"date":14246,"category":790,"tags":14247},"GitLab’s newest continuous compliance features bolster software supply chain security",[11487],"2022-02-09",[564,790,730],{"slug":14249,"featured":6,"template":736},"gitlabs-newest-continuous-compliance-features-bolster-software","content:en-us:blog:gitlabs-newest-continuous-compliance-features-bolster-software.yml","Gitlabs Newest Continuous Compliance Features Bolster Software","en-us/blog/gitlabs-newest-continuous-compliance-features-bolster-software.yml","en-us/blog/gitlabs-newest-continuous-compliance-features-bolster-software",{"_path":14255,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14256,"content":14261,"config":14266,"_id":14268,"_type":16,"title":14269,"_source":17,"_file":14270,"_stem":14271,"_extension":20},"/en-us/blog/gitops-with-gitlab-auto-devops",{"title":14257,"description":14258,"ogTitle":14257,"ogDescription":14258,"noIndex":6,"ogImage":11046,"ogUrl":14259,"ogSiteName":995,"ogType":996,"canonicalUrls":14259,"schema":14260},"Connecting Kubernetes clusters to GitLab with Auto DevOps","This is the 6th article in a series of tutorials on how to do GitOps with GitLab","https://about.gitlab.com/blog/gitops-with-gitlab-auto-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps with GitLab: Connecting GitLab with a Kubernetes cluster - Auto DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2022-02-08\",\n      }",{"title":14262,"description":14258,"authors":14263,"heroImage":11046,"date":14264,"category":858,"tags":14265},"GitOps with GitLab: Connecting GitLab with a Kubernetes cluster - Auto DevOps",[2942],"2022-02-08",[559,2908,772],{"slug":14267,"featured":6,"template":736},"gitops-with-gitlab-auto-devops","content:en-us:blog:gitops-with-gitlab-auto-devops.yml","Gitops With Gitlab Auto Devops","en-us/blog/gitops-with-gitlab-auto-devops.yml","en-us/blog/gitops-with-gitlab-auto-devops",{"_path":14273,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14274,"content":14279,"config":14282,"_id":14284,"_type":16,"title":14285,"_source":17,"_file":14286,"_stem":14287,"_extension":20},"/en-us/blog/learn-python-with-pj-part-1",{"title":14275,"description":14276,"ogTitle":14275,"ogDescription":14276,"noIndex":6,"ogImage":12801,"ogUrl":14277,"ogSiteName":995,"ogType":996,"canonicalUrls":14277,"schema":14278},"Learn Python with Pj! Part 1 - Getting started","Follow along as our education evangelist Pj Metz learns Python, and shares his experiences in the first of a multi-part series.","https://about.gitlab.com/blog/learn-python-with-pj-part-1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learn Python with Pj! Part 1 - Getting started\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-02-08\",\n      }",{"title":14275,"description":14276,"authors":14280,"heroImage":12801,"date":14264,"category":8140,"tags":14281},[11595],[6980,564,8475],{"slug":14283,"featured":6,"template":736},"learn-python-with-pj-part-1","content:en-us:blog:learn-python-with-pj-part-1.yml","Learn Python With Pj Part 1","en-us/blog/learn-python-with-pj-part-1.yml","en-us/blog/learn-python-with-pj-part-1",{"_path":14289,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14290,"content":14296,"config":14300,"_id":14302,"_type":16,"title":14303,"_source":17,"_file":14304,"_stem":14305,"_extension":20},"/en-us/blog/first-time-open-source-contributor-5-things-to-get-you-started",{"title":14291,"description":14292,"ogTitle":14291,"ogDescription":14292,"noIndex":6,"ogImage":14293,"ogUrl":14294,"ogSiteName":995,"ogType":996,"canonicalUrls":14294,"schema":14295},"First time open source contributor? 5 things to get you started","Open source really is *open* but it can be difficult to know where (and how) to jump in. Here's our best advice.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671390/Blog/Hero%20Images/developers-choose-open-source.jpg","https://about.gitlab.com/blog/first-time-open-source-contributor-5-things-to-get-you-started","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"First time open source contributor? 5 things to get you started\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-02-07\",\n      }",{"title":14291,"description":14292,"authors":14297,"heroImage":14293,"date":14298,"category":8140,"tags":14299},[1000],"2022-02-07",[1265,564,269],{"slug":14301,"featured":6,"template":736},"first-time-open-source-contributor-5-things-to-get-you-started","content:en-us:blog:first-time-open-source-contributor-5-things-to-get-you-started.yml","First Time Open Source Contributor 5 Things To Get You Started","en-us/blog/first-time-open-source-contributor-5-things-to-get-you-started.yml","en-us/blog/first-time-open-source-contributor-5-things-to-get-you-started",{"_path":14307,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14308,"content":14313,"config":14317,"_id":14319,"_type":16,"title":14320,"_source":17,"_file":14321,"_stem":14322,"_extension":20},"/en-us/blog/git-fetch-performance-2021-part-2",{"title":14309,"description":14310,"ogTitle":14309,"ogDescription":14310,"noIndex":6,"ogImage":13467,"ogUrl":14311,"ogSiteName":995,"ogType":996,"canonicalUrls":14311,"schema":14312},"Git fetch performance improvements in 2021, Part 2 ","Looking back at the server-side performance improvements we made in 2021 for Git fetch.","https://about.gitlab.com/blog/git-fetch-performance-2021-part-2","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git fetch performance improvements in 2021, Part 2 \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2022-02-07\",\n      }",{"title":14309,"description":14310,"authors":14314,"heroImage":13467,"date":14298,"category":858,"tags":14316},[14315],"Jacob Vosmaer",[1195,6376,1988],{"slug":14318,"featured":6,"template":736},"git-fetch-performance-2021-part-2","content:en-us:blog:git-fetch-performance-2021-part-2.yml","Git Fetch Performance 2021 Part 2","en-us/blog/git-fetch-performance-2021-part-2.yml","en-us/blog/git-fetch-performance-2021-part-2",{"_path":14324,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14325,"content":14330,"config":14335,"_id":14337,"_type":16,"title":14338,"_source":17,"_file":14339,"_stem":14340,"_extension":20},"/en-us/blog/ultimate-perks-for-open-source-projects",{"title":14326,"description":14327,"ogTitle":14326,"ogDescription":14327,"noIndex":6,"ogImage":9971,"ogUrl":14328,"ogSiteName":995,"ogType":996,"canonicalUrls":14328,"schema":14329},"Public open source projects are eligible for Ultimate tier features","GitLab's Open Source Program offers top-tier functionality and 50,000 CI pipeline minutes, for free. Learn more about applying.","https://about.gitlab.com/blog/ultimate-perks-for-open-source-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Public open source projects are eligible for Ultimate tier features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2022-02-04\",\n      }",{"title":14326,"description":14327,"authors":14331,"heroImage":9971,"date":14333,"category":1049,"tags":14334},[14332],"Orit Golowinski","2022-02-04",[1265,3074,564],{"slug":14336,"featured":6,"template":736},"ultimate-perks-for-open-source-projects","content:en-us:blog:ultimate-perks-for-open-source-projects.yml","Ultimate Perks For Open Source Projects","en-us/blog/ultimate-perks-for-open-source-projects.yml","en-us/blog/ultimate-perks-for-open-source-projects",{"_path":14342,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14343,"content":14348,"config":14352,"_id":14354,"_type":16,"title":14355,"_source":17,"_file":14356,"_stem":14357,"_extension":20},"/en-us/blog/how-to-keep-up-with-ci-cd-best-practices",{"title":14344,"description":14345,"ogTitle":14344,"ogDescription":14345,"noIndex":6,"ogImage":1211,"ogUrl":14346,"ogSiteName":995,"ogType":996,"canonicalUrls":14346,"schema":14347},"How to keep up with CI/CD best practices","In this post, we look at continuous integration/continuous delivery (CI/CD), how to implement some best practices, and why it is important.","https://about.gitlab.com/blog/how-to-keep-up-with-ci-cd-best-practices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to keep up with CI/CD best practices\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan baruch\"}],\n        \"datePublished\": \"2025-09-20\",\n      }",{"title":14344,"description":14345,"authors":14349,"heroImage":1211,"date":14350,"updatedDate":980,"category":8140,"tags":14351},[1016],"2022-02-03",[2097,2098,574],{"slug":14353,"featured":6,"template":736},"how-to-keep-up-with-ci-cd-best-practices","content:en-us:blog:how-to-keep-up-with-ci-cd-best-practices.yml","How To Keep Up With Ci Cd Best Practices","en-us/blog/how-to-keep-up-with-ci-cd-best-practices.yml","en-us/blog/how-to-keep-up-with-ci-cd-best-practices",{"_path":14359,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14360,"content":14366,"config":14369,"_id":14371,"_type":16,"title":14372,"_source":17,"_file":14373,"_stem":14374,"_extension":20},"/en-us/blog/the-devops-platform-series-building-a-business-case",{"title":14361,"description":14362,"ogTitle":14361,"ogDescription":14362,"noIndex":6,"ogImage":14363,"ogUrl":14364,"ogSiteName":995,"ogType":996,"canonicalUrls":14364,"schema":14365},"The DevOps Platform series: Building a business case","Understanding the need for a DevOps platform is key to realizing the business value of DevSecOps. This is the first in a three-part series.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668185/Blog/Hero%20Images/Chorus_case_study.png","https://about.gitlab.com/blog/the-devops-platform-series-building-a-business-case","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The DevOps Platform series: Building a business case\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Faus\"}],\n        \"datePublished\": \"2022-02-03\",\n      }",{"title":14361,"description":14362,"authors":14367,"heroImage":14363,"date":14350,"category":577,"tags":14368},[4479],[564],{"slug":14370,"featured":6,"template":736},"the-devops-platform-series-building-a-business-case","content:en-us:blog:the-devops-platform-series-building-a-business-case.yml","The Devops Platform Series Building A Business Case","en-us/blog/the-devops-platform-series-building-a-business-case.yml","en-us/blog/the-devops-platform-series-building-a-business-case",{"_path":14376,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14377,"content":14383,"config":14387,"_id":14389,"_type":16,"title":14390,"_source":17,"_file":14391,"_stem":14392,"_extension":20},"/en-us/blog/graphql-vulnerability-api",{"title":14378,"description":14379,"ogTitle":14378,"ogDescription":14379,"noIndex":6,"ogImage":14380,"ogUrl":14381,"ogSiteName":995,"ogType":996,"canonicalUrls":14381,"schema":14382},"Using the GitLab GraphQL API for vulnerability reporting","Follow along as we teach you how to use GitLab GraphQL API to manage vulnerabilities programatically.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682219/Blog/Hero%20Images/jeremy-bishop-FzrlPh20l7Q-unsplash.jpg","https://about.gitlab.com/blog/graphql-vulnerability-api","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using the GitLab GraphQL API for vulnerability reporting\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2022-02-02\",\n      }",{"title":14378,"description":14379,"authors":14384,"heroImage":14380,"date":14385,"category":790,"tags":14386},[1097],"2022-02-02",[564,790,964],{"slug":14388,"featured":6,"template":736},"graphql-vulnerability-api","content:en-us:blog:graphql-vulnerability-api.yml","Graphql Vulnerability Api","en-us/blog/graphql-vulnerability-api.yml","en-us/blog/graphql-vulnerability-api",{"_path":14394,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14395,"content":14401,"config":14406,"_id":14408,"_type":16,"title":14409,"_source":17,"_file":14410,"_stem":14411,"_extension":20},"/en-us/blog/cicd-tunnel-impersonation",{"title":14396,"description":14397,"ogTitle":14396,"ogDescription":14397,"noIndex":6,"ogImage":14398,"ogUrl":14399,"ogSiteName":995,"ogType":996,"canonicalUrls":14399,"schema":14400},"Fine-grained permissions with impersonation in CI/CD tunnel","Learn how to use use fine-grained permissions via generic impersonation in CI/CD Tunnel","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667435/Blog/Hero%20Images/tunnel.jpg","https://about.gitlab.com/blog/cicd-tunnel-impersonation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use fine-grained permissions via generic impersonation in CI/CD Tunnel\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2022-02-01\",\n      }",{"title":14402,"description":14397,"authors":14403,"heroImage":14398,"date":14404,"category":858,"tags":14405},"How to use fine-grained permissions via generic impersonation in CI/CD Tunnel",[767],"2022-02-01",[892,2097,2098,2908],{"slug":14407,"featured":6,"template":736},"cicd-tunnel-impersonation","content:en-us:blog:cicd-tunnel-impersonation.yml","Cicd Tunnel Impersonation","en-us/blog/cicd-tunnel-impersonation.yml","en-us/blog/cicd-tunnel-impersonation",{"_path":14413,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14414,"content":14419,"config":14422,"_id":14424,"_type":16,"title":14425,"_source":17,"_file":14426,"_stem":14427,"_extension":20},"/en-us/blog/hiring-in-the-deep-end-of-the-talent-pool",{"title":14415,"description":14416,"ogTitle":14415,"ogDescription":14416,"noIndex":6,"ogImage":11609,"ogUrl":14417,"ogSiteName":995,"ogType":996,"canonicalUrls":14417,"schema":14418},"DevOps hiring from the deep end of the talent pool","Time to broaden your search beyond four-year tech degrees to candidates with life experience, self-taught/bootcamp chops, and soft skills.","https://about.gitlab.com/blog/hiring-in-the-deep-end-of-the-talent-pool","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps hiring from the deep end of the talent pool\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-02-01\",\n      }",{"title":14415,"description":14416,"authors":14420,"heroImage":11609,"date":14404,"category":6980,"tags":14421},[11595],[564,6980,269],{"slug":14423,"featured":6,"template":736},"hiring-in-the-deep-end-of-the-talent-pool","content:en-us:blog:hiring-in-the-deep-end-of-the-talent-pool.yml","Hiring In The Deep End Of The Talent Pool","en-us/blog/hiring-in-the-deep-end-of-the-talent-pool.yml","en-us/blog/hiring-in-the-deep-end-of-the-talent-pool",{"_path":14429,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14430,"content":14435,"config":14439,"_id":14441,"_type":16,"title":14442,"_source":17,"_file":14443,"_stem":14444,"_extension":20},"/en-us/blog/how-to-build-out-your-devops-team",{"title":14431,"description":14432,"ogTitle":14431,"ogDescription":14432,"noIndex":6,"ogImage":11751,"ogUrl":14433,"ogSiteName":995,"ogType":996,"canonicalUrls":14433,"schema":14434},"How to build out your DevOps team","Hiring the right DevOps roles put you on the path to success. ","https://about.gitlab.com/blog/how-to-build-out-your-devops-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to build out your DevOps team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Johanna Ambrosio\"}],\n        \"datePublished\": \"2022-01-25\",\n      }",{"title":14431,"description":14432,"authors":14436,"heroImage":11751,"date":14437,"category":577,"tags":14438},[13807],"2022-01-25",[564,6980,2815],{"slug":14440,"featured":6,"template":736},"how-to-build-out-your-devops-team","content:en-us:blog:how-to-build-out-your-devops-team.yml","How To Build Out Your Devops Team","en-us/blog/how-to-build-out-your-devops-team.yml","en-us/blog/how-to-build-out-your-devops-team",{"_path":14446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14447,"content":14452,"config":14455,"_id":14457,"_type":16,"title":14458,"_source":17,"_file":14459,"_stem":14460,"_extension":20},"/en-us/blog/utilize-the-gitlab-devops-platform-to-avoid-cloud-migration-hazards",{"title":14448,"description":14449,"ogTitle":14448,"ogDescription":14449,"noIndex":6,"ogImage":11263,"ogUrl":14450,"ogSiteName":995,"ogType":996,"canonicalUrls":14450,"schema":14451},"Utilize the GitLab DevOps platform to avoid cloud migration hazards","The GitLab modern DevOps platform can simplify and accelerate planning, managing, moving, and modernizing applications and infrastructure as companies adopt a cloud-first posture on AWS and Google Cloud.","https://about.gitlab.com/blog/utilize-the-gitlab-devops-platform-to-avoid-cloud-migration-hazards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Utilize the GitLab DevOps platform to avoid cloud migration hazards\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nima Badiey\"}],\n        \"datePublished\": \"2022-01-25\",\n      }",{"title":14448,"description":14449,"authors":14453,"heroImage":11263,"date":14437,"category":577,"tags":14454},[8066],[564,582,1730],{"slug":14456,"featured":6,"template":736},"utilize-the-gitlab-devops-platform-to-avoid-cloud-migration-hazards","content:en-us:blog:utilize-the-gitlab-devops-platform-to-avoid-cloud-migration-hazards.yml","Utilize The Gitlab Devops Platform To Avoid Cloud Migration Hazards","en-us/blog/utilize-the-gitlab-devops-platform-to-avoid-cloud-migration-hazards.yml","en-us/blog/utilize-the-gitlab-devops-platform-to-avoid-cloud-migration-hazards",{"_path":14462,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14463,"content":14469,"config":14473,"_id":14475,"_type":16,"title":14476,"_source":17,"_file":14477,"_stem":14478,"_extension":20},"/en-us/blog/gitlab-value-stream-analytics",{"title":14464,"description":14465,"ogTitle":14464,"ogDescription":14465,"noIndex":6,"ogImage":14466,"ogUrl":14467,"ogSiteName":995,"ogType":996,"canonicalUrls":14467,"schema":14468},"The role of Value Stream Analytics in GitLab's DevOps Platform","Better DevOps teams start with value stream management. Here's how to get the most out of GitLab's Value Stream Analytics.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668041/Blog/Hero%20Images/Understand-Highly-Technical-Spaces.jpg","https://about.gitlab.com/blog/gitlab-value-stream-analytics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The role of Value Stream Analytics in GitLab's DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2022-01-24\",\n      }",{"title":14464,"description":14465,"authors":14470,"heroImage":14466,"date":14471,"category":577,"tags":14472},[1016],"2022-01-24",[564,1988,1335],{"slug":14474,"featured":6,"template":736},"gitlab-value-stream-analytics","content:en-us:blog:gitlab-value-stream-analytics.yml","Gitlab Value Stream Analytics","en-us/blog/gitlab-value-stream-analytics.yml","en-us/blog/gitlab-value-stream-analytics",{"_path":14480,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14481,"content":14486,"config":14491,"_id":14493,"_type":16,"title":14494,"_source":17,"_file":14495,"_stem":14496,"_extension":20},"/en-us/blog/how-zoopla-uses-dora-metrics-and-your-team-can-too",{"title":14482,"description":14483,"ogTitle":14482,"ogDescription":14483,"noIndex":6,"ogImage":13552,"ogUrl":14484,"ogSiteName":995,"ogType":996,"canonicalUrls":14484,"schema":14485},"Zoopla Boosts Deployments & Automation with DORA Metrics","GitLab customer Zoopla used the DORA metrics to boost production deployments from once a week to roughly 40 times a day. And that was only one of the performance improvements...","https://about.gitlab.com/blog/how-zoopla-uses-dora-metrics-and-your-team-can-too","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Zoopla used DORA metrics to boost deployments, increase automation and more\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gustaw Fit of Zoopla\"}],\n        \"datePublished\": \"2022-01-24\",\n      }",{"title":14487,"description":14483,"authors":14488,"heroImage":13552,"date":14471,"category":8140,"tags":14490},"How Zoopla used DORA metrics to boost deployments, increase automation and more",[14489],"Gustaw Fit of Zoopla",[564,3075,2025],{"slug":14492,"featured":6,"template":736},"how-zoopla-uses-dora-metrics-and-your-team-can-too","content:en-us:blog:how-zoopla-uses-dora-metrics-and-your-team-can-too.yml","How Zoopla Uses Dora Metrics And Your Team Can Too","en-us/blog/how-zoopla-uses-dora-metrics-and-your-team-can-too.yml","en-us/blog/how-zoopla-uses-dora-metrics-and-your-team-can-too",{"_path":14498,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14499,"content":14504,"config":14508,"_id":14510,"_type":16,"title":14511,"_source":17,"_file":14512,"_stem":14513,"_extension":20},"/en-us/blog/introducing-modelops-to-solve-data-science-challenges",{"title":14500,"description":14501,"ogTitle":14500,"ogDescription":14501,"noIndex":6,"ogImage":10202,"ogUrl":14502,"ogSiteName":995,"ogType":996,"canonicalUrls":14502,"schema":14503},"Adopt ModelOps within DevOps to solve data science challenges","The ModelOps stage of DevOps applies AI and ML to address complex data science challenges.","https://about.gitlab.com/blog/introducing-modelops-to-solve-data-science-challenges","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Adopt ModelOps within DevOps to solve data science challenges\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2022-01-21\",\n      }",{"title":14500,"description":14501,"authors":14505,"heroImage":10202,"date":14506,"category":577,"tags":14507},[6299],"2022-01-21",[564,6376,1335],{"slug":14509,"featured":6,"template":736},"introducing-modelops-to-solve-data-science-challenges","content:en-us:blog:introducing-modelops-to-solve-data-science-challenges.yml","Introducing Modelops To Solve Data Science Challenges","en-us/blog/introducing-modelops-to-solve-data-science-challenges.yml","en-us/blog/introducing-modelops-to-solve-data-science-challenges",{"_path":14515,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14516,"content":14521,"config":14525,"_id":14527,"_type":16,"title":14528,"_source":17,"_file":14529,"_stem":14530,"_extension":20},"/en-us/blog/git-fetch-performance",{"title":14517,"description":14518,"ogTitle":14517,"ogDescription":14518,"noIndex":6,"ogImage":11046,"ogUrl":14519,"ogSiteName":995,"ogType":996,"canonicalUrls":14519,"schema":14520},"How we made Git fetch performance improvements in 2021, part 1","Our Scalability team tackled a server CPU utilization issue. Here's the first part of a detailed look at performance improvements we made for Git fetch.","https://about.gitlab.com/blog/git-fetch-performance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we made Git fetch performance improvements in 2021, part 1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2022-01-20\",\n      }",{"title":14517,"description":14518,"authors":14522,"heroImage":11046,"date":14523,"category":858,"tags":14524},[14315],"2022-01-20",[1195,6376,1988],{"slug":14526,"featured":6,"template":736},"git-fetch-performance","content:en-us:blog:git-fetch-performance.yml","Git Fetch Performance","en-us/blog/git-fetch-performance.yml","en-us/blog/git-fetch-performance",{"_path":14532,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14533,"content":14538,"config":14542,"_id":14544,"_type":16,"title":14545,"_source":17,"_file":14546,"_stem":14547,"_extension":20},"/en-us/blog/securing-the-container-host-with-falco",{"title":14534,"description":14535,"ogTitle":14534,"ogDescription":14535,"noIndex":6,"ogImage":13467,"ogUrl":14536,"ogSiteName":995,"ogType":996,"canonicalUrls":14536,"schema":14537},"Detecting container host anomalies with GitLab and Falco","Learn how to install and use Falco to detect anomalies in your containers","https://about.gitlab.com/blog/securing-the-container-host-with-falco","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Detecting and alerting on anomalies in your container host with GitLab + Falco\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2022-01-20\",\n      }",{"title":14539,"description":14535,"authors":14540,"heroImage":13467,"date":14523,"category":790,"tags":14541},"Detecting and alerting on anomalies in your container host with GitLab + Falco",[1097],[790],{"slug":14543,"featured":6,"template":736},"securing-the-container-host-with-falco","content:en-us:blog:securing-the-container-host-with-falco.yml","Securing The Container Host With Falco","en-us/blog/securing-the-container-host-with-falco.yml","en-us/blog/securing-the-container-host-with-falco",{"_path":14549,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14550,"content":14556,"config":14562,"_id":14564,"_type":16,"title":14565,"_source":17,"_file":14566,"_stem":14567,"_extension":20},"/en-us/blog/collaboration-techniques-for-distributed-teams",{"title":14551,"description":14552,"ogTitle":14551,"ogDescription":14552,"noIndex":6,"ogImage":14553,"ogUrl":14554,"ogSiteName":995,"ogType":996,"canonicalUrls":14554,"schema":14555},"Synchronous collaboration for async distributed teams","The strategic exercise supported meaningful reflection as well as alignment in setting goals.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682962/Blog/Hero%20Images/collaboration-techniques-blog-post.jpg","https://about.gitlab.com/blog/collaboration-techniques-for-distributed-teams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How a Lightning Decision Jam helped our asynch, distributed team collaborate synchronously\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amelia Bauerly\"}],\n        \"datePublished\": \"2022-01-19\",\n      }",{"title":14557,"description":14552,"authors":14558,"heroImage":14553,"date":14560,"category":8140,"tags":14561},"How a Lightning Decision Jam helped our asynch, distributed team collaborate synchronously",[14559],"Amelia Bauerly","2022-01-19",[2702,2815,3914],{"slug":14563,"featured":6,"template":736},"collaboration-techniques-for-distributed-teams","content:en-us:blog:collaboration-techniques-for-distributed-teams.yml","Collaboration Techniques For Distributed Teams","en-us/blog/collaboration-techniques-for-distributed-teams.yml","en-us/blog/collaboration-techniques-for-distributed-teams",{"_path":14569,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14570,"content":14575,"config":14578,"_id":14580,"_type":16,"title":14581,"_source":17,"_file":14582,"_stem":14583,"_extension":20},"/en-us/blog/what-will-devops-do-for-your-team-in-2022",{"title":14571,"description":14572,"ogTitle":14571,"ogDescription":14572,"noIndex":6,"ogImage":13343,"ogUrl":14573,"ogSiteName":995,"ogType":996,"canonicalUrls":14573,"schema":14574},"What will DevOps do for your team in 2022?","DevOps brings the technical wins but business is winning too, thanks to this modern software development strategy. Here's what our latest DevOps assessment found.","https://about.gitlab.com/blog/what-will-devops-do-for-your-team-in-2022","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What will DevOps do for your team in 2022?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-01-19\",\n      }",{"title":14571,"description":14572,"authors":14576,"heroImage":13343,"date":14560,"category":577,"tags":14577},[10672],[564,2815,269],{"slug":14579,"featured":6,"template":736},"what-will-devops-do-for-your-team-in-2022","content:en-us:blog:what-will-devops-do-for-your-team-in-2022.yml","What Will Devops Do For Your Team In 2022","en-us/blog/what-will-devops-do-for-your-team-in-2022.yml","en-us/blog/what-will-devops-do-for-your-team-in-2022",{"_path":14585,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14586,"content":14591,"config":14596,"_id":14598,"_type":16,"title":14599,"_source":17,"_file":14600,"_stem":14601,"_extension":20},"/en-us/blog/pipelines-as-code",{"title":14587,"description":14588,"ogTitle":14587,"ogDescription":14588,"noIndex":6,"ogImage":11046,"ogUrl":14589,"ogSiteName":995,"ogType":996,"canonicalUrls":14589,"schema":14590},"Pipelines-as-Code: How to improve speed from idea to production","Pipelines-as-Code streamline automatic building, testing, and deploying of applications using prebuilt pipelines and infrastructure components. Here's how it works.","https://about.gitlab.com/blog/pipelines-as-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pipelines-as-Code: How to improve speed from idea to production\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Robert Williams\"}],\n        \"datePublished\": \"2022-01-18\",\n      }",{"title":14587,"description":14588,"authors":14592,"heroImage":11046,"date":14594,"category":858,"tags":14595},[14593],"Robert Williams","2022-01-18",[728,582,564],{"slug":14597,"featured":6,"template":736},"pipelines-as-code","content:en-us:blog:pipelines-as-code.yml","Pipelines As Code","en-us/blog/pipelines-as-code.yml","en-us/blog/pipelines-as-code",{"_path":14603,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14604,"content":14609,"config":14613,"_id":14615,"_type":16,"title":14616,"_source":17,"_file":14617,"_stem":14618,"_extension":20},"/en-us/blog/gitlab-com-container-registry-cdn-change",{"title":14605,"description":14606,"ogTitle":14605,"ogDescription":14606,"noIndex":6,"ogImage":10632,"ogUrl":14607,"ogSiteName":995,"ogType":996,"canonicalUrls":14607,"schema":14608},"GitLab.com Container Registry to use Google Cloud CDN","The GitLab.com Container Registry will now interface with the Google Cloud Content Delivery Network","https://about.gitlab.com/blog/gitlab-com-container-registry-cdn-change","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com Container Registry to use Google Cloud CDN\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2022-01-13\",\n      }",{"title":14605,"description":14606,"authors":14610,"heroImage":10632,"date":14611,"category":301,"tags":14612},[4857],"2022-01-13",[564,1569,3075,233],{"slug":14614,"featured":6,"template":736},"gitlab-com-container-registry-cdn-change","content:en-us:blog:gitlab-com-container-registry-cdn-change.yml","Gitlab Com Container Registry Cdn Change","en-us/blog/gitlab-com-container-registry-cdn-change.yml","en-us/blog/gitlab-com-container-registry-cdn-change",{"_path":14620,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14621,"content":14626,"config":14629,"_id":14631,"_type":16,"title":14632,"_source":17,"_file":14633,"_stem":14634,"_extension":20},"/en-us/blog/how-to-begin-your-devops-journey",{"title":14622,"description":14623,"ogTitle":14622,"ogDescription":14623,"noIndex":6,"ogImage":9168,"ogUrl":14624,"ogSiteName":995,"ogType":996,"canonicalUrls":14624,"schema":14625},"How to begin your DevOps journey","So you want a career in DevOps? These easy and affordable opportunities will let you get started today.","https://about.gitlab.com/blog/how-to-begin-your-devops-journey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to begin your DevOps journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2022-01-13\",\n      }",{"title":14622,"description":14623,"authors":14627,"heroImage":9168,"date":14611,"category":577,"tags":14628},[13131],[1050,6980,269],{"slug":14630,"featured":6,"template":736},"how-to-begin-your-devops-journey","content:en-us:blog:how-to-begin-your-devops-journey.yml","How To Begin Your Devops Journey","en-us/blog/how-to-begin-your-devops-journey.yml","en-us/blog/how-to-begin-your-devops-journey",{"_path":14636,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14637,"content":14642,"config":14645,"_id":14647,"_type":16,"title":14648,"_source":17,"_file":14649,"_stem":14650,"_extension":20},"/en-us/blog/new-year-new-programming-language",{"title":14638,"description":14639,"ogTitle":14638,"ogDescription":14639,"noIndex":6,"ogImage":10311,"ogUrl":14640,"ogSiteName":995,"ogType":996,"canonicalUrls":14640,"schema":14641},"New year, new programming language","Use the calendar turnover as an excuse to spark your curiosity and learn one of the hottest programming languages.","https://about.gitlab.com/blog/new-year-new-programming-language","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New year, new programming language\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-01-13\",\n      }",{"title":14638,"description":14639,"authors":14643,"heroImage":10311,"date":14611,"category":577,"tags":14644},[10672],[564,6980],{"slug":14646,"featured":6,"template":736},"new-year-new-programming-language","content:en-us:blog:new-year-new-programming-language.yml","New Year New Programming Language","en-us/blog/new-year-new-programming-language.yml","en-us/blog/new-year-new-programming-language",{"_path":14652,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14653,"content":14658,"config":14662,"_id":14664,"_type":16,"title":14665,"_source":17,"_file":14666,"_stem":14667,"_extension":20},"/en-us/blog/5-ways-to-bring-devops-to-your-campus",{"title":14654,"description":14655,"ogTitle":14654,"ogDescription":14655,"noIndex":6,"ogImage":11590,"ogUrl":14656,"ogSiteName":995,"ogType":996,"canonicalUrls":14656,"schema":14657},"5 ways to bring DevOps to your campus","Educators can give students a career advantage by collaborating with GitLab to bring DevOps lectures, tools, and community straight to the classroom.","https://about.gitlab.com/blog/5-ways-to-bring-devops-to-your-campus","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 ways to bring DevOps to your campus\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"PJ Metz\"}],\n        \"datePublished\": \"2022-01-11\",\n      }",{"title":14654,"description":14655,"authors":14659,"heroImage":11590,"date":14660,"category":577,"tags":14661},[11595],"2022-01-11",[564,6980,269],{"slug":14663,"featured":6,"template":736},"5-ways-to-bring-devops-to-your-campus","content:en-us:blog:5-ways-to-bring-devops-to-your-campus.yml","5 Ways To Bring Devops To Your Campus","en-us/blog/5-ways-to-bring-devops-to-your-campus.yml","en-us/blog/5-ways-to-bring-devops-to-your-campus",{"_path":14669,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14670,"content":14675,"config":14678,"_id":14680,"_type":16,"title":14681,"_source":17,"_file":14682,"_stem":14683,"_extension":20},"/en-us/blog/16-ways-to-get-the-most-out-of-software-documentation",{"title":14671,"description":14672,"ogTitle":14671,"ogDescription":14672,"noIndex":6,"ogImage":11769,"ogUrl":14673,"ogSiteName":995,"ogType":996,"canonicalUrls":14673,"schema":14674},"How to get the most out of software documentation","Want to get even more mileage out of your DevOps platform? Better software documentation is the answer. Here are tips to help you get started.","https://about.gitlab.com/blog/16-ways-to-get-the-most-out-of-software-documentation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to get the most out of software documentation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2022-01-11\",\n      }",{"title":14671,"description":14672,"authors":14676,"heroImage":11769,"date":14660,"category":577,"tags":14677},[3999],[1050,1335,2815],{"slug":14679,"featured":6,"template":736},"16-ways-to-get-the-most-out-of-software-documentation","content:en-us:blog:16-ways-to-get-the-most-out-of-software-documentation.yml","16 Ways To Get The Most Out Of Software Documentation","en-us/blog/16-ways-to-get-the-most-out-of-software-documentation.yml","en-us/blog/16-ways-to-get-the-most-out-of-software-documentation",{"_path":14685,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14686,"content":14692,"config":14697,"_id":14699,"_type":16,"title":14700,"_source":17,"_file":14701,"_stem":14702,"_extension":20},"/en-us/blog/want-secure-software-development-our-top-5-tips-to-bring-dev-and-sec-together",{"title":14687,"description":14688,"ogTitle":14687,"ogDescription":14688,"noIndex":6,"ogImage":14689,"ogUrl":14690,"ogSiteName":995,"ogType":996,"canonicalUrls":14690,"schema":14691},"Developing secure software: Top tips for dev-sec integration","Every DevOps team wants secure software development but it's surprisingly hard to achieve. Here are 5 strategies to bring dev and sec together.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679444/Blog/Hero%20Images/twotogether.jpg","https://about.gitlab.com/blog/want-secure-software-development-our-top-5-tips-to-bring-dev-and-sec-together","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Want secure software development? Our top 5 tips to bring dev and sec together\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2022-01-10\",\n      }",{"title":14693,"description":14688,"authors":14694,"heroImage":14689,"date":14695,"category":8140,"tags":14696},"Want secure software development? Our top 5 tips to bring dev and sec together",[10672],"2022-01-10",[564,790,1335],{"slug":14698,"featured":6,"template":736},"want-secure-software-development-our-top-5-tips-to-bring-dev-and-sec-together","content:en-us:blog:want-secure-software-development-our-top-5-tips-to-bring-dev-and-sec-together.yml","Want Secure Software Development Our Top 5 Tips To Bring Dev And Sec Together","en-us/blog/want-secure-software-development-our-top-5-tips-to-bring-dev-and-sec-together.yml","en-us/blog/want-secure-software-development-our-top-5-tips-to-bring-dev-and-sec-together",{"_path":14704,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14705,"content":14710,"config":14714,"_id":14716,"_type":16,"title":14717,"_source":17,"_file":14718,"_stem":14719,"_extension":20},"/en-us/blog/gitops-with-gitlab-using-ci-cd",{"title":14706,"description":14707,"ogTitle":14706,"ogDescription":14707,"noIndex":6,"ogImage":11319,"ogUrl":14708,"ogSiteName":995,"ogType":996,"canonicalUrls":14708,"schema":14709},"GitOps with GitLab: The CI/CD Tunnel","This is the fifth in a series of tutorials on how to do GitOps with GitLab.","https://about.gitlab.com/blog/gitops-with-gitlab-using-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps with GitLab: The CI/CD Tunnel\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2022-01-07\",\n      }",{"title":14706,"description":14707,"authors":14711,"heroImage":11319,"date":14712,"category":858,"tags":14713},[2942],"2022-01-07",[2908,564,1335],{"slug":14715,"featured":6,"template":736},"gitops-with-gitlab-using-ci-cd","content:en-us:blog:gitops-with-gitlab-using-ci-cd.yml","Gitops With Gitlab Using Ci Cd","en-us/blog/gitops-with-gitlab-using-ci-cd.yml","en-us/blog/gitops-with-gitlab-using-ci-cd",{"_path":14721,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14722,"content":14727,"config":14731,"_id":14733,"_type":16,"title":14734,"_source":17,"_file":14735,"_stem":14736,"_extension":20},"/en-us/blog/elite-team-strategies-to-secure-software-supply-chains",{"title":14723,"description":14724,"ogTitle":14723,"ogDescription":14724,"noIndex":6,"ogImage":14155,"ogUrl":14725,"ogSiteName":995,"ogType":996,"canonicalUrls":14725,"schema":14726},"How elite DevOps teams secure the software supply chain","The time is now to integrate security into your DevOps processes - your business will be better for it.","https://about.gitlab.com/blog/elite-team-strategies-to-secure-software-supply-chains","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How elite DevOps teams secure the software supply chain\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2022-01-06\",\n      }",{"title":14723,"description":14724,"authors":14728,"heroImage":14155,"date":14729,"category":790,"tags":14730},[3506],"2022-01-06",[564,790,1335],{"slug":14732,"featured":6,"template":736},"elite-team-strategies-to-secure-software-supply-chains","content:en-us:blog:elite-team-strategies-to-secure-software-supply-chains.yml","Elite Team Strategies To Secure Software Supply Chains","en-us/blog/elite-team-strategies-to-secure-software-supply-chains.yml","en-us/blog/elite-team-strategies-to-secure-software-supply-chains",{"_path":14738,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14739,"content":14745,"config":14750,"_id":14752,"_type":16,"title":14753,"_source":17,"_file":14754,"_stem":14755,"_extension":20},"/en-us/blog/how-to-bring-devops-to-the-database-with-gitlab-and-liquibase",{"title":14740,"description":14741,"ogTitle":14740,"ogDescription":14741,"noIndex":6,"ogImage":14742,"ogUrl":14743,"ogSiteName":995,"ogType":996,"canonicalUrls":14743,"schema":14744},"How to bring DevOps to the database with GitLab and Liquibase","Learn how to build a continuous delivery pipeline for database code changes with this tutorial.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672677/Blog/Hero%20Images/metalgears_databasecasestudy.jpg","https://about.gitlab.com/blog/how-to-bring-devops-to-the-database-with-gitlab-and-liquibase","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to bring DevOps to the database with GitLab and Liquibase\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tsvi Zandany\"}],\n        \"datePublished\": \"2022-01-05\",\n      }",{"title":14740,"description":14741,"authors":14746,"heroImage":14742,"date":14748,"category":858,"tags":14749},[14747],"Tsvi Zandany","2022-01-05",[233,2097,2098],{"slug":14751,"featured":6,"template":736},"how-to-bring-devops-to-the-database-with-gitlab-and-liquibase","content:en-us:blog:how-to-bring-devops-to-the-database-with-gitlab-and-liquibase.yml","How To Bring Devops To The Database With Gitlab And Liquibase","en-us/blog/how-to-bring-devops-to-the-database-with-gitlab-and-liquibase.yml","en-us/blog/how-to-bring-devops-to-the-database-with-gitlab-and-liquibase",{"_path":14757,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14758,"content":14763,"config":14767,"_id":14769,"_type":16,"title":14770,"_source":17,"_file":14771,"_stem":14772,"_extension":20},"/en-us/blog/the-road-to-smarter-code-reviewer-recommendations",{"title":14759,"description":14760,"ogTitle":14759,"ogDescription":14760,"noIndex":6,"ogImage":14188,"ogUrl":14761,"ogSiteName":995,"ogType":996,"canonicalUrls":14761,"schema":14762},"The road to smarter code reviewer recommendations","Machine learning is coming to GitLab's code review process. Here's what you need to know, and how you can help!","https://about.gitlab.com/blog/the-road-to-smarter-code-reviewer-recommendations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The road to smarter code reviewer recommendations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2022-01-04\",\n      }",{"title":14759,"description":14760,"authors":14764,"heroImage":14188,"date":14765,"category":577,"tags":14766},[6299],"2022-01-04",[564,233,1335,728],{"slug":14768,"featured":6,"template":736},"the-road-to-smarter-code-reviewer-recommendations","content:en-us:blog:the-road-to-smarter-code-reviewer-recommendations.yml","The Road To Smarter Code Reviewer Recommendations","en-us/blog/the-road-to-smarter-code-reviewer-recommendations.yml","en-us/blog/the-road-to-smarter-code-reviewer-recommendations",{"_path":14774,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14775,"content":14780,"config":14784,"_id":14786,"_type":16,"title":14787,"_source":17,"_file":14788,"_stem":14789,"_extension":20},"/en-us/blog/gitlab-chart-works-towards-kubernetes-1-22",{"title":14776,"description":14777,"ogTitle":14776,"ogDescription":14777,"noIndex":6,"ogImage":12964,"ogUrl":14778,"ogSiteName":995,"ogType":996,"canonicalUrls":14778,"schema":14779},"GitLab Chart works towards Kubernetes 1.22","New minimum version is 1.19 for in-chart NGINX Ingress Controller.","https://about.gitlab.com/blog/gitlab-chart-works-towards-kubernetes-1-22","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Chart works towards Kubernetes 1.22\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-12-17\",\n      }",{"title":14776,"description":14777,"authors":14781,"heroImage":12964,"date":14782,"category":858,"tags":14783},[1000],"2021-12-17",[564,1335,2908],{"slug":14785,"featured":6,"template":736},"gitlab-chart-works-towards-kubernetes-1-22","content:en-us:blog:gitlab-chart-works-towards-kubernetes-1-22.yml","Gitlab Chart Works Towards Kubernetes 1 22","en-us/blog/gitlab-chart-works-towards-kubernetes-1-22.yml","en-us/blog/gitlab-chart-works-towards-kubernetes-1-22",{"_path":14791,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14792,"content":14798,"config":14801,"_id":14803,"_type":16,"title":14804,"_source":17,"_file":14805,"_stem":14806,"_extension":20},"/en-us/blog/gitlab-security-twenty-twenty-one",{"title":14793,"description":14794,"ogTitle":14793,"ogDescription":14794,"noIndex":6,"ogImage":14795,"ogUrl":14796,"ogSiteName":995,"ogType":996,"canonicalUrls":14796,"schema":14797},"GitLab Security in 2021: protect, enhance, certify and strengthen","Join our Security team as we review how we worked to keep GitLab, and our community, secure this past year.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670795/Blog/Hero%20Images/security-year-in-review-2021.png","https://about.gitlab.com/blog/gitlab-security-twenty-twenty-one","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Security in 2021: protect, enhance, certify and strengthen\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Johnathan Hunt\"}],\n        \"datePublished\": \"2021-12-17\",\n      }",{"title":14793,"description":14794,"authors":14799,"heroImage":14795,"date":14782,"category":790,"tags":14800},[13788],[790],{"slug":14802,"featured":6,"template":736},"gitlab-security-twenty-twenty-one","content:en-us:blog:gitlab-security-twenty-twenty-one.yml","Gitlab Security Twenty Twenty One","en-us/blog/gitlab-security-twenty-twenty-one.yml","en-us/blog/gitlab-security-twenty-twenty-one",{"_path":14808,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14809,"content":14814,"config":14817,"_id":14819,"_type":16,"title":14820,"_source":17,"_file":14821,"_stem":14822,"_extension":20},"/en-us/blog/hey-icons-lighten-up",{"title":14810,"description":14811,"ogTitle":14810,"ogDescription":14811,"noIndex":6,"ogImage":13467,"ogUrl":14812,"ogSiteName":995,"ogType":996,"canonicalUrls":14812,"schema":14813},"Hey icons, lighten up","Icons can be better, here's how.","https://about.gitlab.com/blog/hey-icons-lighten-up","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Hey icons, lighten up\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeremy Elder\"}],\n        \"datePublished\": \"2021-12-17\",\n      }",{"title":14810,"description":14811,"authors":14815,"heroImage":13467,"date":14782,"category":301,"tags":14816},[4219],[2702,2704,2703],{"slug":14818,"featured":6,"template":736},"hey-icons-lighten-up","content:en-us:blog:hey-icons-lighten-up.yml","Hey Icons Lighten Up","en-us/blog/hey-icons-lighten-up.yml","en-us/blog/hey-icons-lighten-up",{"_path":14824,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14825,"content":14831,"config":14836,"_id":14838,"_type":16,"title":14839,"_source":17,"_file":14840,"_stem":14841,"_extension":20},"/en-us/blog/how-to-navigate-the-great-resignation",{"title":14826,"description":14827,"ogTitle":14826,"ogDescription":14827,"noIndex":6,"ogImage":14828,"ogUrl":14829,"ogSiteName":995,"ogType":996,"canonicalUrls":14829,"schema":14830},"How to navigate The Great Resignation","Tips for leaders and job seekers as they embrace the future of work or search for their first remote job.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679453/Blog/Hero%20Images/remote-work.png","https://about.gitlab.com/blog/how-to-navigate-the-great-resignation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to navigate The Great Resignation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Betsy Bula\"}],\n        \"datePublished\": \"2021-12-16\",\n      }",{"title":14826,"description":14827,"authors":14832,"heroImage":14828,"date":14834,"category":6121,"tags":14835},[14833],"Betsy Bula","2021-12-16",[6980,3914],{"slug":14837,"featured":6,"template":736},"how-to-navigate-the-great-resignation","content:en-us:blog:how-to-navigate-the-great-resignation.yml","How To Navigate The Great Resignation","en-us/blog/how-to-navigate-the-great-resignation.yml","en-us/blog/how-to-navigate-the-great-resignation",{"_path":14843,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14844,"content":14849,"config":14853,"_id":14855,"_type":16,"title":14856,"_source":17,"_file":14857,"_stem":14858,"_extension":20},"/en-us/blog/devops-adoption",{"title":14845,"description":14846,"ogTitle":14845,"ogDescription":14846,"noIndex":6,"ogImage":13180,"ogUrl":14847,"ogSiteName":995,"ogType":996,"canonicalUrls":14847,"schema":14848},"Understand how your teams adopt DevOps with DevOps reports","Learn about analytics, DevOps reports, DevOps scores, and more.","https://about.gitlab.com/blog/devops-adoption","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Understand how your teams adopt DevOps with DevOps reports\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2021-12-15\",\n      }",{"title":14845,"description":14846,"authors":14850,"heroImage":13180,"date":14851,"category":577,"tags":14852},[14332],"2021-12-15",[564,730,772],{"slug":14854,"featured":6,"template":736},"devops-adoption","content:en-us:blog:devops-adoption.yml","Devops Adoption","en-us/blog/devops-adoption.yml","en-us/blog/devops-adoption",{"_path":14860,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14861,"content":14866,"config":14870,"_id":14872,"_type":16,"title":14873,"_source":17,"_file":14874,"_stem":14875,"_extension":20},"/en-us/blog/updates-and-actions-to-address-logj-in-gitlab",{"title":14862,"description":14863,"ogTitle":14862,"ogDescription":14863,"noIndex":6,"ogImage":13091,"ogUrl":14864,"ogSiteName":995,"ogType":996,"canonicalUrls":14864,"schema":14865},"GitLab addresses Log4j vulnerabilities with security updates","Actions we’ve taken to investigate and mitigate the impact of Log4j, and actions our users can take.","https://about.gitlab.com/blog/updates-and-actions-to-address-logj-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Updates and actions to address Log4j CVE 2021 44228 and CVE 2021 45046 in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-12-15\",\n      }",{"title":14867,"description":14863,"authors":14868,"heroImage":13091,"date":14851,"category":790,"tags":14869},"Updates and actions to address Log4j CVE 2021 44228 and CVE 2021 45046 in GitLab",[1000],[790],{"slug":14871,"featured":6,"template":736},"updates-and-actions-to-address-logj-in-gitlab","content:en-us:blog:updates-and-actions-to-address-logj-in-gitlab.yml","Updates And Actions To Address Logj In Gitlab","en-us/blog/updates-and-actions-to-address-logj-in-gitlab.yml","en-us/blog/updates-and-actions-to-address-logj-in-gitlab",{"_path":14877,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14878,"content":14883,"config":14886,"_id":14888,"_type":16,"title":14889,"_source":17,"_file":14890,"_stem":14891,"_extension":20},"/en-us/blog/use-gitlab-to-detect-vulnerabilities",{"title":14879,"description":14880,"ogTitle":14879,"ogDescription":14880,"noIndex":6,"ogImage":13091,"ogUrl":14881,"ogSiteName":995,"ogType":996,"canonicalUrls":14881,"schema":14882},"How to use GitLab security features to detect log4j vulnerabilities","Detailed guidance to help customers detect vulnerabilities.","https://about.gitlab.com/blog/use-gitlab-to-detect-vulnerabilities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab security features to detect log4j vulnerabilities\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-12-15\",\n      }",{"title":14879,"description":14880,"authors":14884,"heroImage":13091,"date":14851,"category":301,"tags":14885},[1000],[790,2908,772],{"slug":14887,"featured":6,"template":736},"use-gitlab-to-detect-vulnerabilities","content:en-us:blog:use-gitlab-to-detect-vulnerabilities.yml","Use Gitlab To Detect Vulnerabilities","en-us/blog/use-gitlab-to-detect-vulnerabilities.yml","en-us/blog/use-gitlab-to-detect-vulnerabilities",{"_path":14893,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14894,"content":14900,"config":14906,"_id":14908,"_type":16,"title":14909,"_source":17,"_file":14910,"_stem":14911,"_extension":20},"/en-us/blog/how-gitlab-successfully-expanded-our-soc-2-type-ii-trust-services-report-criteria",{"title":14895,"description":14896,"ogTitle":14895,"ogDescription":14896,"noIndex":6,"ogImage":14897,"ogUrl":14898,"ogSiteName":995,"ogType":996,"canonicalUrls":14898,"schema":14899},"GitLab expands SOC 2 Type II trust services report criteria","Here's how we expanded our SOC 2 Type 2 and SOC 3 reports.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669950/Blog/Hero%20Images/security-cameras.jpg","https://about.gitlab.com/blog/how-gitlab-successfully-expanded-our-soc-2-type-ii-trust-services-report-criteria","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab successfully expanded our SOC 2 Type II Trust Services Report Criteria\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julia Lake\"},{\"@type\":\"Person\",\"name\":\"Liz Coleman\"}],\n        \"datePublished\": \"2021-12-14\",\n      }",{"title":14901,"description":14896,"authors":14902,"heroImage":14897,"date":14904,"category":790,"tags":14905},"How GitLab successfully expanded our SOC 2 Type II Trust Services Report Criteria",[14903,6483],"Julia Lake","2021-12-14",[790,752,8475],{"slug":14907,"featured":6,"template":736},"how-gitlab-successfully-expanded-our-soc-2-type-ii-trust-services-report-criteria","content:en-us:blog:how-gitlab-successfully-expanded-our-soc-2-type-ii-trust-services-report-criteria.yml","How Gitlab Successfully Expanded Our Soc 2 Type Ii Trust Services Report Criteria","en-us/blog/how-gitlab-successfully-expanded-our-soc-2-type-ii-trust-services-report-criteria.yml","en-us/blog/how-gitlab-successfully-expanded-our-soc-2-type-ii-trust-services-report-criteria",{"_path":14913,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14914,"content":14920,"config":14923,"_id":14925,"_type":16,"title":14926,"_source":17,"_file":14927,"_stem":14928,"_extension":20},"/en-us/blog/smashing-bugs-and-dropping-names-in-2021",{"title":14915,"description":14916,"ogTitle":14915,"ogDescription":14916,"noIndex":6,"ogImage":14917,"ogUrl":14918,"ogSiteName":995,"ogType":996,"canonicalUrls":14918,"schema":14919},"2021: Smashing bugs and dropping names","We take a look at some of the big things that happened in our Bug Bounty program this last year and celebrate the contributions of the bug bounty hunters who make it all possible.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670978/Blog/Hero%20Images/3-bug-bounty-3-years-blog.png","https://about.gitlab.com/blog/smashing-bugs-and-dropping-names-in-2021","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2021: Smashing bugs and dropping names\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-12-14\",\n      }",{"title":14915,"description":14916,"authors":14921,"heroImage":14917,"date":14904,"category":790,"tags":14922},[11324],[790,2483],{"slug":14924,"featured":6,"template":736},"smashing-bugs-and-dropping-names-in-2021","content:en-us:blog:smashing-bugs-and-dropping-names-in-2021.yml","Smashing Bugs And Dropping Names In 2021","en-us/blog/smashing-bugs-and-dropping-names-in-2021.yml","en-us/blog/smashing-bugs-and-dropping-names-in-2021",{"_path":14930,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14931,"content":14936,"config":14940,"_id":14942,"_type":16,"title":14943,"_source":17,"_file":14944,"_stem":14945,"_extension":20},"/en-us/blog/composition-analysis-group-deprecations",{"title":14932,"description":14933,"ogTitle":14932,"ogDescription":14933,"noIndex":6,"ogImage":11046,"ogUrl":14934,"ogSiteName":995,"ogType":996,"canonicalUrls":14934,"schema":14935},"Announcing 14.6 Composition Analysis deprecations and behavior changes","Upcoming deprecations and behavior changes for the Dependency Scanning and License Compliance features.","https://about.gitlab.com/blog/composition-analysis-group-deprecations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing 14.6 Composition Analysis deprecations and behavior changes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nicole Schwartz\"}],\n        \"datePublished\": \"2021-12-13\",\n      }",{"title":14932,"description":14933,"authors":14937,"heroImage":11046,"date":14938,"category":1049,"tags":14939},[13825],"2021-12-13",[730,892],{"slug":14941,"featured":6,"template":736},"composition-analysis-group-deprecations","content:en-us:blog:composition-analysis-group-deprecations.yml","Composition Analysis Group Deprecations","en-us/blog/composition-analysis-group-deprecations.yml","en-us/blog/composition-analysis-group-deprecations",{"_path":14947,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14948,"content":14954,"config":14958,"_id":14960,"_type":16,"title":14961,"_source":17,"_file":14962,"_stem":14963,"_extension":20},"/en-us/blog/how-to-automate-localization-for-flutter-apps",{"title":14949,"description":14950,"ogTitle":14949,"ogDescription":14950,"noIndex":6,"ogImage":14951,"ogUrl":14952,"ogSiteName":995,"ogType":996,"canonicalUrls":14952,"schema":14953},"How to automate localization for Flutter apps","Follow this tutorial to learn how to simplify the localization process on GitLab with Localizely.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679465/Blog/Hero%20Images/flutterbanner.png","https://about.gitlab.com/blog/how-to-automate-localization-for-flutter-apps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to automate localization for Flutter apps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-12-10\",\n      }",{"title":14949,"description":14950,"authors":14955,"heroImage":14951,"date":14956,"category":858,"tags":14957},[1000],"2021-12-10",[564,6376,772],{"slug":14959,"featured":6,"template":736},"how-to-automate-localization-for-flutter-apps","content:en-us:blog:how-to-automate-localization-for-flutter-apps.yml","How To Automate Localization For Flutter Apps","en-us/blog/how-to-automate-localization-for-flutter-apps.yml","en-us/blog/how-to-automate-localization-for-flutter-apps",{"_path":14965,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14966,"content":14971,"config":14975,"_id":14977,"_type":16,"title":14978,"_source":17,"_file":14979,"_stem":14980,"_extension":20},"/en-us/blog/congratulations-to-hashicorp",{"title":14967,"description":14968,"ogTitle":14967,"ogDescription":14968,"noIndex":6,"ogImage":13467,"ogUrl":14969,"ogSiteName":995,"ogType":996,"canonicalUrls":14969,"schema":14970},"Congratulations to HashiCorp! Enjoy the cake!","We’re thrilled to see our open source and tech partner HashiCorp join us in the public market. Public companies like HashiCorp, MongoDB, Confluent, and GitLab show that with the right business models, open source can be highly profitable. Here’s a look at HashiCorp’s history, our partnership, and a nod to the future.","https://about.gitlab.com/blog/congratulations-to-hashicorp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Congratulations to HashiCorp! Enjoy the cake!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-12-09\",\n      }",{"title":14967,"description":14968,"authors":14972,"heroImage":13467,"date":14973,"category":8140,"tags":14974},[1000],"2021-12-09",[564,1265,233],{"slug":14976,"featured":6,"template":736},"congratulations-to-hashicorp","content:en-us:blog:congratulations-to-hashicorp.yml","Congratulations To Hashicorp","en-us/blog/congratulations-to-hashicorp.yml","en-us/blog/congratulations-to-hashicorp",{"_path":14982,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":14983,"content":14989,"config":14993,"_id":14995,"_type":16,"title":14996,"_source":17,"_file":14997,"_stem":14998,"_extension":20},"/en-us/blog/devsecops-faq-get-up-to-speed-on-this-hot-devops-area",{"title":14984,"description":14985,"ogTitle":14984,"ogDescription":14985,"noIndex":6,"ogImage":14986,"ogUrl":14987,"ogSiteName":995,"ogType":996,"canonicalUrls":14987,"schema":14988},"DevSecOps FAQ: Get up to speed","There's more to dev, sec and ops than meets the eye, particularly when they're combined. Here's what you need to know about DevSecOps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669784/Blog/Hero%20Images/security-testing-principles-devs.jpg","https://about.gitlab.com/blog/devsecops-faq-get-up-to-speed-on-this-hot-devops-area","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps FAQ: Get up to speed\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-12-08\",\n      }",{"title":14984,"description":14985,"authors":14990,"heroImage":14986,"date":14991,"category":8140,"tags":14992},[10672],"2021-12-08",[564,790,6980],{"slug":14994,"featured":6,"template":736},"devsecops-faq-get-up-to-speed-on-this-hot-devops-area","content:en-us:blog:devsecops-faq-get-up-to-speed-on-this-hot-devops-area.yml","Devsecops Faq Get Up To Speed On This Hot Devops Area","en-us/blog/devsecops-faq-get-up-to-speed-on-this-hot-devops-area.yml","en-us/blog/devsecops-faq-get-up-to-speed-on-this-hot-devops-area",{"_path":15000,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15001,"content":15007,"config":15010,"_id":15012,"_type":16,"title":15013,"_source":17,"_file":15014,"_stem":15015,"_extension":20},"/en-us/blog/where-to-donate-your-devops-skills",{"title":15002,"description":15003,"ogTitle":15002,"ogDescription":15003,"noIndex":6,"ogImage":15004,"ogUrl":15005,"ogSiteName":995,"ogType":996,"canonicalUrls":15005,"schema":15006},"Where to donate your DevOps skills","Want to feel great and help fill the DevOps talent pipeline? Here are some rewarding opportunities to donate your tech knowledge to others.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683269/Blog/Hero%20Images/clark-tibbs-oqstl2l5oxi-unsplash.jpg","https://about.gitlab.com/blog/where-to-donate-your-devops-skills","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Where to donate your DevOps skills\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sandra Gittlen\"}],\n        \"datePublished\": \"2021-12-08\",\n      }",{"title":15002,"description":15003,"authors":15008,"heroImage":15004,"date":14991,"category":6980,"tags":15009},[3506],[564,1265,269],{"slug":15011,"featured":6,"template":736},"where-to-donate-your-devops-skills","content:en-us:blog:where-to-donate-your-devops-skills.yml","Where To Donate Your Devops Skills","en-us/blog/where-to-donate-your-devops-skills.yml","en-us/blog/where-to-donate-your-devops-skills",{"_path":15017,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15018,"content":15024,"config":15029,"_id":15031,"_type":16,"title":15032,"_source":17,"_file":15033,"_stem":15034,"_extension":20},"/en-us/blog/devops-predictions-gitlab-experts-weigh-in-on-ai-security-remote-work-and-more",{"title":15019,"description":15020,"ogTitle":15019,"ogDescription":15020,"noIndex":6,"ogImage":15021,"ogUrl":15022,"ogSiteName":995,"ogType":996,"canonicalUrls":15022,"schema":15023},"2022 DevOps predictions: AI, security, remote work & more","Want to see into the DevOps future? We’ve got insights to share, including the challenges for AI/ML and the impact of cloud-native on DevSecOps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683162/Blog/Hero%20Images/tomasz-frankowski-kbufvkbfioe-unsplash.jpg","https://about.gitlab.com/blog/devops-predictions-gitlab-experts-weigh-in-on-ai-security-remote-work-and-more","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2022 DevOps predictions: GitLab experts weigh in on AI, security, remote   work, and more\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-12-06\",\n      }",{"title":15025,"description":15020,"authors":15026,"heroImage":15021,"date":15027,"category":8140,"tags":15028},"2022 DevOps predictions: GitLab experts weigh in on AI, security, remote work, and more",[1000],"2021-12-06",[564,790,1265],{"slug":15030,"featured":6,"template":736},"devops-predictions-gitlab-experts-weigh-in-on-ai-security-remote-work-and-more","content:en-us:blog:devops-predictions-gitlab-experts-weigh-in-on-ai-security-remote-work-and-more.yml","Devops Predictions Gitlab Experts Weigh In On Ai Security Remote Work And More","en-us/blog/devops-predictions-gitlab-experts-weigh-in-on-ai-security-remote-work-and-more.yml","en-us/blog/devops-predictions-gitlab-experts-weigh-in-on-ai-security-remote-work-and-more",{"_path":15036,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15037,"content":15042,"config":15047,"_id":15049,"_type":16,"title":15050,"_source":17,"_file":15051,"_stem":15052,"_extension":20},"/en-us/blog/gitlab-technical-certification-award-wins",{"title":15038,"description":15039,"ogTitle":15038,"ogDescription":15039,"noIndex":6,"ogImage":11046,"ogUrl":15040,"ogSiteName":995,"ogType":996,"canonicalUrls":15040,"schema":15041},"GitLab Technical Certifications program wins 5 awards at LearnX Conference","GitLab's Tech Certification programs won 5 different awards at this year's LearnX conference.","https://about.gitlab.com/blog/gitlab-technical-certification-award-wins","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Technical Certifications program wins 5 awards at LearnX Conference\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kendra Marquart\"}],\n        \"datePublished\": \"2021-12-03\",\n      }",{"title":15038,"description":15039,"authors":15043,"heroImage":11046,"date":15045,"category":790,"tags":15046},[15044],"Kendra Marquart","2021-12-03",[730,1569,269],{"slug":15048,"featured":6,"template":736},"gitlab-technical-certification-award-wins","content:en-us:blog:gitlab-technical-certification-award-wins.yml","Gitlab Technical Certification Award Wins","en-us/blog/gitlab-technical-certification-award-wins.yml","en-us/blog/gitlab-technical-certification-award-wins",{"_path":15054,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15055,"content":15060,"config":15064,"_id":15066,"_type":16,"title":15067,"_source":17,"_file":15068,"_stem":15069,"_extension":20},"/en-us/blog/gitops-with-gitlab-secrets-management",{"title":15056,"description":15057,"ogTitle":15056,"ogDescription":15057,"noIndex":6,"ogImage":11046,"ogUrl":15058,"ogSiteName":995,"ogType":996,"canonicalUrls":15058,"schema":15059},"GitOps with GitLab: How to tackle secrets management","In part four of our GitOps series, we learn how to manage secrets with the GitLab Agent for Kubernetes.","https://about.gitlab.com/blog/gitops-with-gitlab-secrets-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps with GitLab: How to tackle secrets management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-12-02\",\n      }",{"title":15056,"description":15057,"authors":15061,"heroImage":11046,"date":15062,"category":858,"tags":15063},[2942],"2021-12-02",[559,2908,1569],{"slug":15065,"featured":6,"template":736},"gitops-with-gitlab-secrets-management","content:en-us:blog:gitops-with-gitlab-secrets-management.yml","Gitops With Gitlab Secrets Management","en-us/blog/gitops-with-gitlab-secrets-management.yml","en-us/blog/gitops-with-gitlab-secrets-management",{"_path":15071,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15072,"content":15077,"config":15081,"_id":15083,"_type":16,"title":15084,"_source":17,"_file":15085,"_stem":15086,"_extension":20},"/en-us/blog/dont-confuse-these-twelve-shortcuts-with-iteration",{"title":15073,"description":15074,"ogTitle":15073,"ogDescription":15074,"noIndex":6,"ogImage":13467,"ogUrl":15075,"ogSiteName":995,"ogType":996,"canonicalUrls":15075,"schema":15076},"Don’t confuse these 12 shortcuts with iteration","Iteration is a GitLab value. Sid Sijbrandij, GitLab’s co-founder and CEO, discusses 12 shortcuts that are not iterations to help refine what is considered a good iteration.","https://about.gitlab.com/blog/dont-confuse-these-twelve-shortcuts-with-iteration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Don’t confuse these 12 shortcuts with iteration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2021-12-01\",\n      }",{"title":15073,"description":15074,"authors":15078,"heroImage":13467,"date":15079,"category":577,"tags":15080},[3701],"2021-12-01",[564,1335,6376],{"slug":15082,"featured":6,"template":736},"dont-confuse-these-twelve-shortcuts-with-iteration","content:en-us:blog:dont-confuse-these-twelve-shortcuts-with-iteration.yml","Dont Confuse These Twelve Shortcuts With Iteration","en-us/blog/dont-confuse-these-twelve-shortcuts-with-iteration.yml","en-us/blog/dont-confuse-these-twelve-shortcuts-with-iteration",{"_path":15088,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15089,"content":15094,"config":15098,"_id":15100,"_type":16,"title":15101,"_source":17,"_file":15102,"_stem":15103,"_extension":20},"/en-us/blog/gitlab-incident-management",{"title":15090,"description":15091,"ogTitle":15090,"ogDescription":15091,"noIndex":6,"ogImage":11046,"ogUrl":15092,"ogSiteName":995,"ogType":996,"canonicalUrls":15092,"schema":15093},"Downtime happens, but GitLab Incident Management can help","GitLab's DevOps Platform doesn't just make it easy to release safe software faster, it also streamlines the process for problem solving. Here's a deep dive into GitLab Incident Management.","https://about.gitlab.com/blog/gitlab-incident-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Downtime happens, but GitLab Incident Management can help\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2021-11-30\",\n      }",{"title":15090,"description":15091,"authors":15095,"heroImage":11046,"date":15096,"category":577,"tags":15097},[1016],"2021-11-30",[564,2815,1988],{"slug":15099,"featured":6,"template":736},"gitlab-incident-management","content:en-us:blog:gitlab-incident-management.yml","Gitlab Incident Management","en-us/blog/gitlab-incident-management.yml","en-us/blog/gitlab-incident-management",{"_path":15105,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15106,"content":15111,"config":15114,"_id":15116,"_type":16,"title":15117,"_source":17,"_file":15118,"_stem":15119,"_extension":20},"/en-us/blog/soft-skills-are-the-key-to-your-devops-career-advancement",{"title":15107,"description":15108,"ogTitle":15107,"ogDescription":15108,"noIndex":6,"ogImage":14363,"ogUrl":15109,"ogSiteName":995,"ogType":996,"canonicalUrls":15109,"schema":15110},"Soft skills are the key to your DevOps career advancement","Learn the top soft skills you should invest time in to get a better salary and achieve your career goals.","https://about.gitlab.com/blog/soft-skills-are-the-key-to-your-devops-career-advancement","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Soft skills are the key to your DevOps career advancement\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2021-11-30\",\n      }",{"title":15107,"description":15108,"authors":15112,"heroImage":14363,"date":15096,"category":8140,"tags":15113},[3999],[6980,564,2815],{"slug":15115,"featured":6,"template":736},"soft-skills-are-the-key-to-your-devops-career-advancement","content:en-us:blog:soft-skills-are-the-key-to-your-devops-career-advancement.yml","Soft Skills Are The Key To Your Devops Career Advancement","en-us/blog/soft-skills-are-the-key-to-your-devops-career-advancement.yml","en-us/blog/soft-skills-are-the-key-to-your-devops-career-advancement",{"_path":15121,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15122,"content":15127,"config":15133,"_id":15135,"_type":16,"title":15136,"_source":17,"_file":15137,"_stem":15138,"_extension":20},"/en-us/blog/five-devops-platform-benefits-that-inspire-gitlab-users",{"title":15123,"description":15124,"ogTitle":15123,"ogDescription":15124,"noIndex":6,"ogImage":13467,"ogUrl":15125,"ogSiteName":995,"ogType":996,"canonicalUrls":15125,"schema":15126},"Five benefits that inspire users to become GitLab advocates","Learn how a single tweet led to insight from our advocates on how they use GitLab to improve their work and their own lives.","https://about.gitlab.com/blog/five-devops-platform-benefits-that-inspire-gitlab-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 DevOps platform benefits that inspire GitLab users to become GitLab advocates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Omar Fernandez\"}],\n        \"datePublished\": \"2021-11-23\",\n      }",{"title":15128,"description":15124,"authors":15129,"heroImage":13467,"date":15131,"category":577,"tags":15132},"5 DevOps platform benefits that inspire GitLab users to become GitLab advocates",[15130],"Omar Fernandez","2021-11-23",[564,3074,269],{"slug":15134,"featured":6,"template":736},"five-devops-platform-benefits-that-inspire-gitlab-users","content:en-us:blog:five-devops-platform-benefits-that-inspire-gitlab-users.yml","Five Devops Platform Benefits That Inspire Gitlab Users","en-us/blog/five-devops-platform-benefits-that-inspire-gitlab-users.yml","en-us/blog/five-devops-platform-benefits-that-inspire-gitlab-users",{"_path":15140,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15141,"content":15146,"config":15150,"_id":15152,"_type":16,"title":15153,"_source":17,"_file":15154,"_stem":15155,"_extension":20},"/en-us/blog/three-things-you-might-not-know-about-gitlab-security",{"title":15142,"description":15143,"ogTitle":15142,"ogDescription":15143,"noIndex":6,"ogImage":13977,"ogUrl":15144,"ogSiteName":995,"ogType":996,"canonicalUrls":15144,"schema":15145},"Three things you might not know about GitLab security","There's so much more to GitLab's security offering than meets the eye. Here are three features you may have missed.","https://about.gitlab.com/blog/three-things-you-might-not-know-about-gitlab-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Three things you might not know about GitLab security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Wilson\"}],\n        \"datePublished\": \"2021-11-23\",\n      }",{"title":15142,"description":15143,"authors":15147,"heroImage":13977,"date":15131,"category":790,"tags":15149},[15148],"Matt Wilson",[564,790,730],{"slug":15151,"featured":6,"template":736},"three-things-you-might-not-know-about-gitlab-security","content:en-us:blog:three-things-you-might-not-know-about-gitlab-security.yml","Three Things You Might Not Know About Gitlab Security","en-us/blog/three-things-you-might-not-know-about-gitlab-security.yml","en-us/blog/three-things-you-might-not-know-about-gitlab-security",{"_path":15157,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15158,"content":15163,"config":15167,"_id":15169,"_type":16,"title":15159,"_source":17,"_file":15170,"_stem":15171,"_extension":20},"/en-us/blog/situational-leadership-strategy",{"title":15159,"description":15160,"ogTitle":15159,"ogDescription":15160,"noIndex":6,"ogImage":14828,"ogUrl":15161,"ogSiteName":995,"ogType":996,"canonicalUrls":15161,"schema":15162},"Situational Leadership Strategy","GitLab CEO Sid Sijbrandij shares how he incorporates situational leadership in his management style.","https://about.gitlab.com/blog/situational-leadership-strategy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Situational Leadership Strategy\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2021-11-19\",\n      }",{"title":15159,"description":15160,"authors":15164,"heroImage":14828,"date":15165,"category":8140,"tags":15166},[3701],"2021-11-19",[6980,2815,1335],{"slug":15168,"featured":6,"template":736},"situational-leadership-strategy","content:en-us:blog:situational-leadership-strategy.yml","en-us/blog/situational-leadership-strategy.yml","en-us/blog/situational-leadership-strategy",{"_path":15173,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15174,"content":15180,"config":15189,"_id":15191,"_type":16,"title":15192,"_source":17,"_file":15193,"_stem":15194,"_extension":20},"/en-us/blog/deep-dive-tech-stack-behind-spamcheck",{"title":15175,"description":15176,"ogTitle":15175,"ogDescription":15176,"noIndex":6,"ogImage":15177,"ogUrl":15178,"ogSiteName":995,"ogType":996,"canonicalUrls":15178,"schema":15179},"Deep dive: the tech stack behind Spamcheck","We take a closer look at the tooling, technical choices, metrics and lessons learned behind our new anti-abuse tool.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669851/Blog/Hero%20Images/vincent-toesca-KnK98ScsZbU-unsplash.jpg","https://about.gitlab.com/blog/deep-dive-tech-stack-behind-spamcheck","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Deep dive: the tech stack behind Spamcheck\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jayson Salazar\"},{\"@type\":\"Person\",\"name\":\"Alexander Dietrich\"},{\"@type\":\"Person\",\"name\":\"Alex Groleau\"},{\"@type\":\"Person\",\"name\":\"Ethan Urie\"},{\"@type\":\"Person\",\"name\":\"Juliet Wanjohi\"}],\n        \"datePublished\": \"2021-11-18\",\n      }",{"title":15175,"description":15176,"authors":15181,"heroImage":15177,"date":15187,"category":790,"tags":15188},[15182,15183,15184,15185,15186],"Jayson Salazar","Alexander Dietrich","Alex Groleau","Ethan Urie","Juliet Wanjohi","2021-11-18",[790],{"slug":15190,"featured":6,"template":736},"deep-dive-tech-stack-behind-spamcheck","content:en-us:blog:deep-dive-tech-stack-behind-spamcheck.yml","Deep Dive Tech Stack Behind Spamcheck","en-us/blog/deep-dive-tech-stack-behind-spamcheck.yml","en-us/blog/deep-dive-tech-stack-behind-spamcheck",{"_path":15196,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15197,"content":15202,"config":15205,"_id":15207,"_type":16,"title":15208,"_source":17,"_file":15209,"_stem":15210,"_extension":20},"/en-us/blog/gitops-with-gitlab-connecting-the-cluster",{"title":15198,"description":15199,"ogTitle":15198,"ogDescription":15199,"noIndex":6,"ogImage":11046,"ogUrl":15200,"ogSiteName":995,"ogType":996,"canonicalUrls":15200,"schema":15201},"GitOps with GitLab: Connect with a Kubernetes cluster","In our third article in our GitOps series, learn how to connect a Kubernetes cluster with GitLab for pull and push-based deployments.","https://about.gitlab.com/blog/gitops-with-gitlab-connecting-the-cluster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps with GitLab: Connect with a Kubernetes cluster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-11-18\",\n      }",{"title":15198,"description":15199,"authors":15203,"heroImage":11046,"date":15187,"category":858,"tags":15204},[2942],[2908,233,1569],{"slug":15206,"featured":6,"template":736},"gitops-with-gitlab-connecting-the-cluster","content:en-us:blog:gitops-with-gitlab-connecting-the-cluster.yml","Gitops With Gitlab Connecting The Cluster","en-us/blog/gitops-with-gitlab-connecting-the-cluster.yml","en-us/blog/gitops-with-gitlab-connecting-the-cluster",{"_path":15212,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15213,"content":15219,"config":15223,"_id":15225,"_type":16,"title":15226,"_source":17,"_file":15227,"_stem":15228,"_extension":20},"/en-us/blog/the-top-skills-you-need-to-get-your-devops-dream-job",{"title":15214,"description":15215,"ogTitle":15214,"ogDescription":15215,"noIndex":6,"ogImage":15216,"ogUrl":15217,"ogSiteName":995,"ogType":996,"canonicalUrls":15217,"schema":15218},"The top skills you need to get your DevOps dream job or a higher salary","AI, ML, automation – time to learn these new tech skills to stay competitive and land the job or promotion you want.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664025/Blog/Hero%20Images/devopscareer.jpg","https://about.gitlab.com/blog/the-top-skills-you-need-to-get-your-devops-dream-job","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The top skills you need to get your DevOps dream job or a higher salary\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2021-11-17\",\n      }",{"title":15214,"description":15215,"authors":15220,"heroImage":15216,"date":15221,"category":8140,"tags":15222},[3999],"2021-11-17",[6980,564,7788],{"slug":15224,"featured":6,"template":736},"the-top-skills-you-need-to-get-your-devops-dream-job","content:en-us:blog:the-top-skills-you-need-to-get-your-devops-dream-job.yml","The Top Skills You Need To Get Your Devops Dream Job","en-us/blog/the-top-skills-you-need-to-get-your-devops-dream-job.yml","en-us/blog/the-top-skills-you-need-to-get-your-devops-dream-job",{"_path":15230,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15231,"content":15236,"config":15240,"_id":15242,"_type":16,"title":15243,"_source":17,"_file":15244,"_stem":15245,"_extension":20},"/en-us/blog/vscode-workflow-new-features",{"title":15232,"description":15233,"ogTitle":15232,"ogDescription":15233,"noIndex":6,"ogImage":10957,"ogUrl":15234,"ogSiteName":995,"ogType":996,"canonicalUrls":15234,"schema":15235},"Four new tools for your Visual Studio Code and GitLab tool belt","Learn about new features that can help you review MRs and interact with GitLab","https://about.gitlab.com/blog/vscode-workflow-new-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Four new tools for your Visual Studio Code and GitLab tool belt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tomas Vik\"}],\n        \"datePublished\": \"2021-11-17\",\n      }",{"title":15232,"description":15233,"authors":15237,"heroImage":10957,"date":15221,"category":858,"tags":15239},[15238],"Tomas Vik",[233,772,564],{"slug":15241,"featured":6,"template":736},"vscode-workflow-new-features","content:en-us:blog:vscode-workflow-new-features.yml","Vscode Workflow New Features","en-us/blog/vscode-workflow-new-features.yml","en-us/blog/vscode-workflow-new-features",{"_path":15247,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15248,"content":15253,"config":15258,"_id":15260,"_type":16,"title":15261,"_source":17,"_file":15262,"_stem":15263,"_extension":20},"/en-us/blog/engineering-managers-automate-their-jobs",{"title":15249,"description":15250,"ogTitle":15249,"ogDescription":15250,"noIndex":6,"ogImage":11046,"ogUrl":15251,"ogSiteName":995,"ogType":996,"canonicalUrls":15251,"schema":15252},"How GitLab automates engineering management","At GitLab we know automation is engineering's best friend. Here's a deep\ndive into three scripts we use regularly to keep big projects on track.","https://about.gitlab.com/blog/engineering-managers-automate-their-jobs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab automates engineering management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Seth Berger\"}],\n        \"datePublished\": \"2021-11-16\",\n      }",{"title":15249,"description":15250,"authors":15254,"heroImage":11046,"date":15256,"category":301,"tags":15257},[15255],"Seth Berger","2021-11-16",[1335,1569,2815],{"slug":15259,"featured":6,"template":736},"engineering-managers-automate-their-jobs","content:en-us:blog:engineering-managers-automate-their-jobs.yml","Engineering Managers Automate Their Jobs","en-us/blog/engineering-managers-automate-their-jobs.yml","en-us/blog/engineering-managers-automate-their-jobs",{"_path":15265,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15266,"content":15272,"config":15275,"_id":15277,"_type":16,"title":15278,"_source":17,"_file":15279,"_stem":15280,"_extension":20},"/en-us/blog/gko-on-ocp",{"title":15267,"description":15268,"ogTitle":15267,"ogDescription":15268,"noIndex":6,"ogImage":15269,"ogUrl":15270,"ogSiteName":995,"ogType":996,"canonicalUrls":15270,"schema":15271},"How to install and use the GitLab Kubernetes Operator","Follow these step-by-step instructions to set up the GitLab Kubernetes Operator on a Kubernetes cluster.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682191/Blog/Hero%20Images/GKO-Thumbnail.png","https://about.gitlab.com/blog/gko-on-ocp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to install and use the GitLab Kubernetes Operator\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2021-11-16\",\n      }",{"title":15267,"description":15268,"authors":15273,"heroImage":15269,"date":15256,"category":858,"tags":15274},[767],[2908,730,233],{"slug":15276,"featured":6,"template":736},"gko-on-ocp","content:en-us:blog:gko-on-ocp.yml","Gko On Ocp","en-us/blog/gko-on-ocp.yml","en-us/blog/gko-on-ocp",{"_path":15282,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15283,"content":15288,"config":15293,"_id":15295,"_type":16,"title":15296,"_source":17,"_file":15297,"_stem":15298,"_extension":20},"/en-us/blog/deprecating-the-cert-based-kubernetes-integration",{"title":15284,"description":15285,"ogTitle":15284,"ogDescription":15285,"noIndex":6,"ogImage":12282,"ogUrl":15286,"ogSiteName":995,"ogType":996,"canonicalUrls":15286,"schema":15287},"Deprecating cert-based Kubernetes integration in GitLab 14.5","Understand why we're deprecating this integration, how it might affect you, and get a closer look at GitLab Agent for Kubernetes.","https://about.gitlab.com/blog/deprecating-the-cert-based-kubernetes-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We are deprecating the certificate-based integration with Kubernetes in GitLab 14.5\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-11-15\",\n      }",{"title":15289,"description":15285,"authors":15290,"heroImage":12282,"date":15291,"category":1049,"tags":15292},"We are deprecating the certificate-based integration with Kubernetes in GitLab 14.5",[2942],"2021-11-15",[2908,233,892],{"slug":15294,"featured":6,"template":736},"deprecating-the-cert-based-kubernetes-integration","content:en-us:blog:deprecating-the-cert-based-kubernetes-integration.yml","Deprecating The Cert Based Kubernetes Integration","en-us/blog/deprecating-the-cert-based-kubernetes-integration.yml","en-us/blog/deprecating-the-cert-based-kubernetes-integration",{"_path":15300,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15301,"content":15307,"config":15311,"_id":15313,"_type":16,"title":15314,"_source":17,"_file":15315,"_stem":15316,"_extension":20},"/en-us/blog/top-five-actions-owasp-2021",{"title":15302,"description":15303,"ogTitle":15302,"ogDescription":15303,"noIndex":6,"ogImage":15304,"ogUrl":15305,"ogSiteName":995,"ogType":996,"canonicalUrls":15305,"schema":15306},"Five key actions to take based on OWASP Top 10 2021 updates","Learn what actions engineers should take based on the OWASP Top 10 updates for 2021","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684879/Blog/Hero%20Images/joshua-golde-qIu77BsFdds-unsplash.jpg","https://about.gitlab.com/blog/top-five-actions-owasp-2021","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top five actions engineers should take based on the OWASP Top 10 2021 security updates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Wayne Haber\"}],\n        \"datePublished\": \"2021-11-15\",\n      }",{"title":15308,"description":15303,"authors":15309,"heroImage":15304,"date":15291,"category":790},"Top five actions engineers should take based on the OWASP Top 10 2021 security updates",[15310],"Wayne Haber",{"slug":15312,"featured":6,"template":736},"top-five-actions-owasp-2021","content:en-us:blog:top-five-actions-owasp-2021.yml","Top Five Actions Owasp 2021","en-us/blog/top-five-actions-owasp-2021.yml","en-us/blog/top-five-actions-owasp-2021",{"_path":15318,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15319,"content":15324,"config":15329,"_id":15331,"_type":16,"title":15332,"_source":17,"_file":15333,"_stem":15334,"_extension":20},"/en-us/blog/you-are-hired-two-gitlab-contributors-turn-their-success-into-full-time-engineering-roles",{"title":15320,"description":15321,"ogTitle":15320,"ogDescription":15321,"noIndex":6,"ogImage":13467,"ogUrl":15322,"ogSiteName":995,"ogType":996,"canonicalUrls":15322,"schema":15323},"How contributors earned full-time engineering roles at GitLab","As we continue to celebrate the 10th anniversary of the first commit to GitLab, here's a look at how two highly active community members became enthusiastic team members.","https://about.gitlab.com/blog/you-are-hired-two-gitlab-contributors-turn-their-success-into-full-time-engineering-roles","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"You're hired! Two GitLab contributors turn their success into full-time engineering roles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-11-12\",\n      }",{"title":15325,"description":15321,"authors":15326,"heroImage":13467,"date":15327,"category":577,"tags":15328},"You're hired! Two GitLab contributors turn their success into full-time engineering roles",[1000],"2021-11-12",[564,3074,1569],{"slug":15330,"featured":6,"template":736},"you-are-hired-two-gitlab-contributors-turn-their-success-into-full-time-engineering-roles","content:en-us:blog:you-are-hired-two-gitlab-contributors-turn-their-success-into-full-time-engineering-roles.yml","You Are Hired Two Gitlab Contributors Turn Their Success Into Full Time Engineering Roles","en-us/blog/you-are-hired-two-gitlab-contributors-turn-their-success-into-full-time-engineering-roles.yml","en-us/blog/you-are-hired-two-gitlab-contributors-turn-their-success-into-full-time-engineering-roles",{"_path":15336,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15337,"content":15343,"config":15347,"_id":15349,"_type":16,"title":15350,"_source":17,"_file":15351,"_stem":15352,"_extension":20},"/en-us/blog/public-project-minute-limits",{"title":15338,"description":15339,"ogTitle":15338,"ogDescription":15339,"noIndex":6,"ogImage":15340,"ogUrl":15341,"ogSiteName":995,"ogType":996,"canonicalUrls":15341,"schema":15342},"Changes to GitLab.com public project CI/CD minute quotas","How cryptomining has shaped our pipeline consumption visibility approach and our forward-looking changes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666275/Blog/Hero%20Images/ci_minutes.jpg","https://about.gitlab.com/blog/public-project-minute-limits","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Changes to GitLab.com public project CI/CD minute quotas\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jackie Porter\"}],\n        \"datePublished\": \"2021-11-11\",\n      }",{"title":15338,"description":15339,"authors":15344,"heroImage":15340,"date":15345,"category":1049,"tags":15346},[3324],"2021-11-11",[2097,2098,3074],{"slug":15348,"featured":6,"template":736},"public-project-minute-limits","content:en-us:blog:public-project-minute-limits.yml","Public Project Minute Limits","en-us/blog/public-project-minute-limits.yml","en-us/blog/public-project-minute-limits",{"_path":15354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15355,"content":15361,"config":15366,"_id":15368,"_type":16,"title":15369,"_source":17,"_file":15370,"_stem":15371,"_extension":20},"/en-us/blog/a-special-farewell-from-gitlab-dmitriy-zaporozhets",{"title":15356,"description":15357,"ogTitle":15356,"ogDescription":15357,"noIndex":6,"ogImage":15358,"ogUrl":15359,"ogSiteName":995,"ogType":996,"canonicalUrls":15359,"schema":15360},"A special farewell from GitLab’s Dmitriy Zaporozhets","A message from GitLab's co-founders","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670031/Blog/Hero%20Images/siddz.png","https://about.gitlab.com/blog/a-special-farewell-from-gitlab-dmitriy-zaporozhets","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A special farewell from GitLab’s Dmitriy Zaporozhets\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"},{\"@type\":\"Person\",\"name\":\"Dmitriy Zaporozhets\"}],\n        \"datePublished\": \"2021-11-10\",\n      }",{"title":15356,"description":15357,"authors":15362,"heroImage":15358,"date":15364,"category":1049,"tags":15365},[3701,15363],"Dmitriy Zaporozhets","2021-11-10",[1569,269,3074],{"slug":15367,"featured":6,"template":736},"a-special-farewell-from-gitlab-dmitriy-zaporozhets","content:en-us:blog:a-special-farewell-from-gitlab-dmitriy-zaporozhets.yml","A Special Farewell From Gitlab Dmitriy Zaporozhets","en-us/blog/a-special-farewell-from-gitlab-dmitriy-zaporozhets.yml","en-us/blog/a-special-farewell-from-gitlab-dmitriy-zaporozhets",{"_path":15373,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15374,"content":15380,"config":15384,"_id":15386,"_type":16,"title":15387,"_source":17,"_file":15388,"_stem":15389,"_extension":20},"/en-us/blog/6-tips-to-make-software-developer-hiring-easier",{"title":15375,"description":15376,"ogTitle":15375,"ogDescription":15376,"noIndex":6,"ogImage":15377,"ogUrl":15378,"ogSiteName":995,"ogType":996,"canonicalUrls":15378,"schema":15379},"6 tips to make software developer hiring easier","If your developers are leaving and it's tough to hire, here's our best advice to stem the tide. One hint: A DevOps Platform can help!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668486/Blog/Hero%20Images/why-you-should-join-the-gitlab-security-team.jpg","https://about.gitlab.com/blog/6-tips-to-make-software-developer-hiring-easier","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"6 tips to make software developer hiring easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-11-09\",\n      }",{"title":15375,"description":15376,"authors":15381,"heroImage":15377,"date":15382,"category":577,"tags":15383},[10672],"2021-11-09",[6980,564,729],{"slug":15385,"featured":6,"template":736},"6-tips-to-make-software-developer-hiring-easier","content:en-us:blog:6-tips-to-make-software-developer-hiring-easier.yml","6 Tips To Make Software Developer Hiring Easier","en-us/blog/6-tips-to-make-software-developer-hiring-easier.yml","en-us/blog/6-tips-to-make-software-developer-hiring-easier",{"_path":15391,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15392,"content":15398,"config":15401,"_id":15403,"_type":16,"title":15404,"_source":17,"_file":15405,"_stem":15406,"_extension":20},"/en-us/blog/best-advice-for-your-devops-career-keep-on-learning",{"title":15393,"description":15394,"ogTitle":15393,"ogDescription":15394,"noIndex":6,"ogImage":15395,"ogUrl":15396,"ogSiteName":995,"ogType":996,"canonicalUrls":15396,"schema":15397},"Best advice for your DevOps career? Keep on learning","If you want a new job, or a higher salary, or preferably both, add some skills to your DevOps resume. Here's a look at our strategy for DIY-ing your continuing ed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679473/Blog/Hero%20Images/designing-in-an-all-remote-company.jpg","https://about.gitlab.com/blog/best-advice-for-your-devops-career-keep-on-learning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Best advice for your DevOps career? Keep on learning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2021-11-09\",\n      }",{"title":15393,"description":15394,"authors":15399,"heroImage":15395,"date":15382,"category":8140,"tags":15400},[3999],[6980,564,3074],{"slug":15402,"featured":6,"template":736},"best-advice-for-your-devops-career-keep-on-learning","content:en-us:blog:best-advice-for-your-devops-career-keep-on-learning.yml","Best Advice For Your Devops Career Keep On Learning","en-us/blog/best-advice-for-your-devops-career-keep-on-learning.yml","en-us/blog/best-advice-for-your-devops-career-keep-on-learning",{"_path":15408,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15409,"content":15414,"config":15419,"_id":15421,"_type":16,"title":15422,"_source":17,"_file":15423,"_stem":15424,"_extension":20},"/en-us/blog/join-the-new-gitlab-collective-on-stack-overflow",{"title":15410,"description":15411,"ogTitle":15410,"ogDescription":15411,"noIndex":6,"ogImage":13361,"ogUrl":15412,"ogSiteName":995,"ogType":996,"canonicalUrls":15412,"schema":15413},"Join the new GitLab Collective on Stack Overflow!","Now you can learn and share your best tips and tricks about version control, CI/CD, all-remote, DevOps platforms and more on the new GitLab Collective on Stack Overflow. Here's how to get started.","https://about.gitlab.com/blog/join-the-new-gitlab-collective-on-stack-overflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join the new GitLab Collective on Stack Overflow!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Nguyen\"}],\n        \"datePublished\": \"2021-11-08\",\n      }",{"title":15410,"description":15411,"authors":15415,"heroImage":13361,"date":15417,"category":1049,"tags":15418},[15416],"Matt Nguyen","2021-11-08",[269,2815,3074],{"slug":15420,"featured":6,"template":736},"join-the-new-gitlab-collective-on-stack-overflow","content:en-us:blog:join-the-new-gitlab-collective-on-stack-overflow.yml","Join The New Gitlab Collective On Stack Overflow","en-us/blog/join-the-new-gitlab-collective-on-stack-overflow.yml","en-us/blog/join-the-new-gitlab-collective-on-stack-overflow",{"_path":15426,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15427,"content":15433,"config":15436,"_id":15438,"_type":16,"title":15439,"_source":17,"_file":15440,"_stem":15441,"_extension":20},"/en-us/blog/machine-learning-on-the-gitlab-devops-platform",{"title":15428,"description":15429,"ogTitle":15428,"ogDescription":15429,"noIndex":6,"ogImage":15430,"ogUrl":15431,"ogSiteName":995,"ogType":996,"canonicalUrls":15431,"schema":15432},"How Comet can streamline machine learning on The GitLab DevOps Platform","Here's a step-by-step look at how to bring ML into software development using Comet on GitLab's DevOps Platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669991/Blog/Hero%20Images/ways-to-encourage-collaboration.jpg","https://about.gitlab.com/blog/machine-learning-on-the-gitlab-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Comet can streamline machine learning on The GitLab DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2021-11-08\",\n      }",{"title":15428,"description":15429,"authors":15434,"heroImage":15430,"date":15417,"category":858,"tags":15435},[855],[564,4182,233,728],{"slug":15437,"featured":6,"template":736},"machine-learning-on-the-gitlab-devops-platform","content:en-us:blog:machine-learning-on-the-gitlab-devops-platform.yml","Machine Learning On The Gitlab Devops Platform","en-us/blog/machine-learning-on-the-gitlab-devops-platform.yml","en-us/blog/machine-learning-on-the-gitlab-devops-platform",{"_path":15443,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15444,"content":15449,"config":15453,"_id":15455,"_type":16,"title":15456,"_source":17,"_file":15457,"_stem":15458,"_extension":20},"/en-us/blog/action-needed-in-response-to-cve2021-22205",{"title":15445,"description":15446,"ogTitle":15445,"ogDescription":15446,"noIndex":6,"ogImage":13091,"ogUrl":15447,"ogSiteName":995,"ogType":996,"canonicalUrls":15447,"schema":15448},"Action needed by self-managed customers in response to CVE-2021-22205","Self-managed users using outdated versions should update immediately.","https://about.gitlab.com/blog/action-needed-in-response-to-cve2021-22205","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Action needed by self-managed customers in response to CVE-2021-22205\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-11-04\",\n      }",{"title":15445,"description":15446,"authors":15450,"heroImage":13091,"date":15451,"category":790,"tags":15452},[1000],"2021-11-04",[790],{"slug":15454,"featured":6,"template":736},"action-needed-in-response-to-cve2021-22205","content:en-us:blog:action-needed-in-response-to-cve2021-22205.yml","Action Needed In Response To Cve2021 22205","en-us/blog/action-needed-in-response-to-cve2021-22205.yml","en-us/blog/action-needed-in-response-to-cve2021-22205",{"_path":15460,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15461,"content":15466,"config":15469,"_id":15471,"_type":16,"title":15472,"_source":17,"_file":15473,"_stem":15474,"_extension":20},"/en-us/blog/gitops-with-gitlab-infrastructure-provisioning",{"title":15462,"description":15463,"ogTitle":15462,"ogDescription":15463,"noIndex":6,"ogImage":11046,"ogUrl":15464,"ogSiteName":995,"ogType":996,"canonicalUrls":15464,"schema":15465},"GitOps with GitLab: Infrastructure provisioning with GitLab and Terraform","In part two of our GitOps series, we set up the infrastructure using GitLab and Terraform. Here's everything you need to know.","https://about.gitlab.com/blog/gitops-with-gitlab-infrastructure-provisioning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps with GitLab: Infrastructure provisioning with GitLab and Terraform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-11-04\",\n      }",{"title":15462,"description":15463,"authors":15467,"heroImage":11046,"date":15451,"category":858,"tags":15468},[2942],[559,2908,1569],{"slug":15470,"featured":6,"template":736},"gitops-with-gitlab-infrastructure-provisioning","content:en-us:blog:gitops-with-gitlab-infrastructure-provisioning.yml","Gitops With Gitlab Infrastructure Provisioning","en-us/blog/gitops-with-gitlab-infrastructure-provisioning.yml","en-us/blog/gitops-with-gitlab-infrastructure-provisioning",{"_path":15476,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15477,"content":15483,"config":15488,"_id":15490,"_type":16,"title":15491,"_source":17,"_file":15492,"_stem":15493,"_extension":20},"/en-us/blog/the-devops-platform-for-agile-business",{"title":15478,"description":15479,"ogTitle":15478,"ogDescription":15479,"noIndex":6,"ogImage":15480,"ogUrl":15481,"ogSiteName":995,"ogType":996,"canonicalUrls":15481,"schema":15482},"The DevOps Platform for agile business","For a truly agile business, in every sense of the word, we think you need GitLab's DevOps Platform. Here's why.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668155/Blog/Hero%20Images/devops-strategy-devops-toolchain.png","https://about.gitlab.com/blog/the-devops-platform-for-agile-business","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The DevOps Platform for agile business\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cormac Foster\"}],\n        \"datePublished\": \"2021-11-03\",\n      }",{"title":15478,"description":15479,"authors":15484,"heroImage":15480,"date":15486,"category":577,"tags":15487},[15485],"Cormac Foster","2021-11-03",[564,729,3075],{"slug":15489,"featured":6,"template":736},"the-devops-platform-for-agile-business","content:en-us:blog:the-devops-platform-for-agile-business.yml","The Devops Platform For Agile Business","en-us/blog/the-devops-platform-for-agile-business.yml","en-us/blog/the-devops-platform-for-agile-business",{"_path":15495,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15496,"content":15501,"config":15506,"_id":15508,"_type":16,"title":15509,"_source":17,"_file":15510,"_stem":15511,"_extension":20},"/en-us/blog/get-the-most-out-of-a-ceo-shadow-program",{"title":15497,"description":15498,"ogTitle":15497,"ogDescription":15498,"noIndex":6,"ogImage":11046,"ogUrl":15499,"ogSiteName":995,"ogType":996,"canonicalUrls":15499,"schema":15500},"15 tips to succeed at GitLab's CEO Shadow program","A CEO shadow program can be invigorating, but also intimidating. Here are strategies to help you make the most of the experience.","https://about.gitlab.com/blog/get-the-most-out-of-a-ceo-shadow-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"15 tips to succeed at GitLab's CEO Shadow program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Neil McCorrison\"}],\n        \"datePublished\": \"2021-11-02\",\n      }",{"title":15497,"description":15498,"authors":15502,"heroImage":11046,"date":15504,"category":8140,"tags":15505},[15503],"Neil McCorrison","2021-11-02",[1569,6980,269],{"slug":15507,"featured":6,"template":736},"get-the-most-out-of-a-ceo-shadow-program","content:en-us:blog:get-the-most-out-of-a-ceo-shadow-program.yml","Get The Most Out Of A Ceo Shadow Program","en-us/blog/get-the-most-out-of-a-ceo-shadow-program.yml","en-us/blog/get-the-most-out-of-a-ceo-shadow-program",{"_path":15513,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15514,"content":15520,"config":15524,"_id":15526,"_type":16,"title":15527,"_source":17,"_file":15528,"_stem":15529,"_extension":20},"/en-us/blog/3rd-annual-bug-bounty-contest",{"title":15515,"description":15516,"ogTitle":15515,"ogDescription":15516,"noIndex":6,"ogImage":15517,"ogUrl":15518,"ogSiteName":995,"ogType":996,"canonicalUrls":15518,"schema":15519},"Our 3rd annual bug bounty contest: the swagtastic sequel to the sequel","We’re running a bug bounty contest November 1 thru December 3. Find a bug and be entered to win some sweet custom swag. What’s better than a contest? Increased bounty ranges!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670997/Blog/Hero%20Images/BB-3rd-Anniversary-blog-header.png","https://about.gitlab.com/blog/3rd-annual-bug-bounty-contest","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our 3rd annual bug bounty contest: the swagtastic sequel to the sequel\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-11-01\",\n      }",{"title":15515,"description":15516,"authors":15521,"heroImage":15517,"date":15522,"category":790,"tags":15523},[11324],"2021-11-01",[790,2483],{"slug":15525,"featured":6,"template":736},"3rd-annual-bug-bounty-contest","content:en-us:blog:3rd-annual-bug-bounty-contest.yml","3rd Annual Bug Bounty Contest","en-us/blog/3rd-annual-bug-bounty-contest.yml","en-us/blog/3rd-annual-bug-bounty-contest",{"_path":15531,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15532,"content":15538,"config":15543,"_id":15545,"_type":16,"title":15546,"_source":17,"_file":15547,"_stem":15548,"_extension":20},"/en-us/blog/how-were-using-dast2-for-easier-scan-configuration",{"title":15533,"description":15534,"ogTitle":15533,"ogDescription":15534,"noIndex":6,"ogImage":15535,"ogUrl":15536,"ogSiteName":995,"ogType":996,"canonicalUrls":15536,"schema":15537},"How we’re using DAST 2 for easier scan configuration and reduced noise","Our security team upgraded to GitLab’s DAST 2. Here’s how and why we did it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682167/Blog/Hero%20Images/pexels-chernaya-575.jpg","https://about.gitlab.com/blog/how-were-using-dast2-for-easier-scan-configuration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we’re using DAST 2 for easier scan configuration and reduced noise\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nikhil George\"}],\n        \"datePublished\": \"2021-10-27\",\n      }",{"title":15533,"description":15534,"authors":15539,"heroImage":15535,"date":15541,"category":790,"tags":15542},[15540],"Nikhil George","2021-10-27",[790],{"slug":15544,"featured":6,"template":736},"how-were-using-dast2-for-easier-scan-configuration","content:en-us:blog:how-were-using-dast2-for-easier-scan-configuration.yml","How Were Using Dast2 For Easier Scan Configuration","en-us/blog/how-were-using-dast2-for-easier-scan-configuration.yml","en-us/blog/how-were-using-dast2-for-easier-scan-configuration",{"_path":15550,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15551,"content":15556,"config":15560,"_id":15562,"_type":16,"title":15563,"_source":17,"_file":15564,"_stem":15565,"_extension":20},"/en-us/blog/how-to-make-your-devops-team-elite-performers",{"title":15552,"description":15553,"ogTitle":15552,"ogDescription":15553,"noIndex":6,"ogImage":11536,"ogUrl":15554,"ogSiteName":995,"ogType":996,"canonicalUrls":15554,"schema":15555},"How to make your DevOps team elite performers","Every company wants DevOps done better. The DORA Report spotlights what it takes to be a DevOps elite, and what teams need to do to get there.","https://about.gitlab.com/blog/how-to-make-your-devops-team-elite-performers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to make your DevOps team elite performers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2021-10-26\",\n      }",{"title":15552,"description":15553,"authors":15557,"heroImage":11536,"date":15558,"category":577,"tags":15559},[3999],"2021-10-26",[564,6980,1730],{"slug":15561,"featured":6,"template":736},"how-to-make-your-devops-team-elite-performers","content:en-us:blog:how-to-make-your-devops-team-elite-performers.yml","How To Make Your Devops Team Elite Performers","en-us/blog/how-to-make-your-devops-team-elite-performers.yml","en-us/blog/how-to-make-your-devops-team-elite-performers",{"_path":15567,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15568,"content":15573,"config":15577,"_id":15579,"_type":16,"title":15580,"_source":17,"_file":15581,"_stem":15582,"_extension":20},"/en-us/blog/migrating-repositories-to-gitlab-just-became-easier",{"title":15569,"description":15570,"ogTitle":15569,"ogDescription":15570,"noIndex":6,"ogImage":13467,"ogUrl":15571,"ogSiteName":995,"ogType":996,"canonicalUrls":15571,"schema":15572},"Migrating repositories to GitLab just became easier","Automate data and user migration into GitLab using open core software Congregate.","https://about.gitlab.com/blog/migrating-repositories-to-gitlab-just-became-easier","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migrating repositories to GitLab just became easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bryan May\"}],\n        \"datePublished\": \"2021-10-26\",\n      }",{"title":15569,"description":15570,"authors":15574,"heroImage":13467,"date":15558,"category":577,"tags":15576},[15575],"Bryan May",[564,233,1265],{"slug":15578,"featured":6,"template":736},"migrating-repositories-to-gitlab-just-became-easier","content:en-us:blog:migrating-repositories-to-gitlab-just-became-easier.yml","Migrating Repositories To Gitlab Just Became Easier","en-us/blog/migrating-repositories-to-gitlab-just-became-easier.yml","en-us/blog/migrating-repositories-to-gitlab-just-became-easier",{"_path":15584,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15585,"content":15589,"config":15593,"_id":15595,"_type":16,"title":15596,"_source":17,"_file":15597,"_stem":15598,"_extension":20},"/en-us/blog/gitlab-com-container-registry-update",{"title":15586,"description":13466,"ogTitle":15586,"ogDescription":13466,"noIndex":6,"ogImage":11046,"ogUrl":15587,"ogSiteName":995,"ogType":996,"canonicalUrls":15587,"schema":15588},"Announcing an exciting update to the GitLab.com Container Registry","https://about.gitlab.com/blog/gitlab-com-container-registry-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing an exciting update to the GitLab.com Container Registry\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2021-10-25\",\n      }",{"title":15586,"description":13466,"authors":15590,"heroImage":11046,"date":15591,"category":1049,"tags":15592},[907],"2021-10-25",[564,1569,233],{"slug":15594,"featured":6,"template":736},"gitlab-com-container-registry-update","content:en-us:blog:gitlab-com-container-registry-update.yml","Gitlab Com Container Registry Update","en-us/blog/gitlab-com-container-registry-update.yml","en-us/blog/gitlab-com-container-registry-update",{"_path":15600,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15601,"content":15606,"config":15610,"_id":15612,"_type":16,"title":15613,"_source":17,"_file":15614,"_stem":15615,"_extension":20},"/en-us/blog/beginner-guide-python-programming",{"title":15602,"description":15603,"ogTitle":15602,"ogDescription":15603,"noIndex":6,"ogImage":12801,"ogUrl":15604,"ogSiteName":995,"ogType":996,"canonicalUrls":15604,"schema":15605},"How to get started with Python programming","Python is increasingly popular, and for good reason. Here's our beginner's guide.","https://about.gitlab.com/blog/beginner-guide-python-programming","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to get started with Python programming\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-10-21\",\n      }",{"title":15602,"description":15603,"authors":15607,"heroImage":12801,"date":15608,"category":577,"tags":15609},[1000],"2021-10-21",[564,6980,772],{"slug":15611,"featured":6,"template":736},"beginner-guide-python-programming","content:en-us:blog:beginner-guide-python-programming.yml","Beginner Guide Python Programming","en-us/blog/beginner-guide-python-programming.yml","en-us/blog/beginner-guide-python-programming",{"_path":15617,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15618,"content":15623,"config":15627,"_id":15629,"_type":16,"title":15630,"_source":17,"_file":15631,"_stem":15632,"_extension":20},"/en-us/blog/gitops-with-gitlab",{"title":15619,"description":15620,"ogTitle":15619,"ogDescription":15620,"noIndex":6,"ogImage":11046,"ogUrl":15621,"ogSiteName":995,"ogType":996,"canonicalUrls":15621,"schema":15622},"GitOps delivery by connecting Kubernetes clusters to GitLab","This is the first in a seven-part series on GitOps using GitLab's DevOps Platform.","https://about.gitlab.com/blog/gitops-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Here's how to do GitOps with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-10-21\",\n      }",{"title":15624,"description":15620,"authors":15625,"heroImage":11046,"date":15608,"category":858,"tags":15626},"Here's how to do GitOps with GitLab",[2942],[559,564,2908],{"slug":15628,"featured":6,"template":736},"gitops-with-gitlab","content:en-us:blog:gitops-with-gitlab.yml","Gitops With Gitlab","en-us/blog/gitops-with-gitlab.yml","en-us/blog/gitops-with-gitlab",{"_path":15634,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15635,"content":15641,"config":15645,"_id":15647,"_type":16,"title":15648,"_source":17,"_file":15649,"_stem":15650,"_extension":20},"/en-us/blog/four-tips-to-increase-your-devops-salary",{"title":15636,"description":15637,"ogTitle":15636,"ogDescription":15637,"noIndex":6,"ogImage":15638,"ogUrl":15639,"ogSiteName":995,"ogType":996,"canonicalUrls":15639,"schema":15640},"Four tips to increase your DevOps salary","You have a great career with a solid salary, but can you do better? (Hint: of course.) Here's how.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668124/Blog/Hero%20Images/moneyfarm_background.jpg","https://about.gitlab.com/blog/four-tips-to-increase-your-devops-salary","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Four tips to increase your DevOps salary\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2021-10-20\",\n      }",{"title":15636,"description":15637,"authors":15642,"heroImage":15638,"date":15643,"category":577,"tags":15644},[3999],"2021-10-20",[6980,564,8475],{"slug":15646,"featured":6,"template":736},"four-tips-to-increase-your-devops-salary","content:en-us:blog:four-tips-to-increase-your-devops-salary.yml","Four Tips To Increase Your Devops Salary","en-us/blog/four-tips-to-increase-your-devops-salary.yml","en-us/blog/four-tips-to-increase-your-devops-salary",{"_path":15652,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15653,"content":15658,"config":15662,"_id":15664,"_type":16,"title":15665,"_source":17,"_file":15666,"_stem":15667,"_extension":20},"/en-us/blog/top-10-gitlab-hacks",{"title":15654,"description":15655,"ogTitle":15654,"ogDescription":15655,"noIndex":6,"ogImage":14085,"ogUrl":15656,"ogSiteName":995,"ogType":996,"canonicalUrls":15656,"schema":15657},"Top ten GitLab hacks for all stages of the DevOps Platform","Get the most out of the GitLab DevOps Platform with our ten best tips for enhanced productivity.","https://about.gitlab.com/blog/top-10-gitlab-hacks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top ten GitLab hacks for all stages of the DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2021-10-19\",\n      }",{"title":15654,"description":15655,"authors":15659,"heroImage":14085,"date":15660,"category":577,"tags":15661},[1424],"2021-10-19",[772,564,1335],{"slug":15663,"featured":6,"template":736},"top-10-gitlab-hacks","content:en-us:blog:top-10-gitlab-hacks.yml","Top 10 Gitlab Hacks","en-us/blog/top-10-gitlab-hacks.yml","en-us/blog/top-10-gitlab-hacks",{"_path":15669,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15670,"content":15675,"config":15680,"_id":15682,"_type":16,"title":15683,"_source":17,"_file":15684,"_stem":15685,"_extension":20},"/en-us/blog/improve-cd-workflows-helm-chart-registry",{"title":15671,"description":15672,"ogTitle":15671,"ogDescription":15672,"noIndex":6,"ogImage":9502,"ogUrl":15673,"ogSiteName":995,"ogType":996,"canonicalUrls":15673,"schema":15674},"Get started with GitLab's Helm Package Registry","Improve CD workflows and speed up application deployment using our new Helm Package Registry.","https://about.gitlab.com/blog/improve-cd-workflows-helm-chart-registry","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get started with GitLab's Helm Package Registry\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Philip Welz\"}],\n        \"datePublished\": \"2021-10-18\",\n      }",{"title":15671,"description":15672,"authors":15676,"heroImage":9502,"date":15678,"category":577,"tags":15679},[15677],"Philip Welz","2021-10-18",[564,2098,2908],{"slug":15681,"featured":6,"template":736},"improve-cd-workflows-helm-chart-registry","content:en-us:blog:improve-cd-workflows-helm-chart-registry.yml","Improve Cd Workflows Helm Chart Registry","en-us/blog/improve-cd-workflows-helm-chart-registry.yml","en-us/blog/improve-cd-workflows-helm-chart-registry",{"_path":15687,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15688,"content":15693,"config":15697,"_id":15699,"_type":16,"title":15700,"_source":17,"_file":15701,"_stem":15702,"_extension":20},"/en-us/blog/gitlab-inc-takes-the-devops-platform-public",{"title":15689,"description":15690,"ogTitle":15689,"ogDescription":15690,"noIndex":6,"ogImage":11046,"ogUrl":15691,"ogSiteName":995,"ogType":996,"canonicalUrls":15691,"schema":15692},"GitLab Inc. takes The DevOps Platform public","Today is the day GitLab Inc. takes The DevOps Platform public.","https://about.gitlab.com/blog/gitlab-inc-takes-the-devops-platform-public","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Inc. takes The DevOps Platform public\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2021-10-14\",\n      }",{"title":15689,"description":15690,"authors":15694,"heroImage":11046,"date":15695,"category":577,"tags":15696},[3701],"2021-10-14",[1049,564],{"slug":15698,"featured":6,"template":736},"gitlab-inc-takes-the-devops-platform-public","content:en-us:blog:gitlab-inc-takes-the-devops-platform-public.yml","Gitlab Inc Takes The Devops Platform Public","en-us/blog/gitlab-inc-takes-the-devops-platform-public.yml","en-us/blog/gitlab-inc-takes-the-devops-platform-public",{"_path":15704,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15705,"content":15710,"config":15713,"_id":15715,"_type":16,"title":15716,"_source":17,"_file":15717,"_stem":15718,"_extension":20},"/en-us/blog/gitlab-updates-its-cookie-management-tool",{"title":15706,"description":15707,"ogTitle":15706,"ogDescription":15707,"noIndex":6,"ogImage":6170,"ogUrl":15708,"ogSiteName":995,"ogType":996,"canonicalUrls":15708,"schema":15709},"GitLab updates its cookie management tool","We are updating our cookie management tool. Here's what you need to know.","https://about.gitlab.com/blog/gitlab-updates-its-cookie-management-tool","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab updates its cookie management tool\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-10-12\",\n      }",{"title":15706,"description":15707,"authors":15711,"heroImage":6170,"date":15712,"category":1049},[1000],"2021-10-12",{"slug":15714,"featured":6,"template":736},"gitlab-updates-its-cookie-management-tool","content:en-us:blog:gitlab-updates-its-cookie-management-tool.yml","Gitlab Updates Its Cookie Management Tool","en-us/blog/gitlab-updates-its-cookie-management-tool.yml","en-us/blog/gitlab-updates-its-cookie-management-tool",{"_path":15720,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15721,"content":15727,"config":15731,"_id":15733,"_type":16,"title":15734,"_source":17,"_file":15735,"_stem":15736,"_extension":20},"/en-us/blog/open-shift-ga",{"title":15722,"description":15723,"ogTitle":15722,"ogDescription":15723,"noIndex":6,"ogImage":15724,"ogUrl":15725,"ogSiteName":995,"ogType":996,"canonicalUrls":15725,"schema":15726},"GitLab's Kubernetes Operator for OpenShift now available","GitLab Operator will allow teams to run production instances of GitLab on Kubernetes platforms.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667835/Blog/Hero%20Images/generic-bot-bg.png","https://about.gitlab.com/blog/open-shift-ga","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's Kubernetes Operator with support for Red Hat OpenShift is now generally available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2021-10-12\",\n      }",{"title":15728,"description":15723,"authors":15729,"heroImage":15724,"date":15712,"category":577},"GitLab's Kubernetes Operator with support for Red Hat OpenShift is now generally available",[15730],"William Chia",{"slug":15732,"featured":6,"template":736},"open-shift-ga","content:en-us:blog:open-shift-ga.yml","Open Shift Ga","en-us/blog/open-shift-ga.yml","en-us/blog/open-shift-ga",{"_path":15738,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15739,"content":15744,"config":15748,"_id":15750,"_type":16,"title":15751,"_source":17,"_file":15752,"_stem":15753,"_extension":20},"/en-us/blog/how-ten-steps-over-ten-years-led-to-the-devops-platform",{"title":15740,"description":15741,"ogTitle":15740,"ogDescription":15741,"noIndex":6,"ogImage":11046,"ogUrl":15742,"ogSiteName":995,"ogType":996,"canonicalUrls":15742,"schema":15743},"How ten steps over ten years led to the DevOps Platform","It's been ten years since the first commit to GitLab! Here's a look at ten critical choices that shaped us.","https://about.gitlab.com/blog/how-ten-steps-over-ten-years-led-to-the-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How ten steps over ten years led to the DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2021-10-11\",\n      }",{"title":15740,"description":15741,"authors":15745,"heroImage":11046,"date":15746,"category":8140,"tags":15747},[10835],"2021-10-11",[1050,564,1569],{"slug":15749,"featured":6,"template":736},"how-ten-steps-over-ten-years-led-to-the-devops-platform","content:en-us:blog:how-ten-steps-over-ten-years-led-to-the-devops-platform.yml","How Ten Steps Over Ten Years Led To The Devops Platform","en-us/blog/how-ten-steps-over-ten-years-led-to-the-devops-platform.yml","en-us/blog/how-ten-steps-over-ten-years-led-to-the-devops-platform",{"_path":15755,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15756,"content":15761,"config":15763,"_id":15765,"_type":16,"title":15766,"_source":17,"_file":15767,"_stem":15768,"_extension":20},"/en-us/blog/notice-for-gitkraken-users-with-gitlab",{"title":15757,"description":15758,"ogTitle":15757,"ogDescription":15758,"noIndex":6,"ogImage":13091,"ogUrl":15759,"ogSiteName":995,"ogType":996,"canonicalUrls":15759,"schema":15760},"Notice for GitKraken users with GitLab","How we responded to Axosoft’s GitKraken software vulnerability affecting SSH keys and actions users should take.","https://about.gitlab.com/blog/notice-for-gitkraken-users-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Notice for GitKraken users with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-10-11\",\n      }",{"title":15757,"description":15758,"authors":15762,"heroImage":13091,"date":15746,"category":790},[1000],{"slug":15764,"featured":6,"template":736},"notice-for-gitkraken-users-with-gitlab","content:en-us:blog:notice-for-gitkraken-users-with-gitlab.yml","Notice For Gitkraken Users With Gitlab","en-us/blog/notice-for-gitkraken-users-with-gitlab.yml","en-us/blog/notice-for-gitkraken-users-with-gitlab",{"_path":15770,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15771,"content":15777,"config":15781,"_id":15783,"_type":16,"title":15784,"_source":17,"_file":15785,"_stem":15786,"_extension":20},"/en-us/blog/threat-modeling-kubernetes-agent",{"title":15772,"description":15773,"ogTitle":15772,"ogDescription":15773,"noIndex":6,"ogImage":15774,"ogUrl":15775,"ogSiteName":995,"ogType":996,"canonicalUrls":15775,"schema":15776},"Threat modeling the Kubernetes Agent: from MVC to continuous improvement","Learn how we put our threat model into action iteratively and expanded the\nprocess into a full-fledged standalone activity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682156/Blog/Hero%20Images/pexels-jesus-miron-garcia-3043592.jpg","https://about.gitlab.com/blog/threat-modeling-kubernetes-agent","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Threat modeling the Kubernetes Agent: from MVC to continuous improvement\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vitor Meireles De Sousa\"}],\n        \"datePublished\": \"2021-10-11\",\n      }",{"title":15772,"description":15773,"authors":15778,"heroImage":15774,"date":15746,"category":790,"tags":15780},[15779],"Vitor Meireles De Sousa",[790],{"slug":15782,"featured":6,"template":736},"threat-modeling-kubernetes-agent","content:en-us:blog:threat-modeling-kubernetes-agent.yml","Threat Modeling Kubernetes Agent","en-us/blog/threat-modeling-kubernetes-agent.yml","en-us/blog/threat-modeling-kubernetes-agent",{"_path":15788,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15789,"content":15794,"config":15798,"_id":15800,"_type":16,"title":15801,"_source":17,"_file":15802,"_stem":15803,"_extension":20},"/en-us/blog/updates-to-de-identifying-service-usage-data",{"title":15790,"description":15791,"ogTitle":15790,"ogDescription":15791,"noIndex":6,"ogImage":6170,"ogUrl":15792,"ogSiteName":995,"ogType":996,"canonicalUrls":15792,"schema":15793},"Updates to de-identifying Service Usage Data","GitLab is creating a process to pseudonymize directly identifiable Service Usage Data for SaaS customers. There will be no changes to the service data usage policy.","https://about.gitlab.com/blog/updates-to-de-identifying-service-usage-data","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Updates to de-identifying Service Usage Data\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-10-08\",\n      }",{"title":15790,"description":15791,"authors":15795,"heroImage":6170,"date":15796,"category":1049,"tags":15797},[1000],"2021-10-08",[3075,790,1265],{"slug":15799,"featured":6,"template":736},"updates-to-de-identifying-service-usage-data","content:en-us:blog:updates-to-de-identifying-service-usage-data.yml","Updates To De Identifying Service Usage Data","en-us/blog/updates-to-de-identifying-service-usage-data.yml","en-us/blog/updates-to-de-identifying-service-usage-data",{"_path":15805,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15806,"content":15811,"config":15815,"_id":15817,"_type":16,"title":15818,"_source":17,"_file":15819,"_stem":15820,"_extension":20},"/en-us/blog/a-look-at-devops-salaries",{"title":15807,"description":15808,"ogTitle":15807,"ogDescription":15808,"noIndex":6,"ogImage":11046,"ogUrl":15809,"ogSiteName":995,"ogType":996,"canonicalUrls":15809,"schema":15810},"DevOps salaries in 2021: where do you rank?","Another surprise benefit of working on a DevOps platform? A higher salary! Here's why DevOps salaries are going up, and where to find the biggest paychecks.","https://about.gitlab.com/blog/a-look-at-devops-salaries","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps salaries in 2021: where do you rank?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2021-10-07\",\n      }",{"title":15807,"description":15808,"authors":15812,"heroImage":11046,"date":15813,"category":577,"tags":15814},[3999],"2021-10-07",[564,6980,10011],{"slug":15816,"featured":6,"template":736},"a-look-at-devops-salaries","content:en-us:blog:a-look-at-devops-salaries.yml","A Look At Devops Salaries","en-us/blog/a-look-at-devops-salaries.yml","en-us/blog/a-look-at-devops-salaries",{"_path":15822,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15823,"content":15829,"config":15834,"_id":15836,"_type":16,"title":15837,"_source":17,"_file":15838,"_stem":15839,"_extension":20},"/en-us/blog/gitlab-cnh-for-50k-users",{"title":15824,"description":15825,"ogTitle":15824,"ogDescription":15825,"noIndex":6,"ogImage":15826,"ogUrl":15827,"ogSiteName":995,"ogType":996,"canonicalUrls":15827,"schema":15828},"Ready-To-Run GitLab for 50,000 users with AWS Quick Start","If you have two hours, you can deploy a GitLab instance on EKS for any number of users. All it takes is about 14 clicks! Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680619/Blog/Hero%20Images/construction-blueprint.jpg","https://about.gitlab.com/blog/gitlab-cnh-for-50k-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to provision Ready-To-Run GitLab for 50,000 users with the AWS Quick Start\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"}],\n        \"datePublished\": \"2021-10-06\",\n      }",{"title":15830,"description":15825,"authors":15831,"heroImage":15826,"date":15832,"category":858,"tags":15833},"How to provision Ready-To-Run GitLab for 50,000 users with the AWS Quick Start",[959],"2021-10-06",[582,233,771],{"slug":15835,"featured":6,"template":736},"gitlab-cnh-for-50k-users","content:en-us:blog:gitlab-cnh-for-50k-users.yml","Gitlab Cnh For 50k Users","en-us/blog/gitlab-cnh-for-50k-users.yml","en-us/blog/gitlab-cnh-for-50k-users",{"_path":15841,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15842,"content":15847,"config":15852,"_id":15854,"_type":16,"title":15855,"_source":17,"_file":15856,"_stem":15857,"_extension":20},"/en-us/blog/gitpod-desktop-app-personal-activities",{"title":15843,"description":15844,"ogTitle":15843,"ogDescription":15844,"noIndex":6,"ogImage":11046,"ogUrl":15845,"ogSiteName":995,"ogType":996,"canonicalUrls":15845,"schema":15846},"Why we built GitDock, our desktop app to navigate your GitLab activities","Life is full of moving parts. We get it. And that's why we created GitDock so you can keep track of all things GitLab right from your desktop.","https://about.gitlab.com/blog/gitpod-desktop-app-personal-activities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we built GitDock, our desktop app to navigate your GitLab activities\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcel van Remmerden\"},{\"@type\":\"Person\",\"name\":\"Jeremy Elder\"}],\n        \"datePublished\": \"2021-10-05\",\n      }",{"title":15843,"description":15844,"authors":15848,"heroImage":11046,"date":15850,"category":858,"tags":15851},[15849,4219],"Marcel van Remmerden","2021-10-05",[1569,2703,564],{"slug":15853,"featured":6,"template":736},"gitpod-desktop-app-personal-activities","content:en-us:blog:gitpod-desktop-app-personal-activities.yml","Gitpod Desktop App Personal Activities","en-us/blog/gitpod-desktop-app-personal-activities.yml","en-us/blog/gitpod-desktop-app-personal-activities",{"_path":15859,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15860,"content":15865,"config":15869,"_id":15871,"_type":16,"title":15872,"_source":17,"_file":15873,"_stem":15874,"_extension":20},"/en-us/blog/how-to-status-checks",{"title":15861,"description":15862,"ogTitle":15861,"ogDescription":15862,"noIndex":6,"ogImage":11046,"ogUrl":15863,"ogSiteName":995,"ogType":996,"canonicalUrls":15863,"schema":15864},"How to use external status checks for merge requests","Want to integrate third-party systems and apps with GitLab merge requests? Here's everything you need to know.","https://about.gitlab.com/blog/how-to-status-checks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use external status checks for merge requests\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2021-10-04\",\n      }",{"title":15861,"description":15862,"authors":15866,"heroImage":11046,"date":15867,"category":858,"tags":15868},[767],"2021-10-04",[233,1335,564],{"slug":15870,"featured":6,"template":736},"how-to-status-checks","content:en-us:blog:how-to-status-checks.yml","How To Status Checks","en-us/blog/how-to-status-checks.yml","en-us/blog/how-to-status-checks",{"_path":15876,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15877,"content":15883,"config":15888,"_id":15890,"_type":16,"title":15891,"_source":17,"_file":15892,"_stem":15893,"_extension":20},"/en-us/blog/join-us-for-hacktoberfest-2021",{"title":15878,"description":15879,"ogTitle":15878,"ogDescription":15879,"noIndex":6,"ogImage":15880,"ogUrl":15881,"ogSiteName":995,"ogType":996,"canonicalUrls":15881,"schema":15882},"Join us for Hacktoberfest 2021!","GitLab is participating in this year's Hacktoberfest, and your contributions to open source projects hosted on GitLab.com will count. No tricks, just treats here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671856/Blog/Hero%20Images/gitlab-hacktoberfest_blog-dark.png","https://about.gitlab.com/blog/join-us-for-hacktoberfest-2021","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join us for Hacktoberfest 2021!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christos Bacharakis\"}],\n        \"datePublished\": \"2021-10-01\",\n      }",{"title":15878,"description":15879,"authors":15884,"heroImage":15880,"date":15886,"category":1388,"tags":15887},[15885],"Christos Bacharakis","2021-10-01",[269,3074,279],{"slug":15889,"featured":6,"template":736},"join-us-for-hacktoberfest-2021","content:en-us:blog:join-us-for-hacktoberfest-2021.yml","Join Us For Hacktoberfest 2021","en-us/blog/join-us-for-hacktoberfest-2021.yml","en-us/blog/join-us-for-hacktoberfest-2021",{"_path":15895,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15896,"content":15902,"config":15906,"_id":15908,"_type":16,"title":15909,"_source":17,"_file":15910,"_stem":15911,"_extension":20},"/en-us/blog/personal-profile",{"title":15897,"description":15898,"ogTitle":15897,"ogDescription":15898,"noIndex":6,"ogImage":15899,"ogUrl":15900,"ogSiteName":995,"ogType":996,"canonicalUrls":15900,"schema":15901},"GitLab user profiles have just become more personal","Find out the more about our latest additions to GitLab user profiles. You control the data that is displayed","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682144/Blog/Hero%20Images/ben-sweet-2LowviVHZ-E-unsplash.jpg","https://about.gitlab.com/blog/personal-profile","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab user profiles have just become more personal\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2021-09-30\",\n      }",{"title":15897,"description":15898,"authors":15903,"heroImage":15899,"date":15904,"category":1049,"tags":15905},[14332],"2021-09-30",[2704,2703,3074],{"slug":15907,"featured":6,"template":736},"personal-profile","content:en-us:blog:personal-profile.yml","Personal Profile","en-us/blog/personal-profile.yml","en-us/blog/personal-profile",{"_path":15913,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15914,"content":15919,"config":15922,"_id":15924,"_type":16,"title":15925,"_source":17,"_file":15926,"_stem":15927,"_extension":20},"/en-us/blog/want-faster-releases-your-answer-lies-in-automated-software-testing",{"title":15915,"description":15916,"ogTitle":15915,"ogDescription":15916,"noIndex":6,"ogImage":11046,"ogUrl":15917,"ogSiteName":995,"ogType":996,"canonicalUrls":15917,"schema":15918},"Want faster releases? Your answer lies in automated software testing","The trouble with testing? Nearly everything! Here's why automated software testing is so hard to get right, and how a DevOps platform can help.","https://about.gitlab.com/blog/want-faster-releases-your-answer-lies-in-automated-software-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Want faster releases? Your answer lies in automated software testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-09-30\",\n      }",{"title":15915,"description":15916,"authors":15920,"heroImage":11046,"date":15904,"category":577,"tags":15921},[10672],[964,564,7788],{"slug":15923,"featured":6,"template":736},"want-faster-releases-your-answer-lies-in-automated-software-testing","content:en-us:blog:want-faster-releases-your-answer-lies-in-automated-software-testing.yml","Want Faster Releases Your Answer Lies In Automated Software Testing","en-us/blog/want-faster-releases-your-answer-lies-in-automated-software-testing.yml","en-us/blog/want-faster-releases-your-answer-lies-in-automated-software-testing",{"_path":15929,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15930,"content":15936,"config":15940,"_id":15942,"_type":16,"title":15943,"_source":17,"_file":15944,"_stem":15945,"_extension":20},"/en-us/blog/why-we-spent-the-last-month-eliminating-postgresql-subtransactions",{"title":15931,"description":15932,"ogTitle":15931,"ogDescription":15932,"noIndex":6,"ogImage":15933,"ogUrl":15934,"ogSiteName":995,"ogType":996,"canonicalUrls":15934,"schema":15935},"Why we spent the last month eliminating PostgreSQL subtransactions","How a mysterious stall in database queries uncovered a performance limitation with PostgreSQL.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669470/Blog/Hero%20Images/nessie.jpg","https://about.gitlab.com/blog/why-we-spent-the-last-month-eliminating-postgresql-subtransactions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we spent the last month eliminating PostgreSQL subtransactions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grzegorz Bizon\"},{\"@type\":\"Person\",\"name\":\"Stan Hu\"}],\n        \"datePublished\": \"2021-09-29\",\n      }",{"title":15931,"description":15932,"authors":15937,"heroImage":15933,"date":15938,"category":858,"tags":15939},[3109,1598],"2021-09-29",[1988,3074,10121],{"slug":15941,"featured":6,"template":736},"why-we-spent-the-last-month-eliminating-postgresql-subtransactions","content:en-us:blog:why-we-spent-the-last-month-eliminating-postgresql-subtransactions.yml","Why We Spent The Last Month Eliminating Postgresql Subtransactions","en-us/blog/why-we-spent-the-last-month-eliminating-postgresql-subtransactions.yml","en-us/blog/why-we-spent-the-last-month-eliminating-postgresql-subtransactions",{"_path":15947,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15948,"content":15953,"config":15957,"_id":15959,"_type":16,"title":15960,"_source":17,"_file":15961,"_stem":15962,"_extension":20},"/en-us/blog/generic-semantic-version-processing",{"title":15949,"description":15950,"ogTitle":15949,"ogDescription":15950,"noIndex":6,"ogImage":11046,"ogUrl":15951,"ogSiteName":995,"ogType":996,"canonicalUrls":15951,"schema":15952},"SemVer versioning: how we handled it with linear interval arithmetic","SemVer versioning made it difficult to automate processing. We turned to linear interval arithmetic to come up with a unified, language-agnostic semantic versioning approach.","https://about.gitlab.com/blog/generic-semantic-version-processing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SemVer versioning: how we handled it with linear interval arithmetic\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julian Thome\"}],\n        \"datePublished\": \"2021-09-28\",\n      }",{"title":15949,"description":15950,"authors":15954,"heroImage":11046,"date":15955,"category":790,"tags":15956},[3289],"2021-09-28",[790,564,1265],{"slug":15958,"featured":6,"template":736},"generic-semantic-version-processing","content:en-us:blog:generic-semantic-version-processing.yml","Generic Semantic Version Processing","en-us/blog/generic-semantic-version-processing.yml","en-us/blog/generic-semantic-version-processing",{"_path":15964,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15965,"content":15971,"config":15974,"_id":15976,"_type":16,"title":15977,"_source":17,"_file":15978,"_stem":15979,"_extension":20},"/en-us/blog/how-to-configure-sidekiq-for-gitlab-at-scale",{"title":15966,"description":15967,"ogTitle":15966,"ogDescription":15967,"noIndex":6,"ogImage":15968,"ogUrl":15969,"ogSiteName":995,"ogType":996,"canonicalUrls":15969,"schema":15970},"How to configure Sidekiq for specialized or large-scale GitLab instances","This tutorial unpacks how to configure Sidekiq that suits your GitLab deployment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667068/Blog/Hero%20Images/sidekiqmountain.jpg","https://about.gitlab.com/blog/how-to-configure-sidekiq-for-gitlab-at-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to configure Sidekiq for specialized or large-scale GitLab instances\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Craig Miskell\"}],\n        \"datePublished\": \"2021-09-27\",\n      }",{"title":15966,"description":15967,"authors":15972,"heroImage":15968,"date":15973,"category":858},[8243],"2021-09-27",{"slug":15975,"featured":6,"template":736},"how-to-configure-sidekiq-for-gitlab-at-scale","content:en-us:blog:how-to-configure-sidekiq-for-gitlab-at-scale.yml","How To Configure Sidekiq For Gitlab At Scale","en-us/blog/how-to-configure-sidekiq-for-gitlab-at-scale.yml","en-us/blog/how-to-configure-sidekiq-for-gitlab-at-scale",{"_path":15981,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15982,"content":15987,"config":15991,"_id":15993,"_type":16,"title":15994,"_source":17,"_file":15995,"_stem":15996,"_extension":20},"/en-us/blog/best-practices-customer-feature-request",{"title":15983,"description":15984,"ogTitle":15983,"ogDescription":15984,"noIndex":6,"ogImage":11046,"ogUrl":15985,"ogSiteName":995,"ogType":996,"canonicalUrls":15985,"schema":15986},"How to incorporate private customer needs into a public product roadmap","We've had lots of experience documenting and tracking private customer feature requests effectively. Here's our best advice and how to get the most out of GitLab issues and issue trackers.","https://about.gitlab.com/blog/best-practices-customer-feature-request","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to incorporate private customer needs into a public product roadmap\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"},{\"@type\":\"Person\",\"name\":\"Neil McCorrison\"}],\n        \"datePublished\": \"2021-09-23\",\n      }",{"title":15983,"description":15984,"authors":15988,"heroImage":11046,"date":15989,"category":858,"tags":15990},[13131,15503],"2021-09-23",[1335,730,3075,2815],{"slug":15992,"featured":6,"template":736},"best-practices-customer-feature-request","content:en-us:blog:best-practices-customer-feature-request.yml","Best Practices Customer Feature Request","en-us/blog/best-practices-customer-feature-request.yml","en-us/blog/best-practices-customer-feature-request",{"_path":15998,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":15999,"content":16004,"config":16007,"_id":16009,"_type":16,"title":16010,"_source":17,"_file":16011,"_stem":16012,"_extension":20},"/en-us/blog/have-devops-jobs-to-fill-try-these-3-strategies-to-hire-and-retain",{"title":16000,"description":16001,"ogTitle":16000,"ogDescription":16001,"noIndex":6,"ogImage":11046,"ogUrl":16002,"ogSiteName":995,"ogType":996,"canonicalUrls":16002,"schema":16003},"Have DevOps jobs to fill? Try these 3 strategies to hire and retain","So many DevOps jobs posted, so few options to fill them. Here's why hiring and retaining developers is tricky, and how 3 thoughtful strategies, including a DevOps platform, can help.","https://about.gitlab.com/blog/have-devops-jobs-to-fill-try-these-3-strategies-to-hire-and-retain","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Have DevOps jobs to fill? Try these 3 strategies to hire and retain\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-09-23\",\n      }",{"title":16000,"description":16001,"authors":16005,"heroImage":11046,"date":15989,"category":577,"tags":16006},[10672],[564,6980,8475],{"slug":16008,"featured":6,"template":736},"have-devops-jobs-to-fill-try-these-3-strategies-to-hire-and-retain","content:en-us:blog:have-devops-jobs-to-fill-try-these-3-strategies-to-hire-and-retain.yml","Have Devops Jobs To Fill Try These 3 Strategies To Hire And Retain","en-us/blog/have-devops-jobs-to-fill-try-these-3-strategies-to-hire-and-retain.yml","en-us/blog/have-devops-jobs-to-fill-try-these-3-strategies-to-hire-and-retain",{"_path":16014,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16015,"content":16021,"config":16026,"_id":16028,"_type":16,"title":16029,"_source":17,"_file":16030,"_stem":16031,"_extension":20},"/en-us/blog/how-the-devops-platform-makes-building-accessible-software-easier",{"title":16016,"description":16017,"ogTitle":16016,"ogDescription":16017,"noIndex":6,"ogImage":16018,"ogUrl":16019,"ogSiteName":995,"ogType":996,"canonicalUrls":16019,"schema":16020},"It's time to build more accessible software. A DevOps platform can help","Shifting accessibility left can make building accessible products simpler and more efficient. A DevOps platform makes it easier to customize and adjust priorities to suit your business needs.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667281/Blog/Hero%20Images/accessibility.jpg","https://about.gitlab.com/blog/how-the-devops-platform-makes-building-accessible-software-easier","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"It's time to build more accessible software. A DevOps platform can help\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-09-21\",\n      }",{"title":16016,"description":16017,"authors":16022,"heroImage":16018,"date":16024,"category":577,"tags":16025},[16023],"Sara Kassabian","2021-09-21",[564,1569,1265],{"slug":16027,"featured":6,"template":736},"how-the-devops-platform-makes-building-accessible-software-easier","content:en-us:blog:how-the-devops-platform-makes-building-accessible-software-easier.yml","How The Devops Platform Makes Building Accessible Software Easier","en-us/blog/how-the-devops-platform-makes-building-accessible-software-easier.yml","en-us/blog/how-the-devops-platform-makes-building-accessible-software-easier",{"_path":16033,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16034,"content":16039,"config":16043,"_id":16045,"_type":16,"title":16046,"_source":17,"_file":16047,"_stem":16048,"_extension":20},"/en-us/blog/introducing-markdown-live-preview",{"title":16035,"description":16036,"ogTitle":16035,"ogDescription":16036,"noIndex":6,"ogImage":11046,"ogUrl":16037,"ogSiteName":995,"ogType":996,"canonicalUrls":16037,"schema":16038},"GitLab's realtime Preview Markdown is an editor for everyone","With GitLab's new realtime Preview Markdown, technical and non-technical team members can more easily work together. Here's everything you need to know.","https://about.gitlab.com/blog/introducing-markdown-live-preview","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's realtime Preview Markdown is an editor for everyone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Parker Ennis\"}],\n        \"datePublished\": \"2021-09-21\",\n      }",{"title":16035,"description":16036,"authors":16040,"heroImage":11046,"date":16024,"category":1049,"tags":16042},[16041],"Parker Ennis",[1932,564,892],{"slug":16044,"featured":6,"template":736},"introducing-markdown-live-preview","content:en-us:blog:introducing-markdown-live-preview.yml","Introducing Markdown Live Preview","en-us/blog/introducing-markdown-live-preview.yml","en-us/blog/introducing-markdown-live-preview",{"_path":16050,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16051,"content":16056,"config":16061,"_id":16063,"_type":16,"title":16064,"_source":17,"_file":16065,"_stem":16066,"_extension":20},"/en-us/blog/qpage-on-the-devops-platform",{"title":16052,"description":16053,"ogTitle":16052,"ogDescription":16053,"noIndex":6,"ogImage":6170,"ogUrl":16054,"ogSiteName":995,"ogType":996,"canonicalUrls":16054,"schema":16055},"QPage improves deployment & efficiency using GitLab platform","QPage went from a homegrown CI/CD solution to the GitLab DevOps Platform and found more benefits than expected.","https://about.gitlab.com/blog/qpage-on-the-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How QPage achieved automatic deployment and efficiency using the GitLab DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-09-15\",\n      }",{"title":16057,"description":16053,"authors":16058,"heroImage":6170,"date":16059,"category":577,"tags":16060},"How QPage achieved automatic deployment and efficiency using the GitLab DevOps Platform",[1000],"2021-09-15",[564,3075,2097],{"slug":16062,"featured":6,"template":736},"qpage-on-the-devops-platform","content:en-us:blog:qpage-on-the-devops-platform.yml","Qpage On The Devops Platform","en-us/blog/qpage-on-the-devops-platform.yml","en-us/blog/qpage-on-the-devops-platform",{"_path":16068,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16069,"content":16075,"config":16080,"_id":16082,"_type":16,"title":16083,"_source":17,"_file":16084,"_stem":16085,"_extension":20},"/en-us/blog/gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources",{"title":16070,"description":16071,"ogTitle":16070,"ogDescription":16071,"noIndex":6,"ogImage":16072,"ogUrl":16073,"ogSiteName":995,"ogType":996,"canonicalUrls":16073,"schema":16074},"How to use Terratag to manage Terraform tags automatically","This blog addresses how you can do that easily and automatically when using Terraform and Terratag (an open source project by env0) on top of the Gitlab CI/CD platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682137/Blog/Hero%20Images/blog-image.png","https://about.gitlab.com/blog/gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use Terratag to automatically manage tags and labels for your Terraform Code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2021-09-14\",\n      }",{"title":16076,"description":16071,"authors":16077,"heroImage":16072,"date":16078,"category":858,"tags":16079},"How to use Terratag to automatically manage tags and labels for your Terraform Code",[1016],"2021-09-14",[564,559],{"slug":16081,"featured":6,"template":736},"gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources","content:en-us:blog:gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources.yml","Gitlab Together With Terratag Open Source To Help You Manage Terraform Resources","en-us/blog/gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources.yml","en-us/blog/gitlab-together-with-terratag-open-source-to-help-you-manage-terraform-resources",{"_path":16087,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16088,"content":16094,"config":16099,"_id":16101,"_type":16,"title":16102,"_source":17,"_file":16103,"_stem":16104,"_extension":20},"/en-us/blog/lessons-weet-learned-lokalise",{"title":16089,"description":16090,"ogTitle":16089,"ogDescription":16090,"noIndex":6,"ogImage":16091,"ogUrl":16092,"ogSiteName":995,"ogType":996,"canonicalUrls":16092,"schema":16093},"How Weet integrates localization into the GitLab pipeline with Lokalise","Localization is an increasingly important option for users. Here's how to integrate localization in your GitLab pipeline.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668543/Blog/Hero%20Images/lokalise_cover.png","https://about.gitlab.com/blog/lessons-weet-learned-lokalise","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Weet integrates localization into the GitLab pipeline with Lokalise\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alexander Pereverzevs\"}],\n        \"datePublished\": \"2021-09-13\",\n      }",{"title":16089,"description":16090,"authors":16095,"heroImage":16091,"date":16097,"category":577,"tags":16098},[16096],"Alexander Pereverzevs","2021-09-13",[2815,233,1265],{"slug":16100,"featured":6,"template":736},"lessons-weet-learned-lokalise","content:en-us:blog:lessons-weet-learned-lokalise.yml","Lessons Weet Learned Lokalise","en-us/blog/lessons-weet-learned-lokalise.yml","en-us/blog/lessons-weet-learned-lokalise",{"_path":16106,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16107,"content":16113,"config":16117,"_id":16119,"_type":16,"title":16120,"_source":17,"_file":16121,"_stem":16122,"_extension":20},"/en-us/blog/adopt-agile-and-devops-for-ibm-z",{"title":16108,"description":16109,"ogTitle":16108,"ogDescription":16109,"noIndex":6,"ogImage":16110,"ogUrl":16111,"ogSiteName":995,"ogType":996,"canonicalUrls":16111,"schema":16112},"The benefits of DevOps practices for IBM Z","GitLab aims to provide a unified enterprise-wide DevOps platform with enhanced support for IBM Z. Here are three areas that can start to align DevOps and mainframe development.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666262/Blog/Hero%20Images/default-blog-image.png","https://about.gitlab.com/blog/adopt-agile-and-devops-for-ibm-z","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The benefits of DevOps practices for IBM Z\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vick Kelkar\"}],\n        \"datePublished\": \"2021-09-10\",\n      }",{"title":16108,"description":16109,"authors":16114,"heroImage":16110,"date":16115,"category":6121,"tags":16116},[11105],"2021-09-10",[729,2815,1335],{"slug":16118,"featured":6,"template":736},"adopt-agile-and-devops-for-ibm-z","content:en-us:blog:adopt-agile-and-devops-for-ibm-z.yml","Adopt Agile And Devops For Ibm Z","en-us/blog/adopt-agile-and-devops-for-ibm-z.yml","en-us/blog/adopt-agile-and-devops-for-ibm-z",{"_path":16124,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16125,"content":16131,"config":16134,"_id":16136,"_type":16,"title":16137,"_source":17,"_file":16138,"_stem":16139,"_extension":20},"/en-us/blog/setting-up-the-k-agent",{"title":16126,"description":16127,"ogTitle":16126,"ogDescription":16127,"noIndex":6,"ogImage":16128,"ogUrl":16129,"ogSiteName":995,"ogType":996,"canonicalUrls":16129,"schema":16130},"How to deploy the GitLab Agent for Kubernetes with limited permissions"," Learn how to deploy the GitLab Agent for Kubernetes with Limited Permissions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668655/Blog/Hero%20Images/seabass-creatives-U3m4_cKbUfc-unsplash.jpg","https://about.gitlab.com/blog/setting-up-the-k-agent","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to deploy the GitLab Agent for Kubernetes with limited permissions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2021-09-10\",\n      }",{"title":16126,"description":16127,"authors":16132,"heroImage":16128,"date":16115,"category":577,"tags":16133},[1097],[1195,559,790],{"slug":16135,"featured":6,"template":736},"setting-up-the-k-agent","content:en-us:blog:setting-up-the-k-agent.yml","Setting Up The K Agent","en-us/blog/setting-up-the-k-agent.yml","en-us/blog/setting-up-the-k-agent",{"_path":16141,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16142,"content":16148,"config":16152,"_id":16154,"_type":16,"title":16155,"_source":17,"_file":16156,"_stem":16157,"_extension":20},"/en-us/blog/5-code-review-features",{"title":16143,"description":16144,"ogTitle":16143,"ogDescription":16144,"noIndex":6,"ogImage":16145,"ogUrl":16146,"ogSiteName":995,"ogType":996,"canonicalUrls":16146,"schema":16147},"How GitLab's 5 new code review features will make life easier","Code reviews are hard to get right. Here are five new features in our DevOps Platform designed to streamline code reviews and provide vital context.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667400/Blog/Hero%20Images/lagos-techie-unsplash.jpg","https://about.gitlab.com/blog/5-code-review-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab's 5 new code review features will make life easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2021-09-09\",\n      }",{"title":16143,"description":16144,"authors":16149,"heroImage":16145,"date":16150,"category":577,"tags":16151},[10835],"2021-09-09",[1932,564],{"slug":16153,"featured":6,"template":736},"5-code-review-features","content:en-us:blog:5-code-review-features.yml","5 Code Review Features","en-us/blog/5-code-review-features.yml","en-us/blog/5-code-review-features",{"_path":16159,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16160,"content":16165,"config":16169,"_id":16171,"_type":16,"title":16172,"_source":17,"_file":16173,"_stem":16174,"_extension":20},"/en-us/blog/making-the-case-for-a-devops-platform-what-data-and-customers-say",{"title":16161,"description":16162,"ogTitle":16161,"ogDescription":16162,"noIndex":6,"ogImage":11046,"ogUrl":16163,"ogSiteName":995,"ogType":996,"canonicalUrls":16163,"schema":16164},"Making the case for a DevOps platform: What data and customers say","Don't just take our word for why a DevOps platform means better DevOps and faster, safer releases: here's what the latest data shows and how customers have benefitted.","https://about.gitlab.com/blog/making-the-case-for-a-devops-platform-what-data-and-customers-say","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Making the case for a DevOps platform: What data and customers say\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-09-08\",\n      }",{"title":16161,"description":16162,"authors":16166,"heroImage":11046,"date":16167,"category":577,"tags":16168},[10672],"2021-09-08",[564,7788,4665],{"slug":16170,"featured":6,"template":736},"making-the-case-for-a-devops-platform-what-data-and-customers-say","content:en-us:blog:making-the-case-for-a-devops-platform-what-data-and-customers-say.yml","Making The Case For A Devops Platform What Data And Customers Say","en-us/blog/making-the-case-for-a-devops-platform-what-data-and-customers-say.yml","en-us/blog/making-the-case-for-a-devops-platform-what-data-and-customers-say",{"_path":16176,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16177,"content":16183,"config":16188,"_id":16190,"_type":16,"title":16191,"_source":17,"_file":16192,"_stem":16193,"_extension":20},"/en-us/blog/write-vulnerability-detection-rules",{"title":16178,"description":16179,"ogTitle":16178,"ogDescription":16179,"noIndex":6,"ogImage":16180,"ogUrl":16181,"ogSiteName":995,"ogType":996,"canonicalUrls":16181,"schema":16182},"How to write and continuously test vulnerability detection rules for SAST","Interns with the Google Summer of Code helped GitLab transition from our old SAST tools to Semgrep.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667819/Blog/Hero%20Images/anomaly-detection-cover.png","https://about.gitlab.com/blog/write-vulnerability-detection-rules","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to write and continuously test vulnerability detection rules for SAST\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ross Fuhrman\"},{\"@type\":\"Person\",\"name\":\"Anshuman Singh\"},{\"@type\":\"Person\",\"name\":\"Julian Thome\"}],\n        \"datePublished\": \"2021-09-08\",\n      }",{"title":16178,"description":16179,"authors":16184,"heroImage":16180,"date":16167,"category":790,"tags":16187},[16185,16186,3289],"Ross Fuhrman","Anshuman Singh",[790,771,4182],{"slug":16189,"featured":6,"template":736},"write-vulnerability-detection-rules","content:en-us:blog:write-vulnerability-detection-rules.yml","Write Vulnerability Detection Rules","en-us/blog/write-vulnerability-detection-rules.yml","en-us/blog/write-vulnerability-detection-rules",{"_path":16195,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16196,"content":16202,"config":16206,"_id":16208,"_type":16,"title":16209,"_source":17,"_file":16210,"_stem":16211,"_extension":20},"/en-us/blog/why-are-developers-vulnerable-to-driveby-attacks",{"title":16197,"description":16198,"ogTitle":16197,"ogDescription":16198,"noIndex":6,"ogImage":16199,"ogUrl":16200,"ogSiteName":995,"ogType":996,"canonicalUrls":16200,"schema":16201},"Why are developers so vulnerable to drive-by attacks?","The complexity of developer working environments make them more likely to be vulnerable to a drive-by attack. We talk about why and walk you through a real-life example from a recent disclosure here at GitLab, and provide tips to reduce the risk and impact of drive-by attacks.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682986/Blog/Hero%20Images/pexels-pixabay-434450.jpg","https://about.gitlab.com/blog/why-are-developers-vulnerable-to-driveby-attacks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why are developers so vulnerable to drive-by attacks?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Moberly\"}],\n        \"datePublished\": \"2021-09-07\",\n      }",{"title":16197,"description":16198,"authors":16203,"heroImage":16199,"date":16204,"category":790,"tags":16205},[2720],"2021-09-07",[790],{"slug":16207,"featured":6,"template":736},"why-are-developers-vulnerable-to-driveby-attacks","content:en-us:blog:why-are-developers-vulnerable-to-driveby-attacks.yml","Why Are Developers Vulnerable To Driveby Attacks","en-us/blog/why-are-developers-vulnerable-to-driveby-attacks.yml","en-us/blog/why-are-developers-vulnerable-to-driveby-attacks",{"_path":16213,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16214,"content":16219,"config":16223,"_id":16225,"_type":16,"title":16226,"_source":17,"_file":16227,"_stem":16228,"_extension":20},"/en-us/blog/the-code-review-struggle-is-real-heres-what-you-need-to-know",{"title":16215,"description":16216,"ogTitle":16215,"ogDescription":16216,"noIndex":6,"ogImage":8416,"ogUrl":16217,"ogSiteName":995,"ogType":996,"canonicalUrls":16217,"schema":16218},"The code review struggle is real. Here's what you need to know","If it's time for a DevOps Platform, don't forget the role code review plays. Our 2021 Global DevSecOps Survey showed why it's both critical and tricky to get right.","https://about.gitlab.com/blog/the-code-review-struggle-is-real-heres-what-you-need-to-know","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The code review struggle is real. Here's what you need to know\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-09-03\",\n      }",{"title":16215,"description":16216,"authors":16220,"heroImage":8416,"date":16221,"category":577,"tags":16222},[10672],"2021-09-03",[1932,564,7788],{"slug":16224,"featured":6,"template":736},"the-code-review-struggle-is-real-heres-what-you-need-to-know","content:en-us:blog:the-code-review-struggle-is-real-heres-what-you-need-to-know.yml","The Code Review Struggle Is Real Heres What You Need To Know","en-us/blog/the-code-review-struggle-is-real-heres-what-you-need-to-know.yml","en-us/blog/the-code-review-struggle-is-real-heres-what-you-need-to-know",{"_path":16230,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16231,"content":16236,"config":16239,"_id":16241,"_type":16,"title":16242,"_source":17,"_file":16243,"_stem":16244,"_extension":20},"/en-us/blog/specialized-sidekiq-configuration-lessons-from-gitlab-dot-com",{"title":16232,"description":16233,"ogTitle":16232,"ogDescription":16233,"noIndex":6,"ogImage":15968,"ogUrl":16234,"ogSiteName":995,"ogType":996,"canonicalUrls":16234,"schema":16235},"What we learned about configuring Sidekiq from GitLab.com","Sidekiq is a key part of GitLab, and usually works well out-of-the-box, but sometimes it needs more attention at scale.","https://about.gitlab.com/blog/specialized-sidekiq-configuration-lessons-from-gitlab-dot-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we learned about configuring Sidekiq from GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Craig Miskell\"}],\n        \"datePublished\": \"2021-09-02\",\n      }",{"title":16232,"description":16233,"authors":16237,"heroImage":15968,"date":16238,"category":858},[8243],"2021-09-02",{"slug":16240,"featured":6,"template":736},"specialized-sidekiq-configuration-lessons-from-gitlab-dot-com","content:en-us:blog:specialized-sidekiq-configuration-lessons-from-gitlab-dot-com.yml","Specialized Sidekiq Configuration Lessons From Gitlab Dot Com","en-us/blog/specialized-sidekiq-configuration-lessons-from-gitlab-dot-com.yml","en-us/blog/specialized-sidekiq-configuration-lessons-from-gitlab-dot-com",{"_path":16246,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16247,"content":16252,"config":16255,"_id":16257,"_type":16,"title":16258,"_source":17,"_file":16259,"_stem":16260,"_extension":20},"/en-us/blog/the-journey-to-a-devops-platform",{"title":16248,"description":16249,"ogTitle":16248,"ogDescription":16249,"noIndex":6,"ogImage":11301,"ogUrl":16250,"ogSiteName":995,"ogType":996,"canonicalUrls":16250,"schema":16251},"The journey to a DevOps Platform","Understand the history of DevOps or be doomed to repeat it. Here's why the journey has been so painful and how a DevOps Platform will help.","https://about.gitlab.com/blog/the-journey-to-a-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The journey to a DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cormac Foster\"}],\n        \"datePublished\": \"2021-09-02\",\n      }",{"title":16248,"description":16249,"authors":16253,"heroImage":11301,"date":16238,"category":577,"tags":16254},[15485],[564,3075,730],{"slug":16256,"featured":6,"template":736},"the-journey-to-a-devops-platform","content:en-us:blog:the-journey-to-a-devops-platform.yml","The Journey To A Devops Platform","en-us/blog/the-journey-to-a-devops-platform.yml","en-us/blog/the-journey-to-a-devops-platform",{"_path":16262,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16263,"content":16269,"config":16274,"_id":16276,"_type":16,"title":16277,"_source":17,"_file":16278,"_stem":16279,"_extension":20},"/en-us/blog/gsoc-at-gitlab",{"title":16264,"description":16265,"ogTitle":16264,"ogDescription":16265,"noIndex":6,"ogImage":16266,"ogUrl":16267,"ogSiteName":995,"ogType":996,"canonicalUrls":16267,"schema":16268},"Google Summer of Code at GitLab – some intern highlights","GitLab team members mentored student interns and helped them develop open source projects during Google Summer of Code.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682129/Blog/Hero%20Images/gsoc_cover.jpg","https://about.gitlab.com/blog/gsoc-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Google Summer of Code at GitLab – some intern highlights\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aakriti Gupta\"}],\n        \"datePublished\": \"2021-09-01\",\n      }",{"title":16264,"description":16265,"authors":16270,"heroImage":16266,"date":16272,"category":301,"tags":16273},[16271],"Aakriti Gupta","2021-09-01",[269,3074,1730,1265,3914],{"slug":16275,"featured":6,"template":736},"gsoc-at-gitlab","content:en-us:blog:gsoc-at-gitlab.yml","Gsoc At Gitlab","en-us/blog/gsoc-at-gitlab.yml","en-us/blog/gsoc-at-gitlab",{"_path":16281,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16282,"content":16288,"config":16293,"_id":16295,"_type":16,"title":16296,"_source":17,"_file":16297,"_stem":16298,"_extension":20},"/en-us/blog/secure-pipeline-with-single-sign-in",{"title":16283,"description":16284,"ogTitle":16283,"ogDescription":16284,"noIndex":6,"ogImage":16285,"ogUrl":16286,"ogSiteName":995,"ogType":996,"canonicalUrls":16286,"schema":16287},"How to secure your software build pipeline using code signing","The Venafi plugin for GitLab enables single sign-on and digital signatures to better secure your app.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682125/Blog/Hero%20Images/venafi_coverimage.jpg","https://about.gitlab.com/blog/secure-pipeline-with-single-sign-in","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to secure your software build pipeline using code signing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eddie Glenn\"}],\n        \"datePublished\": \"2021-08-30\",\n      }",{"title":16283,"description":16284,"authors":16289,"heroImage":16285,"date":16291,"category":790,"tags":16292},[16290],"Eddie Glenn","2021-08-30",[790],{"slug":16294,"featured":6,"template":736},"secure-pipeline-with-single-sign-in","content:en-us:blog:secure-pipeline-with-single-sign-in.yml","Secure Pipeline With Single Sign In","en-us/blog/secure-pipeline-with-single-sign-in.yml","en-us/blog/secure-pipeline-with-single-sign-in",{"_path":16300,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16301,"content":16306,"config":16311,"_id":16313,"_type":16,"title":16314,"_source":17,"_file":16315,"_stem":16316,"_extension":20},"/en-us/blog/its-time-to-upgrade-docker-engine",{"title":16302,"description":16303,"ogTitle":16302,"ogDescription":16303,"noIndex":6,"ogImage":8754,"ogUrl":16304,"ogSiteName":995,"ogType":996,"canonicalUrls":16304,"schema":16305},"It's time to update Docker Engine","Now that Alpine Linux 3.14 is being used by more images, it's time to upgrade Docker Engine to 20.10.6 or newer.","https://about.gitlab.com/blog/its-time-to-upgrade-docker-engine","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"It's time to update Docker Engine\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tomasz Maczukin\"}],\n        \"datePublished\": \"2021-08-26\",\n      }",{"title":16302,"description":16303,"authors":16307,"heroImage":8754,"date":16309,"category":858,"tags":16310},[16308],"Tomasz Maczukin","2021-08-26",[110,1730],{"slug":16312,"featured":6,"template":736},"its-time-to-upgrade-docker-engine","content:en-us:blog:its-time-to-upgrade-docker-engine.yml","Its Time To Upgrade Docker Engine","en-us/blog/its-time-to-upgrade-docker-engine.yml","en-us/blog/its-time-to-upgrade-docker-engine",{"_path":16318,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16319,"content":16325,"config":16329,"_id":16331,"_type":16,"title":16332,"_source":17,"_file":16333,"_stem":16334,"_extension":20},"/en-us/blog/stageless-pipelines",{"title":16320,"description":16321,"ogTitle":16320,"ogDescription":16321,"noIndex":6,"ogImage":16322,"ogUrl":16323,"ogSiteName":995,"ogType":996,"canonicalUrls":16323,"schema":16324},"Write a stageless CI/CD pipeline using GitLab 14.2","With GitLab 14.2, you can write a complete CI/CD pipeline without defining any stages.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679507/Blog/Hero%20Images/ci-cd.png","https://about.gitlab.com/blog/stageless-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Write a stageless CI/CD pipeline using GitLab 14.2\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2021-08-24\",\n      }",{"title":16320,"description":16321,"authors":16326,"heroImage":16322,"date":16327,"category":858,"tags":16328},[1712],"2021-08-24",[2097,2098],{"slug":16330,"featured":6,"template":736},"stageless-pipelines","content:en-us:blog:stageless-pipelines.yml","Stageless Pipelines","en-us/blog/stageless-pipelines.yml","en-us/blog/stageless-pipelines",{"_path":16336,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16337,"content":16342,"config":16347,"_id":16349,"_type":16,"title":16350,"_source":17,"_file":16351,"_stem":16352,"_extension":20},"/en-us/blog/how-grammatech-and-gitlab-enables-better-devsecops",{"title":16338,"description":16339,"ogTitle":16338,"ogDescription":16339,"noIndex":6,"ogImage":11046,"ogUrl":16340,"ogSiteName":995,"ogType":996,"canonicalUrls":16340,"schema":16341},"How a new integration helps GitLab customers secure their code","GitLab Ultimate customers can use CodeSonar from GrammaTech for SAST and to bake protection into every stage of software development.","https://about.gitlab.com/blog/how-grammatech-and-gitlab-enables-better-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How a new integration helps GitLab customers secure their code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christian Simko\"}],\n        \"datePublished\": \"2021-08-20\",\n      }",{"title":16338,"description":16339,"authors":16343,"heroImage":11046,"date":16345,"category":858,"tags":16346},[16344],"Christian Simko","2021-08-20",[790,233,1569],{"slug":16348,"featured":6,"template":736},"how-grammatech-and-gitlab-enables-better-devsecops","content:en-us:blog:how-grammatech-and-gitlab-enables-better-devsecops.yml","How Grammatech And Gitlab Enables Better Devsecops","en-us/blog/how-grammatech-and-gitlab-enables-better-devsecops.yml","en-us/blog/how-grammatech-and-gitlab-enables-better-devsecops",{"_path":16354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16355,"content":16361,"config":16365,"_id":16367,"_type":16,"title":16368,"_source":17,"_file":16369,"_stem":16370,"_extension":20},"/en-us/blog/introducing-spamcheck-data-driven-anti-abuse",{"title":16356,"description":16357,"ogTitle":16356,"ogDescription":16357,"noIndex":6,"ogImage":16358,"ogUrl":16359,"ogSiteName":995,"ogType":996,"canonicalUrls":16359,"schema":16360},"Introducing Spamcheck: A data-driven, anti-abuse engine","How we built, tested and deployed a new tool on GitLab that fights spam and abuse.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669841/Blog/Hero%20Images/lionello-delpiccolo-unsplash.jpg","https://about.gitlab.com/blog/introducing-spamcheck-data-driven-anti-abuse","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing Spamcheck: A data-driven, anti-abuse engine\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jayson Salazar\"},{\"@type\":\"Person\",\"name\":\"Alexander Dietrich\"},{\"@type\":\"Person\",\"name\":\"Alex Groleau\"},{\"@type\":\"Person\",\"name\":\"Ethan Urie\"},{\"@type\":\"Person\",\"name\":\"Juliet Wanjohi\"}],\n        \"datePublished\": \"2021-08-19\",\n      }",{"title":16356,"description":16357,"authors":16362,"heroImage":16358,"date":16363,"category":790,"tags":16364},[15182,15183,15184,15185,15186],"2021-08-19",[790],{"slug":16366,"featured":6,"template":736},"introducing-spamcheck-data-driven-anti-abuse","content:en-us:blog:introducing-spamcheck-data-driven-anti-abuse.yml","Introducing Spamcheck Data Driven Anti Abuse","en-us/blog/introducing-spamcheck-data-driven-anti-abuse.yml","en-us/blog/introducing-spamcheck-data-driven-anti-abuse",{"_path":16372,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16373,"content":16379,"config":16384,"_id":16386,"_type":16,"title":16387,"_source":17,"_file":16388,"_stem":16389,"_extension":20},"/en-us/blog/what-the-solarwinds-attack-can-teach-us-about-devsecops",{"title":16374,"description":16375,"ogTitle":16374,"ogDescription":16375,"noIndex":6,"ogImage":16376,"ogUrl":16377,"ogSiteName":995,"ogType":996,"canonicalUrls":16377,"schema":16378},"How DevSecOps can protect businesses from future supply chain attacks","Learn how GitLab's all-in-one DevSecOps solution can help businesses keep their supply chains secure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669522/Blog/Hero%20Images/solarpanels.jpg","https://about.gitlab.com/blog/what-the-solarwinds-attack-can-teach-us-about-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How DevSecOps can protect businesses from future supply chain attacks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pedro Fortuna\"},{\"@type\":\"Person\",\"name\":\"Sam Kerr\"}],\n        \"datePublished\": \"2021-08-18\",\n      }",{"title":16374,"description":16375,"authors":16380,"heroImage":16376,"date":16382,"category":790,"tags":16383},[16381,6887],"Pedro Fortuna","2021-08-18",[564,790,233],{"slug":16385,"featured":6,"template":736},"what-the-solarwinds-attack-can-teach-us-about-devsecops","content:en-us:blog:what-the-solarwinds-attack-can-teach-us-about-devsecops.yml","What The Solarwinds Attack Can Teach Us About Devsecops","en-us/blog/what-the-solarwinds-attack-can-teach-us-about-devsecops.yml","en-us/blog/what-the-solarwinds-attack-can-teach-us-about-devsecops",{"_path":16391,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16392,"content":16398,"config":16404,"_id":16406,"_type":16,"title":16407,"_source":17,"_file":16408,"_stem":16409,"_extension":20},"/en-us/blog/100-runners-in-less-than-10mins-and-less-than-10-clicks",{"title":16393,"description":16394,"ogTitle":16393,"ogDescription":16394,"noIndex":6,"ogImage":16395,"ogUrl":16396,"ogSiteName":995,"ogType":996,"canonicalUrls":16396,"schema":16397},"Setting up 100 AWS Graviton Spot Runners for GitLab","Utilizing the GitLab HA Scaling Runner Vending Machine for AWS Automation to setup 100 GitLab runners on AWS Spot.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669882/Blog/Hero%20Images/hundredgitlabspotrunner.png","https://about.gitlab.com/blog/100-runners-in-less-than-10mins-and-less-than-10-clicks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to provision 100 AWS Graviton GitLab Spot Runners in 10 Minutes for $2/hour\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darwin Sanoy\"},{\"@type\":\"Person\",\"name\":\"Nupur Sharma\"}],\n        \"datePublished\": \"2021-08-17\",\n      }",{"title":16399,"description":16394,"authors":16400,"heroImage":16395,"date":16402,"category":858,"tags":16403},"How to provision 100 AWS Graviton GitLab Spot Runners in 10 Minutes for $2/hour",[959,16401],"Nupur Sharma","2021-08-17",[2097,2098,564,771],{"slug":16405,"featured":6,"template":736},"100-runners-in-less-than-10mins-and-less-than-10-clicks","content:en-us:blog:100-runners-in-less-than-10mins-and-less-than-10-clicks.yml","100 Runners In Less Than 10mins And Less Than 10 Clicks","en-us/blog/100-runners-in-less-than-10mins-and-less-than-10-clicks.yml","en-us/blog/100-runners-in-less-than-10mins-and-less-than-10-clicks",{"_path":16411,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16412,"content":16417,"config":16421,"_id":16423,"_type":16,"title":16424,"_source":17,"_file":16425,"_stem":16426,"_extension":20},"/en-us/blog/five-great-phabricator-features-inspired-gitlab",{"title":16413,"description":16414,"ogTitle":16413,"ogDescription":16414,"noIndex":6,"ogImage":14085,"ogUrl":16415,"ogSiteName":995,"ogType":996,"canonicalUrls":16415,"schema":16416},"5 Great Phabricator features that inspired GitLab","Take a deep dive into the Phabricator features that prompted GitLab to build new tooling around automation, integrated CI, and better code reviews.","https://about.gitlab.com/blog/five-great-phabricator-features-inspired-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Great Phabricator features that inspired GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2021-08-13\",\n      }",{"title":16413,"description":16414,"authors":16418,"heroImage":14085,"date":16419,"category":301,"tags":16420},[1424],"2021-08-13",[2097,1932,2815],{"slug":16422,"featured":6,"template":736},"five-great-phabricator-features-inspired-gitlab","content:en-us:blog:five-great-phabricator-features-inspired-gitlab.yml","Five Great Phabricator Features Inspired Gitlab","en-us/blog/five-great-phabricator-features-inspired-gitlab.yml","en-us/blog/five-great-phabricator-features-inspired-gitlab",{"_path":16428,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16429,"content":16434,"config":16438,"_id":16440,"_type":16,"title":16441,"_source":17,"_file":16442,"_stem":16443,"_extension":20},"/en-us/blog/understand-highly-technical-spaces",{"title":16430,"description":16431,"ogTitle":16430,"ogDescription":16431,"noIndex":6,"ogImage":14466,"ogUrl":16432,"ogSiteName":995,"ogType":996,"canonicalUrls":16432,"schema":16433},"How I use analogy to design for highly technical spaces","Just how much does a designer need to know about a technical space or product to design for it?","https://about.gitlab.com/blog/understand-highly-technical-spaces","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How I use analogy to design for highly technical spaces\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Camellia Yang\"}],\n        \"datePublished\": \"2021-08-13\",\n      }",{"title":16430,"description":16431,"authors":16435,"heroImage":14466,"date":16419,"category":858,"tags":16437},[16436],"Camellia Yang",[790,2703],{"slug":16439,"featured":6,"template":736},"understand-highly-technical-spaces","content:en-us:blog:understand-highly-technical-spaces.yml","Understand Highly Technical Spaces","en-us/blog/understand-highly-technical-spaces.yml","en-us/blog/understand-highly-technical-spaces",{"_path":16445,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16446,"content":16451,"config":16456,"_id":16458,"_type":16,"title":16459,"_source":17,"_file":16460,"_stem":16461,"_extension":20},"/en-us/blog/how-to-agentless-gitops-aws",{"title":16447,"description":16448,"ogTitle":16447,"ogDescription":16448,"noIndex":6,"ogImage":11046,"ogUrl":16449,"ogSiteName":995,"ogType":996,"canonicalUrls":16449,"schema":16450},"How to Use Push-Based GitOps with Terraform & AWS ECS/EC2","Learn how GitLab supports agentless approach for GitOps on AWS.","https://about.gitlab.com/blog/how-to-agentless-gitops-aws","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use a push-based approach for GitOps with Terraform and AWS ECS and EC2\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2021-08-10\",\n      }",{"title":16452,"description":16448,"authors":16453,"heroImage":11046,"date":16454,"category":858,"tags":16455},"How to use a push-based approach for GitOps with Terraform and AWS ECS and EC2",[767],"2021-08-10",[559,564,4182],{"slug":16457,"featured":6,"template":736},"how-to-agentless-gitops-aws","content:en-us:blog:how-to-agentless-gitops-aws.yml","How To Agentless Gitops Aws","en-us/blog/how-to-agentless-gitops-aws.yml","en-us/blog/how-to-agentless-gitops-aws",{"_path":16463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16464,"content":16469,"config":16473,"_id":16475,"_type":16,"title":16476,"_source":17,"_file":16477,"_stem":16478,"_extension":20},"/en-us/blog/five-ways-to-scale-remote-work",{"title":16465,"description":16466,"ogTitle":16465,"ogDescription":16466,"noIndex":6,"ogImage":14828,"ogUrl":16467,"ogSiteName":995,"ogType":996,"canonicalUrls":16467,"schema":16468},"5 Ways to scale remote work on your team","Learn how technology businesses are embracing the future of work by going all-remote.","https://about.gitlab.com/blog/five-ways-to-scale-remote-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Ways to scale remote work on your team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Betsy Bula\"}],\n        \"datePublished\": \"2021-08-09\",\n      }",{"title":16465,"description":16466,"authors":16470,"heroImage":14828,"date":16471,"category":6121,"tags":16472},[14833],"2021-08-09",[3914],{"slug":16474,"featured":6,"template":736},"five-ways-to-scale-remote-work","content:en-us:blog:five-ways-to-scale-remote-work.yml","Five Ways To Scale Remote Work","en-us/blog/five-ways-to-scale-remote-work.yml","en-us/blog/five-ways-to-scale-remote-work",{"_path":16480,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16481,"content":16486,"config":16492,"_id":16494,"_type":16,"title":16495,"_source":17,"_file":16496,"_stem":16497,"_extension":20},"/en-us/blog/achieving-23-cost-savings-and-36-performance-gain-using-gitlab-and-gitlab-runner-on-arm-neoverse-based-aws-graviton2-processor",{"title":16482,"description":16483,"ogTitle":16482,"ogDescription":16483,"noIndex":6,"ogImage":8754,"ogUrl":16484,"ogSiteName":995,"ogType":996,"canonicalUrls":16484,"schema":16485},"GitLab on Graviton2: 23% cheaper, 36% higher performance","GitLab and GitLab Runner Performance Gains on Arm based AWS Graviton2","https://about.gitlab.com/blog/achieving-23-cost-savings-and-36-performance-gain-using-gitlab-and-gitlab-runner-on-arm-neoverse-based-aws-graviton2-processor","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"23% Cost savings and 36% performance gain by deploying GitLab on Arm-based AWS Graviton2\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pranay Bakre\"}],\n        \"datePublished\": \"2021-08-05\",\n      }",{"title":16487,"description":16483,"authors":16488,"heroImage":8754,"date":16490,"category":858,"tags":16491},"23% Cost savings and 36% performance gain by deploying GitLab on Arm-based AWS Graviton2",[16489],"Pranay Bakre","2021-08-05",[2097],{"slug":16493,"featured":6,"template":736},"achieving-23-cost-savings-and-36-performance-gain-using-gitlab-and-gitlab-runner-on-arm-neoverse-based-aws-graviton2-processor","content:en-us:blog:achieving-23-cost-savings-and-36-performance-gain-using-gitlab-and-gitlab-runner-on-arm-neoverse-based-aws-graviton2-processor.yml","Achieving 23 Cost Savings And 36 Performance Gain Using Gitlab And Gitlab Runner On Arm Neoverse Based Aws Graviton2 Processor","en-us/blog/achieving-23-cost-savings-and-36-performance-gain-using-gitlab-and-gitlab-runner-on-arm-neoverse-based-aws-graviton2-processor.yml","en-us/blog/achieving-23-cost-savings-and-36-performance-gain-using-gitlab-and-gitlab-runner-on-arm-neoverse-based-aws-graviton2-processor",{"_path":16499,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16500,"content":16506,"config":16510,"_id":16512,"_type":16,"title":16513,"_source":17,"_file":16514,"_stem":16515,"_extension":20},"/en-us/blog/ubs-gitlab-devops-platform",{"title":16501,"description":16502,"ogTitle":16501,"ogDescription":16502,"noIndex":6,"ogImage":16503,"ogUrl":16504,"ogSiteName":995,"ogType":996,"canonicalUrls":16504,"schema":16505},"How UBS created their own DevOps platform using GitLab","How GitLab helped power more than a million builds in six months on UBS DevCloud.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665839/Blog/Hero%20Images/devops.png","https://about.gitlab.com/blog/ubs-gitlab-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How UBS created their own DevOps platform using GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-08-04\",\n      }",{"title":16501,"description":16502,"authors":16507,"heroImage":16503,"date":16508,"category":858,"tags":16509},[16023],"2021-08-04",[564,1265,2097,2815],{"slug":16511,"featured":6,"template":736},"ubs-gitlab-devops-platform","content:en-us:blog:ubs-gitlab-devops-platform.yml","Ubs Gitlab Devops Platform","en-us/blog/ubs-gitlab-devops-platform.yml","en-us/blog/ubs-gitlab-devops-platform",{"_path":16517,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16518,"content":16524,"config":16528,"_id":16530,"_type":16,"title":16531,"_source":17,"_file":16532,"_stem":16533,"_extension":20},"/en-us/blog/welcome-to-the-devops-platform-era",{"title":16519,"description":16520,"ogTitle":16519,"ogDescription":16520,"noIndex":6,"ogImage":16521,"ogUrl":16522,"ogSiteName":995,"ogType":996,"canonicalUrls":16522,"schema":16523},"Welcome to the DevOps Platform era","GitLab CEO Sid Sijbrandij reflects on the evolution of DevOps and the emergence of the DevOps Platform as the solution for businesses wanting to deliver software faster, more securely, and at a lower cost.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668101/Blog/Hero%20Images/dop_cover.png","https://about.gitlab.com/blog/welcome-to-the-devops-platform-era","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Welcome to the DevOps Platform era\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2021-08-03\",\n      }",{"title":16519,"description":16520,"authors":16525,"heroImage":16521,"date":16526,"category":577,"tags":16527},[3701],"2021-08-03",[564,1049,1569],{"slug":16529,"featured":6,"template":736},"welcome-to-the-devops-platform-era","content:en-us:blog:welcome-to-the-devops-platform-era.yml","Welcome To The Devops Platform Era","en-us/blog/welcome-to-the-devops-platform-era.yml","en-us/blog/welcome-to-the-devops-platform-era",{"_path":16535,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16536,"content":16542,"config":16547,"_id":16549,"_type":16,"title":16550,"_source":17,"_file":16551,"_stem":16552,"_extension":20},"/en-us/blog/how-orange-uses-gitlab-ci-cd-for-modern-devops",{"title":16537,"description":16538,"ogTitle":16537,"ogDescription":16538,"noIndex":6,"ogImage":16539,"ogUrl":16540,"ogSiteName":995,"ogType":996,"canonicalUrls":16540,"schema":16541},"How Orange made a first step toward CI/CD standardization with GitLab","Find out how Orange made a first step toward CI/CD standardization with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682084/Blog/Hero%20Images/oranges.jpg","https://about.gitlab.com/blog/how-orange-uses-gitlab-ci-cd-for-modern-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Orange made a first step toward CI/CD standardization with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pierre Smeyers\"}],\n        \"datePublished\": \"2021-07-29\",\n      }",{"title":16537,"description":16538,"authors":16543,"heroImage":16539,"date":16545,"category":1388,"tags":16546},[16544],"Pierre Smeyers","2021-07-29",[564,1265,2097],{"slug":16548,"featured":6,"template":736},"how-orange-uses-gitlab-ci-cd-for-modern-devops","content:en-us:blog:how-orange-uses-gitlab-ci-cd-for-modern-devops.yml","How Orange Uses Gitlab Ci Cd For Modern Devops","en-us/blog/how-orange-uses-gitlab-ci-cd-for-modern-devops.yml","en-us/blog/how-orange-uses-gitlab-ci-cd-for-modern-devops",{"_path":16554,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16555,"content":16561,"config":16564,"_id":16566,"_type":16,"title":16567,"_source":17,"_file":16568,"_stem":16569,"_extension":20},"/en-us/blog/velocity-with-confidence",{"title":16556,"description":16557,"ogTitle":16556,"ogDescription":16557,"noIndex":6,"ogImage":16558,"ogUrl":16559,"ogSiteName":995,"ogType":996,"canonicalUrls":16559,"schema":16560},"How GitLab 14 satisfies the need for speed with modern DevOps","GitLab 14: Ship with velocity, ship with confidence","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682089/Blog/Hero%20Images/racecar_devops.jpg","https://about.gitlab.com/blog/velocity-with-confidence","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab 14 satisfies the need for speed with modern DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Parker Ennis\"}],\n        \"datePublished\": \"2021-07-29\",\n      }",{"title":16556,"description":16557,"authors":16562,"heroImage":16558,"date":16545,"category":858,"tags":16563},[16041],[564,1569,2097,2098,559],{"slug":16565,"featured":6,"template":736},"velocity-with-confidence","content:en-us:blog:velocity-with-confidence.yml","Velocity With Confidence","en-us/blog/velocity-with-confidence.yml","en-us/blog/velocity-with-confidence",{"_path":16571,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16572,"content":16578,"config":16583,"_id":16585,"_type":16,"title":16586,"_source":17,"_file":16587,"_stem":16588,"_extension":20},"/en-us/blog/secure-container-images-with-gitlab-and-grype",{"title":16573,"description":16574,"ogTitle":16573,"ogDescription":16574,"noIndex":6,"ogImage":16575,"ogUrl":16576,"ogSiteName":995,"ogType":996,"canonicalUrls":16576,"schema":16577},"How to secure your container images with GitLab and Grype","Learn how to start detecting vulnerabilities in your container images in just a few steps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671873/Blog/Hero%20Images/logos_header.jpg","https://about.gitlab.com/blog/secure-container-images-with-gitlab-and-grype","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to secure your container images with GitLab and Grype\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dan Luhring\"}],\n        \"datePublished\": \"2021-07-28\",\n      }",{"title":16573,"description":16574,"authors":16579,"heroImage":16575,"date":16581,"category":858,"tags":16582},[16580],"Dan Luhring","2021-07-28",[564,790,564],{"slug":16584,"featured":6,"template":736},"secure-container-images-with-gitlab-and-grype","content:en-us:blog:secure-container-images-with-gitlab-and-grype.yml","Secure Container Images With Gitlab And Grype","en-us/blog/secure-container-images-with-gitlab-and-grype.yml","en-us/blog/secure-container-images-with-gitlab-and-grype",{"_path":16590,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16591,"content":16596,"config":16600,"_id":16602,"_type":16,"title":16603,"_source":17,"_file":16604,"_stem":16605,"_extension":20},"/en-us/blog/gitlab-helm-package-registry",{"title":16592,"description":16593,"ogTitle":16592,"ogDescription":16593,"noIndex":6,"ogImage":11046,"ogUrl":16594,"ogSiteName":995,"ogType":996,"canonicalUrls":16594,"schema":16595},"Introducing the GitLab Helm Package Registry","Develop and deploy cloud native applications with a built-in Helm registry.","https://about.gitlab.com/blog/gitlab-helm-package-registry","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing the GitLab Helm Package Registry\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2021-07-26\",\n      }",{"title":16592,"description":16593,"authors":16597,"heroImage":11046,"date":16598,"category":1049,"tags":16599},[15730],"2021-07-26",[2815,564,730,2908],{"slug":16601,"featured":6,"template":736},"gitlab-helm-package-registry","content:en-us:blog:gitlab-helm-package-registry.yml","Gitlab Helm Package Registry","en-us/blog/gitlab-helm-package-registry.yml","en-us/blog/gitlab-helm-package-registry",{"_path":16607,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16608,"content":16614,"config":16619,"_id":16621,"_type":16,"title":16622,"_source":17,"_file":16623,"_stem":16624,"_extension":20},"/en-us/blog/announcing-package-hunter",{"title":16609,"description":16610,"ogTitle":16609,"ogDescription":16610,"noIndex":6,"ogImage":16611,"ogUrl":16612,"ogSiteName":995,"ogType":996,"canonicalUrls":16612,"schema":16613},"Package Hunter: Detect malicious code in dependencies","We developed, tested and open sourced a new tool to analyze program dependencies and protect the supply chain.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682075/Blog/Hero%20Images/package-hunter.png","https://about.gitlab.com/blog/announcing-package-hunter","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet Package Hunter: A tool for detecting malicious code in your dependencies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dennis Appelt\"}],\n        \"datePublished\": \"2021-07-23\",\n      }",{"title":16615,"description":16610,"authors":16616,"heroImage":16611,"date":16617,"category":790,"tags":16618},"Meet Package Hunter: A tool for detecting malicious code in your dependencies",[6210],"2021-07-23",[790,3292],{"slug":16620,"featured":6,"template":736},"announcing-package-hunter","content:en-us:blog:announcing-package-hunter.yml","Announcing Package Hunter","en-us/blog/announcing-package-hunter.yml","en-us/blog/announcing-package-hunter",{"_path":16626,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16627,"content":16633,"config":16637,"_id":16639,"_type":16,"title":16640,"_source":17,"_file":16641,"_stem":16642,"_extension":20},"/en-us/blog/how-to-agentless-gitops-vars",{"title":16628,"description":16629,"ogTitle":16628,"ogDescription":16629,"noIndex":6,"ogImage":16630,"ogUrl":16631,"ogSiteName":995,"ogType":996,"canonicalUrls":16631,"schema":16632},"Using push-based GitOps with GitLab scripts and variables","Learn how GitLab supports agentless approach for GitOps with scripting and variables.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682051/Blog/Hero%20Images/agentless-gitops-vars-cover-880x587.jpg","https://about.gitlab.com/blog/how-to-agentless-gitops-vars","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use a push-based approach for GitOps with GitLab scripting and variables\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2021-07-23\",\n      }",{"title":16634,"description":16629,"authors":16635,"heroImage":16630,"date":16617,"category":858,"tags":16636},"How to use a push-based approach for GitOps with GitLab scripting and variables",[767],[559,564,4182],{"slug":16638,"featured":6,"template":736},"how-to-agentless-gitops-vars","content:en-us:blog:how-to-agentless-gitops-vars.yml","How To Agentless Gitops Vars","en-us/blog/how-to-agentless-gitops-vars.yml","en-us/blog/how-to-agentless-gitops-vars",{"_path":16644,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16645,"content":16650,"config":16654,"_id":16656,"_type":16,"title":16657,"_source":17,"_file":16658,"_stem":16659,"_extension":20},"/en-us/blog/optimizing-devops-visibility-in-gitlab-14",{"title":16646,"description":16647,"ogTitle":16646,"ogDescription":16647,"noIndex":6,"ogImage":16503,"ogUrl":16648,"ogSiteName":995,"ogType":996,"canonicalUrls":16648,"schema":16649},"Optimize DevOps with enhanced visibility tools in GitLab 14","How GitLab 14's end-to-end visibility and actionability can help users understand and improve delivery and alignment.","https://about.gitlab.com/blog/optimizing-devops-visibility-in-gitlab-14","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Optimize DevOps with enhanced visibility tools in GitLab 14\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cormac Foster\"}],\n        \"datePublished\": \"2021-07-21\",\n      }",{"title":16646,"description":16647,"authors":16651,"heroImage":16503,"date":16652,"category":8140,"tags":16653},[15485],"2021-07-21",[564,729],{"slug":16655,"featured":6,"template":736},"optimizing-devops-visibility-in-gitlab-14","content:en-us:blog:optimizing-devops-visibility-in-gitlab-14.yml","Optimizing Devops Visibility In Gitlab 14","en-us/blog/optimizing-devops-visibility-in-gitlab-14.yml","en-us/blog/optimizing-devops-visibility-in-gitlab-14",{"_path":16661,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16662,"content":16667,"config":16671,"_id":16673,"_type":16,"title":16674,"_source":17,"_file":16675,"_stem":16676,"_extension":20},"/en-us/blog/are-you-ready-for-the-newest-era-of-devsecops",{"title":16663,"description":16664,"ogTitle":16663,"ogDescription":16664,"noIndex":6,"ogImage":16503,"ogUrl":16665,"ogSiteName":995,"ogType":996,"canonicalUrls":16665,"schema":16666},"Are you ready for the newest era of DevSecOps?","DevSecOps is about more than shifting security testing to developers. Can you secure your software development end-to-end?","https://about.gitlab.com/blog/are-you-ready-for-the-newest-era-of-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Are you ready for the newest era of DevSecOps?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2021-07-20\",\n      }",{"title":16663,"description":16664,"authors":16668,"heroImage":16503,"date":16669,"category":8140,"tags":16670},[11487],"2021-07-20",[790],{"slug":16672,"featured":6,"template":736},"are-you-ready-for-the-newest-era-of-devsecops","content:en-us:blog:are-you-ready-for-the-newest-era-of-devsecops.yml","Are You Ready For The Newest Era Of Devsecops","en-us/blog/are-you-ready-for-the-newest-era-of-devsecops.yml","en-us/blog/are-you-ready-for-the-newest-era-of-devsecops",{"_path":16678,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16679,"content":16684,"config":16688,"_id":16690,"_type":16,"title":16691,"_source":17,"_file":16692,"_stem":16693,"_extension":20},"/en-us/blog/improved-billing-and-subscription-management",{"title":16680,"description":16681,"ogTitle":16680,"ogDescription":16681,"noIndex":6,"ogImage":11046,"ogUrl":16682,"ogSiteName":995,"ogType":996,"canonicalUrls":16682,"schema":16683},"GitLab improves billing & subscription with paid tier updates","Updates to paid tiers for improved product and service experience for customers","https://about.gitlab.com/blog/improved-billing-and-subscription-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab introduces updates to paid tiers for improved billing and subscription management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2021-07-20\",\n      }",{"title":16685,"description":16681,"authors":16686,"heroImage":11046,"date":16669,"category":1049,"tags":16687},"GitLab introduces updates to paid tiers for improved billing and subscription management",[3701],[1049],{"slug":16689,"featured":6,"template":736},"improved-billing-and-subscription-management","content:en-us:blog:improved-billing-and-subscription-management.yml","Improved Billing And Subscription Management","en-us/blog/improved-billing-and-subscription-management.yml","en-us/blog/improved-billing-and-subscription-management",{"_path":16695,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16696,"content":16701,"config":16706,"_id":16708,"_type":16,"title":16709,"_source":17,"_file":16710,"_stem":16711,"_extension":20},"/en-us/blog/teams-gitpod-integration-gitlab-speed-up-development",{"title":16697,"description":16698,"ogTitle":16697,"ogDescription":16698,"noIndex":6,"ogImage":14085,"ogUrl":16699,"ogSiteName":995,"ogType":996,"canonicalUrls":16699,"schema":16700},"Teams speed up development with GitLab's Gitpod integration","Learn about Gitpod as cloud development environment, and how its integration into Gitpod helps teams to get more efficient in their DevOps lifecycle.","https://about.gitlab.com/blog/teams-gitpod-integration-gitlab-speed-up-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How teams can use the Gitpod integration in GitLab to speed up their development process\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2021-07-19\",\n      }",{"title":16702,"description":16698,"authors":16703,"heroImage":14085,"date":16704,"category":858,"tags":16705},"How teams can use the Gitpod integration in GitLab to speed up their development process",[1424],"2021-07-19",[233,2815,1335],{"slug":16707,"featured":6,"template":736},"teams-gitpod-integration-gitlab-speed-up-development","content:en-us:blog:teams-gitpod-integration-gitlab-speed-up-development.yml","Teams Gitpod Integration Gitlab Speed Up Development","en-us/blog/teams-gitpod-integration-gitlab-speed-up-development.yml","en-us/blog/teams-gitpod-integration-gitlab-speed-up-development",{"_path":16713,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16714,"content":16720,"config":16724,"_id":16726,"_type":16,"title":16727,"_source":17,"_file":16728,"_stem":16729,"_extension":20},"/en-us/blog/gitops-as-the-evolution-of-operations",{"title":16715,"description":16716,"ogTitle":16715,"ogDescription":16716,"noIndex":6,"ogImage":16717,"ogUrl":16718,"ogSiteName":995,"ogType":996,"canonicalUrls":16718,"schema":16719},"GitOps viewed as part of the Ops evolution","Examine the evolution that led to GitOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682062/Blog/Hero%20Images/food-train.jpg","https://about.gitlab.com/blog/gitops-as-the-evolution-of-operations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitOps viewed as part of the Ops evolution\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-07-12\",\n      }",{"title":16715,"description":16716,"authors":16721,"heroImage":16717,"date":16722,"category":858,"tags":16723},[2942],"2021-07-12",[564,559],{"slug":16725,"featured":6,"template":736},"gitops-as-the-evolution-of-operations","content:en-us:blog:gitops-as-the-evolution-of-operations.yml","Gitops As The Evolution Of Operations","en-us/blog/gitops-as-the-evolution-of-operations.yml","en-us/blog/gitops-as-the-evolution-of-operations",{"_path":16731,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16732,"content":16738,"config":16742,"_id":16744,"_type":16,"title":16745,"_source":17,"_file":16746,"_stem":16747,"_extension":20},"/en-us/blog/creating-a-threat-model-that-works-for-gitlab",{"title":16733,"description":16734,"ogTitle":16733,"ogDescription":16734,"noIndex":6,"ogImage":16735,"ogUrl":16736,"ogSiteName":995,"ogType":996,"canonicalUrls":16736,"schema":16737},"How we’re creating a threat model framework that works for GitLab","As usual, we’re creating our own path in how we handle our threat modeling, approaching development both iteratively and collaboratively, and seriously shifting left with our framework and processes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682058/Blog/Hero%20Images/pexels-nathan-j-hilton.jpg","https://about.gitlab.com/blog/creating-a-threat-model-that-works-for-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we’re creating a threat model framework that works for GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2021-07-09\",\n      }",{"title":16733,"description":16734,"authors":16739,"heroImage":16735,"date":16740,"category":790,"tags":16741},[5108],"2021-07-09",[790,1569,3292],{"slug":16743,"featured":6,"template":736},"creating-a-threat-model-that-works-for-gitlab","content:en-us:blog:creating-a-threat-model-that-works-for-gitlab.yml","Creating A Threat Model That Works For Gitlab","en-us/blog/creating-a-threat-model-that-works-for-gitlab.yml","en-us/blog/creating-a-threat-model-that-works-for-gitlab",{"_path":16749,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16750,"content":16755,"config":16759,"_id":16761,"_type":16,"title":16762,"_source":17,"_file":16763,"_stem":16764,"_extension":20},"/en-us/blog/two-bugs-and-a-quick-fix-in-gitpod",{"title":16751,"description":16752,"ogTitle":16751,"ogDescription":16752,"noIndex":6,"ogImage":10311,"ogUrl":16753,"ogSiteName":995,"ogType":996,"canonicalUrls":16753,"schema":16754},"A brief look at Gitpod, two bugs, and a quick fix","Our security researcher takes a look at Gitpod and finds some access tokens under the carpet.","https://about.gitlab.com/blog/two-bugs-and-a-quick-fix-in-gitpod","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A brief look at Gitpod, two bugs, and a quick fix\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joern Schneeweisz\"}],\n        \"datePublished\": \"2021-07-08\",\n      }",{"title":16751,"description":16752,"authors":16756,"heroImage":10311,"date":16757,"category":790,"tags":16758},[10316],"2021-07-08",[790,3292],{"slug":16760,"featured":6,"template":736},"two-bugs-and-a-quick-fix-in-gitpod","content:en-us:blog:two-bugs-and-a-quick-fix-in-gitpod.yml","Two Bugs And A Quick Fix In Gitpod","en-us/blog/two-bugs-and-a-quick-fix-in-gitpod.yml","en-us/blog/two-bugs-and-a-quick-fix-in-gitpod",{"_path":16766,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16767,"content":16773,"config":16777,"_id":16779,"_type":16,"title":16780,"_source":17,"_file":16781,"_stem":16782,"_extension":20},"/en-us/blog/how-to-stand-up-gitlab-in-awsmp",{"title":16768,"description":16769,"ogTitle":16768,"ogDescription":16769,"noIndex":6,"ogImage":16770,"ogUrl":16771,"ogSiteName":995,"ogType":996,"canonicalUrls":16771,"schema":16772},"How to stand-up a GitLab instance in AWS Marketplace","This is a quick quide to help you provision a GitLab instance in the AWS Marketplace and setup a Runner.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682043/Blog/Hero%20Images/awsmp.png","https://about.gitlab.com/blog/how-to-stand-up-gitlab-in-awsmp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to stand-up a GitLab instance in AWS Marketplace\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2021-06-30\",\n      }",{"title":16768,"description":16769,"authors":16774,"heroImage":16770,"date":16775,"category":858,"tags":16776},[1016],"2021-06-30",[2815,564],{"slug":16778,"featured":6,"template":736},"how-to-stand-up-gitlab-in-awsmp","content:en-us:blog:how-to-stand-up-gitlab-in-awsmp.yml","How To Stand Up Gitlab In Awsmp","en-us/blog/how-to-stand-up-gitlab-in-awsmp.yml","en-us/blog/how-to-stand-up-gitlab-in-awsmp",{"_path":16784,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16785,"content":16791,"config":16795,"_id":16797,"_type":16,"title":16798,"_source":17,"_file":16799,"_stem":16800,"_extension":20},"/en-us/blog/how-to-use-agent-based-gitops",{"title":16786,"description":16787,"ogTitle":16786,"ogDescription":16787,"noIndex":6,"ogImage":16788,"ogUrl":16789,"ogSiteName":995,"ogType":996,"canonicalUrls":16789,"schema":16790},"How to use a pull-based (agent-based) approach for GitOps","Learn how GitLab supports agent-based approach for GitOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682037/Blog/Hero%20Images/agent-based-gitops-cover-880x587.jpg","https://about.gitlab.com/blog/how-to-use-agent-based-gitops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use a pull-based (agent-based) approach for GitOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2021-06-23\",\n      }",{"title":16786,"description":16787,"authors":16792,"heroImage":16788,"date":16793,"category":858,"tags":16794},[767],"2021-06-23",[559,730,2097,564,4182],{"slug":16796,"featured":6,"template":736},"how-to-use-agent-based-gitops","content:en-us:blog:how-to-use-agent-based-gitops.yml","How To Use Agent Based Gitops","en-us/blog/how-to-use-agent-based-gitops.yml","en-us/blog/how-to-use-agent-based-gitops",{"_path":16802,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16803,"content":16809,"config":16815,"_id":16817,"_type":16,"title":16818,"_source":17,"_file":16819,"_stem":16820,"_extension":20},"/en-us/blog/gitlab-14-modern-devops",{"title":16804,"description":16805,"ogTitle":16804,"ogDescription":16805,"noIndex":6,"ogImage":16806,"ogUrl":16807,"ogSiteName":995,"ogType":996,"canonicalUrls":16807,"schema":16808},"Modern DevOps shift in GitLab 14: Speed, trust & visibility","GitLab 14 accelerates modern DevOps, bringing velocity with confidence, built-in security, and visibility into DevOps success.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668091/Blog/Hero%20Images/gitlab-version-14-wide.png","https://about.gitlab.com/blog/gitlab-14-modern-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 14 signals shift to modern DevOps: A DevOps platform with velocity, trust, and visibility\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brian Glanz\"}],\n        \"datePublished\": \"2021-06-22\",\n      }",{"title":16810,"description":16805,"authors":16811,"heroImage":16806,"date":16813,"category":577,"tags":16814},"GitLab 14 signals shift to modern DevOps: A DevOps platform with velocity, trust, and visibility",[16812],"Brian Glanz","2021-06-22",[564,1569],{"slug":16816,"featured":6,"template":736},"gitlab-14-modern-devops","content:en-us:blog:gitlab-14-modern-devops.yml","Gitlab 14 Modern Devops","en-us/blog/gitlab-14-modern-devops.yml","en-us/blog/gitlab-14-modern-devops",{"_path":16822,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16823,"content":16829,"config":16833,"_id":16835,"_type":16,"title":16836,"_source":17,"_file":16837,"_stem":16838,"_extension":20},"/en-us/blog/how-to-become-more-productive-with-gitlab-ci",{"title":16824,"description":16825,"ogTitle":16824,"ogDescription":16825,"noIndex":6,"ogImage":16826,"ogUrl":16827,"ogSiteName":995,"ogType":996,"canonicalUrls":16827,"schema":16828},"How to become more productive with Gitlab CI","Explore some CI/CD strategies that can make your team more efficient and productive.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667358/Blog/Hero%20Images/gitlab-productivity.jpg","https://about.gitlab.com/blog/how-to-become-more-productive-with-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to become more productive with Gitlab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2021-06-21\",\n      }",{"title":16824,"description":16825,"authors":16830,"heroImage":16826,"date":16831,"category":858,"tags":16832},[4929],"2021-06-21",[2097,2098,730,1569],{"slug":16834,"featured":6,"template":736},"how-to-become-more-productive-with-gitlab-ci","content:en-us:blog:how-to-become-more-productive-with-gitlab-ci.yml","How To Become More Productive With Gitlab Ci","en-us/blog/how-to-become-more-productive-with-gitlab-ci.yml","en-us/blog/how-to-become-more-productive-with-gitlab-ci",{"_path":16840,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16841,"content":16846,"config":16849,"_id":16851,"_type":16,"title":16852,"_source":17,"_file":16853,"_stem":16854,"_extension":20},"/en-us/blog/usage-ping-configuration-bug-for-self-managed-instances",{"title":16842,"description":16843,"ogTitle":16842,"ogDescription":16843,"noIndex":6,"ogImage":11046,"ogUrl":16844,"ogSiteName":995,"ogType":996,"canonicalUrls":16844,"schema":16845},"Usage Ping configuration bug for self-managed instances","Patch was released in 13.12.4","https://about.gitlab.com/blog/usage-ping-configuration-bug-for-self-managed-instances","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Usage Ping configuration bug for self-managed instances\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-06-21\",\n      }",{"title":16842,"description":16843,"authors":16847,"heroImage":11046,"date":16831,"category":1049,"tags":16848},[1000],[1049,790],{"slug":16850,"featured":6,"template":736},"usage-ping-configuration-bug-for-self-managed-instances","content:en-us:blog:usage-ping-configuration-bug-for-self-managed-instances.yml","Usage Ping Configuration Bug For Self Managed Instances","en-us/blog/usage-ping-configuration-bug-for-self-managed-instances.yml","en-us/blog/usage-ping-configuration-bug-for-self-managed-instances",{"_path":16856,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16857,"content":16862,"config":16867,"_id":16869,"_type":16,"title":16870,"_source":17,"_file":16871,"_stem":16872,"_extension":20},"/en-us/blog/gpg-key-used-to-sign-gitlab-runner-packages-rotated",{"title":16858,"description":16859,"ogTitle":16858,"ogDescription":16859,"noIndex":6,"ogImage":16110,"ogUrl":16860,"ogSiteName":995,"ogType":996,"canonicalUrls":16860,"schema":16861},"The GPG key used to sign GitLab Runner packages has been rotated","Out of an abundance of caution we’ve rotated the impacted keys and tokens.","https://about.gitlab.com/blog/gpg-key-used-to-sign-gitlab-runner-packages-rotated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The GPG key used to sign GitLab Runner packages has been rotated\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Elliot Rushton\"}],\n        \"datePublished\": \"2021-06-16\",\n      }",{"title":16858,"description":16859,"authors":16863,"heroImage":16110,"date":16865,"category":1049,"tags":16866},[16864],"Elliot Rushton","2021-06-16",[790],{"slug":16868,"featured":6,"template":736},"gpg-key-used-to-sign-gitlab-runner-packages-rotated","content:en-us:blog:gpg-key-used-to-sign-gitlab-runner-packages-rotated.yml","Gpg Key Used To Sign Gitlab Runner Packages Rotated","en-us/blog/gpg-key-used-to-sign-gitlab-runner-packages-rotated.yml","en-us/blog/gpg-key-used-to-sign-gitlab-runner-packages-rotated",{"_path":16874,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16875,"content":16881,"config":16885,"_id":16887,"_type":16,"title":16888,"_source":17,"_file":16889,"_stem":16890,"_extension":20},"/en-us/blog/why-we-are-building-the-gitlab-environment-toolkit-to-help-deploy-gitlab-at-scale",{"title":16876,"description":16877,"ogTitle":16876,"ogDescription":16877,"noIndex":6,"ogImage":16878,"ogUrl":16879,"ogSiteName":995,"ogType":996,"canonicalUrls":16879,"schema":16880},"The next step in performance testing? The GitLab Environment Toolkit","Learn how we're building a new toolkit to help with performance testing and deploying GitLab at scale.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682030/Blog/Hero%20Images/gitlab_environment_toolkit_scale.jpg","https://about.gitlab.com/blog/why-we-are-building-the-gitlab-environment-toolkit-to-help-deploy-gitlab-at-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The next step in performance testing? The GitLab Environment Toolkit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grant Young\"}],\n        \"datePublished\": \"2021-06-15\",\n      }",{"title":16876,"description":16877,"authors":16882,"heroImage":16878,"date":16883,"category":858,"tags":16884},[4311],"2021-06-15",[1569,1988],{"slug":16886,"featured":6,"template":736},"why-we-are-building-the-gitlab-environment-toolkit-to-help-deploy-gitlab-at-scale","content:en-us:blog:why-we-are-building-the-gitlab-environment-toolkit-to-help-deploy-gitlab-at-scale.yml","Why We Are Building The Gitlab Environment Toolkit To Help Deploy Gitlab At Scale","en-us/blog/why-we-are-building-the-gitlab-environment-toolkit-to-help-deploy-gitlab-at-scale.yml","en-us/blog/why-we-are-building-the-gitlab-environment-toolkit-to-help-deploy-gitlab-at-scale",{"_path":16892,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16893,"content":16899,"config":16903,"_id":16905,"_type":16,"title":16906,"_source":17,"_file":16907,"_stem":16908,"_extension":20},"/en-us/blog/how-i-use-gitlab-to-help-my-hack",{"title":16894,"description":16895,"ogTitle":16894,"ogDescription":16895,"noIndex":6,"ogImage":16896,"ogUrl":16897,"ogSiteName":995,"ogType":996,"canonicalUrls":16897,"schema":16898},"How do bug bounty hunters use GitLab to help their hack?","We know GitLab is a complete open source DevOps platform, but can it improve your hack? We chat with three bug bounty hunters to find out.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670944/Blog/Hero%20Images/gitlab-to-help-my-hack.png","https://about.gitlab.com/blog/how-i-use-gitlab-to-help-my-hack","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How do bug bounty hunters use GitLab to help their hack?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-06-11\",\n      }",{"title":16894,"description":16895,"authors":16900,"heroImage":16896,"date":16901,"category":790,"tags":16902},[11324],"2021-06-11",[790,2483,269],{"slug":16904,"featured":6,"template":736},"how-i-use-gitlab-to-help-my-hack","content:en-us:blog:how-i-use-gitlab-to-help-my-hack.yml","How I Use Gitlab To Help My Hack","en-us/blog/how-i-use-gitlab-to-help-my-hack.yml","en-us/blog/how-i-use-gitlab-to-help-my-hack",{"_path":16910,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16911,"content":16917,"config":16922,"_id":16924,"_type":16,"title":16925,"_source":17,"_file":16926,"_stem":16927,"_extension":20},"/en-us/blog/how-to-get-gitops-right-with-iac-security",{"title":16912,"description":16913,"ogTitle":16912,"ogDescription":16913,"noIndex":6,"ogImage":16914,"ogUrl":16915,"ogSiteName":995,"ogType":996,"canonicalUrls":16915,"schema":16916},"How to get GitOps right with infrastructure as code security","Learn how the GitLab and Indeni integration makes security a core component of your GitOps workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663403/Blog/Hero%20Images/gitops-partner-cover-image.jpg","https://about.gitlab.com/blog/how-to-get-gitops-right-with-iac-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to get GitOps right with infrastructure as code security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ulrica de Fort-Menares\"}],\n        \"datePublished\": \"2021-06-10\",\n      }",{"title":16912,"description":16913,"authors":16918,"heroImage":16914,"date":16920,"category":858,"tags":16921},[16919],"Ulrica de Fort-Menares","2021-06-10",[559,790,564,233],{"slug":16923,"featured":6,"template":736},"how-to-get-gitops-right-with-iac-security","content:en-us:blog:how-to-get-gitops-right-with-iac-security.yml","How To Get Gitops Right With Iac Security","en-us/blog/how-to-get-gitops-right-with-iac-security.yml","en-us/blog/how-to-get-gitops-right-with-iac-security",{"_path":16929,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16930,"content":16936,"config":16940,"_id":16942,"_type":16,"title":16943,"_source":17,"_file":16944,"_stem":16945,"_extension":20},"/en-us/blog/how-to-protect-your-source-code-with-gitlab-and-jscrambler",{"title":16931,"description":16932,"ogTitle":16931,"ogDescription":16932,"noIndex":6,"ogImage":16933,"ogUrl":16934,"ogSiteName":995,"ogType":996,"canonicalUrls":16934,"schema":16935},"How to protect your source code with GitLab and Jscrambler","Learn how to seamlessly protect your source code at build time in just a few steps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669529/Blog/Hero%20Images/gitlab-jscrambler-blog-post-protecting-source-code.png","https://about.gitlab.com/blog/how-to-protect-your-source-code-with-gitlab-and-jscrambler","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to protect your source code with GitLab and Jscrambler\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pedro Fortuna\"},{\"@type\":\"Person\",\"name\":\"Sam Kerr\"}],\n        \"datePublished\": \"2021-06-09\",\n      }",{"title":16931,"description":16932,"authors":16937,"heroImage":16933,"date":16938,"category":858,"tags":16939},[16381,6887],"2021-06-09",[564,790,1569],{"slug":16941,"featured":6,"template":736},"how-to-protect-your-source-code-with-gitlab-and-jscrambler","content:en-us:blog:how-to-protect-your-source-code-with-gitlab-and-jscrambler.yml","How To Protect Your Source Code With Gitlab And Jscrambler","en-us/blog/how-to-protect-your-source-code-with-gitlab-and-jscrambler.yml","en-us/blog/how-to-protect-your-source-code-with-gitlab-and-jscrambler",{"_path":16947,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16948,"content":16953,"config":16958,"_id":16960,"_type":16,"title":16961,"_source":17,"_file":16962,"_stem":16963,"_extension":20},"/en-us/blog/tuto-mac-m1-gitlab-ci",{"title":16949,"description":16950,"ogTitle":16949,"ogDescription":16950,"noIndex":6,"ogImage":11046,"ogUrl":16951,"ogSiteName":995,"ogType":996,"canonicalUrls":16951,"schema":16952},"How to use Scaleway to self-host your GitLab Runners","Learn how to set up GitLab CI for your iOS and macOS projects using a hosted Mac mini M1.","https://about.gitlab.com/blog/tuto-mac-m1-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use Scaleway to self-host your GitLab Runners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Benedikt Rollik\"}],\n        \"datePublished\": \"2021-06-07\",\n      }",{"title":16949,"description":16950,"authors":16954,"heroImage":11046,"date":16956,"category":858,"tags":16957},[16955],"Benedikt Rollik","2021-06-07",[1195,771,771],{"slug":16959,"featured":6,"template":736},"tuto-mac-m1-gitlab-ci","content:en-us:blog:tuto-mac-m1-gitlab-ci.yml","Tuto Mac M1 Gitlab Ci","en-us/blog/tuto-mac-m1-gitlab-ci.yml","en-us/blog/tuto-mac-m1-gitlab-ci",{"_path":16965,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16966,"content":16971,"config":16975,"_id":16977,"_type":16,"title":16978,"_source":17,"_file":16979,"_stem":16980,"_extension":20},"/en-us/blog/gitlab-moving-to-14-breaking-changes",{"title":16967,"description":16968,"ogTitle":16967,"ogDescription":16968,"noIndex":6,"ogImage":13397,"ogUrl":16969,"ogSiteName":995,"ogType":996,"canonicalUrls":16969,"schema":16970},"GitLab.com is moving to 14.0 with a few breaking changes","These are the features that will be deprecated in GitLab 14.0.","https://about.gitlab.com/blog/gitlab-moving-to-14-breaking-changes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com is moving to 14.0 with a few breaking changes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2021-06-04\",\n      }",{"title":16967,"description":16968,"authors":16972,"heroImage":13397,"date":16973,"category":301,"tags":16974},[14332],"2021-06-04",[1049,892,6376],{"slug":16976,"featured":6,"template":736},"gitlab-moving-to-14-breaking-changes","content:en-us:blog:gitlab-moving-to-14-breaking-changes.yml","Gitlab Moving To 14 Breaking Changes","en-us/blog/gitlab-moving-to-14-breaking-changes.yml","en-us/blog/gitlab-moving-to-14-breaking-changes",{"_path":16982,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":16983,"content":16989,"config":16993,"_id":16995,"_type":16,"title":16996,"_source":17,"_file":16997,"_stem":16998,"_extension":20},"/en-us/blog/managing-global-projects-requiring-rapid-response-continuously",{"title":16984,"description":16985,"ogTitle":16984,"ogDescription":16985,"noIndex":6,"ogImage":16986,"ogUrl":16987,"ogSiteName":995,"ogType":996,"canonicalUrls":16987,"schema":16988},"How to leverage distributed engineering teams for rapid response","Rapid response issues can be handled in a compressed time frame if distributed engineering teams can work continuously. Here's what we've learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681331/Blog/Hero%20Images/all-remote-world-banner-1920x1080.png","https://about.gitlab.com/blog/managing-global-projects-requiring-rapid-response-continuously","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to leverage distributed engineering teams for rapid response\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Baus\"}],\n        \"datePublished\": \"2021-06-04\",\n      }",{"title":16984,"description":16985,"authors":16990,"heroImage":16986,"date":16973,"category":858,"tags":16992},[16991],"Chris Baus",[3914,1569,729,2815],{"slug":16994,"featured":6,"template":736},"managing-global-projects-requiring-rapid-response-continuously","content:en-us:blog:managing-global-projects-requiring-rapid-response-continuously.yml","Managing Global Projects Requiring Rapid Response Continuously","en-us/blog/managing-global-projects-requiring-rapid-response-continuously.yml","en-us/blog/managing-global-projects-requiring-rapid-response-continuously",{"_path":17000,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17001,"content":17007,"config":17011,"_id":17013,"_type":16,"title":17014,"_source":17,"_file":17015,"_stem":17016,"_extension":20},"/en-us/blog/advanced-search-data-migrations",{"title":17002,"description":17003,"ogTitle":17002,"ogDescription":17003,"noIndex":6,"ogImage":17004,"ogUrl":17005,"ogSiteName":995,"ogType":996,"canonicalUrls":17005,"schema":17006},"GitLab's data migration process for Advanced Search","We needed a more streamlined data migration process for Advanced search.\nHere's what we did.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682017/Blog/Hero%20Images/advanced-search-migrations.jpg","https://about.gitlab.com/blog/advanced-search-data-migrations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's data migration process for Advanced Search\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dmitry Gruzd\"}],\n        \"datePublished\": \"2021-06-01\",\n      }",{"title":17002,"description":17003,"authors":17008,"heroImage":17004,"date":17009,"category":858,"tags":17010},[1792],"2021-06-01",[730,892,1335],{"slug":17012,"featured":6,"template":736},"advanced-search-data-migrations","content:en-us:blog:advanced-search-data-migrations.yml","Advanced Search Data Migrations","en-us/blog/advanced-search-data-migrations.yml","en-us/blog/advanced-search-data-migrations",{"_path":17018,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17019,"content":17024,"config":17027,"_id":17029,"_type":16,"title":17030,"_source":17,"_file":17031,"_stem":17032,"_extension":20},"/en-us/blog/gitlab-is-setting-standard-for-devsecops",{"title":17020,"description":17021,"ogTitle":17020,"ogDescription":17021,"noIndex":6,"ogImage":11046,"ogUrl":17022,"ogSiteName":995,"ogType":996,"canonicalUrls":17022,"schema":17023},"GitLab is setting the standard for DevSecOps","GitLab has been recognized as a challenger in the 2021 Gartner Magic Quadrant for Application Security Testing","https://about.gitlab.com/blog/gitlab-is-setting-standard-for-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is setting the standard for DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2021-06-01\",\n      }",{"title":17020,"description":17021,"authors":17025,"heroImage":11046,"date":17009,"category":1049,"tags":17026},[11487],[564,790],{"slug":17028,"featured":6,"template":736},"gitlab-is-setting-standard-for-devsecops","content:en-us:blog:gitlab-is-setting-standard-for-devsecops.yml","Gitlab Is Setting Standard For Devsecops","en-us/blog/gitlab-is-setting-standard-for-devsecops.yml","en-us/blog/gitlab-is-setting-standard-for-devsecops",{"_path":17034,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17035,"content":17041,"config":17045,"_id":17047,"_type":16,"title":17048,"_source":17,"_file":17049,"_stem":17050,"_extension":20},"/en-us/blog/deep-dive-investigation-of-gitlab-packages",{"title":17036,"description":17037,"ogTitle":17036,"ogDescription":17037,"noIndex":6,"ogImage":17038,"ogUrl":17039,"ogSiteName":995,"ogType":996,"canonicalUrls":17039,"schema":17040},"A deep dive into how we investigate and secure GitLab packages","Supply chain attacks aren't new, but that doesn't mean extra vigilance and protection aren't needed. We take a look at how we secure our packages and registries.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682004/Blog/Hero%20Images/gabriel-sollmann-unsplash.jpg","https://about.gitlab.com/blog/deep-dive-investigation-of-gitlab-packages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A deep dive into how we investigate and secure GitLab packages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vitor Meireles De Sousa\"}],\n        \"datePublished\": \"2021-05-27\",\n      }",{"title":17036,"description":17037,"authors":17042,"heroImage":17038,"date":17043,"category":790,"tags":17044},[15779],"2021-05-27",[790,1569],{"slug":17046,"featured":6,"template":736},"deep-dive-investigation-of-gitlab-packages","content:en-us:blog:deep-dive-investigation-of-gitlab-packages.yml","Deep Dive Investigation Of Gitlab Packages","en-us/blog/deep-dive-investigation-of-gitlab-packages.yml","en-us/blog/deep-dive-investigation-of-gitlab-packages",{"_path":17052,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17053,"content":17058,"config":17062,"_id":17064,"_type":16,"title":17065,"_source":17,"_file":17066,"_stem":17067,"_extension":20},"/en-us/blog/gitlab-oracle-cloud-arm-based",{"title":17054,"description":17055,"ogTitle":17054,"ogDescription":17055,"noIndex":6,"ogImage":16322,"ogUrl":17056,"ogSiteName":995,"ogType":996,"canonicalUrls":17056,"schema":17057},"How to use GitLab with OCI ARM-based compute instances","We explain two ways to set up GitLab on Oracle ARM-based instances.","https://about.gitlab.com/blog/gitlab-oracle-cloud-arm-based","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab with OCI ARM-based compute instances\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2021-05-25\",\n      }",{"title":17054,"description":17055,"authors":17059,"heroImage":16322,"date":17060,"category":1049,"tags":17061},[3181],"2021-05-25",[1049,2097,2098],{"slug":17063,"featured":6,"template":736},"gitlab-oracle-cloud-arm-based","content:en-us:blog:gitlab-oracle-cloud-arm-based.yml","Gitlab Oracle Cloud Arm Based","en-us/blog/gitlab-oracle-cloud-arm-based.yml","en-us/blog/gitlab-oracle-cloud-arm-based",{"_path":17069,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17070,"content":17076,"config":17081,"_id":17083,"_type":16,"title":17084,"_source":17,"_file":17085,"_stem":17086,"_extension":20},"/en-us/blog/gitlab-and-jira-integration-the-final-steps",{"title":17071,"description":17072,"ogTitle":17071,"ogDescription":17072,"noIndex":6,"ogImage":17073,"ogUrl":17074,"ogSiteName":995,"ogType":996,"canonicalUrls":17074,"schema":17075},"GitLab and Jira integration: the final steps","The last of our three-part series on GitLab and Jira integrations offers a step-by-step look at how the tools work together.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679490/Blog/Hero%20Images/jira-importer-blog-post.png","https://about.gitlab.com/blog/gitlab-and-jira-integration-the-final-steps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and Jira integration: the final steps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tye Davis\"}],\n        \"datePublished\": \"2021-05-24\",\n      }",{"title":17071,"description":17072,"authors":17077,"heroImage":17073,"date":17079,"category":858,"tags":17080},[17078],"Tye Davis","2021-05-24",[2815,233,564],{"slug":17082,"featured":6,"template":736},"gitlab-and-jira-integration-the-final-steps","content:en-us:blog:gitlab-and-jira-integration-the-final-steps.yml","Gitlab And Jira Integration The Final Steps","en-us/blog/gitlab-and-jira-integration-the-final-steps.yml","en-us/blog/gitlab-and-jira-integration-the-final-steps",{"_path":17088,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17089,"content":17095,"config":17099,"_id":17101,"_type":16,"title":17102,"_source":17,"_file":17103,"_stem":17104,"_extension":20},"/en-us/blog/dag-manual-fix",{"title":17090,"description":17091,"ogTitle":17090,"ogDescription":17091,"noIndex":6,"ogImage":17092,"ogUrl":17093,"ogSiteName":995,"ogType":996,"canonicalUrls":17093,"schema":17094},"How to use manual jobs with `needs:` relationships","Are you using manual jobs and needs relationship in your CI/CD pipeline? Learn more about the fix that might cause your pipeline to behave differently.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683170/Blog/Hero%20Images/blog_cover2.png","https://about.gitlab.com/blog/dag-manual-fix","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use manual jobs with `needs:` relationships\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2021-05-20\",\n      }",{"title":17090,"description":17091,"authors":17096,"heroImage":17092,"date":17097,"category":858,"tags":17098},[1712],"2021-05-20",[2097,771,564],{"slug":17100,"featured":6,"template":736},"dag-manual-fix","content:en-us:blog:dag-manual-fix.yml","Dag Manual Fix","en-us/blog/dag-manual-fix.yml","en-us/blog/dag-manual-fix",{"_path":17106,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17107,"content":17112,"config":17115,"_id":17117,"_type":16,"title":17118,"_source":17,"_file":17119,"_stem":17120,"_extension":20},"/en-us/blog/vscode-workflows-for-working-with-gitlab",{"title":17108,"description":17109,"ogTitle":17108,"ogDescription":17109,"noIndex":6,"ogImage":10957,"ogUrl":17110,"ogSiteName":995,"ogType":996,"canonicalUrls":17110,"schema":17111},"Visual Studio code editor: Eight tips for using GitLab VS Code","Learn how to use the Visual Studio code editor more efficiently and meet some of the GitLab contributors that made these new features happen.","https://about.gitlab.com/blog/vscode-workflows-for-working-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Visual Studio code editor: Eight tips for using GitLab VS Code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tomas Vik\"}],\n        \"datePublished\": \"2021-05-20\",\n      }",{"title":17108,"description":17109,"authors":17113,"heroImage":10957,"date":17097,"category":858,"tags":17114},[15238],[233,772],{"slug":17116,"featured":6,"template":736},"vscode-workflows-for-working-with-gitlab","content:en-us:blog:vscode-workflows-for-working-with-gitlab.yml","Vscode Workflows For Working With Gitlab","en-us/blog/vscode-workflows-for-working-with-gitlab.yml","en-us/blog/vscode-workflows-for-working-with-gitlab",{"_path":17122,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17123,"content":17129,"config":17133,"_id":17135,"_type":16,"title":17136,"_source":17,"_file":17137,"_stem":17138,"_extension":20},"/en-us/blog/agile-planning-with-a-devops-platform",{"title":17124,"description":17125,"ogTitle":17124,"ogDescription":17125,"noIndex":6,"ogImage":17126,"ogUrl":17127,"ogSiteName":995,"ogType":996,"canonicalUrls":17127,"schema":17128},"Agile planning with a DevOps platform","How a DevOps platform enables an entirely different way to plan and manage work","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669233/Blog/Hero%20Images/photo-1531403009284-440f080d1e12.jpg","https://about.gitlab.com/blog/agile-planning-with-a-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Agile planning with a DevOps platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cormac Foster\"}],\n        \"datePublished\": \"2021-05-19\",\n      }",{"title":17124,"description":17125,"authors":17130,"heroImage":17126,"date":17131,"category":726,"tags":17132},[15485],"2021-05-19",[729,2815,564],{"slug":17134,"featured":6,"template":736},"agile-planning-with-a-devops-platform","content:en-us:blog:agile-planning-with-a-devops-platform.yml","Agile Planning With A Devops Platform","en-us/blog/agile-planning-with-a-devops-platform.yml","en-us/blog/agile-planning-with-a-devops-platform",{"_path":17140,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17141,"content":17147,"config":17153,"_id":17155,"_type":16,"title":17156,"_source":17,"_file":17157,"_stem":17158,"_extension":20},"/en-us/blog/2021-devsecops-survey-the-great-shift-left-continues",{"title":17142,"description":17143,"ogTitle":17142,"ogDescription":17143,"noIndex":6,"ogImage":17144,"ogUrl":17145,"ogSiteName":995,"ogType":996,"canonicalUrls":17145,"schema":17146},"DevSecOps maturity insights from 2021 global survey","72% of security pros rated their organizations’ security efforts as “strong” or “good.” Could 2021 be the year DevSecOps becomes a reality?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678388/Blog/Hero%20Images/advanced-devsecops-practices.jpg","https://about.gitlab.com/blog/2021-devsecops-survey-the-great-shift-left-continues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Looking for a DevSecOps maturity model that works? Start with our 2021 Global Survey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2021-05-18\",\n      }",{"title":17148,"description":17143,"authors":17149,"heroImage":17144,"date":17151,"category":8140,"tags":17152},"Looking for a DevSecOps maturity model that works? Start with our 2021 Global Survey",[17150],"Chrissie Buchanan","2021-05-18",[7788,790],{"slug":17154,"featured":6,"template":736},"2021-devsecops-survey-the-great-shift-left-continues","content:en-us:blog:2021-devsecops-survey-the-great-shift-left-continues.yml","2021 Devsecops Survey The Great Shift Left Continues","en-us/blog/2021-devsecops-survey-the-great-shift-left-continues.yml","en-us/blog/2021-devsecops-survey-the-great-shift-left-continues",{"_path":17160,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17161,"content":17167,"config":17171,"_id":17173,"_type":16,"title":17174,"_source":17,"_file":17175,"_stem":17176,"_extension":20},"/en-us/blog/ceo-shadow-recap",{"title":17162,"description":17163,"ogTitle":17162,"ogDescription":17163,"noIndex":6,"ogImage":17164,"ogUrl":17165,"ogSiteName":995,"ogType":996,"canonicalUrls":17165,"schema":17166},"CEO Shadow Takeaways from Jacie","Recap of my experience in the CEO Shadow Program.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","https://about.gitlab.com/blog/ceo-shadow-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CEO Shadow Takeaways from Jacie\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacie Bandur\"}],\n        \"datePublished\": \"2021-05-18\",\n      }",{"title":17162,"description":17163,"authors":17168,"heroImage":17164,"date":17151,"category":17170},[17169],"Jacie Bandur","unfiltered",{"slug":17172,"featured":6,"template":736},"ceo-shadow-recap","content:en-us:blog:ceo-shadow-recap.yml","Ceo Shadow Recap","en-us/blog/ceo-shadow-recap.yml","en-us/blog/ceo-shadow-recap",{"_path":17178,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17179,"content":17184,"config":17188,"_id":17190,"_type":16,"title":17191,"_source":17,"_file":17192,"_stem":17193,"_extension":20},"/en-us/blog/prevent-crypto-mining-abuse",{"title":17180,"description":17181,"ogTitle":17180,"ogDescription":17181,"noIndex":6,"ogImage":11046,"ogUrl":17182,"ogSiteName":995,"ogType":996,"canonicalUrls":17182,"schema":17183},"How to prevent crypto mining abuse on GitLab.com SaaS","GitLab now requires new users to provide a valid credit or debit card in order to use free pipeline minutes on GitLab.com SaaS.","https://about.gitlab.com/blog/prevent-crypto-mining-abuse","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to prevent crypto mining abuse on GitLab.com SaaS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-05-17\",\n      }",{"title":17180,"description":17181,"authors":17185,"heroImage":11046,"date":17186,"category":1049,"tags":17187},[1000],"2021-05-17",[2097,1049,790],{"slug":17189,"featured":6,"template":736},"prevent-crypto-mining-abuse","content:en-us:blog:prevent-crypto-mining-abuse.yml","Prevent Crypto Mining Abuse","en-us/blog/prevent-crypto-mining-abuse.yml","en-us/blog/prevent-crypto-mining-abuse",{"_path":17195,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17196,"content":17202,"config":17207,"_id":17209,"_type":16,"title":17210,"_source":17,"_file":17211,"_stem":17212,"_extension":20},"/en-us/blog/how-we-used-gitlab-values-to-build-a-security-awards-program",{"title":17197,"description":17198,"ogTitle":17197,"ogDescription":17198,"noIndex":6,"ogImage":17199,"ogUrl":17200,"ogSiteName":995,"ogType":996,"canonicalUrls":17200,"schema":17201},"How we used GitLab values to develop a successful Security Awards Program","We built a program that encourages, recognizes, and awards a shared responsibility for security.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681989/Blog/Hero%20Images/security-awards-blog.png","https://about.gitlab.com/blog/how-we-used-gitlab-values-to-build-a-security-awards-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we used GitLab values to develop a successful Security Awards Program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Philippe Lafoucrière\"}],\n        \"datePublished\": \"2021-05-14\",\n      }",{"title":17197,"description":17198,"authors":17203,"heroImage":17199,"date":17205,"category":790,"tags":17206},[17204],"Philippe Lafoucrière","2021-05-14",[790,1569,1265],{"slug":17208,"featured":6,"template":736},"how-we-used-gitlab-values-to-build-a-security-awards-program","content:en-us:blog:how-we-used-gitlab-values-to-build-a-security-awards-program.yml","How We Used Gitlab Values To Build A Security Awards Program","en-us/blog/how-we-used-gitlab-values-to-build-a-security-awards-program.yml","en-us/blog/how-we-used-gitlab-values-to-build-a-security-awards-program",{"_path":17214,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17215,"content":17220,"config":17224,"_id":17226,"_type":16,"title":17227,"_source":17,"_file":17228,"_stem":17229,"_extension":20},"/en-us/blog/why-software-developer-job-satisfaction-matters-and-how-to-make-it-happen",{"title":17216,"description":17217,"ogTitle":17216,"ogDescription":17217,"noIndex":6,"ogImage":8416,"ogUrl":17218,"ogSiteName":995,"ogType":996,"canonicalUrls":17218,"schema":17219},"Why software developer job satisfaction matters and how to make it happen","Science has proven happier developers are more productive. It’s time to take software developer job satisfaction seriously – here’s how the right combo of culture and tools, i.e., a DevOps platform, can help.","https://about.gitlab.com/blog/why-software-developer-job-satisfaction-matters-and-how-to-make-it-happen","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why software developer job satisfaction matters and how to make it happen\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-05-13\",\n      }",{"title":17216,"description":17217,"authors":17221,"heroImage":8416,"date":17222,"category":8140,"tags":17223},[10672],"2021-05-13",[7788,564,269],{"slug":17225,"featured":6,"template":736},"why-software-developer-job-satisfaction-matters-and-how-to-make-it-happen","content:en-us:blog:why-software-developer-job-satisfaction-matters-and-how-to-make-it-happen.yml","Why Software Developer Job Satisfaction Matters And How To Make It Happen","en-us/blog/why-software-developer-job-satisfaction-matters-and-how-to-make-it-happen.yml","en-us/blog/why-software-developer-job-satisfaction-matters-and-how-to-make-it-happen",{"_path":17231,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17232,"content":17237,"config":17242,"_id":17244,"_type":16,"title":17245,"_source":17,"_file":17246,"_stem":17247,"_extension":20},"/en-us/blog/placebo-lines-on-the-pipeline-graph",{"title":17233,"description":17234,"ogTitle":17233,"ogDescription":17234,"noIndex":6,"ogImage":16322,"ogUrl":17235,"ogSiteName":995,"ogType":996,"canonicalUrls":17235,"schema":17236},"Placebo Lines on the Pipeline Graph","Have you noticed the connecting lines missing on your pipelines lately? Here's why","https://about.gitlab.com/blog/placebo-lines-on-the-pipeline-graph","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Placebo Lines on the Pipeline Graph\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Beckham\"}],\n        \"datePublished\": \"2021-05-11\",\n      }",{"title":17233,"description":17234,"authors":17238,"heroImage":16322,"date":17240,"category":17170,"tags":17241},[17239],"Sam Beckham","2021-05-11",[2097,10121,729,2702],{"slug":17243,"featured":6,"template":736},"placebo-lines-on-the-pipeline-graph","content:en-us:blog:placebo-lines-on-the-pipeline-graph.yml","Placebo Lines On The Pipeline Graph","en-us/blog/placebo-lines-on-the-pipeline-graph.yml","en-us/blog/placebo-lines-on-the-pipeline-graph",{"_path":17249,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17250,"content":17256,"config":17259,"_id":17261,"_type":16,"title":17262,"_source":17,"_file":17263,"_stem":17264,"_extension":20},"/en-us/blog/project-management-using-gitlab-platform",{"title":17251,"description":17252,"ogTitle":17251,"ogDescription":17252,"noIndex":6,"ogImage":17253,"ogUrl":17254,"ogSiteName":995,"ogType":996,"canonicalUrls":17254,"schema":17255},"Can DevOps and project management co-exist? Yes, on the daily at GitLab","Stay agile by using GitLab for DevOps project management","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669575/Blog/Hero%20Images/agilemultipleteams.jpg","https://about.gitlab.com/blog/project-management-using-gitlab-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Can DevOps and project management co-exist? Yes, on the daily at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vick Kelkar\"}],\n        \"datePublished\": \"2021-05-11\",\n      }",{"title":17251,"description":17252,"authors":17257,"heroImage":17253,"date":17240,"category":858,"tags":17258},[11105],[729,2815,730,3914,1335],{"slug":17260,"featured":6,"template":736},"project-management-using-gitlab-platform","content:en-us:blog:project-management-using-gitlab-platform.yml","Project Management Using Gitlab Platform","en-us/blog/project-management-using-gitlab-platform.yml","en-us/blog/project-management-using-gitlab-platform",{"_path":17266,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17267,"content":17273,"config":17276,"_id":17278,"_type":16,"title":17279,"_source":17,"_file":17280,"_stem":17281,"_extension":20},"/en-us/blog/why-i-love-contributing-to-gitlab",{"title":17268,"description":17269,"ogTitle":17268,"ogDescription":17269,"noIndex":6,"ogImage":17270,"ogUrl":17271,"ogSiteName":995,"ogType":996,"canonicalUrls":17271,"schema":17272},"Why I love contributing to GitLab","Making small meaningful changes is what it's all about.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679501/Blog/Hero%20Images/new-feature.png","https://about.gitlab.com/blog/why-i-love-contributing-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why I love contributing to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Austin Regnery\"}],\n        \"datePublished\": \"2021-05-11\",\n      }",{"title":17268,"description":17269,"authors":17274,"heroImage":17270,"date":17240,"category":17170,"tags":17275},[9350],[2703,731,771],{"slug":17277,"featured":6,"template":736},"why-i-love-contributing-to-gitlab","content:en-us:blog:why-i-love-contributing-to-gitlab.yml","Why I Love Contributing To Gitlab","en-us/blog/why-i-love-contributing-to-gitlab.yml","en-us/blog/why-i-love-contributing-to-gitlab",{"_path":17283,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17284,"content":17290,"config":17294,"_id":17296,"_type":16,"title":17297,"_source":17,"_file":17298,"_stem":17299,"_extension":20},"/en-us/blog/how-the-security-culture-committee-is-strengthening-gitlab-values",{"title":17285,"description":17286,"ogTitle":17285,"ogDescription":17286,"noIndex":6,"ogImage":17287,"ogUrl":17288,"ogSiteName":995,"ogType":996,"canonicalUrls":17288,"schema":17289},"How the Security Culture Committee is strengthening GitLab values","Learn how this group of team members works to preserve and reinforce GitLab values in the Security department and beyond.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670879/Blog/Hero%20Images/Sec-Culture-Committee-blog.png","https://about.gitlab.com/blog/how-the-security-culture-committee-is-strengthening-gitlab-values","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the Security Culture Committee is strengthening GitLab values\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-05-07\",\n      }",{"title":17285,"description":17286,"authors":17291,"heroImage":17287,"date":17292,"category":790,"tags":17293},[11324],"2021-05-07",[790,1569],{"slug":17295,"featured":6,"template":736},"how-the-security-culture-committee-is-strengthening-gitlab-values","content:en-us:blog:how-the-security-culture-committee-is-strengthening-gitlab-values.yml","How The Security Culture Committee Is Strengthening Gitlab Values","en-us/blog/how-the-security-culture-committee-is-strengthening-gitlab-values.yml","en-us/blog/how-the-security-culture-committee-is-strengthening-gitlab-values",{"_path":17301,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17302,"content":17308,"config":17312,"_id":17314,"_type":16,"title":17315,"_source":17,"_file":17316,"_stem":17317,"_extension":20},"/en-us/blog/the-software-testing-life-cycle-in-2021-a-more-upbeat-outlook",{"title":17303,"description":17304,"ogTitle":17303,"ogDescription":17304,"noIndex":6,"ogImage":17305,"ogUrl":17306,"ogSiteName":995,"ogType":996,"canonicalUrls":17306,"schema":17307},"The software testing life cycle in 2021: A more upbeat outlook","When DevOps teams trip, it's almost always over software testing. But in our 2021 survey we found some signs the software testing life cycle might finally be moving forward.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664041/Blog/Hero%20Images/open-devops.png","https://about.gitlab.com/blog/the-software-testing-life-cycle-in-2021-a-more-upbeat-outlook","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The software testing life cycle in 2021: A more upbeat outlook\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-05-06\",\n      }",{"title":17303,"description":17304,"authors":17309,"heroImage":17305,"date":17310,"category":8140,"tags":17311},[10672],"2021-05-06",[7788,564,790],{"slug":17313,"featured":6,"template":736},"the-software-testing-life-cycle-in-2021-a-more-upbeat-outlook","content:en-us:blog:the-software-testing-life-cycle-in-2021-a-more-upbeat-outlook.yml","The Software Testing Life Cycle In 2021 A More Upbeat Outlook","en-us/blog/the-software-testing-life-cycle-in-2021-a-more-upbeat-outlook.yml","en-us/blog/the-software-testing-life-cycle-in-2021-a-more-upbeat-outlook",{"_path":17319,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17320,"content":17326,"config":17330,"_id":17332,"_type":16,"title":17333,"_source":17,"_file":17334,"_stem":17335,"_extension":20},"/en-us/blog/auto-devops-where-we-are-and-where-we-are-headed",{"title":17321,"description":17322,"ogTitle":17321,"ogDescription":17322,"noIndex":6,"ogImage":17323,"ogUrl":17324,"ogSiteName":995,"ogType":996,"canonicalUrls":17324,"schema":17325},"Auto DevOps: Where we are and where we are headed","As we will soon start an Auto DevOps design sprint, this article aims to summarize our current knowledge about Auto DevOps, and sets the stage for future discussions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679516/Blog/Hero%20Images/gitlab-11-0-released-cover.jpg","https://about.gitlab.com/blog/auto-devops-where-we-are-and-where-we-are-headed","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Auto DevOps: Where we are and where we are headed\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-05-05\",\n      }",{"title":17321,"description":17322,"authors":17327,"heroImage":17323,"date":17328,"category":17170,"tags":17329},[2942],"2021-05-05",[564,3075],{"slug":17331,"featured":6,"template":736},"auto-devops-where-we-are-and-where-we-are-headed","content:en-us:blog:auto-devops-where-we-are-and-where-we-are-headed.yml","Auto Devops Where We Are And Where We Are Headed","en-us/blog/auto-devops-where-we-are-and-where-we-are-headed.yml","en-us/blog/auto-devops-where-we-are-and-where-we-are-headed",{"_path":17337,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17338,"content":17343,"config":17347,"_id":17349,"_type":16,"title":17350,"_source":17,"_file":17351,"_stem":17352,"_extension":20},"/en-us/blog/certification-discount-code-debrief",{"title":17339,"description":17340,"ogTitle":17339,"ogDescription":17340,"noIndex":6,"ogImage":11046,"ogUrl":17341,"ogSiteName":995,"ogType":996,"canonicalUrls":17341,"schema":17342},"Why we ended our free discount code early","Debrief on our certification discount code policy change.","https://about.gitlab.com/blog/certification-discount-code-debrief","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we ended our free discount code early\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christine Yoshida\"}],\n        \"datePublished\": \"2021-05-05\",\n      }",{"title":17339,"description":17340,"authors":17344,"heroImage":11046,"date":17328,"category":1049,"tags":17346},[17345],"Christine Yoshida",[269,8475,1049],{"slug":17348,"featured":6,"template":736},"certification-discount-code-debrief","content:en-us:blog:certification-discount-code-debrief.yml","Certification Discount Code Debrief","en-us/blog/certification-discount-code-debrief.yml","en-us/blog/certification-discount-code-debrief",{"_path":17354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17355,"content":17360,"config":17364,"_id":17366,"_type":16,"title":17367,"_source":17,"_file":17368,"_stem":17369,"_extension":20},"/en-us/blog/gitlabs-2021-survey-uncovers-a-new-devops-maturity-model",{"title":17356,"description":17357,"ogTitle":17356,"ogDescription":17357,"noIndex":6,"ogImage":17305,"ogUrl":17358,"ogSiteName":995,"ogType":996,"canonicalUrls":17358,"schema":17359},"GitLab's 2021 Survey uncovers a new DevOps maturity model","Our 2021 Global DevSecOps Survey found dramatic advances in DevOps maturity including faster release/deployment cycles, increased automation and improved security postures.","https://about.gitlab.com/blog/gitlabs-2021-survey-uncovers-a-new-devops-maturity-model","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's 2021 Survey uncovers a new DevOps maturity model\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2021-05-04\",\n      }",{"title":17356,"description":17357,"authors":17361,"heroImage":17305,"date":17362,"category":8140,"tags":17363},[10672],"2021-05-04",[7788,564,790],{"slug":17365,"featured":6,"template":736},"gitlabs-2021-survey-uncovers-a-new-devops-maturity-model","content:en-us:blog:gitlabs-2021-survey-uncovers-a-new-devops-maturity-model.yml","Gitlabs 2021 Survey Uncovers A New Devops Maturity Model","en-us/blog/gitlabs-2021-survey-uncovers-a-new-devops-maturity-model.yml","en-us/blog/gitlabs-2021-survey-uncovers-a-new-devops-maturity-model",{"_path":17371,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17372,"content":17378,"config":17381,"_id":17383,"_type":16,"title":17384,"_source":17,"_file":17385,"_stem":17386,"_extension":20},"/en-us/blog/the-evolution-of-ux-at-gitlab",{"title":17373,"description":17374,"ogTitle":17373,"ogDescription":17374,"noIndex":6,"ogImage":17375,"ogUrl":17376,"ogSiteName":995,"ogType":996,"canonicalUrls":17376,"schema":17377},"The Evolution of UX at GitLab","What did it look like to work in User Experience (UX) at GitLab over the last several years? Take a peek into our time machine.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679527/Blog/Hero%20Images/timeline.png","https://about.gitlab.com/blog/the-evolution-of-ux-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Evolution of UX at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Austin Regnery\"}],\n        \"datePublished\": \"2021-05-04\",\n      }",{"title":17373,"description":17374,"authors":17379,"heroImage":17375,"date":17362,"category":17170,"tags":17380},[9350],[2703,2702,2025,731,6376],{"slug":17382,"featured":6,"template":736},"the-evolution-of-ux-at-gitlab","content:en-us:blog:the-evolution-of-ux-at-gitlab.yml","The Evolution Of Ux At Gitlab","en-us/blog/the-evolution-of-ux-at-gitlab.yml","en-us/blog/the-evolution-of-ux-at-gitlab",{"_path":17388,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17389,"content":17395,"config":17400,"_id":17402,"_type":16,"title":17403,"_source":17,"_file":17404,"_stem":17405,"_extension":20},"/en-us/blog/using-web-components-to-encapsulate-css-and-resolve-design-system-conflicts",{"title":17390,"description":17391,"ogTitle":17390,"ogDescription":17391,"noIndex":6,"ogImage":17392,"ogUrl":17393,"ogSiteName":995,"ogType":996,"canonicalUrls":17393,"schema":17394},"Using web components to encapsulate CSS and resolve design system conflicts","How we used web component technologies like the Shadow DOM to make it easy to incrementally adopt our new design system, Slippers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679537/Blog/Hero%20Images/slippers-sys.jpg","https://about.gitlab.com/blog/using-web-components-to-encapsulate-css-and-resolve-design-system-conflicts","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using web components to encapsulate CSS and resolve design system conflicts\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tyler Williams\"}],\n        \"datePublished\": \"2021-05-03\",\n      }",{"title":17390,"description":17391,"authors":17396,"heroImage":17392,"date":17398,"category":858,"tags":17399},[17397],"Tyler Williams","2021-05-03",[2702,1569],{"slug":17401,"featured":6,"template":736},"using-web-components-to-encapsulate-css-and-resolve-design-system-conflicts","content:en-us:blog:using-web-components-to-encapsulate-css-and-resolve-design-system-conflicts.yml","Using Web Components To Encapsulate Css And Resolve Design System Conflicts","en-us/blog/using-web-components-to-encapsulate-css-and-resolve-design-system-conflicts.yml","en-us/blog/using-web-components-to-encapsulate-css-and-resolve-design-system-conflicts",{"_path":17407,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17408,"content":17413,"config":17418,"_id":17420,"_type":16,"title":17421,"_source":17,"_file":17422,"_stem":17423,"_extension":20},"/en-us/blog/why-its-crucial-to-break-things-down-into-smallest-iterations",{"title":17409,"description":17410,"ogTitle":17409,"ogDescription":17410,"noIndex":6,"ogImage":10957,"ogUrl":17411,"ogSiteName":995,"ogType":996,"canonicalUrls":17411,"schema":17412},"Why iterative software development is critical","How we learned from our mistakes and adopted an iterative software development mentality to reduce the likelihood of shipping something that doesn't add value.","https://about.gitlab.com/blog/why-its-crucial-to-break-things-down-into-smallest-iterations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why iterative software development is critical\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2021-04-30\",\n      }",{"title":17409,"description":17410,"authors":17414,"heroImage":10957,"date":17416,"category":858,"tags":17417},[17415],"Matej Latin","2021-04-30",[8475,1569,2703],{"slug":17419,"featured":6,"template":736},"why-its-crucial-to-break-things-down-into-smallest-iterations","content:en-us:blog:why-its-crucial-to-break-things-down-into-smallest-iterations.yml","Why Its Crucial To Break Things Down Into Smallest Iterations","en-us/blog/why-its-crucial-to-break-things-down-into-smallest-iterations.yml","en-us/blog/why-its-crucial-to-break-things-down-into-smallest-iterations",{"_path":17425,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17426,"content":17431,"config":17436,"_id":17438,"_type":16,"title":17439,"_source":17,"_file":17440,"_stem":17441,"_extension":20},"/en-us/blog/how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo",{"title":17427,"description":17428,"ogTitle":17427,"ogDescription":17428,"noIndex":6,"ogImage":8754,"ogUrl":17429,"ogSiteName":995,"ogType":996,"canonicalUrls":17429,"schema":17430},"How we are closing the gap on replicating *everything* in GitLab Geo","Developing an internal framework to enable other teams to add Geo support for their features","https://about.gitlab.com/blog/how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we are closing the gap on replicating *everything* in GitLab Geo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Kozono\"}],\n        \"datePublished\": \"2021-04-29\",\n      }",{"title":17427,"description":17428,"authors":17432,"heroImage":8754,"date":17434,"category":17170,"tags":17435},[17433],"Michael Kozono","2021-04-29",[729,2815,2702,730,1569,3914,1335],{"slug":17437,"featured":6,"template":736},"how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo","content:en-us:blog:how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo.yml","How We Are Closing The Gap On Replicating Everything In Gitlab Geo","en-us/blog/how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo.yml","en-us/blog/how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo",{"_path":17443,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17444,"content":17449,"config":17453,"_id":17455,"_type":16,"title":17456,"_source":17,"_file":17457,"_stem":17458,"_extension":20},"/en-us/blog/devops-platform-supply-chain-attacks",{"title":17445,"description":17446,"ogTitle":17445,"ogDescription":17446,"noIndex":6,"ogImage":16503,"ogUrl":17447,"ogSiteName":995,"ogType":996,"canonicalUrls":17447,"schema":17448},"How a DevOps Platform helps protect against supply chain attacks","Built-in security features can simplify your software factory","https://about.gitlab.com/blog/devops-platform-supply-chain-attacks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How a DevOps Platform helps protect against supply chain attacks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2021-04-28\",\n      }",{"title":17445,"description":17446,"authors":17450,"heroImage":16503,"date":17451,"category":577,"tags":17452},[11487],"2021-04-28",[1049,790],{"slug":17454,"featured":6,"template":736},"devops-platform-supply-chain-attacks","content:en-us:blog:devops-platform-supply-chain-attacks.yml","Devops Platform Supply Chain Attacks","en-us/blog/devops-platform-supply-chain-attacks.yml","en-us/blog/devops-platform-supply-chain-attacks",{"_path":17460,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17461,"content":17466,"config":17470,"_id":17472,"_type":16,"title":17473,"_source":17,"_file":17474,"_stem":17475,"_extension":20},"/en-us/blog/puma-nakayoshi-fork-and-compaction",{"title":17462,"description":17463,"ogTitle":17462,"ogDescription":17463,"noIndex":6,"ogImage":8754,"ogUrl":17464,"ogSiteName":995,"ogType":996,"canonicalUrls":17464,"schema":17465},"Ruby 2.7: Understand and debug problems with heap compaction","An overview of Ruby 2.7 heap compaction and the risks it adds to production Rails applications.","https://about.gitlab.com/blog/puma-nakayoshi-fork-and-compaction","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ruby 2.7: Understand and debug problems with heap compaction\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matthias Käppler\"}],\n        \"datePublished\": \"2021-04-28\",\n      }",{"title":17462,"description":17463,"authors":17467,"heroImage":8754,"date":17451,"category":858,"tags":17469},[17468],"Matthias Käppler",[6376,1988,1569],{"slug":17471,"featured":6,"template":736},"puma-nakayoshi-fork-and-compaction","content:en-us:blog:puma-nakayoshi-fork-and-compaction.yml","Puma Nakayoshi Fork And Compaction","en-us/blog/puma-nakayoshi-fork-and-compaction.yml","en-us/blog/puma-nakayoshi-fork-and-compaction",{"_path":17477,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17478,"content":17484,"config":17489,"_id":17491,"_type":16,"title":17492,"_source":17,"_file":17493,"_stem":17494,"_extension":20},"/en-us/blog/from-berlin-to-new-zealand",{"title":17479,"description":17480,"ogTitle":17479,"ogDescription":17480,"noIndex":6,"ogImage":17481,"ogUrl":17482,"ogSiteName":995,"ogType":996,"canonicalUrls":17482,"schema":17483},"Visiting Family During COVID-19 (Germany to New Zealand)","My experience working for Gitlab traveling from Berlin to New Zealand on short notice","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672592/Blog/Hero%20Images/berlin-to-new-zealand-1.jpg","https://about.gitlab.com/blog/from-berlin-to-new-zealand","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Visiting Family During COVID-19 (Germany to New Zealand)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marc Shaw\"}],\n        \"datePublished\": \"2021-04-27\",\n      }",{"title":17479,"description":17480,"authors":17485,"heroImage":17481,"date":17487,"category":17170,"tags":17488},[17486],"Marc Shaw","2021-04-27",[1569,3914],{"slug":17490,"featured":6,"template":736},"from-berlin-to-new-zealand","content:en-us:blog:from-berlin-to-new-zealand.yml","From Berlin To New Zealand","en-us/blog/from-berlin-to-new-zealand.yml","en-us/blog/from-berlin-to-new-zealand",{"_path":17496,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17497,"content":17503,"config":17507,"_id":17509,"_type":16,"title":17510,"_source":17,"_file":17511,"_stem":17512,"_extension":20},"/en-us/blog/gitops-done-3-ways",{"title":17498,"description":17499,"ogTitle":17498,"ogDescription":17499,"noIndex":6,"ogImage":17500,"ogUrl":17501,"ogSiteName":995,"ogType":996,"canonicalUrls":17501,"schema":17502},"3 Ways to approach GitOps","Learn about how GitLab users can employ GitOps to cover both Kubernetes and non-Kubernetes environments","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669635/Blog/Hero%20Images/gitops-cover.jpg","https://about.gitlab.com/blog/gitops-done-3-ways","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Ways to approach GitOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Saumya Upadhyaya\"},{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2021-04-27\",\n      }",{"title":17498,"description":17499,"authors":17504,"heroImage":17500,"date":17487,"category":858,"tags":17506},[17505,1712],"Saumya Upadhyaya",[559,2098,2908,582],{"slug":17508,"featured":6,"template":736},"gitops-done-3-ways","content:en-us:blog:gitops-done-3-ways.yml","Gitops Done 3 Ways","en-us/blog/gitops-done-3-ways.yml","en-us/blog/gitops-done-3-ways",{"_path":17514,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17515,"content":17521,"config":17526,"_id":17528,"_type":16,"title":17529,"_source":17,"_file":17530,"_stem":17531,"_extension":20},"/en-us/blog/devops-workflows-json-format-jq-ci-cd-lint",{"title":17516,"description":17517,"ogTitle":17516,"ogDescription":17517,"noIndex":6,"ogImage":17518,"ogUrl":17519,"ogSiteName":995,"ogType":996,"canonicalUrls":17519,"schema":17520},"JSON formatting and CI/CD linting tips for DevOps workflows","Learn how to filter in JSON data structures and interact with the REST API. Use the GitLab API to lint your CI/CD configuration and dive into Git hooks speeding up your workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681979/Blog/Hero%20Images/gert-boers-unsplash.jpg","https://about.gitlab.com/blog/devops-workflows-json-format-jq-ci-cd-lint","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tips for productive DevOps workflows: JSON formatting with jq and CI/CD linting automation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2021-04-21\",\n      }",{"title":17522,"description":17517,"authors":17523,"heroImage":17518,"date":17524,"category":858,"tags":17525},"Tips for productive DevOps workflows: JSON formatting with jq and CI/CD linting automation",[1424],"2021-04-21",[2097,564,772],{"slug":17527,"featured":6,"template":736},"devops-workflows-json-format-jq-ci-cd-lint","content:en-us:blog:devops-workflows-json-format-jq-ci-cd-lint.yml","Devops Workflows Json Format Jq Ci Cd Lint","en-us/blog/devops-workflows-json-format-jq-ci-cd-lint.yml","en-us/blog/devops-workflows-json-format-jq-ci-cd-lint",{"_path":17533,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17534,"content":17539,"config":17543,"_id":17545,"_type":16,"title":17546,"_source":17,"_file":17547,"_stem":17548,"_extension":20},"/en-us/blog/everyone-can-get-certified",{"title":17535,"description":17536,"ogTitle":17535,"ogDescription":17536,"noIndex":6,"ogImage":11046,"ogUrl":17537,"ogSiteName":995,"ogType":996,"canonicalUrls":17537,"schema":17538},"Everyone Can Get Certified!","GitLab Learn learning platform now available to the GitLab wider community","https://about.gitlab.com/blog/everyone-can-get-certified","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Everyone Can Get Certified!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christine Yoshida\"}],\n        \"datePublished\": \"2021-04-20\",\n      }",{"title":17535,"description":17536,"authors":17540,"heroImage":11046,"date":17541,"category":1049,"tags":17542},[17345],"2021-04-20",[269,8475,1049,631],{"slug":17544,"featured":6,"template":736},"everyone-can-get-certified","content:en-us:blog:everyone-can-get-certified.yml","Everyone Can Get Certified","en-us/blog/everyone-can-get-certified.yml","en-us/blog/everyone-can-get-certified",{"_path":17550,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17551,"content":17556,"config":17563,"_id":17565,"_type":16,"title":17566,"_source":17,"_file":17567,"_stem":17568,"_extension":20},"/en-us/blog/outreachy-sponsorship-winter-2020",{"title":17552,"description":17553,"ogTitle":17552,"ogDescription":17553,"noIndex":6,"ogImage":17305,"ogUrl":17554,"ogSiteName":995,"ogType":996,"canonicalUrls":17554,"schema":17555},"Technology internships meet open source in Outreachy","Inside Outreachy technology internships, where participants work on Git.","https://about.gitlab.com/blog/outreachy-sponsorship-winter-2020","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Technology internships meet open source in Outreachy\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joey Salazar\"},{\"@type\":\"Person\",\"name\":\"Charvi Mendiratta\"},{\"@type\":\"Person\",\"name\":\"Nuritzi Sanchez\"},{\"@type\":\"Person\",\"name\":\"Christian Couder\"}],\n        \"datePublished\": \"2021-04-15\",\n      }",{"title":17552,"description":17553,"authors":17557,"heroImage":17305,"date":17561,"category":1388,"tags":17562},[17558,17559,17560,3418],"Joey Salazar","Charvi Mendiratta","Nuritzi Sanchez","2021-04-15",[1265,1195,2702],{"slug":17564,"featured":6,"template":736},"outreachy-sponsorship-winter-2020","content:en-us:blog:outreachy-sponsorship-winter-2020.yml","Outreachy Sponsorship Winter 2020","en-us/blog/outreachy-sponsorship-winter-2020.yml","en-us/blog/outreachy-sponsorship-winter-2020",{"_path":17570,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17571,"content":17577,"config":17581,"_id":17583,"_type":16,"title":17584,"_source":17,"_file":17585,"_stem":17586,"_extension":20},"/en-us/blog/gitlab-jira-integration-selfmanaged",{"title":17572,"description":17573,"ogTitle":17572,"ogDescription":17573,"noIndex":6,"ogImage":17574,"ogUrl":17575,"ogSiteName":995,"ogType":996,"canonicalUrls":17575,"schema":17576},"How to achieve a GitLab Jira integration","Check out how to integrate GitLab self-managed with Atlassian Jira to connect your merge requests, branches, and commits to a Jira issue.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667260/Blog/Hero%20Images/twopeasinapod.jpg","https://about.gitlab.com/blog/gitlab-jira-integration-selfmanaged","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to achieve a GitLab Jira integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tye Davis\"}],\n        \"datePublished\": \"2021-04-12\",\n      }",{"title":17572,"description":17573,"authors":17578,"heroImage":17574,"date":17579,"category":858,"tags":17580},[17078],"2021-04-12",[582,564,2098],{"slug":17582,"featured":6,"template":736},"gitlab-jira-integration-selfmanaged","content:en-us:blog:gitlab-jira-integration-selfmanaged.yml","Gitlab Jira Integration Selfmanaged","en-us/blog/gitlab-jira-integration-selfmanaged.yml","en-us/blog/gitlab-jira-integration-selfmanaged",{"_path":17588,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17589,"content":17595,"config":17599,"_id":17601,"_type":16,"title":17602,"_source":17,"_file":17603,"_stem":17604,"_extension":20},"/en-us/blog/demystifying-ci-cd-variables",{"title":17590,"description":17591,"ogTitle":17590,"ogDescription":17591,"noIndex":6,"ogImage":17592,"ogUrl":17593,"ogSiteName":995,"ogType":996,"canonicalUrls":17593,"schema":17594},"GitLab environment variables demystified","CI/CD variables are useful (and flexible) tools to control jobs and pipelines. We unpack everything you need to know about GitLab environment variables.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664679/Blog/Hero%20Images/blog-image-template-1800x945__24_.png","https://about.gitlab.com/blog/demystifying-ci-cd-variables","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab environment variables demystified\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2021-04-09\",\n      }",{"title":17590,"description":17591,"authors":17596,"heroImage":17592,"date":17597,"category":858,"tags":17598,"updatedDate":3400},[4929],"2021-04-09",[2098,730,1569,2097,110,772],{"slug":17600,"featured":6,"template":736},"demystifying-ci-cd-variables","content:en-us:blog:demystifying-ci-cd-variables.yml","Demystifying Ci Cd Variables","en-us/blog/demystifying-ci-cd-variables.yml","en-us/blog/demystifying-ci-cd-variables",{"_path":17606,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17607,"content":17612,"config":17616,"_id":17618,"_type":16,"title":17619,"_source":17,"_file":17620,"_stem":17621,"_extension":20},"/en-us/blog/how-the-open-source-community-can-build-more-accessible-products",{"title":17608,"description":17609,"ogTitle":17608,"ogDescription":17609,"noIndex":6,"ogImage":16018,"ogUrl":17610,"ogSiteName":995,"ogType":996,"canonicalUrls":17610,"schema":17611},"Making open source software more accessible for everyone","The open source software community is built on the idea that everyone can contribute, and that includes people living with disabilities. GitLab team members share their ideas for building more accessible, open source software.","https://about.gitlab.com/blog/how-the-open-source-community-can-build-more-accessible-products","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the open source development community can build more accessible software\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-04-07\",\n      }",{"title":17613,"description":17609,"authors":17614,"heroImage":16018,"date":17615,"category":1388},"How the open source development community can build more accessible software",[16023],"2021-04-07",{"slug":17617,"featured":6,"template":736},"how-the-open-source-community-can-build-more-accessible-products","content:en-us:blog:how-the-open-source-community-can-build-more-accessible-products.yml","How The Open Source Community Can Build More Accessible Products","en-us/blog/how-the-open-source-community-can-build-more-accessible-products.yml","en-us/blog/how-the-open-source-community-can-build-more-accessible-products",{"_path":17623,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17624,"content":17629,"config":17632,"_id":17634,"_type":16,"title":17635,"_source":17,"_file":17636,"_stem":17637,"_extension":20},"/en-us/blog/small-experiments-significant-results-and-learnings",{"title":17625,"description":17626,"ogTitle":17625,"ogDescription":17626,"noIndex":6,"ogImage":10957,"ogUrl":17627,"ogSiteName":995,"ogType":996,"canonicalUrls":17627,"schema":17628},"Small experiments, significant results and learnings","How our Growth team validates design solutions with the smallest experiments possible","https://about.gitlab.com/blog/small-experiments-significant-results-and-learnings","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Small experiments, significant results and learnings\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2021-04-07\",\n      }",{"title":17625,"description":17626,"authors":17630,"heroImage":10957,"date":17615,"category":17170,"tags":17631},[17415],[8475,1569,2703],{"slug":17633,"featured":6,"template":736},"small-experiments-significant-results-and-learnings","content:en-us:blog:small-experiments-significant-results-and-learnings.yml","Small Experiments Significant Results And Learnings","en-us/blog/small-experiments-significant-results-and-learnings.yml","en-us/blog/small-experiments-significant-results-and-learnings",{"_path":17639,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17640,"content":17646,"config":17651,"_id":17653,"_type":16,"title":17654,"_source":17,"_file":17655,"_stem":17656,"_extension":20},"/en-us/blog/custom-actions-rasa-gitlab-devops",{"title":17641,"description":17642,"ogTitle":17641,"ogDescription":17642,"noIndex":6,"ogImage":17643,"ogUrl":17644,"ogSiteName":995,"ogType":996,"canonicalUrls":17644,"schema":17645},"Creating custom action containers for Rasa X with GitLab","Using the GitLab DevOps Platform together with Rasa X can make it easier for stakeholders to deliver a virtual assistant by automating potentially time-consuming, error-prone steps. In this case, we’ve shown how you can build Rasa custom action servers and deploy them to Kubernetes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668410/Blog/Hero%20Images/vablog.jpg","https://about.gitlab.com/blog/custom-actions-rasa-gitlab-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Create and Deploy Custom Actions Containers to Rasa X using Gitlab DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2021-04-06\",\n      }",{"title":17647,"description":17642,"authors":17648,"heroImage":17643,"date":17649,"category":577,"tags":17650},"Create and Deploy Custom Actions Containers to Rasa X using Gitlab DevOps Platform",[855],"2021-04-06",[2097,582,564],{"slug":17652,"featured":6,"template":736},"custom-actions-rasa-gitlab-devops","content:en-us:blog:custom-actions-rasa-gitlab-devops.yml","Custom Actions Rasa Gitlab Devops","en-us/blog/custom-actions-rasa-gitlab-devops.yml","en-us/blog/custom-actions-rasa-gitlab-devops",{"_path":17658,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17659,"content":17664,"config":17669,"_id":17671,"_type":16,"title":17672,"_source":17,"_file":17673,"_stem":17674,"_extension":20},"/en-us/blog/dont-hide-primary-actions",{"title":17660,"description":17661,"ogTitle":17660,"ogDescription":17661,"noIndex":6,"ogImage":11046,"ogUrl":17662,"ogSiteName":995,"ogType":996,"canonicalUrls":17662,"schema":17663},"Don't hide primary actions","In our testing, we found there was confusion in setting up subgroups with a wide range of research participants. We wanted to reduce confusion in setting up subgroups in GitLab.","https://about.gitlab.com/blog/dont-hide-primary-actions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Don't hide primary actions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Mora\"}],\n        \"datePublished\": \"2021-04-01\",\n      }",{"title":17660,"description":17661,"authors":17665,"heroImage":11046,"date":17667,"category":17170,"tags":17668},[17666],"Daniel Mora","2021-04-01",[2702,2704],{"slug":17670,"featured":6,"template":736},"dont-hide-primary-actions","content:en-us:blog:dont-hide-primary-actions.yml","Dont Hide Primary Actions","en-us/blog/dont-hide-primary-actions.yml","en-us/blog/dont-hide-primary-actions",{"_path":17676,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17677,"content":17682,"config":17687,"_id":17689,"_type":16,"title":17690,"_source":17,"_file":17691,"_stem":17692,"_extension":20},"/en-us/blog/3-debugging-tips-we-learned-from-you",{"title":17678,"description":17679,"ogTitle":17678,"ogDescription":17679,"noIndex":6,"ogImage":11046,"ogUrl":17680,"ogSiteName":995,"ogType":996,"canonicalUrls":17680,"schema":17681},"3 Debugging tips we learned from you","We asked for your most unexpected causes of bugs. Here's what we learned.","https://about.gitlab.com/blog/3-debugging-tips-we-learned-from-you","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Debugging tips we learned from you\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2021-03-31\",\n      }",{"title":17678,"description":17679,"authors":17683,"heroImage":11046,"date":17685,"category":858,"tags":17686},[17684],"Rebecca Dodd","2021-03-31",[269],{"slug":17688,"featured":6,"template":736},"3-debugging-tips-we-learned-from-you","content:en-us:blog:3-debugging-tips-we-learned-from-you.yml","3 Debugging Tips We Learned From You","en-us/blog/3-debugging-tips-we-learned-from-you.yml","en-us/blog/3-debugging-tips-we-learned-from-you",{"_path":17694,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17695,"content":17701,"config":17706,"_id":17708,"_type":16,"title":17709,"_source":17,"_file":17710,"_stem":17711,"_extension":20},"/en-us/blog/five-signs-you-should-think-bigger",{"title":17696,"description":17697,"ogTitle":17696,"ogDescription":17697,"noIndex":6,"ogImage":17698,"ogUrl":17699,"ogSiteName":995,"ogType":996,"canonicalUrls":17699,"schema":17700},"Five signs you should think BIGGER!","Are you a designer who is frustrated with only focusing on the next milestone? Do you feel like you have to answer too many questions in every Issue? Do you feel like your product is not making any progress? **Time to Think Bigger!**","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099620/Blog/Hero%20Images/Blog/Hero%20Images/insights_insights.png_1750099620265.png","https://about.gitlab.com/blog/five-signs-you-should-think-bigger","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Five signs you should think BIGGER!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Iain Camacho\"}],\n        \"datePublished\": \"2021-03-30\",\n      }",{"title":17696,"description":17697,"authors":17702,"heroImage":17698,"date":17704,"category":858,"tags":17705},[17703],"Iain Camacho","2021-03-30",[2815,2702,1569,3914,771],{"slug":17707,"featured":6,"template":736},"five-signs-you-should-think-bigger","content:en-us:blog:five-signs-you-should-think-bigger.yml","Five Signs You Should Think Bigger","en-us/blog/five-signs-you-should-think-bigger.yml","en-us/blog/five-signs-you-should-think-bigger",{"_path":17713,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17714,"content":17719,"config":17722,"_id":17724,"_type":16,"title":17725,"_source":17,"_file":17726,"_stem":17727,"_extension":20},"/en-us/blog/gitlab-education-solutions",{"title":17715,"description":17716,"ogTitle":17715,"ogDescription":17716,"noIndex":6,"ogImage":11046,"ogUrl":17717,"ogSiteName":995,"ogType":996,"canonicalUrls":17717,"schema":17718},"GitLab solutions for education","You spoke, we listened! Check out our new and improved options for bringing GitLab to your campus.","https://about.gitlab.com/blog/gitlab-education-solutions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab solutions for education\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2021-03-30\",\n      }",{"title":17715,"description":17716,"authors":17720,"heroImage":11046,"date":17704,"category":1049,"tags":17721},[13131],[564,6376],{"slug":17723,"featured":6,"template":736},"gitlab-education-solutions","content:en-us:blog:gitlab-education-solutions.yml","Gitlab Education Solutions","en-us/blog/gitlab-education-solutions.yml","en-us/blog/gitlab-education-solutions",{"_path":17729,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17730,"content":17735,"config":17739,"_id":17741,"_type":16,"title":17742,"_source":17,"_file":17743,"_stem":17744,"_extension":20},"/en-us/blog/integrating-gitlab-com-with-atlassian-jira-cloud",{"title":17731,"description":17732,"ogTitle":17731,"ogDescription":17732,"noIndex":6,"ogImage":17574,"ogUrl":17733,"ogSiteName":995,"ogType":996,"canonicalUrls":17733,"schema":17734},"How to integrate GitLab.com with Jira Cloud","Check out how to use the GitLab App on the Atlassian Marketplace to connect your merge requests, branches, and commits to a Jira issue.","https://about.gitlab.com/blog/integrating-gitlab-com-with-atlassian-jira-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to integrate GitLab.com with Jira Cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tye Davis\"}],\n        \"datePublished\": \"2021-03-25\",\n      }",{"title":17731,"description":17732,"authors":17736,"heroImage":17574,"date":17737,"category":858,"tags":17738},[17078],"2021-03-25",[582,564,2098],{"slug":17740,"featured":6,"template":736},"integrating-gitlab-com-with-atlassian-jira-cloud","content:en-us:blog:integrating-gitlab-com-with-atlassian-jira-cloud.yml","Integrating Gitlab Com With Atlassian Jira Cloud","en-us/blog/integrating-gitlab-com-with-atlassian-jira-cloud.yml","en-us/blog/integrating-gitlab-com-with-atlassian-jira-cloud",{"_path":17746,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17747,"content":17753,"config":17757,"_id":17759,"_type":16,"title":17760,"_source":17,"_file":17761,"_stem":17762,"_extension":20},"/en-us/blog/gitlab-open-sources-protocol-fuzz-test-engine",{"title":17748,"description":17749,"ogTitle":17748,"ogDescription":17749,"noIndex":6,"ogImage":17750,"ogUrl":17751,"ogSiteName":995,"ogType":996,"canonicalUrls":17751,"schema":17752},"We're open sourcing Protocol Fuzzer Community Edition!","GitLab is releasing an open source protocol fuzz testing repository.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667243/Blog/Hero%20Images/open-source-community.png","https://about.gitlab.com/blog/gitlab-open-sources-protocol-fuzz-test-engine","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're open sourcing Protocol Fuzzer Community Edition!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Kerr\"}],\n        \"datePublished\": \"2021-03-23\",\n      }",{"title":17748,"description":17749,"authors":17754,"heroImage":17750,"date":17755,"category":1049,"tags":17756},[6887],"2021-03-23",[1265,1049],{"slug":17758,"featured":6,"template":736},"gitlab-open-sources-protocol-fuzz-test-engine","content:en-us:blog:gitlab-open-sources-protocol-fuzz-test-engine.yml","Gitlab Open Sources Protocol Fuzz Test Engine","en-us/blog/gitlab-open-sources-protocol-fuzz-test-engine.yml","en-us/blog/gitlab-open-sources-protocol-fuzz-test-engine",{"_path":17764,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17765,"content":17770,"config":17773,"_id":17775,"_type":16,"title":17776,"_source":17,"_file":17777,"_stem":17778,"_extension":20},"/en-us/blog/how-you-contribute-to-gitlabs-open-devops-platform",{"title":17766,"description":17767,"ogTitle":17766,"ogDescription":17767,"noIndex":6,"ogImage":17305,"ogUrl":17768,"ogSiteName":995,"ogType":996,"canonicalUrls":17768,"schema":17769},"How you contribute to GitLab's DevOps Platform","Today we're celebrating you! These are just some of the many examples of how you make GitLab's DevOps Platform better by innovating together.","https://about.gitlab.com/blog/how-you-contribute-to-gitlabs-open-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How you contribute to GitLab's DevOps Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-03-23\",\n      }",{"title":17766,"description":17767,"authors":17771,"heroImage":17305,"date":17755,"category":1388,"tags":17772},[1000],[1265,269,1050],{"slug":17774,"featured":6,"template":736},"how-you-contribute-to-gitlabs-open-devops-platform","content:en-us:blog:how-you-contribute-to-gitlabs-open-devops-platform.yml","How You Contribute To Gitlabs Open Devops Platform","en-us/blog/how-you-contribute-to-gitlabs-open-devops-platform.yml","en-us/blog/how-you-contribute-to-gitlabs-open-devops-platform",{"_path":17780,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17781,"content":17787,"config":17791,"_id":17793,"_type":16,"title":17794,"_source":17,"_file":17795,"_stem":17796,"_extension":20},"/en-us/blog/we-are-building-a-better-heroku",{"title":17782,"description":17783,"ogTitle":17782,"ogDescription":17783,"noIndex":6,"ogImage":17784,"ogUrl":17785,"ogSiteName":995,"ogType":996,"canonicalUrls":17785,"schema":17786},"We are very far from a better Heroku for production apps in a hyper cloud","GitLab is building Heroku for production apps in hyper clouds, integrated into your DevSecOps workflow: The 5 minute production app.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672405/Blog/Hero%20Images/spacex-unsplash.jpg","https://about.gitlab.com/blog/we-are-building-a-better-heroku","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We are very far from a better Heroku for production apps in a hyper cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2021-03-22\",\n      }",{"title":17782,"description":17783,"authors":17788,"heroImage":17784,"date":17789,"category":17170,"tags":17790},[1424],"2021-03-22",[582,564,2098],{"slug":17792,"featured":6,"template":736},"we-are-building-a-better-heroku","content:en-us:blog:we-are-building-a-better-heroku.yml","We Are Building A Better Heroku","en-us/blog/we-are-building-a-better-heroku.yml","en-us/blog/we-are-building-a-better-heroku",{"_path":17798,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17799,"content":17804,"config":17808,"_id":17810,"_type":16,"title":17811,"_source":17,"_file":17812,"_stem":17813,"_extension":20},"/en-us/blog/gitlab-licensed-technology-to-new-independent-chinese-company",{"title":17800,"description":17801,"ogTitle":17800,"ogDescription":17801,"noIndex":6,"ogImage":11046,"ogUrl":17802,"ogSiteName":995,"ogType":996,"canonicalUrls":17802,"schema":17803},"GitLab licensed its technology to new independent Chinese company","The independent company will help drive adoption of the GitLab complete DevOps platform in China and foster the GitLab community and open source contributions.","https://about.gitlab.com/blog/gitlab-licensed-technology-to-new-independent-chinese-company","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab licensed its technology to new independent Chinese company\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2021-03-18\",\n      }",{"title":17800,"description":17801,"authors":17805,"heroImage":11046,"date":17806,"category":1049,"tags":17807},[1000],"2021-03-18",[1049],{"slug":17809,"featured":6,"template":736},"gitlab-licensed-technology-to-new-independent-chinese-company","content:en-us:blog:gitlab-licensed-technology-to-new-independent-chinese-company.yml","Gitlab Licensed Technology To New Independent Chinese Company","en-us/blog/gitlab-licensed-technology-to-new-independent-chinese-company.yml","en-us/blog/gitlab-licensed-technology-to-new-independent-chinese-company",{"_path":17815,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17816,"content":17822,"config":17825,"_id":17827,"_type":16,"title":17828,"_source":17,"_file":17829,"_stem":17830,"_extension":20},"/en-us/blog/iteration-and-code-review",{"title":17817,"description":17818,"ogTitle":17817,"ogDescription":17818,"noIndex":6,"ogImage":17819,"ogUrl":17820,"ogSiteName":995,"ogType":996,"canonicalUrls":17820,"schema":17821},"Why small merge requests are key to a great review","Massive merge requests lead to more problems than solutions. We explain how embracing iteration can lead to a better experience for the code author and code review.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681966/Blog/Hero%20Images/broken_wood.jpg","https://about.gitlab.com/blog/iteration-and-code-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why small merge requests are key to a great review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2021-03-18\",\n      }",{"title":17817,"description":17818,"authors":17823,"heroImage":17819,"date":17806,"category":858,"tags":17824},[3053],[1932,1569],{"slug":17826,"featured":6,"template":736},"iteration-and-code-review","content:en-us:blog:iteration-and-code-review.yml","Iteration And Code Review","en-us/blog/iteration-and-code-review.yml","en-us/blog/iteration-and-code-review",{"_path":17832,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17833,"content":17838,"config":17842,"_id":17844,"_type":16,"title":17845,"_source":17,"_file":17846,"_stem":17847,"_extension":20},"/en-us/blog/collaborating-on-a-cross-stage-feature",{"title":17834,"description":17835,"ogTitle":17834,"ogDescription":17835,"noIndex":6,"ogImage":13588,"ogUrl":17836,"ogSiteName":995,"ogType":996,"canonicalUrls":17836,"schema":17837},"How we tested a feature that affected (almost) all parts of GitLab","Crowd-sourcing testing across teams","https://about.gitlab.com/blog/collaborating-on-a-cross-stage-feature","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we tested a feature that affected (almost) all parts of GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aakriti Gupta\"}],\n        \"datePublished\": \"2021-03-17\",\n      }",{"title":17834,"description":17835,"authors":17839,"heroImage":13588,"date":17840,"category":17170,"tags":17841},[16271],"2021-03-17",[2815,1569,3914,964,1335],{"slug":17843,"featured":6,"template":736},"collaborating-on-a-cross-stage-feature","content:en-us:blog:collaborating-on-a-cross-stage-feature.yml","Collaborating On A Cross Stage Feature","en-us/blog/collaborating-on-a-cross-stage-feature.yml","en-us/blog/collaborating-on-a-cross-stage-feature",{"_path":17849,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17850,"content":17856,"config":17859,"_id":17861,"_type":16,"title":17862,"_source":17,"_file":17863,"_stem":17864,"_extension":20},"/en-us/blog/why-do-gitlab-designers-contribute-to-the-codebase",{"title":17851,"description":17852,"ogTitle":17851,"ogDescription":17852,"noIndex":6,"ogImage":17853,"ogUrl":17854,"ogSiteName":995,"ogType":996,"canonicalUrls":17854,"schema":17855},"Why do GitLab designers contribute to the codebase?","This article is not another blog post about whether designers should code. Instead, it's the perspective of a GitLab designer learning to contribute.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679556/Blog/Hero%20Images/insights.png","https://about.gitlab.com/blog/why-do-gitlab-designers-contribute-to-the-codebase","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why do GitLab designers contribute to the codebase?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Austin Regnery\"}],\n        \"datePublished\": \"2021-03-17\",\n      }",{"title":17851,"description":17852,"authors":17857,"heroImage":17853,"date":17840,"category":17170,"tags":17858},[9350],[2703,2702,731,2815,10121],{"slug":17860,"featured":6,"template":736},"why-do-gitlab-designers-contribute-to-the-codebase","content:en-us:blog:why-do-gitlab-designers-contribute-to-the-codebase.yml","Why Do Gitlab Designers Contribute To The Codebase","en-us/blog/why-do-gitlab-designers-contribute-to-the-codebase.yml","en-us/blog/why-do-gitlab-designers-contribute-to-the-codebase",{"_path":17866,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17867,"content":17873,"config":17878,"_id":17880,"_type":16,"title":17881,"_source":17,"_file":17882,"_stem":17883,"_extension":20},"/en-us/blog/how-we-apply-gitlab-values-to-our-bug-bounty-council-process",{"title":17868,"description":17869,"ogTitle":17868,"ogDescription":17869,"noIndex":6,"ogImage":17870,"ogUrl":17871,"ogSiteName":995,"ogType":996,"canonicalUrls":17871,"schema":17872},"Inside the Bug Bounty Council at GitLab","We improve consistency across severity ratings and payouts in our bug bounty program with collaboration, iteration, and async communication.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681956/Blog/Hero%20Images/gitlab-values-header.png","https://about.gitlab.com/blog/how-we-apply-gitlab-values-to-our-bug-bounty-council-process","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside the Bug Bounty Council at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Kelly\"}],\n        \"datePublished\": \"2021-03-16\",\n      }",{"title":17868,"description":17869,"authors":17874,"heroImage":17870,"date":17876,"category":790,"tags":17877},[17875],"Andrew Kelly","2021-03-16",[790,2483,1569],{"slug":17879,"featured":6,"template":736},"how-we-apply-gitlab-values-to-our-bug-bounty-council-process","content:en-us:blog:how-we-apply-gitlab-values-to-our-bug-bounty-council-process.yml","How We Apply Gitlab Values To Our Bug Bounty Council Process","en-us/blog/how-we-apply-gitlab-values-to-our-bug-bounty-council-process.yml","en-us/blog/how-we-apply-gitlab-values-to-our-bug-bounty-council-process",{"_path":17885,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17886,"content":17892,"config":17896,"_id":17898,"_type":16,"title":17899,"_source":17,"_file":17900,"_stem":17901,"_extension":20},"/en-us/blog/patch-files-for-code-review",{"title":17887,"description":17888,"ogTitle":17887,"ogDescription":17888,"noIndex":6,"ogImage":17889,"ogUrl":17890,"ogSiteName":995,"ogType":996,"canonicalUrls":17890,"schema":17891},"How patch files can transform how you review code","We explain how to use patch files for better code review.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672273/Blog/Hero%20Images/patch.jpg","https://about.gitlab.com/blog/patch-files-for-code-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How patch files can transform how you review code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2021-03-15\",\n      }",{"title":17887,"description":17888,"authors":17893,"heroImage":17889,"date":17894,"category":858,"tags":17895},[3053],"2021-03-15",[1932,1569],{"slug":17897,"featured":6,"template":736},"patch-files-for-code-review","content:en-us:blog:patch-files-for-code-review.yml","Patch Files For Code Review","en-us/blog/patch-files-for-code-review.yml","en-us/blog/patch-files-for-code-review",{"_path":17903,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17904,"content":17909,"config":17913,"_id":17915,"_type":16,"title":17916,"_source":17,"_file":17917,"_stem":17918,"_extension":20},"/en-us/blog/best-practices-remote-engineering",{"title":17905,"description":17906,"ogTitle":17905,"ogDescription":17906,"noIndex":6,"ogImage":13588,"ogUrl":17907,"ogSiteName":995,"ogType":996,"canonicalUrls":17907,"schema":17908},"5 Ways to level up your remote engineering skills","A round-up of our blog posts unpacking the top tips for working remotely as an engineer.","https://about.gitlab.com/blog/best-practices-remote-engineering","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Ways to level up your remote engineering skills\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-03-12\",\n      }",{"title":17905,"description":17906,"authors":17910,"heroImage":13588,"date":17911,"category":6121,"tags":17912},[16023],"2021-03-12",[3914],{"slug":17914,"featured":6,"template":736},"best-practices-remote-engineering","content:en-us:blog:best-practices-remote-engineering.yml","Best Practices Remote Engineering","en-us/blog/best-practices-remote-engineering.yml","en-us/blog/best-practices-remote-engineering",{"_path":17920,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17921,"content":17927,"config":17932,"_id":17934,"_type":16,"title":17935,"_source":17,"_file":17936,"_stem":17937,"_extension":20},"/en-us/blog/new-git-default-branch-name",{"title":17922,"description":17923,"ogTitle":17922,"ogDescription":17923,"noIndex":6,"ogImage":17924,"ogUrl":17925,"ogSiteName":995,"ogType":996,"canonicalUrls":17925,"schema":17926},"The new Git default branch name","Why we're joining the Git community and updating \"master\" to \"main\".","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681942/Blog/Hero%20Images/git_gitlab.jpg","https://about.gitlab.com/blog/new-git-default-branch-name","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The new Git default branch name\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Gruesso\"}],\n        \"datePublished\": \"2021-03-10\",\n      }",{"title":17922,"description":17923,"authors":17928,"heroImage":17924,"date":17930,"category":1049,"tags":17931},[17929],"Daniel Gruesso","2021-03-10",[1195],{"slug":17933,"featured":6,"template":736},"new-git-default-branch-name","content:en-us:blog:new-git-default-branch-name.yml","New Git Default Branch Name","en-us/blog/new-git-default-branch-name.yml","en-us/blog/new-git-default-branch-name",{"_path":17939,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17940,"content":17946,"config":17950,"_id":17952,"_type":16,"title":17953,"_source":17,"_file":17954,"_stem":17955,"_extension":20},"/en-us/blog/tips-for-better-code-review",{"title":17941,"description":17942,"ogTitle":17941,"ogDescription":17942,"noIndex":6,"ogImage":17943,"ogUrl":17944,"ogSiteName":995,"ogType":996,"canonicalUrls":17944,"schema":17945},"How to write a more thoughtful code review","The best code reviews are empathetic and fair. We explain best practices for providing feedback.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663502/Blog/Hero%20Images/paperclips.jpg","https://about.gitlab.com/blog/tips-for-better-code-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to write a more thoughtful code review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2021-03-09\",\n      }",{"title":17941,"description":17942,"authors":17947,"heroImage":17943,"date":17948,"category":858,"tags":17949},[3053],"2021-03-09",[1932],{"slug":17951,"featured":6,"template":736},"tips-for-better-code-review","content:en-us:blog:tips-for-better-code-review.yml","Tips For Better Code Review","en-us/blog/tips-for-better-code-review.yml","en-us/blog/tips-for-better-code-review",{"_path":17957,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17958,"content":17963,"config":17968,"_id":17970,"_type":16,"title":17971,"_source":17,"_file":17972,"_stem":17973,"_extension":20},"/en-us/blog/starting-from-the-start-slippers-design-system",{"title":17959,"description":17960,"ogTitle":17959,"ogDescription":17960,"noIndex":6,"ogImage":17392,"ogUrl":17961,"ogSiteName":995,"ogType":996,"canonicalUrls":17961,"schema":17962},"Why design systems benefit everyone","Learn how the GitLab digital experience team built the Slippers design system for our marketing website.","https://about.gitlab.com/blog/starting-from-the-start-slippers-design-system","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why design systems benefit everyone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stephen McGuinness\"}],\n        \"datePublished\": \"2021-03-05\",\n      }",{"title":17959,"description":17960,"authors":17964,"heroImage":17392,"date":17966,"category":858,"tags":17967},[17965],"Stephen McGuinness","2021-03-05",[2815,1569,2704,2703],{"slug":17969,"featured":6,"template":736},"starting-from-the-start-slippers-design-system","content:en-us:blog:starting-from-the-start-slippers-design-system.yml","Starting From The Start Slippers Design System","en-us/blog/starting-from-the-start-slippers-design-system.yml","en-us/blog/starting-from-the-start-slippers-design-system",{"_path":17975,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17976,"content":17982,"config":17986,"_id":17988,"_type":16,"title":17989,"_source":17,"_file":17990,"_stem":17991,"_extension":20},"/en-us/blog/ajxchapman-ask-a-hacker",{"title":17977,"description":17978,"ogTitle":17977,"ogDescription":17978,"noIndex":6,"ogImage":17979,"ogUrl":17980,"ogSiteName":995,"ogType":996,"canonicalUrls":17980,"schema":17981},"Ask a hacker: ajxchapman","We talk with bug bounty hunter Alex Chapman about his favorite type of vulnerability to research and the one piece of security advice he’d offer to the company he hacks.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670926/Blog/Hero%20Images/bug-bounty-ask-a-hacker.png","https://about.gitlab.com/blog/ajxchapman-ask-a-hacker","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ask a hacker: ajxchapman\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-03-04\",\n      }",{"title":17977,"description":17978,"authors":17983,"heroImage":17979,"date":17984,"category":790,"tags":17985},[11324],"2021-03-04",[790,2483],{"slug":17987,"featured":6,"template":736},"ajxchapman-ask-a-hacker","content:en-us:blog:ajxchapman-ask-a-hacker.yml","Ajxchapman Ask A Hacker","en-us/blog/ajxchapman-ask-a-hacker.yml","en-us/blog/ajxchapman-ask-a-hacker",{"_path":17993,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":17994,"content":18000,"config":18003,"_id":18005,"_type":16,"title":18006,"_source":17,"_file":18007,"_stem":18008,"_extension":20},"/en-us/blog/considering-a-career-in-security",{"title":17995,"description":17996,"ogTitle":17995,"ogDescription":17996,"noIndex":6,"ogImage":17997,"ogUrl":17998,"ogSiteName":995,"ogType":996,"canonicalUrls":17998,"schema":17999},"Considering a career in security? Here’s some advice.","Eight team members from our Security department talk about what they've learned working in Tech and what advice they’d offer to someone considering a career in security.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670859/Blog/Hero%20Images/woctech-photo7.jpg","https://about.gitlab.com/blog/considering-a-career-in-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Considering a career in security? Here’s some advice.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-03-04\",\n      }",{"title":17995,"description":17996,"authors":18001,"heroImage":17997,"date":17984,"category":17170,"tags":18002},[11324],[790,1569],{"slug":18004,"featured":6,"template":736},"considering-a-career-in-security","content:en-us:blog:considering-a-career-in-security.yml","Considering A Career In Security","en-us/blog/considering-a-career-in-security.yml","en-us/blog/considering-a-career-in-security",{"_path":18010,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18011,"content":18016,"config":18020,"_id":18022,"_type":16,"title":18023,"_source":17,"_file":18024,"_stem":18025,"_extension":20},"/en-us/blog/gitlab-plans-to-de-identify-service-usage-data",{"title":18012,"description":18013,"ogTitle":18012,"ogDescription":18013,"noIndex":6,"ogImage":11046,"ogUrl":18014,"ogSiteName":995,"ogType":996,"canonicalUrls":18014,"schema":18015},"GitLab solicits input on its plans to de-identify service usage data","To better protect our users' data, we are building our own internal system that de-identifies userIDs and other personal information prior to being moved into our internal analytics environment.","https://about.gitlab.com/blog/gitlab-plans-to-de-identify-service-usage-data","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab solicits input on its plans to de-identify service usage data\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Keanon O’Keefe\"}],\n        \"datePublished\": \"2021-03-04\",\n      }",{"title":18012,"description":18013,"authors":18017,"heroImage":11046,"date":17984,"category":1049,"tags":18019},[18018],"Keanon O’Keefe",[1049],{"slug":18021,"featured":6,"template":736},"gitlab-plans-to-de-identify-service-usage-data","content:en-us:blog:gitlab-plans-to-de-identify-service-usage-data.yml","Gitlab Plans To De Identify Service Usage Data","en-us/blog/gitlab-plans-to-de-identify-service-usage-data.yml","en-us/blog/gitlab-plans-to-de-identify-service-usage-data",{"_path":18027,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18028,"content":18034,"config":18038,"_id":18040,"_type":16,"title":18041,"_source":17,"_file":18042,"_stem":18043,"_extension":20},"/en-us/blog/agile-for-remote-work",{"title":18029,"description":18030,"ogTitle":18029,"ogDescription":18030,"noIndex":6,"ogImage":18031,"ogUrl":18032,"ogSiteName":995,"ogType":996,"canonicalUrls":18032,"schema":18033},"How async and all-remote make Agile simpler","Engineers at GitLab and IssueTrak share their tips on adopting Agile while working remotely.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681930/Blog/Hero%20Images/runlanes.jpg","https://about.gitlab.com/blog/agile-for-remote-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How async and all-remote make Agile simpler\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-03-02\",\n      }",{"title":18029,"description":18030,"authors":18035,"heroImage":18031,"date":18036,"category":6121,"tags":18037},[16023],"2021-03-02",[729,3914,1569],{"slug":18039,"featured":6,"template":736},"agile-for-remote-work","content:en-us:blog:agile-for-remote-work.yml","Agile For Remote Work","en-us/blog/agile-for-remote-work.yml","en-us/blog/agile-for-remote-work",{"_path":18045,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18046,"content":18052,"config":18056,"_id":18058,"_type":16,"title":18059,"_source":17,"_file":18060,"_stem":18061,"_extension":20},"/en-us/blog/ceo-shadow-takeaways-from-barker",{"title":18047,"description":18048,"ogTitle":18047,"ogDescription":18048,"noIndex":6,"ogImage":18049,"ogUrl":18050,"ogSiteName":995,"ogType":996,"canonicalUrls":18050,"schema":18051},"CEO Shadow Takeaways From Barker","GitLab is going places because we are a strong team founded on GitLab CREDIT values.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684216/Blog/Hero%20Images/barker.jpg","https://about.gitlab.com/blog/ceo-shadow-takeaways-from-barker","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CEO Shadow Takeaways From Barker\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lauren Barker\"}],\n        \"datePublished\": \"2021-02-26\",\n      }",{"title":18047,"description":18048,"authors":18053,"heroImage":18049,"date":18055,"category":17170},[18054],"Lauren Barker","2021-02-26",{"slug":18057,"featured":6,"template":736},"ceo-shadow-takeaways-from-barker","content:en-us:blog:ceo-shadow-takeaways-from-barker.yml","Ceo Shadow Takeaways From Barker","en-us/blog/ceo-shadow-takeaways-from-barker.yml","en-us/blog/ceo-shadow-takeaways-from-barker",{"_path":18063,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18064,"content":18069,"config":18073,"_id":18075,"_type":16,"title":18076,"_source":17,"_file":18077,"_stem":18078,"_extension":20},"/en-us/blog/gitlab-gke-autopilot",{"title":18065,"description":18066,"ogTitle":18065,"ogDescription":18066,"noIndex":6,"ogImage":12173,"ogUrl":18067,"ogSiteName":995,"ogType":996,"canonicalUrls":18067,"schema":18068},"How to use GitLab with GKE Autopilot","GitLab works out of the box with the new GKE Autopilot from Google Cloud, a managed variant of the popular Google Kubernetes Engine.","https://about.gitlab.com/blog/gitlab-gke-autopilot","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab with GKE Autopilot\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2021-02-24\",\n      }",{"title":18065,"description":18066,"authors":18070,"heroImage":12173,"date":18071,"category":1049,"tags":18072},[3181],"2021-02-24",[2908,3346,1730,233],{"slug":18074,"featured":6,"template":736},"gitlab-gke-autopilot","content:en-us:blog:gitlab-gke-autopilot.yml","Gitlab Gke Autopilot","en-us/blog/gitlab-gke-autopilot.yml","en-us/blog/gitlab-gke-autopilot",{"_path":18080,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18081,"content":18086,"config":18090,"_id":18092,"_type":16,"title":18093,"_source":17,"_file":18094,"_stem":18095,"_extension":20},"/en-us/blog/production-grade-infra-devsecops-with-five-minute-production",{"title":18082,"description":18083,"ogTitle":18082,"ogDescription":18083,"noIndex":6,"ogImage":16503,"ogUrl":18084,"ogSiteName":995,"ogType":996,"canonicalUrls":18084,"schema":18085},"GitOps & DevSecOps for production infrastructure in minutes","Unlock production-grade infrastructure and development workflows in under five minutes with Five Minute Production App: a blend of solutions offered by AWS, Hashicorp Terraform, and GitLab.","https://about.gitlab.com/blog/production-grade-infra-devsecops-with-five-minute-production","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Production-grade infrastructure, GitOps convergence, and DevSecOps in under 5 minutes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sri Rangan\"}],\n        \"datePublished\": \"2021-02-24\",\n      }",{"title":18087,"description":18083,"authors":18088,"heroImage":16503,"date":18071,"category":858,"tags":18089},"Production-grade infrastructure, GitOps convergence, and DevSecOps in under 5 minutes",[11269],[2097,2098,564,582,559,6376],{"slug":18091,"featured":6,"template":736},"production-grade-infra-devsecops-with-five-minute-production","content:en-us:blog:production-grade-infra-devsecops-with-five-minute-production.yml","Production Grade Infra Devsecops With Five Minute Production","en-us/blog/production-grade-infra-devsecops-with-five-minute-production.yml","en-us/blog/production-grade-infra-devsecops-with-five-minute-production",{"_path":18097,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18098,"content":18104,"config":18108,"_id":18110,"_type":16,"title":18111,"_source":17,"_file":18112,"_stem":18113,"_extension":20},"/en-us/blog/continuously-improving-ci-lovability",{"title":18099,"description":18100,"ogTitle":18099,"ogDescription":18100,"noIndex":6,"ogImage":18101,"ogUrl":18102,"ogSiteName":995,"ogType":996,"canonicalUrls":18102,"schema":18103},"Continuously Improving CI to Lovable...again!","A transparent commentary on our Verify:Continuous Integration offering, covering how the landscape has changed and the product strategy that will carry us to Lovable.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681907/Blog/Hero%20Images/CI-lovable.jpg","https://about.gitlab.com/blog/continuously-improving-ci-lovability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Continuously Improving CI to Lovable...again!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jackie Porter\"}],\n        \"datePublished\": \"2021-02-22\",\n      }",{"title":18099,"description":18100,"authors":18105,"heroImage":18101,"date":18106,"category":17170,"tags":18107},[3324],"2021-02-22",[2097,2703,730],{"slug":18109,"featured":6,"template":736},"continuously-improving-ci-lovability","content:en-us:blog:continuously-improving-ci-lovability.yml","Continuously Improving Ci Lovability","en-us/blog/continuously-improving-ci-lovability.yml","en-us/blog/continuously-improving-ci-lovability",{"_path":18115,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18116,"content":18121,"config":18124,"_id":18126,"_type":16,"title":18127,"_source":17,"_file":18128,"_stem":18129,"_extension":20},"/en-us/blog/gitlab-kubernetes-agent-on-gitlab-com",{"title":18117,"description":18118,"ogTitle":18117,"ogDescription":18118,"noIndex":6,"ogImage":12173,"ogUrl":18119,"ogSiteName":995,"ogType":996,"canonicalUrls":18119,"schema":18120},"A new era of Kubernetes integrations on GitLab.com","The GitLab Agent for Kubernetes enables secure deployments from GitLab SaaS to your Kubernetes cluster and provides deep integrations of your cluster to GitLab.","https://about.gitlab.com/blog/gitlab-kubernetes-agent-on-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A new era of Kubernetes integrations on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2021-02-22\",\n      }",{"title":18117,"description":18118,"authors":18122,"heroImage":12173,"date":18106,"category":1049,"tags":18123},[2942],[2908,1195,1569],{"slug":18125,"featured":6,"template":736},"gitlab-kubernetes-agent-on-gitlab-com","content:en-us:blog:gitlab-kubernetes-agent-on-gitlab-com.yml","Gitlab Kubernetes Agent On Gitlab Com","en-us/blog/gitlab-kubernetes-agent-on-gitlab-com.yml","en-us/blog/gitlab-kubernetes-agent-on-gitlab-com",{"_path":18131,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18132,"content":18138,"config":18141,"_id":18143,"_type":16,"title":18144,"_source":17,"_file":18145,"_stem":18146,"_extension":20},"/en-us/blog/pipeline-editor-overview",{"title":18133,"description":18134,"ogTitle":18133,"ogDescription":18134,"noIndex":6,"ogImage":18135,"ogUrl":18136,"ogSiteName":995,"ogType":996,"canonicalUrls":18136,"schema":18137},"Meet Pipeline Editor, your one-stop shop for building a CI/CD pipeline","The Pipeline Editor reduces the complexity of configuring your CI/CD pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665961/Blog/Hero%20Images/image_cover.jpg","https://about.gitlab.com/blog/pipeline-editor-overview","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet Pipeline Editor, your one-stop shop for building a CI/CD pipeline\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2021-02-22\",\n      }",{"title":18133,"description":18134,"authors":18139,"heroImage":18135,"date":18106,"category":858,"tags":18140},[1712],[2097,2098,564,730],{"slug":18142,"featured":6,"template":736},"pipeline-editor-overview","content:en-us:blog:pipeline-editor-overview.yml","Pipeline Editor Overview","en-us/blog/pipeline-editor-overview.yml","en-us/blog/pipeline-editor-overview",{"_path":18148,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18149,"content":18154,"config":18159,"_id":18161,"_type":16,"title":18162,"_source":17,"_file":18163,"_stem":18164,"_extension":20},"/en-us/blog/manager-training",{"title":18150,"description":18151,"ogTitle":18150,"ogDescription":18151,"noIndex":6,"ogImage":17164,"ogUrl":18152,"ogSiteName":995,"ogType":996,"canonicalUrls":18152,"schema":18153},"Building an All-Remote Management Enablement Program","How to build an all-remote management training & enablement program for the future of work.","https://about.gitlab.com/blog/manager-training","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building an All-Remote Management Enablement Program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Josh Zimmerman\"}],\n        \"datePublished\": \"2021-02-19\",\n      }",{"title":18150,"description":18151,"authors":18155,"heroImage":17164,"date":18157,"category":17170,"tags":18158},[18156],"Josh Zimmerman","2021-02-19",[3914,1569,2815],{"slug":18160,"featured":6,"template":736},"manager-training","content:en-us:blog:manager-training.yml","Manager Training","en-us/blog/manager-training.yml","en-us/blog/manager-training",{"_path":18166,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18167,"content":18172,"config":18175,"_id":18177,"_type":16,"title":18178,"_source":17,"_file":18179,"_stem":18180,"_extension":20},"/en-us/blog/secure-composition-analysis-bug-not-updating-database",{"title":18168,"description":18169,"ogTitle":18168,"ogDescription":18169,"noIndex":6,"ogImage":11046,"ogUrl":18170,"ogSiteName":995,"ogType":996,"canonicalUrls":18170,"schema":18171},"Bug found and resolved in Dependency Scanning","Some customers will need to take specific action to manually update their Dependency Scanning image to receive a bug fix.","https://about.gitlab.com/blog/secure-composition-analysis-bug-not-updating-database","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Bug found and resolved in Dependency Scanning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nicole Schwartz\"}],\n        \"datePublished\": \"2021-02-19\",\n      }",{"title":18168,"description":18169,"authors":18173,"heroImage":11046,"date":18157,"category":17170,"tags":18174},[13825],[730,790,771],{"slug":18176,"featured":6,"template":736},"secure-composition-analysis-bug-not-updating-database","content:en-us:blog:secure-composition-analysis-bug-not-updating-database.yml","Secure Composition Analysis Bug Not Updating Database","en-us/blog/secure-composition-analysis-bug-not-updating-database.yml","en-us/blog/secure-composition-analysis-bug-not-updating-database",{"_path":18182,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18183,"content":18188,"config":18193,"_id":18195,"_type":16,"title":18196,"_source":17,"_file":18197,"_stem":18198,"_extension":20},"/en-us/blog/crucial-conversations",{"title":18184,"description":18185,"ogTitle":18184,"ogDescription":18185,"noIndex":6,"ogImage":17164,"ogUrl":18186,"ogSiteName":995,"ogType":996,"canonicalUrls":18186,"schema":18187},"Having crucial conversations on an all-remote team","Exploring crucial conversations and the way they fit into our values here at GitLab.","https://about.gitlab.com/blog/crucial-conversations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Having crucial conversations on an all-remote team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Samantha Lee\"}],\n        \"datePublished\": \"2021-02-18\",\n      }",{"title":18184,"description":18185,"authors":18189,"heroImage":17164,"date":18191,"category":17170,"tags":18192},[18190],"Samantha Lee","2021-02-18",[3914,2815,1569],{"slug":18194,"featured":6,"template":736},"crucial-conversations","content:en-us:blog:crucial-conversations.yml","Crucial Conversations","en-us/blog/crucial-conversations.yml","en-us/blog/crucial-conversations",{"_path":18200,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18201,"content":18206,"config":18209,"_id":18211,"_type":16,"title":18212,"_source":17,"_file":18213,"_stem":18214,"_extension":20},"/en-us/blog/giving-receiving-feedback",{"title":18202,"description":18203,"ogTitle":18202,"ogDescription":18203,"noIndex":6,"ogImage":15430,"ogUrl":18204,"ogSiteName":995,"ogType":996,"canonicalUrls":18204,"schema":18205},"Giving & Receiving Feedback","Giving and receiving feedback at GitLab","https://about.gitlab.com/blog/giving-receiving-feedback","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Giving & Receiving Feedback\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Shane Rice\"},{\"@type\":\"Person\",\"name\":\"Lauren Barker\"}],\n        \"datePublished\": \"2021-02-18\",\n      }",{"title":18202,"description":18203,"authors":18207,"heroImage":15430,"date":18191,"category":17170},[18208,18054],"Shane Rice",{"slug":18210,"featured":6,"template":736},"giving-receiving-feedback","content:en-us:blog:giving-receiving-feedback.yml","Giving Receiving Feedback","en-us/blog/giving-receiving-feedback.yml","en-us/blog/giving-receiving-feedback",{"_path":18216,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18217,"content":18223,"config":18227,"_id":18229,"_type":16,"title":18230,"_source":17,"_file":18231,"_stem":18232,"_extension":20},"/en-us/blog/improve-your-gitlab-productivity-with-these-10-tips",{"title":18218,"description":18219,"ogTitle":18218,"ogDescription":18219,"noIndex":6,"ogImage":18220,"ogUrl":18221,"ogSiteName":995,"ogType":996,"canonicalUrls":18221,"schema":18222},"10 tips to make you a productive GitLab user","Learn how quick actions can make you a more efficient GitLab user.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666717/Blog/Hero%20Images/cover-image.jpg","https://about.gitlab.com/blog/improve-your-gitlab-productivity-with-these-10-tips","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"10 tips to make you a productive GitLab user\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"},{\"@type\":\"Person\",\"name\":\"Roman Kuba\"}],\n        \"datePublished\": \"2021-02-18\",\n      }",{"title":18218,"description":18219,"authors":18224,"heroImage":18220,"date":18191,"category":858,"tags":18226},[1424,18225],"Roman Kuba",[1335,2815,1569],{"slug":18228,"featured":6,"template":736},"improve-your-gitlab-productivity-with-these-10-tips","content:en-us:blog:improve-your-gitlab-productivity-with-these-10-tips.yml","Improve Your Gitlab Productivity With These 10 Tips","en-us/blog/improve-your-gitlab-productivity-with-these-10-tips.yml","en-us/blog/improve-your-gitlab-productivity-with-these-10-tips",{"_path":18234,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18235,"content":18240,"config":18244,"_id":18246,"_type":16,"title":18247,"_source":17,"_file":18248,"_stem":18249,"_extension":20},"/en-us/blog/kali-linux-movingtogitlab",{"title":18236,"description":18237,"ogTitle":18236,"ogDescription":18237,"noIndex":6,"ogImage":17750,"ogUrl":18238,"ogSiteName":995,"ogType":996,"canonicalUrls":18238,"schema":18239},"Kali Linux: Growing Community Contributions with GitLab","Since moving to GitLab in 2019, Kali Linux has gone from company-only contributions to a growing number of community contributions.","https://about.gitlab.com/blog/kali-linux-movingtogitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab helped Kali Linux attract a growing number of community contributions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nuritzi Sanchez\"}],\n        \"datePublished\": \"2021-02-18\",\n      }",{"title":18241,"description":18237,"authors":18242,"heroImage":17750,"date":18191,"category":1388,"tags":18243},"How GitLab helped Kali Linux attract a growing number of community contributions",[17560],[1265,269,4665],{"slug":18245,"featured":6,"template":736},"kali-linux-movingtogitlab","content:en-us:blog:kali-linux-movingtogitlab.yml","Kali Linux Movingtogitlab","en-us/blog/kali-linux-movingtogitlab.yml","en-us/blog/kali-linux-movingtogitlab",{"_path":18251,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18252,"content":18257,"config":18261,"_id":18263,"_type":16,"title":18264,"_source":17,"_file":18265,"_stem":18266,"_extension":20},"/en-us/blog/masked-variable-vulnerability-in-runner-ver-13-9-0-rc1",{"title":18253,"description":18254,"ogTitle":18253,"ogDescription":18254,"noIndex":6,"ogImage":13091,"ogUrl":18255,"ogSiteName":995,"ogType":996,"canonicalUrls":18255,"schema":18256},"Masked variable vulnerability in Runner version 13.9.0-rc1","How we responded to a masked variable vulnerability in GitLab Runner version 13.9.0-rc1 and actions users should take.","https://about.gitlab.com/blog/masked-variable-vulnerability-in-runner-ver-13-9-0-rc1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Masked variable vulnerability in Runner version 13.9.0-rc1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Matos\"}],\n        \"datePublished\": \"2021-02-18\",\n      }",{"title":18253,"description":18254,"authors":18258,"heroImage":13091,"date":18191,"category":790,"tags":18260},[18259],"Lee Matos",[790],{"slug":18262,"featured":6,"template":736},"masked-variable-vulnerability-in-runner-ver-13-9-0-rc1","content:en-us:blog:masked-variable-vulnerability-in-runner-ver-13-9-0-rc1.yml","Masked Variable Vulnerability In Runner Ver 13 9 0 Rc1","en-us/blog/masked-variable-vulnerability-in-runner-ver-13-9-0-rc1.yml","en-us/blog/masked-variable-vulnerability-in-runner-ver-13-9-0-rc1",{"_path":18268,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18269,"content":18275,"config":18280,"_id":18282,"_type":16,"title":18283,"_source":17,"_file":18284,"_stem":18285,"_extension":20},"/en-us/blog/considerations-for-going-hybrid-remote",{"title":18270,"description":18271,"ogTitle":18270,"ogDescription":18271,"noIndex":6,"ogImage":18272,"ogUrl":18273,"ogSiteName":995,"ogType":996,"canonicalUrls":18273,"schema":18274},"What to consider when going hybrid","Hybrid-remote is an alluring alternative to all-remote, but requires careful consideration. Here's what you need to know when making the shift.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681897/Blog/Hero%20Images/san_francisco_skyline_dm.jpg","https://about.gitlab.com/blog/considerations-for-going-hybrid-remote","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What to consider when going hybrid\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Murph\"}],\n        \"datePublished\": \"2021-02-17\",\n      }",{"title":18270,"description":18271,"authors":18276,"heroImage":18272,"date":18278,"category":6121,"tags":18279},[18277],"Darren Murph","2021-02-17",[3914,6980,4182],{"slug":18281,"featured":6,"template":736},"considerations-for-going-hybrid-remote","content:en-us:blog:considerations-for-going-hybrid-remote.yml","Considerations For Going Hybrid Remote","en-us/blog/considerations-for-going-hybrid-remote.yml","en-us/blog/considerations-for-going-hybrid-remote",{"_path":18287,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18288,"content":18293,"config":18297,"_id":18299,"_type":16,"title":18300,"_source":17,"_file":18301,"_stem":18302,"_extension":20},"/en-us/blog/measuring-the-value-of-our-design-system",{"title":18289,"description":18290,"ogTitle":18289,"ogDescription":18290,"noIndex":6,"ogImage":17853,"ogUrl":18291,"ogSiteName":995,"ogType":996,"canonicalUrls":18291,"schema":18292},"Measuring the value of our design system","As our design system matures over the years, we are tracking how useful it is to our product teams.","https://about.gitlab.com/blog/measuring-the-value-of-our-design-system","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Measuring the value of our design system\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2021-02-16\",\n      }",{"title":18289,"description":18290,"authors":18294,"heroImage":17853,"date":18296,"category":17170},[18295],"Taurie Davis","2021-02-16",{"slug":18298,"featured":6,"template":736},"measuring-the-value-of-our-design-system","content:en-us:blog:measuring-the-value-of-our-design-system.yml","Measuring The Value Of Our Design System","en-us/blog/measuring-the-value-of-our-design-system.yml","en-us/blog/measuring-the-value-of-our-design-system",{"_path":18304,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18305,"content":18311,"config":18316,"_id":18318,"_type":16,"title":18319,"_source":17,"_file":18320,"_stem":18321,"_extension":20},"/en-us/blog/interesting-things-ux-is-working-on-february-2021",{"title":18306,"description":18307,"ogTitle":18306,"ogDescription":18307,"noIndex":6,"ogImage":18308,"ogUrl":18309,"ogSiteName":995,"ogType":996,"canonicalUrls":18309,"schema":18310},"Interesting things UX is working on - February 2021","Take a look at some of the design work we've got in process","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679569/Blog/Hero%20Images/med-badr-chemmaoui-ZSPBhokqDMc-unsplash.jpg","https://about.gitlab.com/blog/interesting-things-ux-is-working-on-february-2021","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Interesting things UX is working on - February 2021\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christie Lenneville\"}],\n        \"datePublished\": \"2021-02-12\",\n      }",{"title":18306,"description":18307,"authors":18312,"heroImage":18308,"date":18314,"category":17170,"tags":18315},[18313],"Christie Lenneville","2021-02-12",[2702,2704,2703],{"slug":18317,"featured":6,"template":736},"interesting-things-ux-is-working-on-february-2021","content:en-us:blog:interesting-things-ux-is-working-on-february-2021.yml","Interesting Things Ux Is Working On February 2021","en-us/blog/interesting-things-ux-is-working-on-february-2021.yml","en-us/blog/interesting-things-ux-is-working-on-february-2021",{"_path":18323,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18324,"content":18329,"config":18332,"_id":18334,"_type":16,"title":18335,"_source":17,"_file":18336,"_stem":18337,"_extension":20},"/en-us/blog/little-things-make-a-difference",{"title":18325,"description":18326,"ogTitle":18325,"ogDescription":18326,"noIndex":6,"ogImage":8754,"ogUrl":18327,"ogSiteName":995,"ogType":996,"canonicalUrls":18327,"schema":18328},"Little things make a difference","Let's celebrate the small UI refinements that add up to create a big impact","https://about.gitlab.com/blog/little-things-make-a-difference","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Little things make a difference\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christie Lenneville\"}],\n        \"datePublished\": \"2021-02-12\",\n      }",{"title":18325,"description":18326,"authors":18330,"heroImage":8754,"date":18314,"category":17170,"tags":18331},[18313],[2097,771],{"slug":18333,"featured":6,"template":736},"little-things-make-a-difference","content:en-us:blog:little-things-make-a-difference.yml","Little Things Make A Difference","en-us/blog/little-things-make-a-difference.yml","en-us/blog/little-things-make-a-difference",{"_path":18339,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18340,"content":18346,"config":18349,"_id":18351,"_type":16,"title":18352,"_source":17,"_file":18353,"_stem":18354,"_extension":20},"/en-us/blog/redesigning-our-docs",{"title":18341,"description":18342,"ogTitle":18341,"ogDescription":18342,"noIndex":6,"ogImage":18343,"ogUrl":18344,"ogSiteName":995,"ogType":996,"canonicalUrls":18344,"schema":18345},"Redesigning the GitLab docs","We're working on improving our documentation site usability and discoverability. Check out what's changed and get a sneak peek at the refinements coming to docs.gitlab.com.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670050/Blog/Hero%20Images/homepage-cover-image.png","https://about.gitlab.com/blog/redesigning-our-docs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Redesigning the GitLab docs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Susan Tacker\"},{\"@type\":\"Person\",\"name\":\"Christie Lenneville\"}],\n        \"datePublished\": \"2021-02-12\",\n      }",{"title":18341,"description":18342,"authors":18347,"heroImage":18343,"date":18314,"category":1049,"tags":18348},[11232,18313],[2702,2025,2703],{"slug":18350,"featured":6,"template":736},"redesigning-our-docs","content:en-us:blog:redesigning-our-docs.yml","Redesigning Our Docs","en-us/blog/redesigning-our-docs.yml","en-us/blog/redesigning-our-docs",{"_path":18356,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18357,"content":18363,"config":18367,"_id":18369,"_type":16,"title":18370,"_source":17,"_file":18371,"_stem":18372,"_extension":20},"/en-us/blog/engineering-teams-collaborating-remotely",{"title":18358,"description":18359,"ogTitle":18358,"ogDescription":18359,"noIndex":6,"ogImage":18360,"ogUrl":18361,"ogSiteName":995,"ogType":996,"canonicalUrls":18361,"schema":18362},"How to carry out remote work team collaboration","Some tips for successful asynchronous collaboration from all-remote engineering teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681893/Blog/Hero%20Images/remoteengineering.jpg","https://about.gitlab.com/blog/engineering-teams-collaborating-remotely","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to carry out remote work team collaboration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-02-09\",\n      }",{"title":18358,"description":18359,"authors":18364,"heroImage":18360,"date":18365,"category":858,"tags":18366},[16023],"2021-02-09",[3914,2815],{"slug":18368,"featured":6,"template":736},"engineering-teams-collaborating-remotely","content:en-us:blog:engineering-teams-collaborating-remotely.yml","Engineering Teams Collaborating Remotely","en-us/blog/engineering-teams-collaborating-remotely.yml","en-us/blog/engineering-teams-collaborating-remotely",{"_path":18374,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18375,"content":18380,"config":18384,"_id":18386,"_type":16,"title":18387,"_source":17,"_file":18388,"_stem":18389,"_extension":20},"/en-us/blog/composition-analysis-14-deprecations-and-removals",{"title":18376,"description":18377,"ogTitle":18376,"ogDescription":18377,"noIndex":6,"ogImage":11046,"ogUrl":18378,"ogSiteName":995,"ogType":996,"canonicalUrls":18378,"schema":18379},"Secure Composition Analysis 14.0 deprecations and removals","A review of the deprecations and removals in 14.0 for the Secure Composition Analysis group.","https://about.gitlab.com/blog/composition-analysis-14-deprecations-and-removals","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure Composition Analysis 14.0 deprecations and removals\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nicole Schwartz\"}],\n        \"datePublished\": \"2021-02-08\",\n      }",{"title":18376,"description":18377,"authors":18381,"heroImage":11046,"date":18382,"category":17170,"tags":18383},[13825],"2021-02-08",[730,790],{"slug":18385,"featured":6,"template":736},"composition-analysis-14-deprecations-and-removals","content:en-us:blog:composition-analysis-14-deprecations-and-removals.yml","Composition Analysis 14 Deprecations And Removals","en-us/blog/composition-analysis-14-deprecations-and-removals.yml","en-us/blog/composition-analysis-14-deprecations-and-removals",{"_path":18391,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18392,"content":18398,"config":18401,"_id":18403,"_type":16,"title":18404,"_source":17,"_file":18405,"_stem":18406,"_extension":20},"/en-us/blog/q42020-hackathon-recap",{"title":18393,"description":18394,"ogTitle":18393,"ogDescription":18394,"noIndex":6,"ogImage":18395,"ogUrl":18396,"ogSiteName":995,"ogType":996,"canonicalUrls":18396,"schema":18397},"What happened at the Q4'2020 GitLab Hackathon","Here's a recap of GitLab community accomplishments during the Hackathon on Jan 6-7th of 2021.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663430/Blog/Hero%20Images/2018-09-13-gitlab-hackathon-cover.jpg","https://about.gitlab.com/blog/q42020-hackathon-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What happened at the Q4'2020 GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christos Bacharakis\"}],\n        \"datePublished\": \"2021-02-08\",\n      }",{"title":18393,"description":18394,"authors":18399,"heroImage":18395,"date":18382,"category":1388,"tags":18400},[15885],[269,2815,1265],{"slug":18402,"featured":6,"template":736},"q42020-hackathon-recap","content:en-us:blog:q42020-hackathon-recap.yml","Q42020 Hackathon Recap","en-us/blog/q42020-hackathon-recap.yml","en-us/blog/q42020-hackathon-recap",{"_path":18408,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18409,"content":18415,"config":18420,"_id":18422,"_type":16,"title":18423,"_source":17,"_file":18424,"_stem":18425,"_extension":20},"/en-us/blog/ci-deployment-and-environments",{"title":18410,"description":18411,"ogTitle":18410,"ogDescription":18411,"noIndex":6,"ogImage":18412,"ogUrl":18413,"ogSiteName":995,"ogType":996,"canonicalUrls":18413,"schema":18414},"How to use GitLab CI to deploy to multiple environments","We walk you through different scenarios to demonstrate the versatility and power of GitLab CI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662033/Blog/Hero%20Images/intro.jpg","https://about.gitlab.com/blog/ci-deployment-and-environments","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab CI to deploy to multiple environments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ivan Nemytchenko\"},{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2021-02-05\",\n      }",{"title":18410,"description":18411,"authors":18416,"heroImage":18412,"date":18418,"category":858,"tags":18419,"updatedDate":5001},[18417,767],"Ivan Nemytchenko","2021-02-05",[2097,2098,772],{"slug":18421,"featured":6,"template":736},"ci-deployment-and-environments","content:en-us:blog:ci-deployment-and-environments.yml","Ci Deployment And Environments","en-us/blog/ci-deployment-and-environments.yml","en-us/blog/ci-deployment-and-environments",{"_path":18427,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18428,"content":18433,"config":18437,"_id":18439,"_type":16,"title":18440,"_source":17,"_file":18441,"_stem":18442,"_extension":20},"/en-us/blog/remote-pair-programming-tips",{"title":18429,"description":18430,"ogTitle":18429,"ogDescription":18430,"noIndex":6,"ogImage":13588,"ogUrl":18431,"ogSiteName":995,"ogType":996,"canonicalUrls":18431,"schema":18432},"4 tips for agile remote pair programming","Pair programming is great for remote collaboration. Our remote pairing enthusiasts share how to make the most of it.","https://about.gitlab.com/blog/remote-pair-programming-tips","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 tips for agile remote pair programming\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2021-02-04\",\n      }",{"title":18429,"description":18430,"authors":18434,"heroImage":13588,"date":18435,"category":6121,"tags":18436},[17684],"2021-02-04",[2815,3914],{"slug":18438,"featured":6,"template":736},"remote-pair-programming-tips","content:en-us:blog:remote-pair-programming-tips.yml","Remote Pair Programming Tips","en-us/blog/remote-pair-programming-tips.yml","en-us/blog/remote-pair-programming-tips",{"_path":18444,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18445,"content":18451,"config":18456,"_id":18458,"_type":16,"title":18459,"_source":17,"_file":18460,"_stem":18461,"_extension":20},"/en-us/blog/how-we-automatically-fixed-hundreds-of-ruby-2-7-deprecation-warnings",{"title":18446,"description":18447,"ogTitle":18446,"ogDescription":18447,"noIndex":6,"ogImage":18448,"ogUrl":18449,"ogSiteName":995,"ogType":996,"canonicalUrls":18449,"schema":18450},"How we automatically fixed thousands of Ruby 2.7 deprecation warnings","The upgrade to Ruby 2.7 for GitLab involved thousands of deprecation warnings across hundreds of files. Here's how we fixed most of them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681882/Blog/Hero%20Images/daria-nepriakhina-zNU3ErDAbAw-unsplash.jpg","https://about.gitlab.com/blog/how-we-automatically-fixed-hundreds-of-ruby-2-7-deprecation-warnings","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we automatically fixed thousands of Ruby 2.7 deprecation warnings\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Thong Kuah\"}],\n        \"datePublished\": \"2021-02-03\",\n      }",{"title":18446,"description":18447,"authors":18452,"heroImage":18448,"date":18454,"category":858,"tags":18455},[18453],"Thong Kuah","2021-02-03",[1265],{"slug":18457,"featured":6,"template":736},"how-we-automatically-fixed-hundreds-of-ruby-2-7-deprecation-warnings","content:en-us:blog:how-we-automatically-fixed-hundreds-of-ruby-2-7-deprecation-warnings.yml","How We Automatically Fixed Hundreds Of Ruby 2 7 Deprecation Warnings","en-us/blog/how-we-automatically-fixed-hundreds-of-ruby-2-7-deprecation-warnings.yml","en-us/blog/how-we-automatically-fixed-hundreds-of-ruby-2-7-deprecation-warnings",{"_path":18463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18464,"content":18469,"config":18473,"_id":18475,"_type":16,"title":18476,"_source":17,"_file":18477,"_stem":18478,"_extension":20},"/en-us/blog/tips-for-managing-engineering-teams-remotely",{"title":18465,"description":18466,"ogTitle":18465,"ogDescription":18466,"noIndex":6,"ogImage":14828,"ogUrl":18467,"ogSiteName":995,"ogType":996,"canonicalUrls":18467,"schema":18468},"Tips for managing remote working engineering teams","Newly remote engineering managers – how's it going? We offer some tips from our team members who manage remotely.","https://about.gitlab.com/blog/tips-for-managing-engineering-teams-remotely","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tips for managing remote working engineering teams\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-01-29\",\n      }",{"title":18465,"description":18466,"authors":18470,"heroImage":14828,"date":18471,"category":6121,"tags":18472},[16023],"2021-01-29",[3914],{"slug":18474,"featured":6,"template":736},"tips-for-managing-engineering-teams-remotely","content:en-us:blog:tips-for-managing-engineering-teams-remotely.yml","Tips For Managing Engineering Teams Remotely","en-us/blog/tips-for-managing-engineering-teams-remotely.yml","en-us/blog/tips-for-managing-engineering-teams-remotely",{"_path":18480,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18481,"content":18487,"config":18490,"_id":18492,"_type":16,"title":18493,"_source":17,"_file":18494,"_stem":18495,"_extension":20},"/en-us/blog/you-asked-and-our-red-team-answered",{"title":18482,"description":18483,"ogTitle":18482,"ogDescription":18483,"noIndex":6,"ogImage":18484,"ogUrl":18485,"ogSiteName":995,"ogType":996,"canonicalUrls":18485,"schema":18486},"You asked, and our Red Team answered","We held a public, ask me anything with our Red Team. Here’s what people asked.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670889/Blog/Hero%20Images/security-ama-blog-header.png","https://about.gitlab.com/blog/you-asked-and-our-red-team-answered","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"You asked, and our Red Team answered\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-01-29\",\n      }",{"title":18482,"description":18483,"authors":18488,"heroImage":18484,"date":18471,"category":17170,"tags":18489},[11324],[790,3292,1569],{"slug":18491,"featured":6,"template":736},"you-asked-and-our-red-team-answered","content:en-us:blog:you-asked-and-our-red-team-answered.yml","You Asked And Our Red Team Answered","en-us/blog/you-asked-and-our-red-team-answered.yml","en-us/blog/you-asked-and-our-red-team-answered",{"_path":18497,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18498,"content":18503,"config":18507,"_id":18509,"_type":16,"title":18510,"_source":17,"_file":18511,"_stem":18512,"_extension":20},"/en-us/blog/we-need-to-talk-no-proxy",{"title":18499,"description":18500,"ogTitle":18499,"ogDescription":18500,"noIndex":6,"ogImage":3624,"ogUrl":18501,"ogSiteName":995,"ogType":996,"canonicalUrls":18501,"schema":18502},"We need to talk: Can we standardize NO_PROXY?","Subtle differences in proxy setting implementations led to surprising\nproblems for a GitLab customer. Here's how we got to the root of it.","https://about.gitlab.com/blog/we-need-to-talk-no-proxy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We need to talk: Can we standardize NO_PROXY?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stan Hu\"}],\n        \"datePublished\": \"2021-01-27\",\n      }",{"title":18499,"description":18500,"authors":18504,"heroImage":3624,"date":18505,"updatedDate":1950,"category":858,"tags":18506},[1598],"2021-01-27",[269,6980,4665,10011],{"slug":18508,"featured":6,"template":736},"we-need-to-talk-no-proxy","content:en-us:blog:we-need-to-talk-no-proxy.yml","We Need To Talk No Proxy","en-us/blog/we-need-to-talk-no-proxy.yml","en-us/blog/we-need-to-talk-no-proxy",{"_path":18514,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18515,"content":18520,"config":18524,"_id":18526,"_type":16,"title":18527,"_source":17,"_file":18528,"_stem":18529,"_extension":20},"/en-us/blog/new-gitlab-product-subscription-model",{"title":18516,"description":18517,"ogTitle":18516,"ogDescription":18517,"noIndex":6,"ogImage":11046,"ogUrl":18518,"ogSiteName":995,"ogType":996,"canonicalUrls":18518,"schema":18519},"GitLab is moving to a three-tier product subscription model","Bronze/Starter is being phased out and current customers have over a year to transition.","https://about.gitlab.com/blog/new-gitlab-product-subscription-model","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is moving to a three-tier product subscription model\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2021-01-26\",\n      }",{"title":18516,"description":18517,"authors":18521,"heroImage":11046,"date":18522,"category":1049,"tags":18523},[3701],"2021-01-26",[1049],{"slug":18525,"featured":6,"template":736},"new-gitlab-product-subscription-model","content:en-us:blog:new-gitlab-product-subscription-model.yml","New Gitlab Product Subscription Model","en-us/blog/new-gitlab-product-subscription-model.yml","en-us/blog/new-gitlab-product-subscription-model",{"_path":18531,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18532,"content":18537,"config":18541,"_id":18543,"_type":16,"title":18544,"_source":17,"_file":18545,"_stem":18546,"_extension":20},"/en-us/blog/mr-reviews-with-vs-code",{"title":18533,"description":18534,"ogTitle":18533,"ogDescription":18534,"noIndex":6,"ogImage":10957,"ogUrl":18535,"ogSiteName":995,"ogType":996,"canonicalUrls":18535,"schema":18536},"How to do GitLab merge request reviews in VS Code","Code review is critical to modern software development. We're making it easier by bringing merge request reviews right into VS Code.","https://about.gitlab.com/blog/mr-reviews-with-vs-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to do GitLab merge request reviews in VS Code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tomas Vik\"}],\n        \"datePublished\": \"2021-01-25\",\n      }",{"title":18533,"description":18534,"authors":18538,"heroImage":10957,"date":18539,"category":858,"tags":18540},[15238],"2021-01-25",[1932,233,772],{"slug":18542,"featured":6,"template":736},"mr-reviews-with-vs-code","content:en-us:blog:mr-reviews-with-vs-code.yml","Mr Reviews With Vs Code","en-us/blog/mr-reviews-with-vs-code.yml","en-us/blog/mr-reviews-with-vs-code",{"_path":18548,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18549,"content":18555,"config":18559,"_id":18561,"_type":16,"title":18562,"_source":17,"_file":18563,"_stem":18564,"_extension":20},"/en-us/blog/cd-automated-integrated",{"title":18550,"description":18551,"ogTitle":18550,"ogDescription":18551,"noIndex":6,"ogImage":18552,"ogUrl":18553,"ogSiteName":995,"ogType":996,"canonicalUrls":18553,"schema":18554},"GitLab’s automated and integrated continuous delivery","Learn about how the power of GitLab Auto DevOps can help increase productivity and speed up releases.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681872/Blog/Hero%20Images/CD-2st-mkt-diff-cover-1275x849.jpg","https://about.gitlab.com/blog/cd-automated-integrated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s automated and integrated continuous delivery\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2021-01-22\",\n      }",{"title":18550,"description":18551,"authors":18556,"heroImage":18552,"date":18557,"category":17170,"tags":18558},[767],"2021-01-22",[2098,564,4182],{"slug":18560,"featured":6,"template":736},"cd-automated-integrated","content:en-us:blog:cd-automated-integrated.yml","Cd Automated Integrated","en-us/blog/cd-automated-integrated.yml","en-us/blog/cd-automated-integrated",{"_path":18566,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18567,"content":18573,"config":18578,"_id":18580,"_type":16,"title":18581,"_source":17,"_file":18582,"_stem":18583,"_extension":20},"/en-us/blog/high-availability-git-storage-with-praefect",{"title":18568,"description":18569,"ogTitle":18568,"ogDescription":18569,"noIndex":6,"ogImage":18570,"ogUrl":18571,"ogSiteName":995,"ogType":996,"canonicalUrls":18571,"schema":18572},"Meet Praefect: The traffic manager making your Git data highly available","This router and transaction manager ensures there are multiple copies of each Git repository available in the event of an outage – no NFS required.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669204/Blog/Hero%20Images/traffic-intersection.jpg","https://about.gitlab.com/blog/high-availability-git-storage-with-praefect","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet Praefect: The traffic manager making your Git data highly available\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Zeger-Jan van de Weg\"}],\n        \"datePublished\": \"2021-01-21\",\n      }",{"title":18568,"description":18569,"authors":18574,"heroImage":18570,"date":18576,"category":858,"tags":18577},[18575],"Zeger-Jan van de Weg","2021-01-21",[964,1195,1569,233,1265],{"slug":18579,"featured":6,"template":736},"high-availability-git-storage-with-praefect","content:en-us:blog:high-availability-git-storage-with-praefect.yml","High Availability Git Storage With Praefect","en-us/blog/high-availability-git-storage-with-praefect.yml","en-us/blog/high-availability-git-storage-with-praefect",{"_path":18585,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18586,"content":18591,"config":18595,"_id":18597,"_type":16,"title":18598,"_source":17,"_file":18599,"_stem":18600,"_extension":20},"/en-us/blog/how-to-read-open-source-finding-middleman-callbacks",{"title":18587,"description":18588,"ogTitle":18587,"ogDescription":18588,"noIndex":6,"ogImage":17164,"ogUrl":18589,"ogSiteName":995,"ogType":996,"canonicalUrls":18589,"schema":18590},"How to Read Open Source: Finding Middleman Callbacks","Open source empowers you to learn beyond existing documentation. Getting started can be confusing. This is a demonstration finding unlisted Middleman callbacks.","https://about.gitlab.com/blog/how-to-read-open-source-finding-middleman-callbacks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to Read Open Source: Finding Middleman Callbacks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tyler Williams\"}],\n        \"datePublished\": \"2021-01-20\",\n      }",{"title":18587,"description":18588,"authors":18592,"heroImage":17164,"date":18593,"category":17170,"tags":18594},[17397],"2021-01-20",[1265,772,1335],{"slug":18596,"featured":6,"template":736},"how-to-read-open-source-finding-middleman-callbacks","content:en-us:blog:how-to-read-open-source-finding-middleman-callbacks.yml","How To Read Open Source Finding Middleman Callbacks","en-us/blog/how-to-read-open-source-finding-middleman-callbacks.yml","en-us/blog/how-to-read-open-source-finding-middleman-callbacks",{"_path":18602,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18603,"content":18608,"config":18612,"_id":18614,"_type":16,"title":18615,"_source":17,"_file":18616,"_stem":18617,"_extension":20},"/en-us/blog/journey-to-the-outer-loop",{"title":18604,"description":18605,"ogTitle":18604,"ogDescription":18605,"noIndex":6,"ogImage":16503,"ogUrl":18606,"ogSiteName":995,"ogType":996,"canonicalUrls":18606,"schema":18607},"Journey to the Outer Loop","A space journey from Earth to a world where Product Managers don't exist","https://about.gitlab.com/blog/journey-to-the-outer-loop","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Journey to the Outer Loop\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kenny Johnston\"}],\n        \"datePublished\": \"2021-01-20\",\n      }",{"title":18604,"description":18605,"authors":18609,"heroImage":16503,"date":18593,"category":17170,"tags":18611},[18610],"Kenny Johnston",[564,731],{"slug":18613,"featured":6,"template":736},"journey-to-the-outer-loop","content:en-us:blog:journey-to-the-outer-loop.yml","Journey To The Outer Loop","en-us/blog/journey-to-the-outer-loop.yml","en-us/blog/journey-to-the-outer-loop",{"_path":18619,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18620,"content":18625,"config":18629,"_id":18631,"_type":16,"title":18632,"_source":17,"_file":18633,"_stem":18634,"_extension":20},"/en-us/blog/using-run-parallel-jobs",{"title":18621,"description":18622,"ogTitle":18621,"ogDescription":18622,"noIndex":6,"ogImage":18220,"ogUrl":18623,"ogSiteName":995,"ogType":996,"canonicalUrls":18623,"schema":18624},"How we used parallel CI/CD jobs to increase our productivity","GitLab uses parallel jobs to help long-running jobs run faster.","https://about.gitlab.com/blog/using-run-parallel-jobs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we used parallel CI/CD jobs to increase our productivity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Miguel Rincon\"}],\n        \"datePublished\": \"2021-01-20\",\n      }",{"title":18621,"description":18622,"authors":18626,"heroImage":18220,"date":18593,"category":858,"tags":18628},[18627],"Miguel Rincon",[1569,2097,2098,1988,1335],{"slug":18630,"featured":6,"template":736},"using-run-parallel-jobs","content:en-us:blog:using-run-parallel-jobs.yml","Using Run Parallel Jobs","en-us/blog/using-run-parallel-jobs.yml","en-us/blog/using-run-parallel-jobs",{"_path":18636,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18637,"content":18643,"config":18647,"_id":18649,"_type":16,"title":18650,"_source":17,"_file":18651,"_stem":18652,"_extension":20},"/en-us/blog/a-year-of-iteration",{"title":18638,"description":18639,"ogTitle":18638,"ogDescription":18639,"noIndex":6,"ogImage":18640,"ogUrl":18641,"ogSiteName":995,"ogType":996,"canonicalUrls":18641,"schema":18642},"2020: A year of iteration","A look at how far Vulnerability Management progressed in 2020 through hard work and lots of iterations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681857/Blog/Hero%20Images/cover-2020-a-year-of-iteration.jpg","https://about.gitlab.com/blog/a-year-of-iteration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2020: A year of iteration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Wilson\"}],\n        \"datePublished\": \"2021-01-18\",\n      }",{"title":18638,"description":18639,"authors":18644,"heroImage":18640,"date":18645,"category":17170,"tags":18646},[15148],"2021-01-18",[233,790,2815],{"slug":18648,"featured":6,"template":736},"a-year-of-iteration","content:en-us:blog:a-year-of-iteration.yml","A Year Of Iteration","en-us/blog/a-year-of-iteration.yml","en-us/blog/a-year-of-iteration",{"_path":18654,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18655,"content":18661,"config":18667,"_id":18669,"_type":16,"title":18670,"_source":17,"_file":18671,"_stem":18672,"_extension":20},"/en-us/blog/this-sre-attempted-to-roll-out-an-haproxy-change",{"title":18656,"description":18657,"ogTitle":18656,"ogDescription":18657,"noIndex":6,"ogImage":18658,"ogUrl":18659,"ogSiteName":995,"ogType":996,"canonicalUrls":18659,"schema":18660},"This SRE's HAProxy Config Change: An Unexpected Journey","This post is about a wild discovery made while investigating strange behavior from HAProxy. We dive into the pathology, describe how we found it, and share some investigative techniques used along the way.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681844/Blog/Hero%20Images/infra-proxy-protocol-wireshark-header.png","https://about.gitlab.com/blog/this-sre-attempted-to-roll-out-an-haproxy-change","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"This SRE attempted to roll out an HAProxy config change. You won't believe what happened next... \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Igor Wiedler\"}],\n        \"datePublished\": \"2021-01-14\",\n      }",{"title":18662,"description":18657,"authors":18663,"heroImage":18658,"date":18665,"category":858,"tags":18666},"This SRE attempted to roll out an HAProxy config change. You won't believe what happened next...",[18664],"Igor Wiedler","2021-01-14",[6376,1569],{"slug":18668,"featured":6,"template":736},"this-sre-attempted-to-roll-out-an-haproxy-change","content:en-us:blog:this-sre-attempted-to-roll-out-an-haproxy-change.yml","This Sre Attempted To Roll Out An Haproxy Change","en-us/blog/this-sre-attempted-to-roll-out-an-haproxy-change.yml","en-us/blog/this-sre-attempted-to-roll-out-an-haproxy-change",{"_path":18674,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18675,"content":18681,"config":18684,"_id":18686,"_type":16,"title":18687,"_source":17,"_file":18688,"_stem":18689,"_extension":20},"/en-us/blog/try-dependency-scanning",{"title":18676,"description":18677,"ogTitle":18676,"ogDescription":18677,"noIndex":6,"ogImage":18678,"ogUrl":18679,"ogSiteName":995,"ogType":996,"canonicalUrls":18679,"schema":18680},"A quick guide to GitLab Dependency Scanning","A walk through of creating a quick example project in order to see Dependency Scanning in action.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681849/Blog/Hero%20Images/iceberg_header.jpg","https://about.gitlab.com/blog/try-dependency-scanning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A quick guide to GitLab Dependency Scanning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nicole Schwartz\"}],\n        \"datePublished\": \"2021-01-14\",\n      }",{"title":18676,"description":18677,"authors":18682,"heroImage":18678,"date":18665,"category":17170,"tags":18683},[13825],[730,790,4182],{"slug":18685,"featured":6,"template":736},"try-dependency-scanning","content:en-us:blog:try-dependency-scanning.yml","Try Dependency Scanning","en-us/blog/try-dependency-scanning.yml","en-us/blog/try-dependency-scanning",{"_path":18691,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18692,"content":18697,"config":18701,"_id":18703,"_type":16,"title":18704,"_source":17,"_file":18705,"_stem":18706,"_extension":20},"/en-us/blog/learn-gitlab-devops-version-control",{"title":18693,"description":18694,"ogTitle":18693,"ogDescription":18694,"noIndex":6,"ogImage":11319,"ogUrl":18695,"ogSiteName":995,"ogType":996,"canonicalUrls":18695,"schema":18696},"GitLab tutorials for secure pipelines, Kubernetes, and more at Learn@GitLab","Learn@GitLab offers videos and self-driven demos so you can get the most out of GitLab at your own pace.","https://about.gitlab.com/blog/learn-gitlab-devops-version-control","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab tutorials for secure pipelines, Kubernetes, and more at Learn@GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2021-01-12\",\n      }",{"title":18693,"description":18694,"authors":18698,"heroImage":11319,"date":18699,"category":858,"tags":18700},[17150],"2021-01-12",[1569,233,772],{"slug":18702,"featured":6,"template":736},"learn-gitlab-devops-version-control","content:en-us:blog:learn-gitlab-devops-version-control.yml","Learn Gitlab Devops Version Control","en-us/blog/learn-gitlab-devops-version-control.yml","en-us/blog/learn-gitlab-devops-version-control",{"_path":18708,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18709,"content":18715,"config":18719,"_id":18721,"_type":16,"title":18722,"_source":17,"_file":18723,"_stem":18724,"_extension":20},"/en-us/blog/top-engineering-stories-gitlab",{"title":18710,"description":18711,"ogTitle":18710,"ogDescription":18711,"noIndex":6,"ogImage":18712,"ogUrl":18713,"ogSiteName":995,"ogType":996,"canonicalUrls":18713,"schema":18714},"These are your favorite GitLab engineering stories","From building a Web IDE, to our migration to GCP, to tracking down a bug in NFS – these are some of our most popular engineering blog posts.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681835/Blog/Hero%20Images/stairs_iteration.jpg","https://about.gitlab.com/blog/top-engineering-stories-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"These are your favorite GitLab engineering stories\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2021-01-07\",\n      }",{"title":18710,"description":18711,"authors":18716,"heroImage":18712,"date":18717,"category":858,"tags":18718},[16023],"2021-01-07",[1569,233],{"slug":18720,"featured":6,"template":736},"top-engineering-stories-gitlab","content:en-us:blog:top-engineering-stories-gitlab.yml","Top Engineering Stories Gitlab","en-us/blog/top-engineering-stories-gitlab.yml","en-us/blog/top-engineering-stories-gitlab",{"_path":18726,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18727,"content":18733,"config":18736,"_id":18738,"_type":16,"title":18739,"_source":17,"_file":18740,"_stem":18741,"_extension":20},"/en-us/blog/whats-it-like-to-work-security-at-gitlab",{"title":18728,"description":18729,"ogTitle":18728,"ogDescription":18729,"noIndex":6,"ogImage":18730,"ogUrl":18731,"ogSiteName":995,"ogType":996,"canonicalUrls":18731,"schema":18732},"What’s it like to work in security at GitLab?","Job descriptions and the job they represent don't always line up.  What does someone working in our Security department actually do?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671032/Blog/Hero%20Images/wocintechchat_blog2.jpg","https://about.gitlab.com/blog/whats-it-like-to-work-security-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What’s it like to work in security at GitLab?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2021-01-07\",\n      }",{"title":18728,"description":18729,"authors":18734,"heroImage":18730,"date":18717,"category":17170,"tags":18735},[11324],[790,1569],{"slug":18737,"featured":6,"template":736},"whats-it-like-to-work-security-at-gitlab","content:en-us:blog:whats-it-like-to-work-security-at-gitlab.yml","Whats It Like To Work Security At Gitlab","en-us/blog/whats-it-like-to-work-security-at-gitlab.yml","en-us/blog/whats-it-like-to-work-security-at-gitlab",{"_path":18743,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18744,"content":18749,"config":18754,"_id":18756,"_type":16,"title":18757,"_source":17,"_file":18758,"_stem":18759,"_extension":20},"/en-us/blog/how-to-improve-communication-remote-designer",{"title":18745,"description":18746,"ogTitle":18745,"ogDescription":18746,"noIndex":6,"ogImage":10957,"ogUrl":18747,"ogSiteName":995,"ogType":996,"canonicalUrls":18747,"schema":18748},"How to improve your communication as a remote designer in 6 simple steps","When you're explaining designs or requesting feedback, it's easy to give too much information. Here are some tips on how you can communicate better as a designer, especially if you're working remotely.","https://about.gitlab.com/blog/how-to-improve-communication-remote-designer","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to improve your communication as a remote designer in 6 simple steps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pedro Moreira da Silva\"}],\n        \"datePublished\": \"2021-01-06\",\n      }",{"title":18745,"description":18746,"authors":18750,"heroImage":10957,"date":18752,"category":17170,"tags":18753},[18751],"Pedro Moreira da Silva","2021-01-06",[2815,2702,3914,2703],{"slug":18755,"featured":6,"template":736},"how-to-improve-communication-remote-designer","content:en-us:blog:how-to-improve-communication-remote-designer.yml","How To Improve Communication Remote Designer","en-us/blog/how-to-improve-communication-remote-designer.yml","en-us/blog/how-to-improve-communication-remote-designer",{"_path":18761,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18762,"content":18767,"config":18772,"_id":18774,"_type":16,"title":18775,"_source":17,"_file":18776,"_stem":18777,"_extension":20},"/en-us/blog/5-leadership-lessons-as-product-design-manager",{"title":18763,"description":18764,"ogTitle":18763,"ogDescription":18764,"noIndex":6,"ogImage":17164,"ogUrl":18765,"ogSiteName":995,"ogType":996,"canonicalUrls":18765,"schema":18766},"5 Leadership Lessons as Product Design Manager","Shortly after my promotion to Staff Product Designer, I was given the opportunity to act as Product Design Manager for CI/CD. These are some of the lessons I learned on design leadership at GitLab.","https://about.gitlab.com/blog/5-leadership-lessons-as-product-design-manager","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Leadership Lessons as Product Design Manager\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rayana Verissimo\"}],\n        \"datePublished\": \"2021-01-05\",\n      }",{"title":18763,"description":18764,"authors":18768,"heroImage":17164,"date":18770,"category":17170,"tags":18771},[18769],"Rayana Verissimo","2021-01-05",[2703,1569],{"slug":18773,"featured":6,"template":736},"5-leadership-lessons-as-product-design-manager","content:en-us:blog:5-leadership-lessons-as-product-design-manager.yml","5 Leadership Lessons As Product Design Manager","en-us/blog/5-leadership-lessons-as-product-design-manager.yml","en-us/blog/5-leadership-lessons-as-product-design-manager",{"_path":18779,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18780,"content":18786,"config":18791,"_id":18793,"_type":16,"title":18794,"_source":17,"_file":18795,"_stem":18796,"_extension":20},"/en-us/blog/how-we-prevented-security-fixes-leaking-into-our-public-repositories",{"title":18781,"description":18782,"ogTitle":18781,"ogDescription":18782,"noIndex":6,"ogImage":18783,"ogUrl":18784,"ogSiteName":995,"ogType":996,"canonicalUrls":18784,"schema":18785},"How we prevented security fixes leaking into our public repositories","Working in the open makes it difficult to work on security vulnerabilities before they're disclosed, especially when that openness discloses them early!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667227/Blog/Hero%20Images/security-leaks-unlocked.jpg","https://about.gitlab.com/blog/how-we-prevented-security-fixes-leaking-into-our-public-repositories","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we prevented security fixes leaking into our public repositories\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Robert Speicher\"}],\n        \"datePublished\": \"2021-01-04\",\n      }",{"title":18781,"description":18782,"authors":18787,"heroImage":18783,"date":18789,"category":858,"tags":18790},[18788],"Robert Speicher","2021-01-04",[1569,790],{"slug":18792,"featured":6,"template":736},"how-we-prevented-security-fixes-leaking-into-our-public-repositories","content:en-us:blog:how-we-prevented-security-fixes-leaking-into-our-public-repositories.yml","How We Prevented Security Fixes Leaking Into Our Public Repositories","en-us/blog/how-we-prevented-security-fixes-leaking-into-our-public-repositories.yml","en-us/blog/how-we-prevented-security-fixes-leaking-into-our-public-repositories",{"_path":18798,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18799,"content":18804,"config":18808,"_id":18810,"_type":16,"title":18811,"_source":17,"_file":18812,"_stem":18813,"_extension":20},"/en-us/blog/building-a-handbook-first-remote-learning-culture",{"title":18800,"description":18801,"ogTitle":18800,"ogDescription":18801,"noIndex":6,"ogImage":17164,"ogUrl":18802,"ogSiteName":995,"ogType":996,"canonicalUrls":18802,"schema":18803},"Building a Handbook First Remote Learning Culture","An overview on how to build a handbook first remote learning culture","https://about.gitlab.com/blog/building-a-handbook-first-remote-learning-culture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building a Handbook First Remote Learning Culture\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Josh Zimmerman\"}],\n        \"datePublished\": \"2020-12-22\",\n      }",{"title":18800,"description":18801,"authors":18805,"heroImage":17164,"date":18806,"category":17170,"tags":18807},[18156],"2020-12-22",[2815,1569,3914,269],{"slug":18809,"featured":6,"template":736},"building-a-handbook-first-remote-learning-culture","content:en-us:blog:building-a-handbook-first-remote-learning-culture.yml","Building A Handbook First Remote Learning Culture","en-us/blog/building-a-handbook-first-remote-learning-culture.yml","en-us/blog/building-a-handbook-first-remote-learning-culture",{"_path":18815,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18816,"content":18821,"config":18825,"_id":18827,"_type":16,"title":18828,"_source":17,"_file":18829,"_stem":18830,"_extension":20},"/en-us/blog/gitlab-mental-health-awareness-week-recap",{"title":18817,"description":18818,"ogTitle":18817,"ogDescription":18818,"noIndex":6,"ogImage":17164,"ogUrl":18819,"ogSiteName":995,"ogType":996,"canonicalUrls":18819,"schema":18820},"GitLab Mental Health Awareness Week Recap","A recap of the Learning and Development Mental Health Awareness week","https://about.gitlab.com/blog/gitlab-mental-health-awareness-week-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Mental Health Awareness Week Recap\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Samantha Lee\"}],\n        \"datePublished\": \"2020-12-21\",\n      }",{"title":18817,"description":18818,"authors":18822,"heroImage":17164,"date":18823,"category":17170,"tags":18824},[18190],"2020-12-21",[2815,1569,3914],{"slug":18826,"featured":6,"template":736},"gitlab-mental-health-awareness-week-recap","content:en-us:blog:gitlab-mental-health-awareness-week-recap.yml","Gitlab Mental Health Awareness Week Recap","en-us/blog/gitlab-mental-health-awareness-week-recap.yml","en-us/blog/gitlab-mental-health-awareness-week-recap",{"_path":18832,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18833,"content":18838,"config":18843,"_id":18845,"_type":16,"title":18846,"_source":17,"_file":18847,"_stem":18848,"_extension":20},"/en-us/blog/how-gitlab-uses-third-party-security-ratings-to-build-customer-confidence",{"title":18834,"description":18835,"ogTitle":18834,"ogDescription":18835,"noIndex":6,"ogImage":11046,"ogUrl":18836,"ogSiteName":995,"ogType":996,"canonicalUrls":18836,"schema":18837},"How GitLab uses Third Party Security Rating to Build Customer Confidence","This blog is about how GitLab manages Third Party Security Rating platforms, why we chose to partner with BitSight, and how we are using BitSight’s external validation to increase customer confidence.","https://about.gitlab.com/blog/how-gitlab-uses-third-party-security-ratings-to-build-customer-confidence","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab uses Third Party Security Rating to Build Customer Confidence\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Meghan Maneval\"}],\n        \"datePublished\": \"2020-12-18\",\n      }",{"title":18834,"description":18835,"authors":18839,"heroImage":11046,"date":18841,"category":17170,"tags":18842},[18840],"Meghan Maneval","2020-12-18",[790,2815],{"slug":18844,"featured":6,"template":736},"how-gitlab-uses-third-party-security-ratings-to-build-customer-confidence","content:en-us:blog:how-gitlab-uses-third-party-security-ratings-to-build-customer-confidence.yml","How Gitlab Uses Third Party Security Ratings To Build Customer Confidence","en-us/blog/how-gitlab-uses-third-party-security-ratings-to-build-customer-confidence.yml","en-us/blog/how-gitlab-uses-third-party-security-ratings-to-build-customer-confidence",{"_path":18850,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18851,"content":18856,"config":18861,"_id":18863,"_type":16,"title":18864,"_source":17,"_file":18865,"_stem":18866,"_extension":20},"/en-us/blog/automation-check-in-and-rate-limit-changes-on-gitlab-dot-com",{"title":18852,"description":18853,"ogTitle":18852,"ogDescription":18853,"noIndex":6,"ogImage":11046,"ogUrl":18854,"ogSiteName":995,"ogType":996,"canonicalUrls":18854,"schema":18855},"Automation check-in and rate limit changes on GitLab.com","GitLab is making some changes to our rate limits on GitLab.com starting in January 2021.","https://about.gitlab.com/blog/automation-check-in-and-rate-limit-changes-on-gitlab-dot-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automation check-in and rate limit changes on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean McGivern\"}],\n        \"datePublished\": \"2020-12-17\",\n      }",{"title":18852,"description":18853,"authors":18857,"heroImage":11046,"date":18859,"category":1049,"tags":18860},[18858],"Sean McGivern","2020-12-17",[6376],{"slug":18862,"featured":6,"template":736},"automation-check-in-and-rate-limit-changes-on-gitlab-dot-com","content:en-us:blog:automation-check-in-and-rate-limit-changes-on-gitlab-dot-com.yml","Automation Check In And Rate Limit Changes On Gitlab Dot Com","en-us/blog/automation-check-in-and-rate-limit-changes-on-gitlab-dot-com.yml","en-us/blog/automation-check-in-and-rate-limit-changes-on-gitlab-dot-com",{"_path":18868,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18869,"content":18875,"config":18878,"_id":18880,"_type":16,"title":18881,"_source":17,"_file":18882,"_stem":18883,"_extension":20},"/en-us/blog/cd-solution-overview",{"title":18870,"description":18871,"ogTitle":18870,"ogDescription":18871,"noIndex":6,"ogImage":18872,"ogUrl":18873,"ogSiteName":995,"ogType":996,"canonicalUrls":18873,"schema":18874},"How to use GitLab tools for continuous delivery","Learn how to use GitLab technology to release software faster and with less risk.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682956/Blog/Hero%20Images/CD-continuous-nature-cover-880x586.jpg","https://about.gitlab.com/blog/cd-solution-overview","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab tools for continuous delivery\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2020-12-17\",\n      }",{"title":18870,"description":18871,"authors":18876,"heroImage":18872,"date":18859,"category":858,"tags":18877},[767],[2098,564,4182],{"slug":18879,"featured":6,"template":736},"cd-solution-overview","content:en-us:blog:cd-solution-overview.yml","Cd Solution Overview","en-us/blog/cd-solution-overview.yml","en-us/blog/cd-solution-overview",{"_path":18885,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18886,"content":18892,"config":18895,"_id":18897,"_type":16,"title":18898,"_source":17,"_file":18899,"_stem":18900,"_extension":20},"/en-us/blog/gitlab-for-cicd-agile-gitops-cloudnative",{"title":18887,"description":18888,"ogTitle":18887,"ogDescription":18888,"noIndex":6,"ogImage":18889,"ogUrl":18890,"ogSiteName":995,"ogType":996,"canonicalUrls":18890,"schema":18891},"How to use GitLab for Agile, CI/CD, GitOps, and more","Read our example engineering stories from the past two years that show how to use GitLab for you DevOps cycle, including GitOps, CI/CD and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681825/Blog/Hero%20Images/triangle_geo.jpg","https://about.gitlab.com/blog/gitlab-for-cicd-agile-gitops-cloudnative","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab for Agile, CI/CD, GitOps, and more\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-12-17\",\n      }",{"title":18887,"description":18888,"authors":18893,"heroImage":18889,"date":18859,"category":858,"tags":18894},[16023],[2097,2098,1569,4182],{"slug":18896,"featured":6,"template":736},"gitlab-for-cicd-agile-gitops-cloudnative","content:en-us:blog:gitlab-for-cicd-agile-gitops-cloudnative.yml","Gitlab For Cicd Agile Gitops Cloudnative","en-us/blog/gitlab-for-cicd-agile-gitops-cloudnative.yml","en-us/blog/gitlab-for-cicd-agile-gitops-cloudnative",{"_path":18902,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18903,"content":18909,"config":18913,"_id":18915,"_type":16,"title":18916,"_source":17,"_file":18917,"_stem":18918,"_extension":20},"/en-us/blog/how-we-made-gitlab-more-secure-in-twenty-twenty",{"title":18904,"description":18905,"ogTitle":18904,"ogDescription":18905,"noIndex":6,"ogImage":18906,"ogUrl":18907,"ogSiteName":995,"ogType":996,"canonicalUrls":18907,"schema":18908},"How we made GitLab more secure in 2020","From preventing vulnerabilities to squashing bugs in source code; here’s how our security team has made GitLab more secure in 2020, and where they’ll focus efforts in 2021.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670800/Blog/Hero%20Images/sec-2020-review.png","https://about.gitlab.com/blog/how-we-made-gitlab-more-secure-in-twenty-twenty","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we made GitLab more secure in 2020\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Johnathan Hunt\"}],\n        \"datePublished\": \"2020-12-16\",\n      }",{"title":18904,"description":18905,"authors":18910,"heroImage":18906,"date":18911,"category":17170,"tags":18912},[13788],"2020-12-16",[790,1569],{"slug":18914,"featured":6,"template":736},"how-we-made-gitlab-more-secure-in-twenty-twenty","content:en-us:blog:how-we-made-gitlab-more-secure-in-twenty-twenty.yml","How We Made Gitlab More Secure In Twenty Twenty","en-us/blog/how-we-made-gitlab-more-secure-in-twenty-twenty.yml","en-us/blog/how-we-made-gitlab-more-secure-in-twenty-twenty",{"_path":18920,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18921,"content":18926,"config":18929,"_id":18931,"_type":16,"title":18932,"_source":17,"_file":18933,"_stem":18934,"_extension":20},"/en-us/blog/mobile-static-application-security-testing-for-android",{"title":18922,"description":18923,"ogTitle":18922,"ogDescription":18923,"noIndex":6,"ogImage":13091,"ogUrl":18924,"ogSiteName":995,"ogType":996,"canonicalUrls":18924,"schema":18925},"Android App Security Testing with SAST","Learn how to secure your Android application with Static Application Security Testing.","https://about.gitlab.com/blog/mobile-static-application-security-testing-for-android","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Android App Security Testing with SAST\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2020-12-16\",\n      }",{"title":18922,"description":18923,"authors":18927,"heroImage":13091,"date":18911,"category":790,"tags":18928},[1097],[790,564,730,233,1265],{"slug":18930,"featured":6,"template":736},"mobile-static-application-security-testing-for-android","content:en-us:blog:mobile-static-application-security-testing-for-android.yml","Mobile Static Application Security Testing For Android","en-us/blog/mobile-static-application-security-testing-for-android.yml","en-us/blog/mobile-static-application-security-testing-for-android",{"_path":18936,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18937,"content":18943,"config":18948,"_id":18950,"_type":16,"title":18951,"_source":17,"_file":18952,"_stem":18953,"_extension":20},"/en-us/blog/dependency-proxy-updates",{"title":18938,"description":18939,"ogTitle":18938,"ogDescription":18939,"noIndex":6,"ogImage":18940,"ogUrl":18941,"ogSiteName":995,"ogType":996,"canonicalUrls":18941,"schema":18942},"Using the Dependency Proxy to improve your pipelines","The Dependency Proxy helps make pipelines faster and mitigates Docker Hub rate limits.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681815/Blog/Hero%20Images/dependency_proxy_header.jpg","https://about.gitlab.com/blog/dependency-proxy-updates","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using the Dependency Proxy to improve your pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Abrams\"}],\n        \"datePublished\": \"2020-12-15\",\n      }",{"title":18938,"description":18939,"authors":18944,"heroImage":18940,"date":18946,"category":17170,"tags":18947},[18945],"Steve Abrams","2020-12-15",[110,730],{"slug":18949,"featured":6,"template":736},"dependency-proxy-updates","content:en-us:blog:dependency-proxy-updates.yml","Dependency Proxy Updates","en-us/blog/dependency-proxy-updates.yml","en-us/blog/dependency-proxy-updates",{"_path":18955,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18956,"content":18962,"config":18965,"_id":18967,"_type":16,"title":18968,"_source":17,"_file":18969,"_stem":18970,"_extension":20},"/en-us/blog/deploy-aws",{"title":18957,"description":18958,"ogTitle":18957,"ogDescription":18958,"noIndex":6,"ogImage":18959,"ogUrl":18960,"ogSiteName":995,"ogType":996,"canonicalUrls":18960,"schema":18961},"How to deploy to AWS with GitLab","We believe deploying to the cloud should be easy and boring. The deployment process is the same regardless of what tech stack you're using so why not automate it?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672124/Blog/Hero%20Images/aws_rocket.jpg","https://about.gitlab.com/blog/deploy-aws","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to deploy to AWS with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2020-12-15\",\n      }",{"title":18957,"description":18958,"authors":18963,"heroImage":18959,"date":18946,"category":858,"tags":18964},[14332],[582,564,2097,2098],{"slug":18966,"featured":6,"template":736},"deploy-aws","content:en-us:blog:deploy-aws.yml","Deploy Aws","en-us/blog/deploy-aws.yml","en-us/blog/deploy-aws",{"_path":18972,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18973,"content":18979,"config":18982,"_id":18984,"_type":16,"title":18985,"_source":17,"_file":18986,"_stem":18987,"_extension":20},"/en-us/blog/first-code-to-ci-cd-deployments-in-5-minutes",{"title":18974,"description":18975,"ogTitle":18974,"ogDescription":18975,"noIndex":6,"ogImage":18976,"ogUrl":18977,"ogSiteName":995,"ogType":996,"canonicalUrls":18977,"schema":18978},"A journey from the first code to CI/CD deployments in 5 minutes?","From writing, building, and testing code to reviewing, releasing, and deploying in 5 minutes. Is this possible? Learn which hurdles you might encounter and how to solve them. Spoiler: Without Kubernetes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665823/Blog/Hero%20Images/snow-speed-unsplash.jpg","https://about.gitlab.com/blog/first-code-to-ci-cd-deployments-in-5-minutes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A journey from the first code to CI/CD deployments in 5 minutes?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2020-12-15\",\n      }",{"title":18974,"description":18975,"authors":18980,"heroImage":18976,"date":18946,"category":17170,"tags":18981},[1424],[2097,2098,269],{"slug":18983,"featured":6,"template":736},"first-code-to-ci-cd-deployments-in-5-minutes","content:en-us:blog:first-code-to-ci-cd-deployments-in-5-minutes.yml","First Code To Ci Cd Deployments In 5 Minutes","en-us/blog/first-code-to-ci-cd-deployments-in-5-minutes.yml","en-us/blog/first-code-to-ci-cd-deployments-in-5-minutes",{"_path":18989,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":18990,"content":18996,"config":19000,"_id":19002,"_type":16,"title":19003,"_source":17,"_file":19004,"_stem":19005,"_extension":20},"/en-us/blog/merge-trains-explained",{"title":18991,"description":18992,"ogTitle":18991,"ogDescription":18992,"noIndex":6,"ogImage":18993,"ogUrl":18994,"ogSiteName":995,"ogType":996,"canonicalUrls":18994,"schema":18995},"How to use merge train pipelines with GitLab","Read here an introduction on what merge trains are, how to use them and how to incorporate them to your GitLab project.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667210/Blog/Hero%20Images/merge-train-explained-banner.jpg","https://about.gitlab.com/blog/merge-trains-explained","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use merge train pipelines with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2020-12-14\",\n      }",{"title":18991,"description":18992,"authors":18997,"heroImage":18993,"date":18998,"category":858,"tags":18999},[4929],"2020-12-14",[2097,2098,730,564,1569],{"slug":19001,"featured":6,"template":736},"merge-trains-explained","content:en-us:blog:merge-trains-explained.yml","Merge Trains Explained","en-us/blog/merge-trains-explained.yml","en-us/blog/merge-trains-explained",{"_path":19007,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19008,"content":19014,"config":19017,"_id":19019,"_type":16,"title":19020,"_source":17,"_file":19021,"_stem":19022,"_extension":20},"/en-us/blog/twenty-twenty-through-a-bug-bounty-lens",{"title":19009,"description":19010,"ogTitle":19009,"ogDescription":19010,"noIndex":6,"ogImage":19011,"ogUrl":19012,"ogSiteName":995,"ogType":996,"canonicalUrls":19012,"schema":19013},"2020 through a bug bounty lens","We take a look back at the year in bugs and bounties and celebrate the reporters and contributions that make us more secure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671018/Blog/Hero%20Images/gitlab-security-blog-cover_3.png","https://about.gitlab.com/blog/twenty-twenty-through-a-bug-bounty-lens","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2020 through a bug bounty lens\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-12-14\",\n      }",{"title":19009,"description":19010,"authors":19015,"heroImage":19011,"date":18998,"category":790,"tags":19016},[11324],[790,2483],{"slug":19018,"featured":6,"template":736},"twenty-twenty-through-a-bug-bounty-lens","content:en-us:blog:twenty-twenty-through-a-bug-bounty-lens.yml","Twenty Twenty Through A Bug Bounty Lens","en-us/blog/twenty-twenty-through-a-bug-bounty-lens.yml","en-us/blog/twenty-twenty-through-a-bug-bounty-lens",{"_path":19024,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19025,"content":19030,"config":19036,"_id":19038,"_type":16,"title":19039,"_source":17,"_file":19040,"_stem":19041,"_extension":20},"/en-us/blog/basics-of-gitlab-ci-updated",{"title":19026,"description":19027,"ogTitle":19026,"ogDescription":19027,"noIndex":6,"ogImage":6406,"ogUrl":19028,"ogSiteName":995,"ogType":996,"canonicalUrls":19028,"schema":19029},"Running CI jobs in sequential, parallel, and custom orders","New to continuous integration? Learn how to build your first CI pipeline with GitLab.","https://about.gitlab.com/blog/basics-of-gitlab-ci-updated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The basics of CI: How to run jobs sequentially, in parallel, or out of order\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2020-12-10\",\n      }",{"title":19031,"description":19027,"authors":19032,"heroImage":6406,"date":19033,"category":858,"tags":19034,"updatedDate":19035},"The basics of CI: How to run jobs sequentially, in parallel, or out of order",[1016],"2020-12-10",[2097,772],"2024-04-24",{"slug":19037,"featured":6,"template":736},"basics-of-gitlab-ci-updated","content:en-us:blog:basics-of-gitlab-ci-updated.yml","Basics Of Gitlab Ci Updated","en-us/blog/basics-of-gitlab-ci-updated.yml","en-us/blog/basics-of-gitlab-ci-updated",{"_path":19043,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19044,"content":19049,"config":19053,"_id":19055,"_type":16,"title":19056,"_source":17,"_file":19057,"_stem":19058,"_extension":20},"/en-us/blog/why-continuous-fuzzing",{"title":19045,"description":19046,"ogTitle":19045,"ogDescription":19046,"noIndex":6,"ogImage":17164,"ogUrl":19047,"ogSiteName":995,"ogType":996,"canonicalUrls":19047,"schema":19048},"Why (Continuous) Fuzzing","Learn what fuzzing is, what's so good at fuzzing code continuously and why to do it here!","https://about.gitlab.com/blog/why-continuous-fuzzing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why (Continuous) Fuzzing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yevgeny Pats\"}],\n        \"datePublished\": \"2020-12-10\",\n      }",{"title":19045,"description":19046,"authors":19050,"heroImage":17164,"date":19033,"category":17170,"tags":19052},[19051],"Yevgeny Pats",[1569,790,964],{"slug":19054,"featured":6,"template":736},"why-continuous-fuzzing","content:en-us:blog:why-continuous-fuzzing.yml","Why Continuous Fuzzing","en-us/blog/why-continuous-fuzzing.yml","en-us/blog/why-continuous-fuzzing",{"_path":19060,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19061,"content":19066,"config":19070,"_id":19072,"_type":16,"title":19073,"_source":17,"_file":19074,"_stem":19075,"_extension":20},"/en-us/blog/migrate-from-jenkins-update",{"title":19062,"description":19063,"ogTitle":19062,"ogDescription":19063,"noIndex":6,"ogImage":17853,"ogUrl":19064,"ogSiteName":995,"ogType":996,"canonicalUrls":19064,"schema":19065},"How we're improving migrations from Jenkins to GitLab CI/CD","Learn more about our Jenkins Importer category and see what's in the works for easier Jenkins migrations.","https://about.gitlab.com/blog/migrate-from-jenkins-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we're improving migrations from Jenkins to GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-12-08\",\n      }",{"title":19062,"description":19063,"authors":19067,"heroImage":17853,"date":19068,"category":8140,"tags":19069},[17150],"2020-12-08",[2097,2098],{"slug":19071,"featured":6,"template":736},"migrate-from-jenkins-update","content:en-us:blog:migrate-from-jenkins-update.yml","Migrate From Jenkins Update","en-us/blog/migrate-from-jenkins-update.yml","en-us/blog/migrate-from-jenkins-update",{"_path":19077,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19078,"content":19083,"config":19086,"_id":19088,"_type":16,"title":19089,"_source":17,"_file":19090,"_stem":19091,"_extension":20},"/en-us/blog/security-features-in-ultimate",{"title":19079,"description":19080,"ogTitle":19079,"ogDescription":19080,"noIndex":6,"ogImage":13977,"ogUrl":19081,"ogSiteName":995,"ogType":996,"canonicalUrls":19081,"schema":19082},"Tired of afterthought security? Take a fresh look at GitLab Ultimate","Security may not be the first thing that comes to mind when thinking of our DevOps platform, but we’re going to make the case it should be. Here’s a look at some of the too-often-overlooked security features in GitLab Ultimate.","https://about.gitlab.com/blog/security-features-in-ultimate","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tired of afterthought security? Take a fresh look at GitLab Ultimate\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2020-12-08\",\n      }",{"title":19079,"description":19080,"authors":19084,"heroImage":13977,"date":19068,"category":790,"tags":19085},[11487],[790,564,730,233],{"slug":19087,"featured":6,"template":736},"security-features-in-ultimate","content:en-us:blog:security-features-in-ultimate.yml","Security Features In Ultimate","en-us/blog/security-features-in-ultimate.yml","en-us/blog/security-features-in-ultimate",{"_path":19093,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19094,"content":19099,"config":19103,"_id":19105,"_type":16,"title":19106,"_source":17,"_file":19107,"_stem":19108,"_extension":20},"/en-us/blog/how-to-fuzz-go",{"title":19095,"description":19096,"ogTitle":19095,"ogDescription":19096,"noIndex":6,"ogImage":17164,"ogUrl":19097,"ogSiteName":995,"ogType":996,"canonicalUrls":19097,"schema":19098},"How to fuzz Go code with go-fuzz continuously","Learn how (and why!) to fuzz Go code","https://about.gitlab.com/blog/how-to-fuzz-go","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to fuzz Go code with go-fuzz continuously\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yevgeny Pats\"}],\n        \"datePublished\": \"2020-12-03\",\n      }",{"title":19095,"description":19096,"authors":19100,"heroImage":17164,"date":19101,"category":17170,"tags":19102},[19051],"2020-12-03",[1569,790,964],{"slug":19104,"featured":6,"template":736},"how-to-fuzz-go","content:en-us:blog:how-to-fuzz-go.yml","How To Fuzz Go","en-us/blog/how-to-fuzz-go.yml","en-us/blog/how-to-fuzz-go",{"_path":19110,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19111,"content":19117,"config":19120,"_id":19122,"_type":16,"title":19123,"_source":17,"_file":19124,"_stem":19125,"_extension":20},"/en-us/blog/how-to-fuzz-rust-code",{"title":19112,"description":19113,"ogTitle":19112,"ogDescription":19113,"noIndex":6,"ogImage":19114,"ogUrl":19115,"ogSiteName":995,"ogType":996,"canonicalUrls":19115,"schema":19116},"How to fuzz Rust code continuously","Learn why you should always fuzz test your Rust code, and the code you'll need to do it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681441/Blog/Hero%20Images/rust.jpg","https://about.gitlab.com/blog/how-to-fuzz-rust-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to fuzz Rust code continuously\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yevgeny Pats\"}],\n        \"datePublished\": \"2020-12-03\",\n      }",{"title":19112,"description":19113,"authors":19118,"heroImage":19114,"date":19101,"category":858,"tags":19119},[19051],[1265,772],{"slug":19121,"featured":6,"template":736},"how-to-fuzz-rust-code","content:en-us:blog:how-to-fuzz-rust-code.yml","How To Fuzz Rust Code","en-us/blog/how-to-fuzz-rust-code.yml","en-us/blog/how-to-fuzz-rust-code",{"_path":19127,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19128,"content":19133,"config":19137,"_id":19139,"_type":16,"title":19140,"_source":17,"_file":19141,"_stem":19142,"_extension":20},"/en-us/blog/pre-filled-variables-feature",{"title":19129,"description":19130,"ogTitle":19129,"ogDescription":19130,"noIndex":6,"ogImage":11046,"ogUrl":19131,"ogSiteName":995,"ogType":996,"canonicalUrls":19131,"schema":19132},"How pre-filled CI/CD variables will make running pipelines easier","Learn more about this future release and how pre-filled variables will save time and reduce errors.","https://about.gitlab.com/blog/pre-filled-variables-feature","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How pre-filled CI/CD variables will make running pipelines easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-12-02\",\n      }",{"title":19129,"description":19130,"authors":19134,"heroImage":11046,"date":19135,"category":8140,"tags":19136},[17150],"2020-12-02",[110,730],{"slug":19138,"featured":6,"template":736},"pre-filled-variables-feature","content:en-us:blog:pre-filled-variables-feature.yml","Pre Filled Variables Feature","en-us/blog/pre-filled-variables-feature.yml","en-us/blog/pre-filled-variables-feature",{"_path":19144,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19145,"content":19151,"config":19156,"_id":19158,"_type":16,"title":19159,"_source":17,"_file":19160,"_stem":19161,"_extension":20},"/en-us/blog/continuous-machine-learning-development-with-gitlab-ci",{"title":19146,"description":19147,"ogTitle":19146,"ogDescription":19147,"noIndex":6,"ogImage":19148,"ogUrl":19149,"ogSiteName":995,"ogType":996,"canonicalUrls":19149,"schema":19150},"How machine learning ops works with GitLab and continuous machine learning","We share different machine learning use cases for CML projects using GitLab CI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681802/Blog/Hero%20Images/gitlab_cml_dvc_banner.png","https://about.gitlab.com/blog/continuous-machine-learning-development-with-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How machine learning ops works with GitLab and continuous machine learning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dr. Elle O'Brien\"}],\n        \"datePublished\": \"2020-12-01\",\n      }",{"title":19146,"description":19147,"authors":19152,"heroImage":19148,"date":19154,"category":1049,"tags":19155},[19153],"Dr. Elle O'Brien","2020-12-01",[110,269,233,1265,728],{"slug":19157,"featured":6,"template":736},"continuous-machine-learning-development-with-gitlab-ci","content:en-us:blog:continuous-machine-learning-development-with-gitlab-ci.yml","Continuous Machine Learning Development With Gitlab Ci","en-us/blog/continuous-machine-learning-development-with-gitlab-ci.yml","en-us/blog/continuous-machine-learning-development-with-gitlab-ci",{"_path":19163,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19164,"content":19169,"config":19173,"_id":19175,"_type":16,"title":19176,"_source":17,"_file":19177,"_stem":19178,"_extension":20},"/en-us/blog/vscode-extension-development-with-gitlab",{"title":19165,"description":19166,"ogTitle":19165,"ogDescription":19166,"noIndex":6,"ogImage":10957,"ogUrl":19167,"ogSiteName":995,"ogType":996,"canonicalUrls":19167,"schema":19168},"VS Code extension development with GitLab","As VS Code editor increases in popularity, find out how GitLab + VS Code can be used for extension development and how we develop the official GitLab VS Code extension.","https://about.gitlab.com/blog/vscode-extension-development-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"VS Code extension development with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tomas Vik\"}],\n        \"datePublished\": \"2020-11-30\",\n      }",{"title":19165,"description":19166,"authors":19170,"heroImage":10957,"date":19171,"category":858,"tags":19172},[15238],"2020-11-30",[233,772,110],{"slug":19174,"featured":6,"template":736},"vscode-extension-development-with-gitlab","content:en-us:blog:vscode-extension-development-with-gitlab.yml","Vscode Extension Development With Gitlab","en-us/blog/vscode-extension-development-with-gitlab.yml","en-us/blog/vscode-extension-development-with-gitlab",{"_path":19180,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19181,"content":19187,"config":19191,"_id":19193,"_type":16,"title":19194,"_source":17,"_file":19195,"_stem":19196,"_extension":20},"/en-us/blog/why-gitlab-is-the-right-design-collaboration-tool-for-the-whole-team",{"title":19182,"description":19183,"ogTitle":19182,"ogDescription":19183,"noIndex":6,"ogImage":19184,"ogUrl":19185,"ogSiteName":995,"ogType":996,"canonicalUrls":19185,"schema":19186},"Why GitLab is the right design collaboration tool for the entire team","Design collaboration in GitLab creates a single source of truth and makes product teams more efficient","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681792/Blog/Hero%20Images/train-station.jpg","https://about.gitlab.com/blog/why-gitlab-is-the-right-design-collaboration-tool-for-the-whole-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab is the right design collaboration tool for the entire team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matthew Nearents\"}],\n        \"datePublished\": \"2020-11-30\",\n      }",{"title":19182,"description":19183,"authors":19188,"heroImage":19184,"date":19171,"category":17170,"tags":19190},[19189],"Matthew Nearents",[2815,2702,2703],{"slug":19192,"featured":6,"template":736},"why-gitlab-is-the-right-design-collaboration-tool-for-the-whole-team","content:en-us:blog:why-gitlab-is-the-right-design-collaboration-tool-for-the-whole-team.yml","Why Gitlab Is The Right Design Collaboration Tool For The Whole Team","en-us/blog/why-gitlab-is-the-right-design-collaboration-tool-for-the-whole-team.yml","en-us/blog/why-gitlab-is-the-right-design-collaboration-tool-for-the-whole-team",{"_path":19198,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19199,"content":19205,"config":19209,"_id":19211,"_type":16,"title":19212,"_source":17,"_file":19213,"_stem":19214,"_extension":20},"/en-us/blog/cncf-five-technologies-to-watch-in-2021",{"title":19200,"description":19201,"ogTitle":19200,"ogDescription":19201,"noIndex":6,"ogImage":19202,"ogUrl":19203,"ogSiteName":995,"ogType":996,"canonicalUrls":19203,"schema":19204},"CNCF's 5 technologies to watch in 2021","We predict how CNCF's five tech trends to watch will impact cloud native and the tech industry over the next year and beyond.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680997/Blog/Hero%20Images/clouds-cover.jpg","https://about.gitlab.com/blog/cncf-five-technologies-to-watch-in-2021","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CNCF's 5 technologies to watch in 2021\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2020-11-24\",\n      }",{"title":19200,"description":19201,"authors":19206,"heroImage":19202,"date":19207,"category":8140,"tags":19208},[10835],"2020-11-24",[582,2908,790],{"slug":19210,"featured":6,"template":736},"cncf-five-technologies-to-watch-in-2021","content:en-us:blog:cncf-five-technologies-to-watch-in-2021.yml","Cncf Five Technologies To Watch In 2021","en-us/blog/cncf-five-technologies-to-watch-in-2021.yml","en-us/blog/cncf-five-technologies-to-watch-in-2021",{"_path":19216,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19217,"content":19223,"config":19227,"_id":19229,"_type":16,"title":19230,"_source":17,"_file":19231,"_stem":19232,"_extension":20},"/en-us/blog/cd-unified-monitor-deploy",{"title":19218,"description":19219,"ogTitle":19218,"ogDescription":19219,"noIndex":6,"ogImage":19220,"ogUrl":19221,"ogSiteName":995,"ogType":996,"canonicalUrls":19221,"schema":19222},"GitLab's unifiied and integrated monitoring strategies","Learn about GitLab’s unified and integrated monitoring capabilities and advanced deployment strategies.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681771/Blog/Hero%20Images/CD-1st-mkt-diff-cover-1275x849.jpg","https://about.gitlab.com/blog/cd-unified-monitor-deploy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's unifiied and integrated monitoring strategies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2020-11-23\",\n      }",{"title":19218,"description":19219,"authors":19224,"heroImage":19220,"date":19225,"category":17170,"tags":19226},[767],"2020-11-23",[110,564,4182],{"slug":19228,"featured":6,"template":736},"cd-unified-monitor-deploy","content:en-us:blog:cd-unified-monitor-deploy.yml","Cd Unified Monitor Deploy","en-us/blog/cd-unified-monitor-deploy.yml","en-us/blog/cd-unified-monitor-deploy",{"_path":19234,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19235,"content":19241,"config":19245,"_id":19247,"_type":16,"title":19248,"_source":17,"_file":19249,"_stem":19250,"_extension":20},"/en-us/blog/collaboration-communication-best-practices",{"title":19236,"description":19237,"ogTitle":19236,"ogDescription":19237,"noIndex":6,"ogImage":19238,"ogUrl":19239,"ogSiteName":995,"ogType":996,"canonicalUrls":19239,"schema":19240},"Improving DevOps with Better Communication & Collaboration","The most important skills for a DevOps pro? Collaboration and communication. We share some of our best blogs, articles, and videos to help you work better, together.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681779/Blog/Hero%20Images/chatbubble.jpg","https://about.gitlab.com/blog/collaboration-communication-best-practices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improving DevOps and software development with communication and collaboration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-11-23\",\n      }",{"title":19242,"description":19237,"authors":19243,"heroImage":19238,"date":19225,"category":8140,"tags":19244},"Improving DevOps and software development with communication and collaboration",[16023],[2815,564],{"slug":19246,"featured":6,"template":736},"collaboration-communication-best-practices","content:en-us:blog:collaboration-communication-best-practices.yml","Collaboration Communication Best Practices","en-us/blog/collaboration-communication-best-practices.yml","en-us/blog/collaboration-communication-best-practices",{"_path":19252,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19253,"content":19259,"config":19263,"_id":19265,"_type":16,"title":19266,"_source":17,"_file":19267,"_stem":19268,"_extension":20},"/en-us/blog/keep-git-history-clean-with-interactive-rebase",{"title":19254,"description":19255,"ogTitle":19254,"ogDescription":19255,"noIndex":6,"ogImage":19256,"ogUrl":19257,"ogSiteName":995,"ogType":996,"canonicalUrls":19257,"schema":19258},"How to keep your Git history clean with interactive rebase","Interactive rebase is one of Git’s most versatile tools. Here's how to use it to correct commit messages, fix mistakes, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662593/Blog/Hero%20Images/title-image.png","https://about.gitlab.com/blog/keep-git-history-clean-with-interactive-rebase","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to keep your Git history clean with interactive rebase\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tobias Günther\"}],\n        \"datePublished\": \"2020-11-23\",\n      }",{"title":19254,"description":19255,"authors":19260,"heroImage":19256,"date":19225,"category":858,"tags":19262},[19261],"Tobias Günther",[1195,772],{"slug":19264,"featured":6,"template":736},"keep-git-history-clean-with-interactive-rebase","content:en-us:blog:keep-git-history-clean-with-interactive-rebase.yml","Keep Git History Clean With Interactive Rebase","en-us/blog/keep-git-history-clean-with-interactive-rebase.yml","en-us/blog/keep-git-history-clean-with-interactive-rebase",{"_path":19270,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19271,"content":19276,"config":19280,"_id":19282,"_type":16,"title":19283,"_source":17,"_file":19284,"_stem":19285,"_extension":20},"/en-us/blog/gitlab-ux-2020-year-in-review",{"title":19272,"description":19273,"ogTitle":19272,"ogDescription":19273,"noIndex":6,"ogImage":17164,"ogUrl":19274,"ogSiteName":995,"ogType":996,"canonicalUrls":19274,"schema":19275},"GitLab UX 2020 Year in Review","2020 was a difficult but productive year. Let's take a look back.","https://about.gitlab.com/blog/gitlab-ux-2020-year-in-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab UX 2020 Year in Review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christie Lenneville\"}],\n        \"datePublished\": \"2020-11-20\",\n      }",{"title":19272,"description":19273,"authors":19277,"heroImage":17164,"date":19278,"category":731,"tags":19279},[18313],"2020-11-20",[2703,2702,1569,2025],{"slug":19281,"featured":6,"template":736},"gitlab-ux-2020-year-in-review","content:en-us:blog:gitlab-ux-2020-year-in-review.yml","Gitlab Ux 2020 Year In Review","en-us/blog/gitlab-ux-2020-year-in-review.yml","en-us/blog/gitlab-ux-2020-year-in-review",{"_path":19287,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19288,"content":19294,"config":19298,"_id":19300,"_type":16,"title":19301,"_source":17,"_file":19302,"_stem":19303,"_extension":20},"/en-us/blog/gitlab-community-day",{"title":19289,"description":19290,"ogTitle":19289,"ogDescription":19290,"noIndex":6,"ogImage":19291,"ogUrl":19292,"ogSiteName":995,"ogType":996,"canonicalUrls":19292,"schema":19293},"Join the first GitLab Community Day and get started with CI","Learn about GitLab CI and get to know the community.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681760/Blog/Hero%20Images/Community-day-banner-1.png","https://about.gitlab.com/blog/gitlab-community-day","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join the first GitLab Community Day and get started with CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2020-11-19\",\n      }",{"title":19289,"description":19290,"authors":19295,"heroImage":19291,"date":19296,"category":17170,"tags":19297},[6119],"2020-11-19",[110,269],{"slug":19299,"featured":6,"template":736},"gitlab-community-day","content:en-us:blog:gitlab-community-day.yml","Gitlab Community Day","en-us/blog/gitlab-community-day.yml","en-us/blog/gitlab-community-day",{"_path":19305,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19306,"content":19311,"config":19315,"_id":19317,"_type":16,"title":19318,"_source":17,"_file":19319,"_stem":19320,"_extension":20},"/en-us/blog/integration-management",{"title":19307,"description":19308,"ogTitle":19307,"ogDescription":19308,"noIndex":6,"ogImage":13959,"ogUrl":19309,"ogSiteName":995,"ogType":996,"canonicalUrls":19309,"schema":19310},"Integration management for git projects","Read here on how GitLab offers the tools for managing integrations for your projects!","https://about.gitlab.com/blog/integration-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Integration management for git projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Deuley\"},{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2020-11-19\",\n      }",{"title":19307,"description":19308,"authors":19312,"heroImage":13959,"date":19296,"category":1049,"tags":19314},[19313,18295],"Patrick Deuley",[730,233,1049],{"slug":19316,"featured":6,"template":736},"integration-management","content:en-us:blog:integration-management.yml","Integration Management","en-us/blog/integration-management.yml","en-us/blog/integration-management",{"_path":19322,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19323,"content":19329,"config":19334,"_id":19336,"_type":16,"title":19337,"_source":17,"_file":19338,"_stem":19339,"_extension":20},"/en-us/blog/move-to-distributed-vcs",{"title":19324,"description":19325,"ogTitle":19324,"ogDescription":19325,"noIndex":6,"ogImage":19326,"ogUrl":19327,"ogSiteName":995,"ogType":996,"canonicalUrls":19327,"schema":19328},"Why you should switch to distributed version control","We share a few reasons why high-performing software development teams use distributed version control systems over centralized version control.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681766/Blog/Hero%20Images/distributedvcs.jpg","https://about.gitlab.com/blog/move-to-distributed-vcs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why you should move from centralized version control to distributed version control\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2020-11-19\",\n      }",{"title":19330,"description":19325,"authors":19331,"heroImage":19326,"date":19296,"category":8140,"tags":19333},"Why you should move from centralized version control to distributed version control",[19332],"Suri Patel",[1195,1335,2815],{"slug":19335,"featured":6,"template":736},"move-to-distributed-vcs","content:en-us:blog:move-to-distributed-vcs.yml","Move To Distributed Vcs","en-us/blog/move-to-distributed-vcs.yml","en-us/blog/move-to-distributed-vcs",{"_path":19341,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19342,"content":19348,"config":19352,"_id":19354,"_type":16,"title":19355,"_source":17,"_file":19356,"_stem":19357,"_extension":20},"/en-us/blog/docker-hub-rate-limit-monitoring",{"title":19343,"description":19344,"ogTitle":19343,"ogDescription":19344,"noIndex":6,"ogImage":19345,"ogUrl":19346,"ogSiteName":995,"ogType":996,"canonicalUrls":19346,"schema":19347},"How to make Docker Hub rate limit monitoring a breeze","Docker Hub Rate Limits are enforced and we need to find ways to monitor the remaining pull requests. Explore some ways to create a monitoring plugin for Nagios/Icinga/Sensu/Zabbix and test-drive a new Prometheus exporter in combination with Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681749/Blog/Hero%20Images/vidarnm-unsplash.jpg","https://about.gitlab.com/blog/docker-hub-rate-limit-monitoring","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to make Docker Hub rate limit monitoring a breeze\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2020-11-18\",\n      }",{"title":19343,"description":19344,"authors":19349,"heroImage":19345,"date":19350,"category":858,"tags":19351},[1424],"2020-11-18",[582,564,2908,1265,6376],{"slug":19353,"featured":6,"template":736},"docker-hub-rate-limit-monitoring","content:en-us:blog:docker-hub-rate-limit-monitoring.yml","Docker Hub Rate Limit Monitoring","en-us/blog/docker-hub-rate-limit-monitoring.yml","en-us/blog/docker-hub-rate-limit-monitoring",{"_path":19359,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19360,"content":19366,"config":19370,"_id":19372,"_type":16,"title":19373,"_source":17,"_file":19374,"_stem":19375,"_extension":20},"/en-us/blog/lee-tickett-my-gitlab-journey",{"title":19361,"description":19362,"ogTitle":19361,"ogDescription":19362,"noIndex":6,"ogImage":19363,"ogUrl":19364,"ogSiteName":995,"ogType":996,"canonicalUrls":19364,"schema":19365},"From user, to advocate, to contributor: my GitLab journey","Three years (as a user and as a contributor) with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681735/Blog/Hero%20Images/cover_photo.jpg","https://about.gitlab.com/blog/lee-tickett-my-gitlab-journey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"From user, to advocate, to contributor: my GitLab journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Tickett\"}],\n        \"datePublished\": \"2020-11-13\",\n      }",{"title":19361,"description":19362,"authors":19367,"heroImage":19363,"date":19368,"category":17170,"tags":19369},[1646],"2020-11-13",[110,269,4665,1335,1265,564,2815],{"slug":19371,"featured":6,"template":736},"lee-tickett-my-gitlab-journey","content:en-us:blog:lee-tickett-my-gitlab-journey.yml","Lee Tickett My Gitlab Journey","en-us/blog/lee-tickett-my-gitlab-journey.yml","en-us/blog/lee-tickett-my-gitlab-journey",{"_path":19377,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19378,"content":19384,"config":19387,"_id":19389,"_type":16,"title":19390,"_source":17,"_file":19391,"_stem":19392,"_extension":20},"/en-us/blog/thelastmile-gitlab",{"title":19379,"description":19380,"ogTitle":19379,"ogDescription":19380,"noIndex":6,"ogImage":19381,"ogUrl":19382,"ogSiteName":995,"ogType":996,"canonicalUrls":19382,"schema":19383},"Inside the collaboration between GitLab and The Last Mile","GitLab teamed up with The Last Mile to bring open source DevOps and tech mentorship to incarcerated populations across the United States.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681743/Blog/Hero%20Images/tlm-blogpost-banner.png","https://about.gitlab.com/blog/thelastmile-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside the collaboration between GitLab and The Last Mile\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2020-11-13\",\n      }",{"title":19379,"description":19380,"authors":19385,"heroImage":19381,"date":19368,"category":1388,"tags":19386},[13131],[1265,4665,2815,1569,2097],{"slug":19388,"featured":6,"template":736},"thelastmile-gitlab","content:en-us:blog:thelastmile-gitlab.yml","Thelastmile Gitlab","en-us/blog/thelastmile-gitlab.yml","en-us/blog/thelastmile-gitlab",{"_path":19394,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19395,"content":19401,"config":19405,"_id":19407,"_type":16,"title":19408,"_source":17,"_file":19409,"_stem":19410,"_extension":20},"/en-us/blog/breaking-into-security",{"title":19396,"description":19397,"ogTitle":19396,"ogDescription":19397,"noIndex":6,"ogImage":19398,"ogUrl":19399,"ogSiteName":995,"ogType":996,"canonicalUrls":19399,"schema":19400},"How to break into security","Oftentimes, the professional road to security practitioner is a windy one. We talk to 9 women from our Security team to see what their journey looked like.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670847/Blog/Hero%20Images/wocintechchat_blog1.jpg","https://about.gitlab.com/blog/breaking-into-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to break into security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-11-12\",\n      }",{"title":19396,"description":19397,"authors":19402,"heroImage":19398,"date":19403,"category":17170,"tags":19404},[11324],"2020-11-12",[790,1569],{"slug":19406,"featured":6,"template":736},"breaking-into-security","content:en-us:blog:breaking-into-security.yml","Breaking Into Security","en-us/blog/breaking-into-security.yml","en-us/blog/breaking-into-security",{"_path":19412,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19413,"content":19419,"config":19422,"_id":19424,"_type":16,"title":19425,"_source":17,"_file":19426,"_stem":19427,"_extension":20},"/en-us/blog/migrating-your-version-control-to-git",{"title":19414,"description":19415,"ogTitle":19414,"ogDescription":19415,"noIndex":6,"ogImage":19416,"ogUrl":19417,"ogSiteName":995,"ogType":996,"canonicalUrls":19417,"schema":19418},"Migrating your version control to Git? Here’s what you need to know","Change is hard, but moving to Git doesn’t have to be if you read these tips.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681731/Blog/Hero%20Images/migrategit.jpg","https://about.gitlab.com/blog/migrating-your-version-control-to-git","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migrating your version control to Git? Here’s what you need to know\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2020-11-12\",\n      }",{"title":19414,"description":19415,"authors":19420,"heroImage":19416,"date":19403,"category":8140,"tags":19421},[19332],[1195,1335,2815],{"slug":19423,"featured":6,"template":736},"migrating-your-version-control-to-git","content:en-us:blog:migrating-your-version-control-to-git.yml","Migrating Your Version Control To Git","en-us/blog/migrating-your-version-control-to-git.yml","en-us/blog/migrating-your-version-control-to-git",{"_path":19429,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19430,"content":19435,"config":19439,"_id":19441,"_type":16,"title":19442,"_source":17,"_file":19443,"_stem":19444,"_extension":20},"/en-us/blog/gitlab-for-agile-portfolio-planning-project-management",{"title":19431,"description":19432,"ogTitle":19431,"ogDescription":19432,"noIndex":6,"ogImage":17253,"ogUrl":19433,"ogSiteName":995,"ogType":996,"canonicalUrls":19433,"schema":19434},"How to use GitLab for Agile portfolio planning and project management","GitLab provides features that are flexible enough to be used for scaled Agile portfolio planning and project management, regardless of the framework you choose.","https://about.gitlab.com/blog/gitlab-for-agile-portfolio-planning-project-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab for Agile portfolio planning and project management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Hernandez\"},{\"@type\":\"Person\",\"name\":\"Julie Byrne\"}],\n        \"datePublished\": \"2020-11-11\",\n      }",{"title":19431,"description":19432,"authors":19436,"heroImage":17253,"date":19437,"category":858,"tags":19438},[9904,5553],"2020-11-11",[729,730,1335,2815],{"slug":19440,"featured":6,"template":736},"gitlab-for-agile-portfolio-planning-project-management","content:en-us:blog:gitlab-for-agile-portfolio-planning-project-management.yml","Gitlab For Agile Portfolio Planning Project Management","en-us/blog/gitlab-for-agile-portfolio-planning-project-management.yml","en-us/blog/gitlab-for-agile-portfolio-planning-project-management",{"_path":19446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19447,"content":19452,"config":19456,"_id":19458,"_type":16,"title":19459,"_source":17,"_file":19460,"_stem":19461,"_extension":20},"/en-us/blog/rpadovani-ask-a-hacker",{"title":19448,"description":19449,"ogTitle":19448,"ogDescription":19449,"noIndex":6,"ogImage":17979,"ogUrl":19450,"ogSiteName":995,"ogType":996,"canonicalUrls":19450,"schema":19451},"Ask a hacker: rpadovani","We chat with a leading bug bounty researcher on why he hacks, what motivates him and his best bug report yet.","https://about.gitlab.com/blog/rpadovani-ask-a-hacker","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ask a hacker: rpadovani\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-11-10\",\n      }",{"title":19448,"description":19449,"authors":19453,"heroImage":17979,"date":19454,"category":17170,"tags":19455},[11324],"2020-11-10",[790,2483],{"slug":19457,"featured":6,"template":736},"rpadovani-ask-a-hacker","content:en-us:blog:rpadovani-ask-a-hacker.yml","Rpadovani Ask A Hacker","en-us/blog/rpadovani-ask-a-hacker.yml","en-us/blog/rpadovani-ask-a-hacker",{"_path":19463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19464,"content":19470,"config":19475,"_id":19477,"_type":16,"title":19478,"_source":17,"_file":19479,"_stem":19480,"_extension":20},"/en-us/blog/ensure-auto-devops-work-after-helm-stable-repo",{"title":19465,"description":19466,"ogTitle":19465,"ogDescription":19466,"noIndex":6,"ogImage":19467,"ogUrl":19468,"ogSiteName":995,"ogType":996,"canonicalUrls":19468,"schema":19469},"Adapting Auto DevOps & managed apps to Helm repo changes","The Helm stable repository will be removed this month. We explain how to keep Auto DevOps and GitLab Managed Apps working.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667182/Blog/Hero%20Images/maximilian-weisbecker-Esq0ovRY-Zs-unsplash.jpg","https://about.gitlab.com/blog/ensure-auto-devops-work-after-helm-stable-repo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to keep GitLab Auto DevOps and Managed Apps working after Helm stable repo is removed\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Thong Kuah\"}],\n        \"datePublished\": \"2020-11-09\",\n      }",{"title":19471,"description":19466,"authors":19472,"heroImage":19467,"date":19473,"category":1049,"tags":19474},"How to keep GitLab Auto DevOps and Managed Apps working after Helm stable repo is removed",[18453],"2020-11-09",[564,110,1049],{"slug":19476,"featured":6,"template":736},"ensure-auto-devops-work-after-helm-stable-repo","content:en-us:blog:ensure-auto-devops-work-after-helm-stable-repo.yml","Ensure Auto Devops Work After Helm Stable Repo","en-us/blog/ensure-auto-devops-work-after-helm-stable-repo.yml","en-us/blog/ensure-auto-devops-work-after-helm-stable-repo",{"_path":19482,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19483,"content":19489,"config":19492,"_id":19494,"_type":16,"title":19495,"_source":17,"_file":19496,"_stem":19497,"_extension":20},"/en-us/blog/lessons-in-iteration-from-new-infrastructure-team",{"title":19484,"description":19485,"ogTitle":19484,"ogDescription":19485,"noIndex":6,"ogImage":19486,"ogUrl":19487,"ogSiteName":995,"ogType":996,"canonicalUrls":19487,"schema":19488},"Lessons in iteration from a new team in infrastructure","A new, small team at GitLab discovered that minimum viable change applies to scaling problems too.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681724/Blog/Hero%20Images/skateboard-iteration.jpg","https://about.gitlab.com/blog/lessons-in-iteration-from-new-infrastructure-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Lessons in iteration from a new team in infrastructure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean McGivern\"}],\n        \"datePublished\": \"2020-11-09\",\n      }",{"title":19484,"description":19485,"authors":19490,"heroImage":19486,"date":19473,"category":858,"tags":19491},[18858],[1569,1988,1335],{"slug":19493,"featured":6,"template":736},"lessons-in-iteration-from-new-infrastructure-team","content:en-us:blog:lessons-in-iteration-from-new-infrastructure-team.yml","Lessons In Iteration From New Infrastructure Team","en-us/blog/lessons-in-iteration-from-new-infrastructure-team.yml","en-us/blog/lessons-in-iteration-from-new-infrastructure-team",{"_path":19499,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19500,"content":19506,"config":19510,"_id":19512,"_type":16,"title":19513,"_source":17,"_file":19514,"_stem":19515,"_extension":20},"/en-us/blog/designing-alerts-and-incidents",{"title":19501,"description":19502,"ogTitle":19501,"ogDescription":19502,"noIndex":6,"ogImage":19503,"ogUrl":19504,"ogSiteName":995,"ogType":996,"canonicalUrls":19504,"schema":19505},"Designing an incident management workflow from scratch and where its used","See here how to create a single workflow for triaging alerts and resolving incidents using GitLab's Product Development Flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670750/Blog/Hero%20Images/designing-incidents-alerts.jpg","https://about.gitlab.com/blog/designing-alerts-and-incidents","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Designing an incident management workflow from scratch and where its used\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amelia Bauerly\"}],\n        \"datePublished\": \"2020-11-03\",\n      }",{"title":19501,"description":19502,"authors":19507,"heroImage":19503,"date":19508,"category":17170,"tags":19509},[14559],"2020-11-03",[2703,2702,1569],{"slug":19511,"featured":6,"template":736},"designing-alerts-and-incidents","content:en-us:blog:designing-alerts-and-incidents.yml","Designing Alerts And Incidents","en-us/blog/designing-alerts-and-incidents.yml","en-us/blog/designing-alerts-and-incidents",{"_path":19517,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19518,"content":19523,"config":19527,"_id":19529,"_type":16,"title":19530,"_source":17,"_file":19531,"_stem":19532,"_extension":20},"/en-us/blog/scaling-down-how-we-prototyped-an-image-scaler-at-gitlab",{"title":19519,"description":19520,"ogTitle":19519,"ogDescription":19520,"noIndex":6,"ogImage":17164,"ogUrl":19521,"ogSiteName":995,"ogType":996,"canonicalUrls":19521,"schema":19522},"Scaling down: How we shrank image transfers by 93%","Our approach to delivering an image scaling solution to speed up GitLab site\nrendering","https://about.gitlab.com/blog/scaling-down-how-we-prototyped-an-image-scaler-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Scaling down: How we shrank image transfers by 93%\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matthias Käppler\"}],\n        \"datePublished\": \"2020-11-02\",\n      }",{"title":19519,"description":19520,"authors":19524,"heroImage":17164,"date":19525,"category":17170,"tags":19526},[17468],"2020-11-02",[1335,964,1988],{"slug":19528,"featured":6,"template":736},"scaling-down-how-we-prototyped-an-image-scaler-at-gitlab","content:en-us:blog:scaling-down-how-we-prototyped-an-image-scaler-at-gitlab.yml","Scaling Down How We Prototyped An Image Scaler At Gitlab","en-us/blog/scaling-down-how-we-prototyped-an-image-scaler-at-gitlab.yml","en-us/blog/scaling-down-how-we-prototyped-an-image-scaler-at-gitlab",{"_path":19534,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19535,"content":19541,"config":19545,"_id":19547,"_type":16,"title":19548,"_source":17,"_file":19549,"_stem":19550,"_extension":20},"/en-us/blog/future-proof-your-developer-career",{"title":19536,"description":19537,"ogTitle":19536,"ogDescription":19537,"noIndex":6,"ogImage":19538,"ogUrl":19539,"ogSiteName":995,"ogType":996,"canonicalUrls":19539,"schema":19540},"Future-proof your developer career","Roles are changing and AI is coming. We asked 14 DevOps practitioners, analysts, and GitLab execs how to future-proof your career.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679588/Blog/Hero%20Images/future-of-software-future-proof-your-career.png","https://about.gitlab.com/blog/future-proof-your-developer-career","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Future-proof your developer career\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-10-30\",\n      }",{"title":19536,"description":19537,"authors":19542,"heroImage":19538,"date":19543,"category":8140,"tags":19544},[10672],"2020-10-30",[564,6980,964],{"slug":19546,"featured":6,"template":736},"future-proof-your-developer-career","content:en-us:blog:future-proof-your-developer-career.yml","Future Proof Your Developer Career","en-us/blog/future-proof-your-developer-career.yml","en-us/blog/future-proof-your-developer-career",{"_path":19552,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19553,"content":19558,"config":19561,"_id":19563,"_type":16,"title":19564,"_source":17,"_file":19565,"_stem":19566,"_extension":20},"/en-us/blog/minor-breaking-change-dependency-proxy",{"title":19554,"description":19555,"ogTitle":19554,"ogDescription":19555,"noIndex":6,"ogImage":11046,"ogUrl":19556,"ogSiteName":995,"ogType":996,"canonicalUrls":19556,"schema":19557},"The Dependency Proxy is moving to open source","We're moving the Dependency Proxy to Core to help address Docker Hub rate limiting issues.","https://about.gitlab.com/blog/minor-breaking-change-dependency-proxy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Dependency Proxy is moving to open source\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Rizzi\"}],\n        \"datePublished\": \"2020-10-30\",\n      }",{"title":19554,"description":19555,"authors":19559,"heroImage":11046,"date":19543,"category":1049,"tags":19560},[907],[1049,1265],{"slug":19562,"featured":6,"template":736},"minor-breaking-change-dependency-proxy","content:en-us:blog:minor-breaking-change-dependency-proxy.yml","Minor Breaking Change Dependency Proxy","en-us/blog/minor-breaking-change-dependency-proxy.yml","en-us/blog/minor-breaking-change-dependency-proxy",{"_path":19568,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19569,"content":19574,"config":19578,"_id":19580,"_type":16,"title":19581,"_source":17,"_file":19582,"_stem":19583,"_extension":20},"/en-us/blog/mitigating-the-impact-of-docker-hub-pull-requests-limits",{"title":19570,"description":19571,"ogTitle":19570,"ogDescription":19571,"noIndex":6,"ogImage":11046,"ogUrl":19572,"ogSiteName":995,"ogType":996,"canonicalUrls":19572,"schema":19573},"How to cache Docker images and reduce Hub calls in CI/CD","Docker announced it will be rate-limiting the number of pull requests to the service in its free plan. We share strategies to mitigate the impact of the new pull request limits for users and customers that are managing their own GitLab instance.","https://about.gitlab.com/blog/mitigating-the-impact-of-docker-hub-pull-requests-limits","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Caching Docker images to reduce the number of calls to Docker Hub from your CI/CD infrastructure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Azzopardi\"}],\n        \"datePublished\": \"2020-10-30\",\n      }",{"title":19575,"description":19571,"authors":19576,"heroImage":11046,"date":19543,"category":1049,"tags":19577},"Caching Docker images to reduce the number of calls to Docker Hub from your CI/CD infrastructure",[12322],[1049],{"slug":19579,"featured":6,"template":736},"mitigating-the-impact-of-docker-hub-pull-requests-limits","content:en-us:blog:mitigating-the-impact-of-docker-hub-pull-requests-limits.yml","Mitigating The Impact Of Docker Hub Pull Requests Limits","en-us/blog/mitigating-the-impact-of-docker-hub-pull-requests-limits.yml","en-us/blog/mitigating-the-impact-of-docker-hub-pull-requests-limits",{"_path":19585,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19586,"content":19592,"config":19596,"_id":19598,"_type":16,"title":19599,"_source":17,"_file":19600,"_stem":19601,"_extension":20},"/en-us/blog/gitlab-hero-devops-platform",{"title":19587,"description":19588,"ogTitle":19587,"ogDescription":19588,"noIndex":6,"ogImage":19589,"ogUrl":19590,"ogSiteName":995,"ogType":996,"canonicalUrls":19590,"schema":19591},"How a GitLab engineer changed the future of DevOps","When Kamil Trzciński suggested we integrate GitLab version control and GitLab CI one into a single product, GitLab's pioneering DevOps Platform was born.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681121/Blog/Hero%20Images/whatisgitlabflow.jpg","https://about.gitlab.com/blog/gitlab-hero-devops-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How a GitLab engineer changed the future of DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2020-10-29\",\n      }",{"title":19587,"description":19588,"authors":19593,"heroImage":19589,"date":19594,"category":1049,"tags":19595},[3701],"2020-10-29",[564,269,1569],{"slug":19597,"featured":6,"template":736},"gitlab-hero-devops-platform","content:en-us:blog:gitlab-hero-devops-platform.yml","Gitlab Hero Devops Platform","en-us/blog/gitlab-hero-devops-platform.yml","en-us/blog/gitlab-hero-devops-platform",{"_path":19603,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19604,"content":19610,"config":19615,"_id":19617,"_type":16,"title":19618,"_source":17,"_file":19619,"_stem":19620,"_extension":20},"/en-us/blog/how-we-work-to-detect-and-mitigate-spam",{"title":19605,"description":19606,"ogTitle":19605,"ogDescription":19606,"noIndex":6,"ogImage":19607,"ogUrl":19608,"ogSiteName":995,"ogType":996,"canonicalUrls":19608,"schema":19609},"How we work to detect and mitigate Spam on GitLab.com and beyond","Working to fight spam and abuse can be a full time job.  Here's how we do that for gitlab.com and some tips for self-managed users.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667172/Blog/Hero%20Images/ranurte-unsplash.jpg","https://about.gitlab.com/blog/how-we-work-to-detect-and-mitigate-spam","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we work to detect and mitigate Spam on GitLab.com and beyond\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Charl de Wit\"},{\"@type\":\"Person\",\"name\":\"Greg Myers\"}],\n        \"datePublished\": \"2020-10-29\",\n      }",{"title":19605,"description":19606,"authors":19611,"heroImage":19607,"date":19594,"category":17170,"tags":19614},[19612,19613],"Charl de Wit","Greg Myers",[790],{"slug":19616,"featured":6,"template":736},"how-we-work-to-detect-and-mitigate-spam","content:en-us:blog:how-we-work-to-detect-and-mitigate-spam.yml","How We Work To Detect And Mitigate Spam","en-us/blog/how-we-work-to-detect-and-mitigate-spam.yml","en-us/blog/how-we-work-to-detect-and-mitigate-spam",{"_path":19622,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19623,"content":19629,"config":19633,"_id":19635,"_type":16,"title":19636,"_source":17,"_file":19637,"_stem":19638,"_extension":20},"/en-us/blog/ai-in-software-development",{"title":19624,"description":19625,"ogTitle":19624,"ogDescription":19625,"noIndex":6,"ogImage":19626,"ogUrl":19627,"ogSiteName":995,"ogType":996,"canonicalUrls":19627,"schema":19628},"How AI will change software development","AI has made self-driving cars possible, so what about self-writing code? We asked 14 DevOps practitioners, industry analysts and execs to share their take on how AI will impact software development.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681709/Blog/Hero%20Images/future-of-software-ai.png","https://about.gitlab.com/blog/ai-in-software-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How AI will change software development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-10-28\",\n      }",{"title":19624,"description":19625,"authors":19630,"heroImage":19626,"date":19631,"category":8140,"tags":19632},[10672],"2020-10-28",[564,6980,964],{"slug":19634,"featured":6,"template":736},"ai-in-software-development","content:en-us:blog:ai-in-software-development.yml","Ai In Software Development","en-us/blog/ai-in-software-development.yml","en-us/blog/ai-in-software-development",{"_path":19640,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19641,"content":19647,"config":19652,"_id":19654,"_type":16,"title":19655,"_source":17,"_file":19656,"_stem":19657,"_extension":20},"/en-us/blog/how-we-optimized-our-infrastructure-spend-at-gitlab",{"title":19642,"description":19643,"ogTitle":19642,"ogDescription":19643,"noIndex":6,"ogImage":19644,"ogUrl":19645,"ogSiteName":995,"ogType":996,"canonicalUrls":19645,"schema":19646},"How we optimized infrastructure spend at GitLab","We keep our cloud spend under control with a spend optimization framework – now we're sharing it with you.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681701/Blog/Hero%20Images/piggy_bank.jpg","https://about.gitlab.com/blog/how-we-optimized-our-infrastructure-spend-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we optimized infrastructure spend at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Davis Townsend\"}],\n        \"datePublished\": \"2020-10-27\",\n      }",{"title":19642,"description":19643,"authors":19648,"heroImage":19644,"date":19650,"category":858,"tags":19651},[19649],"Davis Townsend","2020-10-27",[1730,1569,2815,582],{"slug":19653,"featured":6,"template":736},"how-we-optimized-our-infrastructure-spend-at-gitlab","content:en-us:blog:how-we-optimized-our-infrastructure-spend-at-gitlab.yml","How We Optimized Our Infrastructure Spend At Gitlab","en-us/blog/how-we-optimized-our-infrastructure-spend-at-gitlab.yml","en-us/blog/how-we-optimized-our-infrastructure-spend-at-gitlab",{"_path":19659,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19660,"content":19665,"config":19670,"_id":19672,"_type":16,"title":19673,"_source":17,"_file":19674,"_stem":19675,"_extension":20},"/en-us/blog/how-non-engineers-experience-gitlab",{"title":19661,"description":19662,"ogTitle":19661,"ogDescription":19662,"noIndex":6,"ogImage":17164,"ogUrl":19663,"ogSiteName":995,"ogType":996,"canonicalUrls":19663,"schema":19664},"Uncovering the diverse needs of non-engineering GitLab users","This post describes how the System Usability Scale (SUS) uncovered opportunities to improve the GitLab user experience for non-engineering users.","https://about.gitlab.com/blog/how-non-engineers-experience-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Uncovering the diverse needs of non-engineering GitLab users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Huang\"}],\n        \"datePublished\": \"2020-10-26\",\n      }",{"title":19661,"description":19662,"authors":19666,"heroImage":17164,"date":19668,"category":17170,"tags":19669},[19667],"Erica Huang","2020-10-26",[2703,2025],{"slug":19671,"featured":6,"template":736},"how-non-engineers-experience-gitlab","content:en-us:blog:how-non-engineers-experience-gitlab.yml","How Non Engineers Experience Gitlab","en-us/blog/how-non-engineers-experience-gitlab.yml","en-us/blog/how-non-engineers-experience-gitlab",{"_path":19677,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19678,"content":19684,"config":19688,"_id":19690,"_type":16,"title":19691,"_source":17,"_file":19692,"_stem":19693,"_extension":20},"/en-us/blog/container-network-security-is-important",{"title":19679,"description":19680,"ogTitle":19679,"ogDescription":19680,"noIndex":6,"ogImage":19681,"ogUrl":19682,"ogSiteName":995,"ogType":996,"canonicalUrls":19682,"schema":19683},"How to secure your Kubernetes pods using GitLab Container Network Security","We help you get started with securing your Kubernetes cluster using Cilium, a GitLab-managed application.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681687/Blog/Hero%20Images/diane-helentjaris-TYk0YQbog9g-unsplash.jpg","https://about.gitlab.com/blog/container-network-security-is-important","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to secure your Kubernetes pods using GitLab Container Network Security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2020-10-23\",\n      }",{"title":19679,"description":19680,"authors":19685,"heroImage":19681,"date":19686,"category":790,"tags":19687},[1097],"2020-10-23",[790,6980,2908,729,964],{"slug":19689,"featured":6,"template":736},"container-network-security-is-important","content:en-us:blog:container-network-security-is-important.yml","Container Network Security Is Important","en-us/blog/container-network-security-is-important.yml","en-us/blog/container-network-security-is-important",{"_path":19695,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19696,"content":19702,"config":19705,"_id":19707,"_type":16,"title":19708,"_source":17,"_file":19709,"_stem":19710,"_extension":20},"/en-us/blog/switching-sides-in-security",{"title":19697,"description":19698,"ogTitle":19697,"ogDescription":19698,"noIndex":6,"ogImage":19699,"ogUrl":19700,"ogSiteName":995,"ogType":996,"canonicalUrls":19700,"schema":19701},"Switching “sides” in security","How does product security work differ from pen testing and hacking all the things?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679594/Blog/Hero%20Images/jason-polychronopulos-unsplash.jpg","https://about.gitlab.com/blog/switching-sides-in-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Switching “sides” in security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joern Schneeweisz\"}],\n        \"datePublished\": \"2020-10-23\",\n      }",{"title":19697,"description":19698,"authors":19703,"heroImage":19699,"date":19686,"category":17170,"tags":19704},[10316],[790,3292,1569],{"slug":19706,"featured":6,"template":736},"switching-sides-in-security","content:en-us:blog:switching-sides-in-security.yml","Switching Sides In Security","en-us/blog/switching-sides-in-security.yml","en-us/blog/switching-sides-in-security",{"_path":19712,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19713,"content":19718,"config":19722,"_id":19724,"_type":16,"title":19725,"_source":17,"_file":19726,"_stem":19727,"_extension":20},"/en-us/blog/fuzzit-acquisition-journey",{"title":19714,"description":19715,"ogTitle":19714,"ogDescription":19715,"noIndex":6,"ogImage":17164,"ogUrl":19716,"ogSiteName":995,"ogType":996,"canonicalUrls":19716,"schema":19717},"Fuzzit - GitLab journey","From a bootstrap startup to integral part of GitLab.","https://about.gitlab.com/blog/fuzzit-acquisition-journey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Fuzzit - GitLab journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yevgeny Pats\"}],\n        \"datePublished\": \"2020-10-22\",\n      }",{"title":19714,"description":19715,"authors":19719,"heroImage":17164,"date":19720,"category":17170,"tags":19721},[19051],"2020-10-22",[1569,790,10011],{"slug":19723,"featured":6,"template":736},"fuzzit-acquisition-journey","content:en-us:blog:fuzzit-acquisition-journey.yml","Fuzzit Acquisition Journey","en-us/blog/fuzzit-acquisition-journey.yml","en-us/blog/fuzzit-acquisition-journey",{"_path":19729,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19730,"content":19735,"config":19738,"_id":19740,"_type":16,"title":19741,"_source":17,"_file":19742,"_stem":19743,"_extension":20},"/en-us/blog/integrating-with-gitlab-secure",{"title":19731,"description":19732,"ogTitle":19731,"ogDescription":19732,"noIndex":6,"ogImage":11464,"ogUrl":19733,"ogSiteName":995,"ogType":996,"canonicalUrls":19733,"schema":19734},"How open source contributions accelerate GitLab Secure","Community contributions and an open integration framework allows anyone to extend GitLab Secure","https://about.gitlab.com/blog/integrating-with-gitlab-secure","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How open source contributions accelerate GitLab Secure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2020-10-22\",\n      }",{"title":19731,"description":19732,"authors":19736,"heroImage":11464,"date":19720,"category":1388,"tags":19737},[6299],[110,564,790,269,3074,1265],{"slug":19739,"featured":6,"template":736},"integrating-with-gitlab-secure","content:en-us:blog:integrating-with-gitlab-secure.yml","Integrating With Gitlab Secure","en-us/blog/integrating-with-gitlab-secure.yml","en-us/blog/integrating-with-gitlab-secure",{"_path":19745,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19746,"content":19752,"config":19756,"_id":19758,"_type":16,"title":19759,"_source":17,"_file":19760,"_stem":19761,"_extension":20},"/en-us/blog/how-tomorrows-tech-affects-sw-dev",{"title":19747,"description":19748,"ogTitle":19747,"ogDescription":19748,"noIndex":6,"ogImage":19749,"ogUrl":19750,"ogSiteName":995,"ogType":996,"canonicalUrls":19750,"schema":19751},"What devs need to know about tomorrow’s tech today","From 5G to edge computing, microservices and more, cutting-edge technologies will be mainstream soon. We asked more than a dozen DevOps practitioners and analysts which technologies developers need to start to understand today.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681675/Blog/Hero%20Images/future-of-software-what-developers-need-to-know.png","https://about.gitlab.com/blog/how-tomorrows-tech-affects-sw-dev","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What devs need to know about tomorrow’s tech today\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-10-21\",\n      }",{"title":19747,"description":19748,"authors":19753,"heroImage":19749,"date":19754,"category":8140,"tags":19755},[10672],"2020-10-21",[564,2908,2815],{"slug":19757,"featured":6,"template":736},"how-tomorrows-tech-affects-sw-dev","content:en-us:blog:how-tomorrows-tech-affects-sw-dev.yml","How Tomorrows Tech Affects Sw Dev","en-us/blog/how-tomorrows-tech-affects-sw-dev.yml","en-us/blog/how-tomorrows-tech-affects-sw-dev",{"_path":19763,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19764,"content":19770,"config":19775,"_id":19777,"_type":16,"title":19778,"_source":17,"_file":19779,"_stem":19780,"_extension":20},"/en-us/blog/software-developer-changing-role",{"title":19765,"description":19766,"ogTitle":19765,"ogDescription":19766,"noIndex":6,"ogImage":19767,"ogUrl":19768,"ogSiteName":995,"ogType":996,"canonicalUrls":19768,"schema":19769},"Software developer roles: How responsibilities are evolving","From your job title to where you sit in the organization and what your priorities are, every single aspect of the software developer role is about to change. More than a dozen DevOps practitioners and analysts shared their views of the future. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664054/Blog/Hero%20Images/future-of-software-developer-role-changing.png","https://about.gitlab.com/blog/software-developer-changing-role","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The software developer role and responsibilities are changing. Here's what to expect\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-10-20\",\n      }",{"title":19771,"description":19766,"authors":19772,"heroImage":19767,"date":19773,"category":8140,"tags":19774},"The software developer role and responsibilities are changing. Here's what to expect",[10672],"2020-10-20",[564,7788,1049],{"slug":19776,"featured":6,"template":736},"software-developer-changing-role","content:en-us:blog:software-developer-changing-role.yml","Software Developer Changing Role","en-us/blog/software-developer-changing-role.yml","en-us/blog/software-developer-changing-role",{"_path":19782,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19783,"content":19788,"config":19793,"_id":19795,"_type":16,"title":19796,"_source":17,"_file":19797,"_stem":19798,"_extension":20},"/en-us/blog/iterate-like-a-gitlab-designer",{"title":19784,"description":19785,"ogTitle":19784,"ogDescription":19785,"noIndex":6,"ogImage":11046,"ogUrl":19786,"ogSiteName":995,"ogType":996,"canonicalUrls":19786,"schema":19787},"Iterate Like a GitLab Designer","Think big, ship small, learn fast","https://about.gitlab.com/blog/iterate-like-a-gitlab-designer","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Iterate Like a GitLab Designer\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Holly Reynolds\"}],\n        \"datePublished\": \"2020-10-16\",\n      }",{"title":19784,"description":19785,"authors":19789,"heroImage":11046,"date":19791,"category":17170,"tags":19792},[19790],"Holly Reynolds","2020-10-16",[2702,2703,2704,2025,2815],{"slug":19794,"featured":6,"template":736},"iterate-like-a-gitlab-designer","content:en-us:blog:iterate-like-a-gitlab-designer.yml","Iterate Like A Gitlab Designer","en-us/blog/iterate-like-a-gitlab-designer.yml","en-us/blog/iterate-like-a-gitlab-designer",{"_path":19800,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19801,"content":19807,"config":19811,"_id":19813,"_type":16,"title":19814,"_source":17,"_file":19815,"_stem":19816,"_extension":20},"/en-us/blog/use-waypoint-to-deploy-with-gitlab-cicd",{"title":19802,"description":19803,"ogTitle":19802,"ogDescription":19803,"noIndex":6,"ogImage":19804,"ogUrl":19805,"ogSiteName":995,"ogType":996,"canonicalUrls":19805,"schema":19806},"How to use HashiCorp Waypoint to deploy with GitLab CI/CD","Learn how to use Waypoint using GitLab CI/CD by following this step-by-step demo.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679260/Blog/Hero%20Images/using-hashicorp-waypoint-deploy-gitlab-cicd.jpg","https://about.gitlab.com/blog/use-waypoint-to-deploy-with-gitlab-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use HashiCorp Waypoint to deploy with GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2020-10-15\",\n      }",{"title":19802,"description":19803,"authors":19808,"heroImage":19804,"date":19809,"category":1049,"tags":19810},[10835],"2020-10-15",[582,564],{"slug":19812,"featured":6,"template":736},"use-waypoint-to-deploy-with-gitlab-cicd","content:en-us:blog:use-waypoint-to-deploy-with-gitlab-cicd.yml","Use Waypoint To Deploy With Gitlab Cicd","en-us/blog/use-waypoint-to-deploy-with-gitlab-cicd.yml","en-us/blog/use-waypoint-to-deploy-with-gitlab-cicd",{"_path":19818,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19819,"content":19825,"config":19829,"_id":19831,"_type":16,"title":19832,"_source":17,"_file":19833,"_stem":19834,"_extension":20},"/en-us/blog/why-security-champions",{"title":19820,"description":19821,"ogTitle":19820,"ogDescription":19821,"noIndex":6,"ogImage":19822,"ogUrl":19823,"ogSiteName":995,"ogType":996,"canonicalUrls":19823,"schema":19824},"Why you need a security champions program","Faster releases, more open source code, and developers unlikely to have formal security training = at risk software apps. The solution? A security champions program.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664002/Blog/Hero%20Images/securitychampions.jpg","https://about.gitlab.com/blog/why-security-champions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why you need a security champions program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-10-14\",\n      }",{"title":19820,"description":19821,"authors":19826,"heroImage":19822,"date":19827,"category":790,"tags":19828},[10672],"2020-10-14",[790,3292,7788],{"slug":19830,"featured":6,"template":736},"why-security-champions","content:en-us:blog:why-security-champions.yml","Why Security Champions","en-us/blog/why-security-champions.yml","en-us/blog/why-security-champions",{"_path":19836,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19837,"content":19843,"config":19847,"_id":19849,"_type":16,"title":19850,"_source":17,"_file":19851,"_stem":19852,"_extension":20},"/en-us/blog/merge-request-reviewers",{"title":19838,"description":19839,"ogTitle":19838,"ogDescription":19839,"noIndex":6,"ogImage":19840,"ogUrl":19841,"ogSiteName":995,"ogType":996,"canonicalUrls":19841,"schema":19842},"Code review made easier thanks to merge request reviewers in GitLab 13.7","Code review is a critically important part of the software development, but it can be hard – and time consuming – to arrange. That's where our new merge request reviewers feature comes in. Here's what to look for in our 13.7 release.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681664/Blog/Hero%20Images/merge_request_reviewers.jpg","https://about.gitlab.com/blog/merge-request-reviewers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Code review made easier thanks to merge request reviewers in GitLab 13.7\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Gruesso\"}],\n        \"datePublished\": \"2020-10-13\",\n      }",{"title":19838,"description":19839,"authors":19844,"heroImage":19840,"date":19845,"category":1049,"tags":19846},[17929],"2020-10-13",[1932,2815],{"slug":19848,"featured":6,"template":736},"merge-request-reviewers","content:en-us:blog:merge-request-reviewers.yml","Merge Request Reviewers","en-us/blog/merge-request-reviewers.yml","en-us/blog/merge-request-reviewers",{"_path":19854,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19855,"content":19861,"config":19865,"_id":19867,"_type":16,"title":19868,"_source":17,"_file":19869,"_stem":19870,"_extension":20},"/en-us/blog/checkmarx-integration",{"title":19856,"description":19857,"ogTitle":19856,"ogDescription":19857,"noIndex":6,"ogImage":19858,"ogUrl":19859,"ogSiteName":995,"ogType":996,"canonicalUrls":19859,"schema":19860},"Get the most out of the Checkmarx integration with GitLab","Make it easier for developers to find bugs and for dev and sec to get along. Here’s what you need to know about the GitLab/Checkmarx integration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681659/Blog/Hero%20Images/checkmarx.jpg","https://about.gitlab.com/blog/checkmarx-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get the most out of the Checkmarx integration with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-10-12\",\n      }",{"title":19856,"description":19857,"authors":19862,"heroImage":19858,"date":19863,"category":858,"tags":19864},[10672],"2020-10-12",[790,1932,7788],{"slug":19866,"featured":6,"template":736},"checkmarx-integration","content:en-us:blog:checkmarx-integration.yml","Checkmarx Integration","en-us/blog/checkmarx-integration.yml","en-us/blog/checkmarx-integration",{"_path":19872,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19873,"content":19878,"config":19883,"_id":19885,"_type":16,"title":19886,"_source":17,"_file":19887,"_stem":19888,"_extension":20},"/en-us/blog/incident-management-with-aws-cloudwatch",{"title":19874,"description":19875,"ogTitle":19874,"ogDescription":19875,"noIndex":6,"ogImage":11820,"ogUrl":19876,"ogSiteName":995,"ogType":996,"canonicalUrls":19876,"schema":19877},"How to use GitLab's Incident Management with AWS CloudWatch","It's a straightforward process to set up GitLab Incident Management to work with AWS CloudWatch alarms. Here's what you need to know to get started.","https://about.gitlab.com/blog/incident-management-with-aws-cloudwatch","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab's Incident Management with AWS CloudWatch\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean Arnold\"}],\n        \"datePublished\": \"2020-10-08\",\n      }",{"title":19874,"description":19875,"authors":19879,"heroImage":11820,"date":19881,"category":858,"tags":19882},[19880],"Sean Arnold","2020-10-08",[564,233,6376],{"slug":19884,"featured":6,"template":736},"incident-management-with-aws-cloudwatch","content:en-us:blog:incident-management-with-aws-cloudwatch.yml","Incident Management With Aws Cloudwatch","en-us/blog/incident-management-with-aws-cloudwatch.yml","en-us/blog/incident-management-with-aws-cloudwatch",{"_path":19890,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19891,"content":19897,"config":19902,"_id":19904,"_type":16,"title":19905,"_source":17,"_file":19906,"_stem":19907,"_extension":20},"/en-us/blog/vcc-with-a-single-app",{"title":19892,"description":19893,"ogTitle":19892,"ogDescription":19893,"noIndex":6,"ogImage":19894,"ogUrl":19895,"ogSiteName":995,"ogType":996,"canonicalUrls":19895,"schema":19896},"End-to-end DevOps with version control & collaboration","Version Control & Collaboration is centered at the core of your end-to-end DevOps single application needs","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681652/Blog/Hero%20Images/markus-spiske-MkwAXj8LV8c-unsplash.png","https://about.gitlab.com/blog/vcc-with-a-single-app","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A single application for your end-to-end DevOps needs starts with Version Control & Collaboration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tye Davis\"}],\n        \"datePublished\": \"2020-10-07\",\n      }",{"title":19898,"description":19893,"authors":19899,"heroImage":19894,"date":19900,"category":17170,"tags":19901},"A single application for your end-to-end DevOps needs starts with Version Control & Collaboration",[17078],"2020-10-07",[110,790,729],{"slug":19903,"featured":6,"template":736},"vcc-with-a-single-app","content:en-us:blog:vcc-with-a-single-app.yml","Vcc With A Single App","en-us/blog/vcc-with-a-single-app.yml","en-us/blog/vcc-with-a-single-app",{"_path":19909,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19910,"content":19916,"config":19920,"_id":19922,"_type":16,"title":19923,"_source":17,"_file":19924,"_stem":19925,"_extension":20},"/en-us/blog/gitlab-latest-security-trends",{"title":19911,"description":19912,"ogTitle":19911,"ogDescription":19912,"noIndex":6,"ogImage":19913,"ogUrl":19914,"ogSiteName":995,"ogType":996,"canonicalUrls":19914,"schema":19915},"GitLab's security trends report – our latest look at what's most vulnerable","From triage to containers and secrets storage, we took a look at the most vulnerable areas across thousands of hosted projects on GitLab.com. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678152/Blog/Hero%20Images/data.jpg","https://about.gitlab.com/blog/gitlab-latest-security-trends","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's security trends report – our latest look at what's most vulnerable\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Wayne Haber\"}],\n        \"datePublished\": \"2020-10-06\",\n      }",{"title":19911,"description":19912,"authors":19917,"heroImage":19913,"date":19918,"category":790,"tags":19919},[15310],"2020-10-06",[790,3292],{"slug":19921,"featured":6,"template":736},"gitlab-latest-security-trends","content:en-us:blog:gitlab-latest-security-trends.yml","Gitlab Latest Security Trends","en-us/blog/gitlab-latest-security-trends.yml","en-us/blog/gitlab-latest-security-trends",{"_path":19927,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19928,"content":19934,"config":19938,"_id":19940,"_type":16,"title":19941,"_source":17,"_file":19942,"_stem":19943,"_extension":20},"/en-us/blog/tech-debt",{"title":19929,"description":19930,"ogTitle":19929,"ogDescription":19930,"noIndex":6,"ogImage":19931,"ogUrl":19932,"ogSiteName":995,"ogType":996,"canonicalUrls":19932,"schema":19933},"How to use DevOps to pay off your technical debt","Technical debt is a universal problem with an equally universal solution – DevOps. Here's how DevOps can reduce the tech debt burden and help you deploy faster and more frequently.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681643/Blog/Hero%20Images/greenery.jpg","https://about.gitlab.com/blog/tech-debt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use DevOps to pay off your technical debt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-10-05\",\n      }",{"title":19929,"description":19930,"authors":19935,"heroImage":19931,"date":19936,"category":8140,"tags":19937},[16023],"2020-10-05",[1569,729,564,110],{"slug":19939,"featured":6,"template":736},"tech-debt","content:en-us:blog:tech-debt.yml","Tech Debt","en-us/blog/tech-debt.yml","en-us/blog/tech-debt",{"_path":19945,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19946,"content":19951,"config":19955,"_id":19957,"_type":16,"title":19958,"_source":17,"_file":19959,"_stem":19960,"_extension":20},"/en-us/blog/distributed-version-control",{"title":19947,"description":19948,"ogTitle":19947,"ogDescription":19948,"noIndex":6,"ogImage":13307,"ogUrl":19949,"ogSiteName":995,"ogType":996,"canonicalUrls":19949,"schema":19950},"Distributed Version Control & Collaboration","Developers can collaborate and work together in distributed environments. Adopt diverse integration patterns for branching, merging and code reviews along with granular permissions schemes ensuring code quality and safety.","https://about.gitlab.com/blog/distributed-version-control","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Distributed Version Control & Collaboration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2020-10-02\",\n      }",{"title":19947,"description":19948,"authors":19952,"heroImage":13307,"date":19953,"category":17170,"tags":19954},[855],"2020-10-02",[2097,2097],{"slug":19956,"featured":6,"template":736},"distributed-version-control","content:en-us:blog:distributed-version-control.yml","Distributed Version Control","en-us/blog/distributed-version-control.yml","en-us/blog/distributed-version-control",{"_path":19962,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19963,"content":19969,"config":19972,"_id":19974,"_type":16,"title":19975,"_source":17,"_file":19976,"_stem":19977,"_extension":20},"/en-us/blog/product-development-management",{"title":19964,"description":19965,"ogTitle":19964,"ogDescription":19965,"noIndex":6,"ogImage":19966,"ogUrl":19967,"ogSiteName":995,"ogType":996,"canonicalUrls":19967,"schema":19968},"Version control and collaborating for product development management","Gitlab provides collaboration functionalities to product teams that work not only with source code but also graphic assets.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681632/Blog/Hero%20Images/blog-pdm-image.png","https://about.gitlab.com/blog/product-development-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Version control and collaborating for product development management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2020-10-02\",\n      }",{"title":19964,"description":19965,"authors":19970,"heroImage":19966,"date":19953,"category":17170,"tags":19971},[855],[2702,2097],{"slug":19973,"featured":6,"template":736},"product-development-management","content:en-us:blog:product-development-management.yml","Product Development Management","en-us/blog/product-development-management.yml","en-us/blog/product-development-management",{"_path":19979,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19980,"content":19986,"config":19990,"_id":19992,"_type":16,"title":19993,"_source":17,"_file":19994,"_stem":19995,"_extension":20},"/en-us/blog/compliance-management",{"title":19981,"description":19982,"ogTitle":19981,"ogDescription":19982,"noIndex":6,"ogImage":19983,"ogUrl":19984,"ogSiteName":995,"ogType":996,"canonicalUrls":19984,"schema":19985},"Managing Compliance with GitLab","GitLab makes compliance easy!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681610/Blog/Hero%20Images/andrew-neel-cckf4TsHAuw-unsplash.jpg","https://about.gitlab.com/blog/compliance-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Managing Compliance with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2020-10-01\",\n      }",{"title":19981,"description":19982,"authors":19987,"heroImage":19983,"date":19988,"category":17170,"tags":19989},[1097],"2020-10-01",[110,790],{"slug":19991,"featured":6,"template":736},"compliance-management","content:en-us:blog:compliance-management.yml","Compliance Management","en-us/blog/compliance-management.yml","en-us/blog/compliance-management",{"_path":19997,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":19998,"content":20004,"config":20007,"_id":20009,"_type":16,"title":20010,"_source":17,"_file":20011,"_stem":20012,"_extension":20},"/en-us/blog/fuzzing-with-gitlab",{"title":19999,"description":20000,"ogTitle":19999,"ogDescription":20000,"noIndex":6,"ogImage":20001,"ogUrl":20002,"ogSiteName":995,"ogType":996,"canonicalUrls":20002,"schema":20003},"Find Bugs with Coverage-Guided Fuzz Testing","Use fuzz testing to find bugs and security issues other QA processes might miss.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681620/Blog/Hero%20Images/taya-dianna-zgSaLgXIINI-unsplash.jpg","https://about.gitlab.com/blog/fuzzing-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Find Bugs with Coverage-Guided Fuzz Testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2020-10-01\",\n      }",{"title":19999,"description":20000,"authors":20005,"heroImage":20001,"date":19988,"category":17170,"tags":20006},[1097],[110,790],{"slug":20008,"featured":6,"template":736},"fuzzing-with-gitlab","content:en-us:blog:fuzzing-with-gitlab.yml","Fuzzing With Gitlab","en-us/blog/fuzzing-with-gitlab.yml","en-us/blog/fuzzing-with-gitlab",{"_path":20014,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20015,"content":20021,"config":20024,"_id":20026,"_type":16,"title":20027,"_source":17,"_file":20028,"_stem":20029,"_extension":20},"/en-us/blog/offline-environments",{"title":20016,"description":20017,"ogTitle":20016,"ogDescription":20017,"noIndex":6,"ogImage":20018,"ogUrl":20019,"ogSiteName":995,"ogType":996,"canonicalUrls":20019,"schema":20020},"Running Security Scans in Limited Connectivity and Offline Environments","GitLab Security Scans can ensure Security in the most locked down environments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666484/Blog/Hero%20Images/steven-kamenar-MMJx78V7xS8-unsplash.jpg","https://about.gitlab.com/blog/offline-environments","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Running Security Scans in Limited Connectivity and Offline Environments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2020-10-01\",\n      }",{"title":20016,"description":20017,"authors":20022,"heroImage":20018,"date":19988,"category":17170,"tags":20023},[1097],[110,790],{"slug":20025,"featured":6,"template":736},"offline-environments","content:en-us:blog:offline-environments.yml","Offline Environments","en-us/blog/offline-environments.yml","en-us/blog/offline-environments",{"_path":20031,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20032,"content":20038,"config":20041,"_id":20043,"_type":16,"title":20044,"_source":17,"_file":20045,"_stem":20046,"_extension":20},"/en-us/blog/three-yaml-tips-better-pipelines",{"title":20033,"description":20034,"ogTitle":20033,"ogDescription":20034,"noIndex":6,"ogImage":20035,"ogUrl":20036,"ogSiteName":995,"ogType":996,"canonicalUrls":20036,"schema":20037},"3 YAML tips for better pipelines","Learn how to get the most out of your YAML configs.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681626/Blog/Hero%20Images/yaml-tips.jpg","https://about.gitlab.com/blog/three-yaml-tips-better-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 YAML tips for better pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-10-01\",\n      }",{"title":20033,"description":20034,"authors":20039,"heroImage":20035,"date":19988,"category":8140,"tags":20040},[17150],[110,564],{"slug":20042,"featured":6,"template":736},"three-yaml-tips-better-pipelines","content:en-us:blog:three-yaml-tips-better-pipelines.yml","Three Yaml Tips Better Pipelines","en-us/blog/three-yaml-tips-better-pipelines.yml","en-us/blog/three-yaml-tips-better-pipelines",{"_path":20048,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20049,"content":20055,"config":20059,"_id":20061,"_type":16,"title":20062,"_source":17,"_file":20063,"_stem":20064,"_extension":20},"/en-us/blog/enables-rapid-innovation",{"title":20050,"description":20051,"ogTitle":20050,"ogDescription":20051,"noIndex":6,"ogImage":20052,"ogUrl":20053,"ogSiteName":995,"ogType":996,"canonicalUrls":20053,"schema":20054},"GitLab uniquely enables rapid innovation","Learn about some of the ways GitLab can uniquely enable your developers to innovate more rapidly.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681603/Blog/Hero%20Images/rapids-cover-1275x750.jpg","https://about.gitlab.com/blog/enables-rapid-innovation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab uniquely enables rapid innovation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2020-09-30\",\n      }",{"title":20050,"description":20051,"authors":20056,"heroImage":20052,"date":20057,"category":17170,"tags":20058},[767],"2020-09-30",[110,564,4182],{"slug":20060,"featured":6,"template":736},"enables-rapid-innovation","content:en-us:blog:enables-rapid-innovation.yml","Enables Rapid Innovation","en-us/blog/enables-rapid-innovation.yml","en-us/blog/enables-rapid-innovation",{"_path":20066,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20067,"content":20072,"config":20076,"_id":20078,"_type":16,"title":20079,"_source":17,"_file":20080,"_stem":20081,"_extension":20},"/en-us/blog/gitter-moves-to-element",{"title":20068,"description":20069,"ogTitle":20068,"ogDescription":20069,"noIndex":6,"ogImage":16110,"ogUrl":20070,"ogSiteName":995,"ogType":996,"canonicalUrls":20070,"schema":20071},"Gitter lands new home in Matrix with Element","Gitter’s new owner Element will continue to support and invest in the service and user communities.","https://about.gitlab.com/blog/gitter-moves-to-element","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Gitter lands new home in Matrix with Element\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eliran Mesika\"}],\n        \"datePublished\": \"2020-09-30\",\n      }",{"title":20068,"description":20069,"authors":20073,"heroImage":16110,"date":20057,"category":1049,"tags":20075},[20074],"Eliran Mesika",[269,1265,1569],{"slug":20077,"featured":6,"template":736},"gitter-moves-to-element","content:en-us:blog:gitter-moves-to-element.yml","Gitter Moves To Element","en-us/blog/gitter-moves-to-element.yml","en-us/blog/gitter-moves-to-element",{"_path":20083,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20084,"content":20090,"config":20094,"_id":20096,"_type":16,"title":20097,"_source":17,"_file":20098,"_stem":20099,"_extension":20},"/en-us/blog/how-to-easily-launch-gitlab-through-cloud-marketplaces",{"title":20085,"description":20086,"ogTitle":20085,"ogDescription":20086,"noIndex":6,"ogImage":20087,"ogUrl":20088,"ogSiteName":995,"ogType":996,"canonicalUrls":20088,"schema":20089},"How to easily launch GitLab through cloud marketplaces","Bitnami makes publishing GitLab into Azure Marketplace simple.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670001/Blog/Hero%20Images/bitnami-gitlab-cloud.png","https://about.gitlab.com/blog/how-to-easily-launch-gitlab-through-cloud-marketplaces","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to easily launch GitLab through cloud marketplaces\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Miranda Carter\"},{\"@type\":\"Person\",\"name\":\"Vick Kelkar\"}],\n        \"datePublished\": \"2020-09-30\",\n      }",{"title":20085,"description":20086,"authors":20091,"heroImage":20087,"date":20057,"category":1049,"tags":20093},[20092,11105],"Miranda Carter",[729,110,564,233],{"slug":20095,"featured":6,"template":736},"how-to-easily-launch-gitlab-through-cloud-marketplaces","content:en-us:blog:how-to-easily-launch-gitlab-through-cloud-marketplaces.yml","How To Easily Launch Gitlab Through Cloud Marketplaces","en-us/blog/how-to-easily-launch-gitlab-through-cloud-marketplaces.yml","en-us/blog/how-to-easily-launch-gitlab-through-cloud-marketplaces",{"_path":20101,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20102,"content":20108,"config":20111,"_id":20113,"_type":16,"title":20114,"_source":17,"_file":20115,"_stem":20116,"_extension":20},"/en-us/blog/leading-scm-ci-and-code-review-in-one-application",{"title":20103,"description":20104,"ogTitle":20103,"ogDescription":20104,"noIndex":6,"ogImage":20105,"ogUrl":20106,"ogSiteName":995,"ogType":996,"canonicalUrls":20106,"schema":20107},"Leading SCM, CI and Code Review in one application","The most important tools for developers are SCM, CI and Code Review, and it is better to have them all together.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679607/Blog/Hero%20Images/scm-ci-cr.png","https://about.gitlab.com/blog/leading-scm-ci-and-code-review-in-one-application","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Leading SCM, CI and Code Review in one application\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2020-09-30\",\n      }",{"title":20103,"description":20104,"authors":20109,"heroImage":20105,"date":20057,"category":17170,"tags":20110},[1016],[110,1932],{"slug":20112,"featured":6,"template":736},"leading-scm-ci-and-code-review-in-one-application","content:en-us:blog:leading-scm-ci-and-code-review-in-one-application.yml","Leading Scm Ci And Code Review In One Application","en-us/blog/leading-scm-ci-and-code-review-in-one-application.yml","en-us/blog/leading-scm-ci-and-code-review-in-one-application",{"_path":20118,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20119,"content":20124,"config":20128,"_id":20130,"_type":16,"title":20131,"_source":17,"_file":20132,"_stem":20133,"_extension":20},"/en-us/blog/q3-hackathon-recap",{"title":20120,"description":20121,"ogTitle":20120,"ogDescription":20121,"noIndex":6,"ogImage":18395,"ogUrl":20122,"ogSiteName":995,"ogType":996,"canonicalUrls":20122,"schema":20123},"What went down at the Q3'2020 GitLab Hackathon","A recap of community's accomplishments during another record-setting Hackathon on September 2-3.","https://about.gitlab.com/blog/q3-hackathon-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What went down at the Q3'2020 GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2020-09-30\",\n      }",{"title":20120,"description":20121,"authors":20125,"heroImage":18395,"date":20057,"category":301,"tags":20127},[20126],"Ray Paik",[269,2815,1265],{"slug":20129,"featured":6,"template":736},"q3-hackathon-recap","content:en-us:blog:q3-hackathon-recap.yml","Q3 Hackathon Recap","en-us/blog/q3-hackathon-recap.yml","en-us/blog/q3-hackathon-recap",{"_path":20135,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20136,"content":20142,"config":20146,"_id":20148,"_type":16,"title":20149,"_source":17,"_file":20150,"_stem":20151,"_extension":20},"/en-us/blog/start-contributing-to-gitlab-today",{"title":20137,"description":20138,"ogTitle":20137,"ogDescription":20138,"noIndex":6,"ogImage":20139,"ogUrl":20140,"ogSiteName":995,"ogType":996,"canonicalUrls":20140,"schema":20141},"Start contributing to GitLab today","Learn how to start contributing to GitLab and how GitLab team members are here to help.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749676361/Blog/Hero%20Images/collaboration.jpg","https://about.gitlab.com/blog/start-contributing-to-gitlab-today","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Start contributing to GitLab today\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rémy Coutable\"}],\n        \"datePublished\": \"2020-09-30\",\n      }",{"title":20137,"description":20138,"authors":20143,"heroImage":20139,"date":20057,"category":17170,"tags":20145},[20144],"Rémy Coutable",[2815,269,3074,1569,1265],{"slug":20147,"featured":6,"template":736},"start-contributing-to-gitlab-today","content:en-us:blog:start-contributing-to-gitlab-today.yml","Start Contributing To Gitlab Today","en-us/blog/start-contributing-to-gitlab-today.yml","en-us/blog/start-contributing-to-gitlab-today",{"_path":20153,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20154,"content":20159,"config":20164,"_id":20166,"_type":16,"title":20167,"_source":17,"_file":20168,"_stem":20169,"_extension":20},"/en-us/blog/recruiting-tactics-and-strategies-to-build-a-more-diverse-team",{"title":20155,"description":20156,"ogTitle":20155,"ogDescription":20156,"noIndex":6,"ogImage":17164,"ogUrl":20157,"ogSiteName":995,"ogType":996,"canonicalUrls":20157,"schema":20158},"recruiting tactics and strategies to build a more diverse team","An overview of the Diversity, Inclusion, and Belonging-related tactics and strategies our recruiting team is experimenting with","https://about.gitlab.com/blog/recruiting-tactics-and-strategies-to-build-a-more-diverse-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"recruiting tactics and strategies to build a more diverse team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rupert Douglas\"}],\n        \"datePublished\": \"2020-09-28\",\n      }",{"title":20155,"description":20156,"authors":20160,"heroImage":17164,"date":20162,"category":6121,"tags":20163},[20161],"Rupert Douglas","2020-09-28",[6980],{"slug":20165,"featured":6,"template":736},"recruiting-tactics-and-strategies-to-build-a-more-diverse-team","content:en-us:blog:recruiting-tactics-and-strategies-to-build-a-more-diverse-team.yml","Recruiting Tactics And Strategies To Build A More Diverse Team","en-us/blog/recruiting-tactics-and-strategies-to-build-a-more-diverse-team.yml","en-us/blog/recruiting-tactics-and-strategies-to-build-a-more-diverse-team",{"_path":20171,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20172,"content":20178,"config":20181,"_id":20183,"_type":16,"title":20184,"_source":17,"_file":20185,"_stem":20186,"_extension":20},"/en-us/blog/top-tips-for-better-bug-bounty-reports-and-a-hacker-contest",{"title":20173,"description":20174,"ogTitle":20173,"ogDescription":20174,"noIndex":6,"ogImage":20175,"ogUrl":20176,"ogSiteName":995,"ogType":996,"canonicalUrls":20176,"schema":20177},"Our top tips for better bug bounty reports, plus a hacker contest!","Our AppSec team breaks down what makes a great bug bounty report. That advice comes just in time, as we're having another bug bounty contest.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671004/Blog/Hero%20Images/pexels-shawn-stutzman-1010496.jpg","https://about.gitlab.com/blog/top-tips-for-better-bug-bounty-reports-and-a-hacker-contest","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our top tips for better bug bounty reports, plus a hacker contest!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-09-28\",\n      }",{"title":20173,"description":20174,"authors":20179,"heroImage":20175,"date":20162,"category":790,"tags":20180},[11324],[790,2483],{"slug":20182,"featured":6,"template":736},"top-tips-for-better-bug-bounty-reports-and-a-hacker-contest","content:en-us:blog:top-tips-for-better-bug-bounty-reports-and-a-hacker-contest.yml","Top Tips For Better Bug Bounty Reports And A Hacker Contest","en-us/blog/top-tips-for-better-bug-bounty-reports-and-a-hacker-contest.yml","en-us/blog/top-tips-for-better-bug-bounty-reports-and-a-hacker-contest",{"_path":20188,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20189,"content":20195,"config":20199,"_id":20201,"_type":16,"title":20202,"_source":17,"_file":20203,"_stem":20204,"_extension":20},"/en-us/blog/devops-stakeholder-buyin",{"title":20190,"description":20191,"ogTitle":20190,"ogDescription":20191,"noIndex":6,"ogImage":20192,"ogUrl":20193,"ogSiteName":995,"ogType":996,"canonicalUrls":20193,"schema":20194},"Need DevOps buy-in? Here's how to convince stakeholders","If you need to make the case for DevOps to a non-technical crowd, it's important to be prepared. Here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681597/Blog/Hero%20Images/speedphoto.jpg","https://about.gitlab.com/blog/devops-stakeholder-buyin","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Need DevOps buy-in? Here's how to convince stakeholders\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-09-24\",\n      }",{"title":20190,"description":20191,"authors":20196,"heroImage":20192,"date":20197,"category":8140,"tags":20198},[16023],"2020-09-24",[564,4665,2815],{"slug":20200,"featured":6,"template":736},"devops-stakeholder-buyin","content:en-us:blog:devops-stakeholder-buyin.yml","Devops Stakeholder Buyin","en-us/blog/devops-stakeholder-buyin.yml","en-us/blog/devops-stakeholder-buyin",{"_path":20206,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20207,"content":20213,"config":20217,"_id":20219,"_type":16,"title":20220,"_source":17,"_file":20221,"_stem":20222,"_extension":20},"/en-us/blog/get-started-ci-pipeline-templates",{"title":20208,"description":20209,"ogTitle":20208,"ogDescription":20209,"noIndex":6,"ogImage":20210,"ogUrl":20211,"ogSiteName":995,"ogType":996,"canonicalUrls":20211,"schema":20212},"How to use GitLab’s CI/CD pipeline templates","Learn how pipeline templates and Auto DevOps can get you up and running on GitLab CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667139/Blog/Hero%20Images/CI-pipeline-templates.jpg","https://about.gitlab.com/blog/get-started-ci-pipeline-templates","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab’s CI/CD pipeline templates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-09-23\",\n      }",{"title":20208,"description":20209,"authors":20214,"heroImage":20210,"date":20215,"category":8140,"tags":20216},[17150],"2020-09-23",[110,2704,564],{"slug":20218,"featured":6,"template":736},"get-started-ci-pipeline-templates","content:en-us:blog:get-started-ci-pipeline-templates.yml","Get Started Ci Pipeline Templates","en-us/blog/get-started-ci-pipeline-templates.yml","en-us/blog/get-started-ci-pipeline-templates",{"_path":20224,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20225,"content":20231,"config":20236,"_id":20238,"_type":16,"title":20239,"_source":17,"_file":20240,"_stem":20241,"_extension":20},"/en-us/blog/gitlab-composer-packages-migration-path",{"title":20226,"description":20227,"ogTitle":20226,"ogDescription":20227,"noIndex":6,"ogImage":20228,"ogUrl":20229,"ogSiteName":995,"ogType":996,"canonicalUrls":20229,"schema":20230},"Migrate composer packages to GitLab","GitLab Packages now ships with a composer registry","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681586/Blog/Hero%20Images/gitlab-composer-package-migration.jpg","https://about.gitlab.com/blog/gitlab-composer-packages-migration-path","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migrate composer packages to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jochen Roth\"}],\n        \"datePublished\": \"2020-09-22\",\n      }",{"title":20226,"description":20227,"authors":20232,"heroImage":20228,"date":20234,"category":17170,"tags":20235},[20233],"Jochen Roth","2020-09-22",[1265,1335,233],{"slug":20237,"featured":6,"template":736},"gitlab-composer-packages-migration-path","content:en-us:blog:gitlab-composer-packages-migration-path.yml","Gitlab Composer Packages Migration Path","en-us/blog/gitlab-composer-packages-migration-path.yml","en-us/blog/gitlab-composer-packages-migration-path",{"_path":20243,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20244,"content":20249,"config":20252,"_id":20254,"_type":16,"title":20255,"_source":17,"_file":20256,"_stem":20257,"_extension":20},"/en-us/blog/introducing-the-gitlab-kubernetes-agent",{"title":20245,"description":20246,"ogTitle":20245,"ogDescription":20246,"noIndex":6,"ogImage":16110,"ogUrl":20247,"ogSiteName":995,"ogType":996,"canonicalUrls":20247,"schema":20248},"Understand the new GitLab Agent for Kubernetes","Just released in 13.4, our brand new Kubernetes Agent provides a secure and K8s–friendly approach to integrating GitLab with your clusters.","https://about.gitlab.com/blog/introducing-the-gitlab-kubernetes-agent","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Understand the new GitLab Agent for Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2020-09-22\",\n      }",{"title":20245,"description":20246,"authors":20250,"heroImage":16110,"date":20234,"category":858,"tags":20251},[2942],[2908,892,582,1335],{"slug":20253,"featured":6,"template":736},"introducing-the-gitlab-kubernetes-agent","content:en-us:blog:introducing-the-gitlab-kubernetes-agent.yml","Introducing The Gitlab Kubernetes Agent","en-us/blog/introducing-the-gitlab-kubernetes-agent.yml","en-us/blog/introducing-the-gitlab-kubernetes-agent",{"_path":20259,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20260,"content":20265,"config":20269,"_id":20271,"_type":16,"title":20272,"_source":17,"_file":20273,"_stem":20274,"_extension":20},"/en-us/blog/gitlab-and-workloads-on-ibm-z-and-red-hat-openshift",{"title":20261,"description":20262,"ogTitle":20261,"ogDescription":20262,"noIndex":6,"ogImage":12336,"ogUrl":20263,"ogSiteName":995,"ogType":996,"canonicalUrls":20263,"schema":20264},"GitLab enhances DevOps journey on Linux on IBM Z and Red Hat OpenShift","GitLab integrates with IBM Linux on Z and RedHat OpenShift to help app developers deploy to more resilient systems.","https://about.gitlab.com/blog/gitlab-and-workloads-on-ibm-z-and-red-hat-openshift","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab enhances DevOps journey on Linux on IBM Z and Red Hat OpenShift\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vick Kelkar\"}],\n        \"datePublished\": \"2020-09-17\",\n      }",{"title":20261,"description":20262,"authors":20266,"heroImage":12336,"date":20267,"category":1049,"tags":20268},[11105],"2020-09-17",[2908,582],{"slug":20270,"featured":6,"template":736},"gitlab-and-workloads-on-ibm-z-and-red-hat-openshift","content:en-us:blog:gitlab-and-workloads-on-ibm-z-and-red-hat-openshift.yml","Gitlab And Workloads On Ibm Z And Red Hat Openshift","en-us/blog/gitlab-and-workloads-on-ibm-z-and-red-hat-openshift.yml","en-us/blog/gitlab-and-workloads-on-ibm-z-and-red-hat-openshift",{"_path":20276,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20277,"content":20283,"config":20288,"_id":20290,"_type":16,"title":20291,"_source":17,"_file":20292,"_stem":20293,"_extension":20},"/en-us/blog/year-of-kubernetes",{"title":20278,"description":20279,"ogTitle":20278,"ogDescription":20279,"noIndex":6,"ogImage":20280,"ogUrl":20281,"ogSiteName":995,"ogType":996,"canonicalUrls":20281,"schema":20282},"What we learned after a year of GitLab.com on Kubernetes","It's been one year since we moved GitLab.com to Kubernetes. We unpack the challenges and learnings from this major migration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681569/Blog/Hero%20Images/nico-e-AAbjUJsgjvE-unsplash.jpg","https://about.gitlab.com/blog/year-of-kubernetes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we learned after a year of GitLab.com on Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jarvis\"}],\n        \"datePublished\": \"2020-09-16\",\n      }",{"title":20278,"description":20279,"authors":20284,"heroImage":20280,"date":20286,"category":858,"tags":20287},[20285],"John Jarvis","2020-09-16",[1569,6376],{"slug":20289,"featured":6,"template":736},"year-of-kubernetes","content:en-us:blog:year-of-kubernetes.yml","Year Of Kubernetes","en-us/blog/year-of-kubernetes.yml","en-us/blog/year-of-kubernetes",{"_path":20295,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20296,"content":20301,"config":20306,"_id":20308,"_type":16,"title":20309,"_source":17,"_file":20310,"_stem":20311,"_extension":20},"/en-us/blog/top-ten-reasons-to-check-out-gitlab-virtual-commit",{"title":20297,"description":20298,"ogTitle":20297,"ogDescription":20298,"noIndex":6,"ogImage":17164,"ogUrl":20299,"ogSiteName":995,"ogType":996,"canonicalUrls":20299,"schema":20300},"Top Ten Reasons to Check Out GitLab's Virtual Commit","An overview of GitLab's Virtual Commit and the content available specific to public sector.","https://about.gitlab.com/blog/top-ten-reasons-to-check-out-gitlab-virtual-commit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top Ten Reasons to Check Out GitLab's Virtual Commit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jim Riley\"}],\n        \"datePublished\": \"2020-09-14\",\n      }",{"title":20297,"description":20298,"authors":20302,"heroImage":17164,"date":20304,"category":17170,"tags":20305},[20303],"Jim Riley","2020-09-14",[564,574,790,2908],{"slug":20307,"featured":6,"template":736},"top-ten-reasons-to-check-out-gitlab-virtual-commit","content:en-us:blog:top-ten-reasons-to-check-out-gitlab-virtual-commit.yml","Top Ten Reasons To Check Out Gitlab Virtual Commit","en-us/blog/top-ten-reasons-to-check-out-gitlab-virtual-commit.yml","en-us/blog/top-ten-reasons-to-check-out-gitlab-virtual-commit",{"_path":20313,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20314,"content":20320,"config":20323,"_id":20325,"_type":16,"title":20326,"_source":17,"_file":20327,"_stem":20328,"_extension":20},"/en-us/blog/why-basic-security-practices-matter-for-everyone",{"title":20315,"description":20316,"ogTitle":20315,"ogDescription":20316,"noIndex":6,"ogImage":20317,"ogUrl":20318,"ogSiteName":995,"ogType":996,"canonicalUrls":20318,"schema":20319},"How information security practices help everyone","Security oversights can happen to anyone without the right practices in place. Read here on why security practices matter and what you should use.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670783/Blog/Hero%20Images/pexels-christina-morillo.jpg","https://about.gitlab.com/blog/why-basic-security-practices-matter-for-everyone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How information security practices help everyone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-09-14\",\n      }",{"title":20315,"description":20316,"authors":20321,"heroImage":20317,"date":20304,"category":17170,"tags":20322},[11324],[790,1569],{"slug":20324,"featured":6,"template":736},"why-basic-security-practices-matter-for-everyone","content:en-us:blog:why-basic-security-practices-matter-for-everyone.yml","Why Basic Security Practices Matter For Everyone","en-us/blog/why-basic-security-practices-matter-for-everyone.yml","en-us/blog/why-basic-security-practices-matter-for-everyone",{"_path":20330,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20331,"content":20336,"config":20341,"_id":20343,"_type":16,"title":20344,"_source":17,"_file":20345,"_stem":20346,"_extension":20},"/en-us/blog/gitlab-pg-upgrade",{"title":20332,"description":20333,"ogTitle":20332,"ogDescription":20333,"noIndex":6,"ogImage":12783,"ogUrl":20334,"ogSiteName":995,"ogType":996,"canonicalUrls":20334,"schema":20335},"How we upgraded PostgreSQL at GitLab.com","We explain the precise maintenance process to execute a major version upgrade of PostgreSQL.","https://about.gitlab.com/blog/gitlab-pg-upgrade","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we upgraded PostgreSQL at GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jose Finotto\"}],\n        \"datePublished\": \"2020-09-11\",\n      }",{"title":20332,"description":20333,"authors":20337,"heroImage":12783,"date":20339,"category":858,"tags":20340},[20338],"Jose Finotto","2020-09-11",[6376],{"slug":20342,"featured":6,"template":736},"gitlab-pg-upgrade","content:en-us:blog:gitlab-pg-upgrade.yml","Gitlab Pg Upgrade","en-us/blog/gitlab-pg-upgrade.yml","en-us/blog/gitlab-pg-upgrade",{"_path":20348,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20349,"content":20355,"config":20359,"_id":20361,"_type":16,"title":20362,"_source":17,"_file":20363,"_stem":20364,"_extension":20},"/en-us/blog/cloud-native-storage-beginners",{"title":20350,"description":20351,"ogTitle":20350,"ogDescription":20351,"noIndex":6,"ogImage":20352,"ogUrl":20353,"ogSiteName":995,"ogType":996,"canonicalUrls":20353,"schema":20354},"A guide to cloud native storage for beginners","Choosing a cloud native development strategy is a smart step in DevOps, but storage can be a challenge. Here’s what you need to consider.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681560/Blog/Hero%20Images/cloudnative.jpg","https://about.gitlab.com/blog/cloud-native-storage-beginners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A guide to cloud native storage for beginners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-09-10\",\n      }",{"title":20350,"description":20351,"authors":20356,"heroImage":20352,"date":20357,"category":8140,"tags":20358},[10672],"2020-09-10",[582,2908,1265],{"slug":20360,"featured":6,"template":736},"cloud-native-storage-beginners","content:en-us:blog:cloud-native-storage-beginners.yml","Cloud Native Storage Beginners","en-us/blog/cloud-native-storage-beginners.yml","en-us/blog/cloud-native-storage-beginners",{"_path":20366,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20367,"content":20372,"config":20376,"_id":20378,"_type":16,"title":20368,"_source":17,"_file":20379,"_stem":20380,"_extension":20},"/en-us/blog/being-a-better-ally",{"title":20368,"description":20368,"ogTitle":20368,"ogDescription":20368,"noIndex":6,"ogImage":20369,"ogUrl":20370,"ogSiteName":995,"ogType":996,"canonicalUrls":20370,"schema":20371},"Being A Better Ally","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679611/Blog/Hero%20Images/cook-county-blog-unsplash.jpg","https://about.gitlab.com/blog/being-a-better-ally","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Being A Better Ally\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2020-09-09\",\n      }",{"title":20368,"description":20368,"authors":20373,"heroImage":20369,"date":20374,"category":17170,"tags":20375},[3053],"2020-09-09",[559,790,2702,892,729],{"slug":20377,"featured":6,"template":736},"being-a-better-ally","content:en-us:blog:being-a-better-ally.yml","en-us/blog/being-a-better-ally.yml","en-us/blog/being-a-better-ally",{"_path":20382,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20383,"content":20389,"config":20394,"_id":20396,"_type":16,"title":20397,"_source":17,"_file":20398,"_stem":20399,"_extension":20},"/en-us/blog/efficient-code-review-tips",{"title":20384,"description":20385,"ogTitle":20384,"ogDescription":20385,"noIndex":6,"ogImage":20386,"ogUrl":20387,"ogSiteName":995,"ogType":996,"canonicalUrls":20387,"schema":20388},"How to carry out effective code reviews","From time management to unblocking, discover the secrets of more efficient code reviews.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678861/Blog/Hero%20Images/pre-commit.jpg","https://about.gitlab.com/blog/efficient-code-review-tips","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to carry out effective code reviews\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Phil Hughes\"}],\n        \"datePublished\": \"2020-09-08\",\n      }",{"title":20384,"description":20385,"authors":20390,"heroImage":20386,"date":20392,"category":8140,"tags":20393},[20391],"Phil Hughes","2020-09-08",[10121,964,1932],{"slug":20395,"featured":6,"template":736},"efficient-code-review-tips","content:en-us:blog:efficient-code-review-tips.yml","Efficient Code Review Tips","en-us/blog/efficient-code-review-tips.yml","en-us/blog/efficient-code-review-tips",{"_path":20401,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20402,"content":20408,"config":20411,"_id":20413,"_type":16,"title":20414,"_source":17,"_file":20415,"_stem":20416,"_extension":20},"/en-us/blog/gnome-follow-up",{"title":20403,"description":20404,"ogTitle":20403,"ogDescription":20404,"noIndex":6,"ogImage":20405,"ogUrl":20406,"ogSiteName":995,"ogType":996,"canonicalUrls":20406,"schema":20407},"GNOME: two years after the move to GitLab","Extensive CI/CD adoption and easier contributions are just a couple of the benefits of #movingtogitlab for GNOME.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671276/Blog/Hero%20Images/gitlab-gnome.png","https://about.gitlab.com/blog/gnome-follow-up","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GNOME: two years after the move to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nuritzi Sanchez\"}],\n        \"datePublished\": \"2020-09-08\",\n      }",{"title":20403,"description":20404,"authors":20409,"heroImage":20405,"date":20392,"category":1388,"tags":20410},[17560],[269,1265,3074],{"slug":20412,"featured":6,"template":736},"gnome-follow-up","content:en-us:blog:gnome-follow-up.yml","Gnome Follow Up","en-us/blog/gnome-follow-up.yml","en-us/blog/gnome-follow-up",{"_path":20418,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20419,"content":20425,"config":20429,"_id":20431,"_type":16,"title":20432,"_source":17,"_file":20433,"_stem":20434,"_extension":20},"/en-us/blog/how-being-public-by-default-in-security-builds-trust",{"title":20420,"description":20421,"ogTitle":20420,"ogDescription":20421,"noIndex":6,"ogImage":20422,"ogUrl":20423,"ogSiteName":995,"ogType":996,"canonicalUrls":20423,"schema":20424},"How being public by default in security builds trust","The rewards of being open in security still outweigh the challenges.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670904/Blog/Hero%20Images/corded-devices.jpg","https://about.gitlab.com/blog/how-being-public-by-default-in-security-builds-trust","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How being public by default in security builds trust\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-09-03\",\n      }",{"title":20420,"description":20421,"authors":20426,"heroImage":20422,"date":20427,"category":17170,"tags":20428},[11324],"2020-09-03",[790,1569],{"slug":20430,"featured":6,"template":736},"how-being-public-by-default-in-security-builds-trust","content:en-us:blog:how-being-public-by-default-in-security-builds-trust.yml","How Being Public By Default In Security Builds Trust","en-us/blog/how-being-public-by-default-in-security-builds-trust.yml","en-us/blog/how-being-public-by-default-in-security-builds-trust",{"_path":20436,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20437,"content":20443,"config":20447,"_id":20449,"_type":16,"title":20450,"_source":17,"_file":20451,"_stem":20452,"_extension":20},"/en-us/blog/is-devops-for-designers",{"title":20438,"description":20439,"ogTitle":20438,"ogDescription":20439,"noIndex":6,"ogImage":20440,"ogUrl":20441,"ogSiteName":995,"ogType":996,"canonicalUrls":20441,"schema":20442},"Can DevOps be beneficial for design and UX?","Look at how DevOps phases can be integrated with design and UX, and why we've built the Figma plugin to help with this.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681548/Blog/Hero%20Images/GitLab-Figma-header.png","https://about.gitlab.com/blog/is-devops-for-designers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Can DevOps be beneficial for design and UX?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jordi Mon\"}],\n        \"datePublished\": \"2020-09-03\",\n      }",{"title":20438,"description":20439,"authors":20444,"heroImage":20440,"date":20427,"category":858,"tags":20446},[20445],"Jordi Mon",[2702,2704,2703],{"slug":20448,"featured":6,"template":736},"is-devops-for-designers","content:en-us:blog:is-devops-for-designers.yml","Is Devops For Designers","en-us/blog/is-devops-for-designers.yml","en-us/blog/is-devops-for-designers",{"_path":20454,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20455,"content":20461,"config":20467,"_id":20469,"_type":16,"title":20470,"_source":17,"_file":20471,"_stem":20472,"_extension":20},"/en-us/blog/risk-mapping",{"title":20456,"description":20457,"ogTitle":20456,"ogDescription":20457,"noIndex":6,"ogImage":20458,"ogUrl":20459,"ogSiteName":995,"ogType":996,"canonicalUrls":20459,"schema":20460},"Search team directs testing efforts with risk mapping","A justification of how the search team decided to try risk mapping as an ongoing exercise to determine where test automation should be written, and some guidance on how to create a risk map.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669590/Blog/Hero%20Images/niklas_hamann-fyvNzhJTQBA-unsplash.jpg","https://about.gitlab.com/blog/risk-mapping","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the Search Team at GitLab Implemented a Risk Map to Direct Automated Testing Efforts\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erick Banks\"},{\"@type\":\"Person\",\"name\":\"John McGuire\"}],\n        \"datePublished\": \"2020-09-03\",\n      }",{"title":20462,"description":20457,"authors":20463,"heroImage":20458,"date":20427,"category":17170,"tags":20466},"How the Search Team at GitLab Implemented a Risk Map to Direct Automated Testing Efforts",[20464,20465],"Erick Banks","John McGuire",[964,790,2025],{"slug":20468,"featured":6,"template":736},"risk-mapping","content:en-us:blog:risk-mapping.yml","Risk Mapping","en-us/blog/risk-mapping.yml","en-us/blog/risk-mapping",{"_path":20474,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20475,"content":20481,"config":20485,"_id":20487,"_type":16,"title":20488,"_source":17,"_file":20489,"_stem":20490,"_extension":20},"/en-us/blog/imposter-syndrome-and-remote-work",{"title":20476,"description":20477,"ogTitle":20476,"ogDescription":20477,"noIndex":6,"ogImage":20478,"ogUrl":20479,"ogSiteName":995,"ogType":996,"canonicalUrls":20479,"schema":20480},"How to tackle impostor syndrome while working remotely","Isolation can cause impostor syndrome to flourish. We explain how adopting a growth mindset can help stop impostor syndrome in its tracks.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681541/Blog/Hero%20Images/done_perfect.jpg","https://about.gitlab.com/blog/imposter-syndrome-and-remote-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to tackle impostor syndrome while working remotely\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-09-02\",\n      }",{"title":20476,"description":20477,"authors":20482,"heroImage":20478,"date":20483,"category":6121,"tags":20484},[16023],"2020-09-02",[6980,3914],{"slug":20486,"featured":6,"template":736},"imposter-syndrome-and-remote-work","content:en-us:blog:imposter-syndrome-and-remote-work.yml","Imposter Syndrome And Remote Work","en-us/blog/imposter-syndrome-and-remote-work.yml","en-us/blog/imposter-syndrome-and-remote-work",{"_path":20492,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20493,"content":20498,"config":20503,"_id":20505,"_type":16,"title":20506,"_source":17,"_file":20507,"_stem":20508,"_extension":20},"/en-us/blog/a-tale-of-two-editors",{"title":20494,"description":20495,"ogTitle":20494,"ogDescription":20495,"noIndex":6,"ogImage":11769,"ogUrl":20496,"ogSiteName":995,"ogType":996,"canonicalUrls":20496,"schema":20497},"A tale of two file editors","How UX Research revealed unexpected patterns in how people use two GitLab file editors: the single-file editor and the Web IDE.","https://about.gitlab.com/blog/a-tale-of-two-editors","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A tale of two file editors\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2020-09-01\",\n      }",{"title":20494,"description":20495,"authors":20499,"heroImage":11769,"date":20501,"category":8140,"tags":20502},[20500],"Emily von Hoffmann","2020-09-01",[2703,1569],{"slug":20504,"featured":6,"template":736},"a-tale-of-two-editors","content:en-us:blog:a-tale-of-two-editors.yml","A Tale Of Two Editors","en-us/blog/a-tale-of-two-editors.yml","en-us/blog/a-tale-of-two-editors",{"_path":20510,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20511,"content":20516,"config":20519,"_id":20521,"_type":16,"title":20522,"_source":17,"_file":20523,"_stem":20524,"_extension":20},"/en-us/blog/ci-minutes-update-free-users",{"title":20512,"description":20513,"ogTitle":20512,"ogDescription":20513,"noIndex":6,"ogImage":16110,"ogUrl":20514,"ogSiteName":995,"ogType":996,"canonicalUrls":20514,"schema":20515},"Upcoming changes to CI/CD minutes for free tier users on GitLab.com","The reduction of CI/CD minutes aligns with the majority of free user usage","https://about.gitlab.com/blog/ci-minutes-update-free-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Upcoming changes to CI/CD minutes for free tier users on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2020-09-01\",\n      }",{"title":20512,"description":20513,"authors":20517,"heroImage":16110,"date":20501,"category":1049,"tags":20518},[3701],[110,564,269,1265],{"slug":20520,"featured":6,"template":736},"ci-minutes-update-free-users","content:en-us:blog:ci-minutes-update-free-users.yml","Ci Minutes Update Free Users","en-us/blog/ci-minutes-update-free-users.yml","en-us/blog/ci-minutes-update-free-users",{"_path":20526,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20527,"content":20533,"config":20537,"_id":20539,"_type":16,"title":20540,"_source":17,"_file":20541,"_stem":20542,"_extension":20},"/en-us/blog/using-bazel-to-speed-up-gitlab-ci-builds",{"title":20528,"description":20529,"ogTitle":20528,"ogDescription":20529,"noIndex":6,"ogImage":20530,"ogUrl":20531,"ogSiteName":995,"ogType":996,"canonicalUrls":20531,"schema":20532},"How to use Bazel with GitLab to speed up your builds","We explain why Bazel and GitLab CI are a great match to speed up your build times.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667132/Blog/Hero%20Images/build-container-image-runner-fargate-codebuild-cover.jpg","https://about.gitlab.com/blog/using-bazel-to-speed-up-gitlab-ci-builds","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use Bazel with GitLab to speed up your builds\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2020-09-01\",\n      }",{"title":20528,"description":20529,"authors":20534,"heroImage":20530,"date":20501,"category":858,"tags":20536},[20535],"Jason Yavorska",[110,233,772],{"slug":20538,"featured":6,"template":736},"using-bazel-to-speed-up-gitlab-ci-builds","content:en-us:blog:using-bazel-to-speed-up-gitlab-ci-builds.yml","Using Bazel To Speed Up Gitlab Ci Builds","en-us/blog/using-bazel-to-speed-up-gitlab-ci-builds.yml","en-us/blog/using-bazel-to-speed-up-gitlab-ci-builds",{"_path":20544,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20545,"content":20551,"config":20555,"_id":20557,"_type":16,"title":20558,"_source":17,"_file":20559,"_stem":20560,"_extension":20},"/en-us/blog/how-to-configure-dast-full-scans-for-complex-web-applications",{"title":20546,"description":20547,"ogTitle":20546,"ogDescription":20547,"noIndex":6,"ogImage":20548,"ogUrl":20549,"ogSiteName":995,"ogType":996,"canonicalUrls":20549,"schema":20550},"How to configure DAST full scans for complex web applications","Keep your DAST job within timeout limits and fine-tune job configurations for better results","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679617/Blog/Hero%20Images/tuning-237454.jpg","https://about.gitlab.com/blog/how-to-configure-dast-full-scans-for-complex-web-applications","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to configure DAST full scans for complex web applications\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dennis Appelt\"}],\n        \"datePublished\": \"2020-08-31\",\n      }",{"title":20546,"description":20547,"authors":20552,"heroImage":20548,"date":20553,"category":790,"tags":20554},[6210],"2020-08-31",[790,3292,1265],{"slug":20556,"featured":6,"template":736},"how-to-configure-dast-full-scans-for-complex-web-applications","content:en-us:blog:how-to-configure-dast-full-scans-for-complex-web-applications.yml","How To Configure Dast Full Scans For Complex Web Applications","en-us/blog/how-to-configure-dast-full-scans-for-complex-web-applications.yml","en-us/blog/how-to-configure-dast-full-scans-for-complex-web-applications",{"_path":20562,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20563,"content":20569,"config":20573,"_id":20575,"_type":16,"title":20576,"_source":17,"_file":20577,"_stem":20578,"_extension":20},"/en-us/blog/applying-risk-management-to-remote-learning",{"title":20564,"description":20565,"ogTitle":20564,"ogDescription":20565,"noIndex":6,"ogImage":20566,"ogUrl":20567,"ogSiteName":995,"ogType":996,"canonicalUrls":20567,"schema":20568},"Applying risk management to pandemic-driven remote learning","A GitLab team member and parent offers some tips to improve today’s remote learning experience.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672774/Blog/Hero%20Images/pexels-august.jpg","https://about.gitlab.com/blog/applying-risk-management-to-remote-learning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Applying risk management to pandemic-driven remote learning\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Meghan Maneval\"}],\n        \"datePublished\": \"2020-08-27\",\n      }",{"title":20564,"description":20565,"authors":20570,"heroImage":20566,"date":20571,"category":17170,"tags":20572},[18840],"2020-08-27",[790,1569,4182],{"slug":20574,"featured":6,"template":736},"applying-risk-management-to-remote-learning","content:en-us:blog:applying-risk-management-to-remote-learning.yml","Applying Risk Management To Remote Learning","en-us/blog/applying-risk-management-to-remote-learning.yml","en-us/blog/applying-risk-management-to-remote-learning",{"_path":20580,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20581,"content":20587,"config":20591,"_id":20593,"_type":16,"title":20594,"_source":17,"_file":20595,"_stem":20596,"_extension":20},"/en-us/blog/measuring-engineering-productivity-at-gitlab",{"title":20582,"description":20583,"ogTitle":20582,"ogDescription":20583,"noIndex":6,"ogImage":20584,"ogUrl":20585,"ogSiteName":995,"ogType":996,"canonicalUrls":20585,"schema":20586},"How we measure engineering productivity at GitLab","Learn about how we measure and iterate through this metric","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681533/Blog/Hero%20Images/background.jpg","https://about.gitlab.com/blog/measuring-engineering-productivity-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we measure engineering productivity at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Clement Ho\"}],\n        \"datePublished\": \"2020-08-27\",\n      }",{"title":20582,"description":20583,"authors":20588,"heroImage":20584,"date":20571,"category":858,"tags":20590},[20589],"Clement Ho",[1569],{"slug":20592,"featured":6,"template":736},"measuring-engineering-productivity-at-gitlab","content:en-us:blog:measuring-engineering-productivity-at-gitlab.yml","Measuring Engineering Productivity At Gitlab","en-us/blog/measuring-engineering-productivity-at-gitlab.yml","en-us/blog/measuring-engineering-productivity-at-gitlab",{"_path":20598,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20599,"content":20605,"config":20609,"_id":20611,"_type":16,"title":20612,"_source":17,"_file":20613,"_stem":20614,"_extension":20},"/en-us/blog/ten-devops-terms",{"title":20600,"description":20601,"ogTitle":20600,"ogDescription":20601,"noIndex":6,"ogImage":20602,"ogUrl":20603,"ogSiteName":995,"ogType":996,"canonicalUrls":20603,"schema":20604},"DevOps terminology: 10 terms that might surprise you","From Yoda to yaks and even baklava, here are 10 DevOps terms we’re betting you’ve never heard of.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681526/Blog/Hero%20Images/devopsterms.jpg","https://about.gitlab.com/blog/ten-devops-terms","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps terminology: 10 terms that might surprise you\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-08-25\",\n      }",{"title":20600,"description":20601,"authors":20606,"heroImage":20602,"date":20607,"category":8140,"tags":20608},[10672],"2020-08-25",[564,1569,1335],{"slug":20610,"featured":6,"template":736},"ten-devops-terms","content:en-us:blog:ten-devops-terms.yml","Ten Devops Terms","en-us/blog/ten-devops-terms.yml","en-us/blog/ten-devops-terms",{"_path":20616,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20617,"content":20623,"config":20628,"_id":20630,"_type":16,"title":20631,"_source":17,"_file":20632,"_stem":20633,"_extension":20},"/en-us/blog/gitlab-achieves-kcsp-status",{"title":20618,"description":20619,"ogTitle":20618,"ogDescription":20619,"noIndex":6,"ogImage":20620,"ogUrl":20621,"ogSiteName":995,"ogType":996,"canonicalUrls":20621,"schema":20622},"GitLab achieves CNCF Kubernetes certified provider status","GitLab is all-in on cloud native and now that we're CNCF Certified Service Providers we'll be able to help other companies do the same.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681517/Blog/Hero%20Images/kubernetes-certified-service-provider-blog-cover.png","https://about.gitlab.com/blog/gitlab-achieves-kcsp-status","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"It's official: GitLab has achieved CNCF Kubernetes Certified Provider status\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vick Kelkar\"}],\n        \"datePublished\": \"2020-08-24\",\n      }",{"title":20624,"description":20619,"authors":20625,"heroImage":20620,"date":20626,"category":1049,"tags":20627},"It's official: GitLab has achieved CNCF Kubernetes Certified Provider status",[11105],"2020-08-24",[2908,582],{"slug":20629,"featured":6,"template":736},"gitlab-achieves-kcsp-status","content:en-us:blog:gitlab-achieves-kcsp-status.yml","Gitlab Achieves Kcsp Status","en-us/blog/gitlab-achieves-kcsp-status.yml","en-us/blog/gitlab-achieves-kcsp-status",{"_path":20635,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20636,"content":20642,"config":20648,"_id":20650,"_type":16,"title":20651,"_source":17,"_file":20652,"_stem":20653,"_extension":20},"/en-us/blog/align-engineering-security-appsec-tests-in-ci",{"title":20637,"description":20638,"ogTitle":20637,"ogDescription":20638,"noIndex":6,"ogImage":20639,"ogUrl":20640,"ogSiteName":995,"ogType":996,"canonicalUrls":20640,"schema":20641},"How Developer-Centric AppSec Testing Transforms DevOps Teams","Find and fix security bugs faster by implementing developer-centric application security testing in the CI pipeline. And the bonus? Engineering and security will finally be better aligned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681513/Blog/Hero%20Images/stackhawk.jpg","https://about.gitlab.com/blog/align-engineering-security-appsec-tests-in-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How developer-centric AppSec testing can dramatically change your DevOps team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joni Klippert\"}],\n        \"datePublished\": \"2020-08-21\",\n      }",{"title":20643,"description":20638,"authors":20644,"heroImage":20639,"date":20646,"category":858,"tags":20647},"How developer-centric AppSec testing can dramatically change your DevOps team",[20645],"Joni Klippert","2020-08-21",[110,2815,564,790,964,1335],{"slug":20649,"featured":6,"template":736},"align-engineering-security-appsec-tests-in-ci","content:en-us:blog:align-engineering-security-appsec-tests-in-ci.yml","Align Engineering Security Appsec Tests In Ci","en-us/blog/align-engineering-security-appsec-tests-in-ci.yml","en-us/blog/align-engineering-security-appsec-tests-in-ci",{"_path":20655,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20656,"content":20662,"config":20667,"_id":20669,"_type":16,"title":20670,"_source":17,"_file":20671,"_stem":20672,"_extension":20},"/en-us/blog/arctic-engine-fuzz-testing-blog",{"title":20657,"description":20658,"ogTitle":20657,"ogDescription":20658,"noIndex":6,"ogImage":20659,"ogUrl":20660,"ogSiteName":995,"ogType":996,"canonicalUrls":20660,"schema":20661},"How Arctic Engine uses GitLab's fuzz testing","Using GitLab's fuzz testing, we discovered and fixed various real defects that could crash our software. Now we can detect vulnerabilities before merging the code.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681504/Blog/Hero%20Images/arcticengine.png","https://about.gitlab.com/blog/arctic-engine-fuzz-testing-blog","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Arctic Engine uses GitLab's fuzz testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Huldra\"}],\n        \"datePublished\": \"2020-08-19\",\n      }",{"title":20657,"description":20658,"authors":20663,"heroImage":20659,"date":20665,"category":17170,"tags":20666},[20664],"Huldra","2020-08-19",[110,1265,790,964,4665,964],{"slug":20668,"featured":6,"template":736},"arctic-engine-fuzz-testing-blog","content:en-us:blog:arctic-engine-fuzz-testing-blog.yml","Arctic Engine Fuzz Testing Blog","en-us/blog/arctic-engine-fuzz-testing-blog.yml","en-us/blog/arctic-engine-fuzz-testing-blog",{"_path":20674,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20675,"content":20680,"config":20684,"_id":20686,"_type":16,"title":20687,"_source":17,"_file":20688,"_stem":20689,"_extension":20},"/en-us/blog/gitlab-com-13-4-breaking-changes",{"title":20676,"description":20677,"ogTitle":20676,"ogDescription":20677,"noIndex":6,"ogImage":11046,"ogUrl":20678,"ogSiteName":995,"ogType":996,"canonicalUrls":20678,"schema":20679},"Upcoming Breaking Changes to Secure Analyzers in GitLab 13.4","Our next release, 13.4, will include narrow breaking changes for our Secure scanning features. Find out how this could affect you and what you need to do.","https://about.gitlab.com/blog/gitlab-com-13-4-breaking-changes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Upcoming GitLab.com narrow breaking changes to Secure Analyzers in GitLab 13.4\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor McCaslin\"}],\n        \"datePublished\": \"2020-08-19\",\n      }",{"title":20681,"description":20677,"authors":20682,"heroImage":11046,"date":20665,"category":790,"tags":20683},"Upcoming GitLab.com narrow breaking changes to Secure Analyzers in GitLab 13.4",[6299],[892,110,790],{"slug":20685,"featured":6,"template":736},"gitlab-com-13-4-breaking-changes","content:en-us:blog:gitlab-com-13-4-breaking-changes.yml","Gitlab Com 13 4 Breaking Changes","en-us/blog/gitlab-com-13-4-breaking-changes.yml","en-us/blog/gitlab-com-13-4-breaking-changes",{"_path":20691,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20692,"content":20698,"config":20702,"_id":20704,"_type":16,"title":20705,"_source":17,"_file":20706,"_stem":20707,"_extension":20},"/en-us/blog/boring-solutions-faster-iteration",{"title":20693,"description":20694,"ogTitle":20693,"ogDescription":20694,"noIndex":6,"ogImage":20695,"ogUrl":20696,"ogSiteName":995,"ogType":996,"canonicalUrls":20696,"schema":20697},"Want to iterate faster? Choose boring solutions","We’ve released 106 times in 106 months, proof that boring solutions do work when it comes to software development. Here are some of our favorites.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681499/Blog/Hero%20Images/pencils2.jpg","https://about.gitlab.com/blog/boring-solutions-faster-iteration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Want to iterate faster? Choose boring solutions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-08-18\",\n      }",{"title":20693,"description":20694,"authors":20699,"heroImage":20695,"date":20700,"category":8140,"tags":20701},[10672],"2020-08-18",[1569,892,730],{"slug":20703,"featured":6,"template":736},"boring-solutions-faster-iteration","content:en-us:blog:boring-solutions-faster-iteration.yml","Boring Solutions Faster Iteration","en-us/blog/boring-solutions-faster-iteration.yml","en-us/blog/boring-solutions-faster-iteration",{"_path":20709,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20710,"content":20715,"config":20719,"_id":20721,"_type":16,"title":20722,"_source":17,"_file":20723,"_stem":20724,"_extension":20},"/en-us/blog/how-gitlab-can-help-you-secure-your-cloud-native-applications",{"title":20711,"description":20712,"ogTitle":20711,"ogDescription":20712,"noIndex":6,"ogImage":17164,"ogUrl":20713,"ogSiteName":995,"ogType":996,"canonicalUrls":20713,"schema":20714},"How GitLab improves cloud native application security and protection","In this article, we will show you how GitLab can help you streamline your cloud native application security from a code and operations point of view by providing you with real-world examples.","https://about.gitlab.com/blog/how-gitlab-can-help-you-secure-your-cloud-native-applications","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab improves cloud native application security and protection\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nico Meisenzahl\"}],\n        \"datePublished\": \"2020-08-18\",\n      }",{"title":20711,"description":20712,"authors":20716,"heroImage":17164,"date":20700,"category":577,"tags":20718},[20717],"Nico Meisenzahl",[582,564,2908,1265,790],{"slug":20720,"featured":6,"template":736},"how-gitlab-can-help-you-secure-your-cloud-native-applications","content:en-us:blog:how-gitlab-can-help-you-secure-your-cloud-native-applications.yml","How Gitlab Can Help You Secure Your Cloud Native Applications","en-us/blog/how-gitlab-can-help-you-secure-your-cloud-native-applications.yml","en-us/blog/how-gitlab-can-help-you-secure-your-cloud-native-applications",{"_path":20726,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20727,"content":20733,"config":20737,"_id":20739,"_type":16,"title":20740,"_source":17,"_file":20741,"_stem":20742,"_extension":20},"/en-us/blog/developer-security-divide",{"title":20728,"description":20729,"ogTitle":20728,"ogDescription":20729,"noIndex":6,"ogImage":20730,"ogUrl":20731,"ogSiteName":995,"ogType":996,"canonicalUrls":20731,"schema":20732},"The developer-security divide: frank talk from both sides","Data from our 2020 DevSecOps Survey shows dev and sec remain at odds over test, bug finding, fixes, and more. Can we be friends? Maybe.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681492/Blog/Hero%20Images/puzzle.jpg","https://about.gitlab.com/blog/developer-security-divide","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The developer-security divide: frank talk from both sides\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2020-08-13\",\n      }",{"title":20728,"description":20729,"authors":20734,"heroImage":20730,"date":20735,"category":8140,"tags":20736},[10835],"2020-08-13",[7788,790,2815],{"slug":20738,"featured":6,"template":736},"developer-security-divide","content:en-us:blog:developer-security-divide.yml","Developer Security Divide","en-us/blog/developer-security-divide.yml","en-us/blog/developer-security-divide",{"_path":20744,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20745,"content":20751,"config":20754,"_id":20756,"_type":16,"title":20757,"_source":17,"_file":20758,"_stem":20759,"_extension":20},"/en-us/blog/what-its-like-to-intern-in-gitlab-security",{"title":20746,"description":20747,"ogTitle":20746,"ogDescription":20747,"noIndex":6,"ogImage":20748,"ogUrl":20749,"ogSiteName":995,"ogType":996,"canonicalUrls":20749,"schema":20750},"What it's like to intern on the GitLab Security team","I spent 16 weeks interning across the GitLab security department and here’s what I learned","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672427/Blog/Hero%20Images/cgower_desk.jpg","https://about.gitlab.com/blog/what-its-like-to-intern-in-gitlab-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What it's like to intern on the GitLab Security team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Juliet Wanjohi\"}],\n        \"datePublished\": \"2020-08-13\",\n      }",{"title":20746,"description":20747,"authors":20752,"heroImage":20748,"date":20735,"category":17170,"tags":20753},[15186],[790,1569,1265],{"slug":20755,"featured":6,"template":736},"what-its-like-to-intern-in-gitlab-security","content:en-us:blog:what-its-like-to-intern-in-gitlab-security.yml","What Its Like To Intern In Gitlab Security","en-us/blog/what-its-like-to-intern-in-gitlab-security.yml","en-us/blog/what-its-like-to-intern-in-gitlab-security",{"_path":20761,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20762,"content":20768,"config":20772,"_id":20774,"_type":16,"title":20775,"_source":17,"_file":20776,"_stem":20777,"_extension":20},"/en-us/blog/how-to-play-gitlab-ctf-at-home",{"title":20763,"description":20764,"ogTitle":20763,"ogDescription":20764,"noIndex":6,"ogImage":20765,"ogUrl":20766,"ogSiteName":995,"ogType":996,"canonicalUrls":20766,"schema":20767},"How to play GitLab's Capture the Flag at home","Our AppSec team built and ran a CTF, and now it's available for you to play at home.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681485/Blog/Hero%20Images/gitlab_ctf.png","https://about.gitlab.com/blog/how-to-play-gitlab-ctf-at-home","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to play GitLab's Capture the Flag at home\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joern Schneeweisz\"}],\n        \"datePublished\": \"2020-08-12\",\n      }",{"title":20763,"description":20764,"authors":20769,"heroImage":20765,"date":20770,"category":790,"tags":20771},[10316],"2020-08-12",[790,3292,1265],{"slug":20773,"featured":6,"template":736},"how-to-play-gitlab-ctf-at-home","content:en-us:blog:how-to-play-gitlab-ctf-at-home.yml","How To Play Gitlab Ctf At Home","en-us/blog/how-to-play-gitlab-ctf-at-home.yml","en-us/blog/how-to-play-gitlab-ctf-at-home",{"_path":20779,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20780,"content":20786,"config":20790,"_id":20792,"_type":16,"title":20793,"_source":17,"_file":20794,"_stem":20795,"_extension":20},"/en-us/blog/how-to-benchmark-security-tools",{"title":20781,"description":20782,"ogTitle":20781,"ogDescription":20782,"noIndex":6,"ogImage":20783,"ogUrl":20784,"ogSiteName":995,"ogType":996,"canonicalUrls":20784,"schema":20785},"How to benchmark security tools: a case study using WebGoat","When tasked to compare security tools, it's critical to understand what's a fair benchmark. We take you step by step through WebGoat's lessons and compare them to SAST and DAST results.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678166/Blog/Hero%20Images/benchmarking.jpg","https://about.gitlab.com/blog/how-to-benchmark-security-tools","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to benchmark security tools: a case study using WebGoat\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Isaac Dawson\"}],\n        \"datePublished\": \"2020-08-11\",\n      }",{"title":20781,"description":20782,"authors":20787,"heroImage":20783,"date":20788,"category":790,"tags":20789},[11124],"2020-08-11",[790,3292,964],{"slug":20791,"featured":6,"template":736},"how-to-benchmark-security-tools","content:en-us:blog:how-to-benchmark-security-tools.yml","How To Benchmark Security Tools","en-us/blog/how-to-benchmark-security-tools.yml","en-us/blog/how-to-benchmark-security-tools",{"_path":20797,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20798,"content":20804,"config":20808,"_id":20810,"_type":16,"title":20811,"_source":17,"_file":20812,"_stem":20813,"_extension":20},"/en-us/blog/whitesource-for-dependency-scanning",{"title":20799,"description":20800,"ogTitle":20799,"ogDescription":20800,"noIndex":6,"ogImage":20801,"ogUrl":20802,"ogSiteName":995,"ogType":996,"canonicalUrls":20802,"schema":20803},"How to secure your dependencies with GitLab and WhiteSource","We walk you through how to configure WhiteSource in your GitLab instance to enhance your application security.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663445/Blog/Hero%20Images/snowymtns.jpg","https://about.gitlab.com/blog/whitesource-for-dependency-scanning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to secure your dependencies with GitLab and WhiteSource\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2020-08-10\",\n      }",{"title":20799,"description":20800,"authors":20805,"heroImage":20801,"date":20806,"category":790,"tags":20807},[1097],"2020-08-10",[110,790,233,729,2908],{"slug":20809,"featured":6,"template":736},"whitesource-for-dependency-scanning","content:en-us:blog:whitesource-for-dependency-scanning.yml","Whitesource For Dependency Scanning","en-us/blog/whitesource-for-dependency-scanning.yml","en-us/blog/whitesource-for-dependency-scanning",{"_path":20815,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20816,"content":20821,"config":20825,"_id":20827,"_type":16,"title":20828,"_source":17,"_file":20829,"_stem":20830,"_extension":20},"/en-us/blog/working-for-gitlab-a-support-engineers-perspective",{"title":20817,"description":20818,"ogTitle":20817,"ogDescription":20818,"noIndex":6,"ogImage":17164,"ogUrl":20819,"ogSiteName":995,"ogType":996,"canonicalUrls":20819,"schema":20820},"Working for GitLab - A Support Engineer's perspective","Reflecting on the last 12 months working for GitLab as a Support Engineer","https://about.gitlab.com/blog/working-for-gitlab-a-support-engineers-perspective","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Working for GitLab - A Support Engineer's perspective\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Anton Smith\"}],\n        \"datePublished\": \"2020-08-10\",\n      }",{"title":20817,"description":20818,"authors":20822,"heroImage":17164,"date":20806,"category":17170,"tags":20824},[20823],"Anton Smith",[6980],{"slug":20826,"featured":6,"template":736},"working-for-gitlab-a-support-engineers-perspective","content:en-us:blog:working-for-gitlab-a-support-engineers-perspective.yml","Working For Gitlab A Support Engineers Perspective","en-us/blog/working-for-gitlab-a-support-engineers-perspective.yml","en-us/blog/working-for-gitlab-a-support-engineers-perspective",{"_path":20832,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20833,"content":20839,"config":20843,"_id":20845,"_type":16,"title":20846,"_source":17,"_file":20847,"_stem":20848,"_extension":20},"/en-us/blog/how-gitlab-protects-your-ip",{"title":20834,"description":20835,"ogTitle":20834,"ogDescription":20835,"noIndex":6,"ogImage":20836,"ogUrl":20837,"ogSiteName":995,"ogType":996,"canonicalUrls":20837,"schema":20838},"How GitLab protects your IP","There are many ways in which hosting intellectual property in GitLab is not only secure but also flexible and invites collaboration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667110/Blog/Hero%20Images/how-gitlab-protects-your-ip.jpg","https://about.gitlab.com/blog/how-gitlab-protects-your-ip","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab protects your IP\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jordi Mon\"}],\n        \"datePublished\": \"2020-08-07\",\n      }",{"title":20834,"description":20835,"authors":20840,"heroImage":20836,"date":20841,"category":858,"tags":20842},[20445],"2020-08-07",[790,2815],{"slug":20844,"featured":6,"template":736},"how-gitlab-protects-your-ip","content:en-us:blog:how-gitlab-protects-your-ip.yml","How Gitlab Protects Your Ip","en-us/blog/how-gitlab-protects-your-ip.yml","en-us/blog/how-gitlab-protects-your-ip",{"_path":20850,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20851,"content":20857,"config":20861,"_id":20863,"_type":16,"title":20864,"_source":17,"_file":20865,"_stem":20866,"_extension":20},"/en-us/blog/gitlab-pages-for-covid",{"title":20852,"description":20853,"ogTitle":20852,"ogDescription":20853,"noIndex":6,"ogImage":20854,"ogUrl":20855,"ogSiteName":995,"ogType":996,"canonicalUrls":20855,"schema":20856},"Using GitLab Pages to Report Local COVID-19 Rates","How I used GitLab pages to publish up-to-date local infection rates.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681476/Blog/Hero%20Images/thisisengineering-raeng-0jTZTMyGym8-unsplash.jpg","https://about.gitlab.com/blog/gitlab-pages-for-covid","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using GitLab Pages to Report Local COVID-19 Rates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Nohr\"}],\n        \"datePublished\": \"2020-08-06\",\n      }",{"title":20852,"description":20853,"authors":20858,"heroImage":20854,"date":20859,"category":17170,"tags":20860},[12074],"2020-08-06",[559,729,964,110],{"slug":20862,"featured":6,"template":736},"gitlab-pages-for-covid","content:en-us:blog:gitlab-pages-for-covid.yml","Gitlab Pages For Covid","en-us/blog/gitlab-pages-for-covid.yml","en-us/blog/gitlab-pages-for-covid",{"_path":20868,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20869,"content":20874,"config":20878,"_id":20880,"_type":16,"title":20881,"_source":17,"_file":20882,"_stem":20883,"_extension":20},"/en-us/blog/gitlab-support-no-longer-processing-mfa-resets-for-free-users",{"title":20870,"description":20871,"ogTitle":20870,"ogDescription":20871,"noIndex":6,"ogImage":16110,"ogUrl":20872,"ogSiteName":995,"ogType":996,"canonicalUrls":20872,"schema":20873},"GitLab Support is no longer processing MFA resets for free users","From August 15th, GitLab Support will no longer be manually removing MFA from free accounts.","https://about.gitlab.com/blog/gitlab-support-no-longer-processing-mfa-resets-for-free-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Support is no longer processing MFA resets for free users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lyle Kozloff\"}],\n        \"datePublished\": \"2020-08-04\",\n      }",{"title":20870,"description":20871,"authors":20875,"heroImage":16110,"date":20876,"category":1049,"tags":20877},[5378],"2020-08-04",[269,790,1049,1265],{"slug":20879,"featured":6,"template":736},"gitlab-support-no-longer-processing-mfa-resets-for-free-users","content:en-us:blog:gitlab-support-no-longer-processing-mfa-resets-for-free-users.yml","Gitlab Support No Longer Processing Mfa Resets For Free Users","en-us/blog/gitlab-support-no-longer-processing-mfa-resets-for-free-users.yml","en-us/blog/gitlab-support-no-longer-processing-mfa-resets-for-free-users",{"_path":20885,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20886,"content":20891,"config":20895,"_id":20897,"_type":16,"title":20898,"_source":17,"_file":20899,"_stem":20900,"_extension":20},"/en-us/blog/security-scan-experience",{"title":20887,"description":20888,"ogTitle":20887,"ogDescription":20888,"noIndex":6,"ogImage":17164,"ogUrl":20889,"ogSiteName":995,"ogType":996,"canonicalUrls":20889,"schema":20890},"My experience interning to work with security scanning at GitLab","Experience with doing a 4 week internship implementing security scans","https://about.gitlab.com/blog/security-scan-experience","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"My experience interning to work with security scanning at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Rosenberg\"}],\n        \"datePublished\": \"2020-08-04\",\n      }",{"title":20887,"description":20888,"authors":20892,"heroImage":17164,"date":20876,"category":17170,"tags":20894},[20893],"Eric Rosenberg",[110,233,790],{"slug":20896,"featured":6,"template":736},"security-scan-experience","content:en-us:blog:security-scan-experience.yml","Security Scan Experience","en-us/blog/security-scan-experience.yml","en-us/blog/security-scan-experience",{"_path":20902,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20903,"content":20908,"config":20913,"_id":20915,"_type":16,"title":20916,"_source":17,"_file":20917,"_stem":20918,"_extension":20},"/en-us/blog/gitlab-named-visionary-in-gartner-agile-planning-magic-quadrant",{"title":20904,"description":20905,"ogTitle":20904,"ogDescription":20905,"noIndex":6,"ogImage":16110,"ogUrl":20906,"ogSiteName":995,"ogType":996,"canonicalUrls":20906,"schema":20907},"Gartner names GitLab visionary in enterprise agile planning","For the second consecutive year, Gartner validates our product vision.","https://about.gitlab.com/blog/gitlab-named-visionary-in-gartner-agile-planning-magic-quadrant","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named a Visionary in 2020 Gartner Magic Quadrant for Enterprise Agile Planning Tools\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cormac Foster\"}],\n        \"datePublished\": \"2020-08-03\",\n      }",{"title":20909,"description":20905,"authors":20910,"heroImage":16110,"date":20911,"category":1049,"tags":20912},"GitLab named a Visionary in 2020 Gartner Magic Quadrant for Enterprise Agile Planning Tools",[15485],"2020-08-03",[729,1335,1569],{"slug":20914,"featured":6,"template":736},"gitlab-named-visionary-in-gartner-agile-planning-magic-quadrant","content:en-us:blog:gitlab-named-visionary-in-gartner-agile-planning-magic-quadrant.yml","Gitlab Named Visionary In Gartner Agile Planning Magic Quadrant","en-us/blog/gitlab-named-visionary-in-gartner-agile-planning-magic-quadrant.yml","en-us/blog/gitlab-named-visionary-in-gartner-agile-planning-magic-quadrant",{"_path":20920,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20921,"content":20927,"config":20931,"_id":20933,"_type":16,"title":20934,"_source":17,"_file":20935,"_stem":20936,"_extension":20},"/en-us/blog/how-gitlab-pages-uses-the-gitlab-api",{"title":20922,"description":20923,"ogTitle":20922,"ogDescription":20923,"noIndex":6,"ogImage":20924,"ogUrl":20925,"ogSiteName":995,"ogType":996,"canonicalUrls":20925,"schema":20926},"How GitLab Pages uses the GitLab API to serve content","GitLab Pages is changing the way it reads a project's configuration to speed up booting times and slowly remove its dependency to NFS.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679634/Blog/Hero%20Images/retrosupply-jLwVAUtLOAQ-unsplash.jpg","https://about.gitlab.com/blog/how-gitlab-pages-uses-the-gitlab-api-to-serve-content","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab Pages uses the GitLab API to serve content\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jaime Martínez\"}],\n        \"datePublished\": \"2020-08-03\",\n      }",{"title":20922,"description":20923,"authors":20928,"heroImage":20924,"date":20911,"category":858,"tags":20930},[20929],"Jaime Martínez",[1569,2908],{"slug":20932,"featured":6,"template":736},"how-gitlab-pages-uses-the-gitlab-api","content:en-us:blog:how-gitlab-pages-uses-the-gitlab-api.yml","How Gitlab Pages Uses The Gitlab Api","en-us/blog/how-gitlab-pages-uses-the-gitlab-api.yml","en-us/blog/how-gitlab-pages-uses-the-gitlab-api",{"_path":20938,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20939,"content":20945,"config":20948,"_id":20950,"_type":16,"title":20951,"_source":17,"_file":20952,"_stem":20953,"_extension":20},"/en-us/blog/manage-it-alerts-with-gitlab",{"title":20940,"description":20941,"ogTitle":20940,"ogDescription":20941,"noIndex":6,"ogImage":20942,"ogUrl":20943,"ogSiteName":995,"ogType":996,"canonicalUrls":20943,"schema":20944},"How we manage IT Alerts in GitLab","Triaging alerts just got easier with GitLab because you can investigate and remediate outages in a single tool.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681461/Blog/Hero%20Images/manage-it-alerts-in-gitlab.png","https://about.gitlab.com/blog/manage-it-alerts-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we manage IT Alerts in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Waldner\"}],\n        \"datePublished\": \"2020-08-03\",\n      }",{"title":20940,"description":20941,"authors":20946,"heroImage":20942,"date":20911,"category":1049,"tags":20947},[9229],[564,730],{"slug":20949,"featured":6,"template":736},"manage-it-alerts-with-gitlab","content:en-us:blog:manage-it-alerts-with-gitlab.yml","Manage It Alerts With Gitlab","en-us/blog/manage-it-alerts-with-gitlab.yml","en-us/blog/manage-it-alerts-with-gitlab",{"_path":20955,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20956,"content":20961,"config":20966,"_id":20968,"_type":16,"title":20969,"_source":17,"_file":20970,"_stem":20971,"_extension":20},"/en-us/blog/aws-fargate-codebuild-build-containers-gitlab-runner",{"title":20957,"description":20958,"ogTitle":20957,"ogDescription":20958,"noIndex":6,"ogImage":20530,"ogUrl":20959,"ogSiteName":995,"ogType":996,"canonicalUrls":20959,"schema":20960},"Building containers with GitLab Runner & AWS Fargate executor","Build containers with the AWS Fargate Custom Executor for GitLab Runner and AWS CodeBuild","https://about.gitlab.com/blog/aws-fargate-codebuild-build-containers-gitlab-runner","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to build containers with the AWS Fargate Custom Executor for GitLab Runner and AWS CodeBuild\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Elliot Rushton\"}],\n        \"datePublished\": \"2020-07-31\",\n      }",{"title":20962,"description":20958,"authors":20963,"heroImage":20530,"date":20964,"category":858,"tags":20965},"How to build containers with the AWS Fargate Custom Executor for GitLab Runner and AWS CodeBuild",[16864],"2020-07-31",[110,233,772],{"slug":20967,"featured":6,"template":736},"aws-fargate-codebuild-build-containers-gitlab-runner","content:en-us:blog:aws-fargate-codebuild-build-containers-gitlab-runner.yml","Aws Fargate Codebuild Build Containers Gitlab Runner","en-us/blog/aws-fargate-codebuild-build-containers-gitlab-runner.yml","en-us/blog/aws-fargate-codebuild-build-containers-gitlab-runner",{"_path":20973,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20974,"content":20980,"config":20983,"_id":20985,"_type":16,"title":20986,"_source":17,"_file":20987,"_stem":20988,"_extension":20},"/en-us/blog/use-gitlab-with-vscode",{"title":20975,"description":20976,"ogTitle":20975,"ogDescription":20976,"noIndex":6,"ogImage":20977,"ogUrl":20978,"ogSiteName":995,"ogType":996,"canonicalUrls":20978,"schema":20979},"How we created a GitLab Workflow Extension for VS Code","Now you can leverage GitLab from within Visual Studio Code with our official GitLab Workflow Extension.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681469/Blog/Hero%20Images/gitlab-vscode-blog-image2.jpg","https://about.gitlab.com/blog/use-gitlab-with-vscode","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we created a GitLab Workflow Extension for VS Code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Roman Kuba\"}],\n        \"datePublished\": \"2020-07-31\",\n      }",{"title":20975,"description":20976,"authors":20981,"heroImage":20977,"date":20964,"category":858,"tags":20982},[18225],[964,1569],{"slug":20984,"featured":6,"template":736},"use-gitlab-with-vscode","content:en-us:blog:use-gitlab-with-vscode.yml","Use Gitlab With Vscode","en-us/blog/use-gitlab-with-vscode.yml","en-us/blog/use-gitlab-with-vscode",{"_path":20990,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":20991,"content":20996,"config":21000,"_id":21002,"_type":16,"title":21003,"_source":17,"_file":21004,"_stem":21005,"_extension":20},"/en-us/blog/kubernetes-terminology",{"title":20992,"description":20993,"ogTitle":20992,"ogDescription":20993,"noIndex":6,"ogImage":12282,"ogUrl":20994,"ogSiteName":995,"ogType":996,"canonicalUrls":20994,"schema":20995},"Understand Kubernetes terminology from namespaces to pods","Kubernetes can be a critical piece of successful DevOps but there's a lot to learn. We explain the terms and share a hands-on demo.","https://about.gitlab.com/blog/kubernetes-terminology","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Understand Kubernetes terminology from namespaces to pods\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-07-30\",\n      }",{"title":20992,"description":20993,"authors":20997,"heroImage":12282,"date":20998,"category":8140,"tags":20999},[10672],"2020-07-30",[2908,564,582],{"slug":21001,"featured":6,"template":736},"kubernetes-terminology","content:en-us:blog:kubernetes-terminology.yml","Kubernetes Terminology","en-us/blog/kubernetes-terminology.yml","en-us/blog/kubernetes-terminology",{"_path":21007,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21008,"content":21014,"config":21018,"_id":21020,"_type":16,"title":21021,"_source":17,"_file":21022,"_stem":21023,"_extension":20},"/en-us/blog/effective-ci-cd-pipelines",{"title":21009,"description":21010,"ogTitle":21009,"ogDescription":21010,"noIndex":6,"ogImage":21011,"ogUrl":21012,"ogSiteName":995,"ogType":996,"canonicalUrls":21012,"schema":21013},"Want a more effective CI/CD pipeline? Try our pro tips","Here’s how to take your CI/CD pipeline to the next level with hands on advice about faster builds, better security and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681447/Blog/Hero%20Images/cicdpipelines.jpg","https://about.gitlab.com/blog/effective-ci-cd-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Want a more effective CI/CD pipeline? Try our pro tips\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-07-29\",\n      }",{"title":21009,"description":21010,"authors":21015,"heroImage":21011,"date":21016,"category":858,"tags":21017},[10672],"2020-07-29",[110,564,233],{"slug":21019,"featured":6,"template":736},"effective-ci-cd-pipelines","content:en-us:blog:effective-ci-cd-pipelines.yml","Effective Ci Cd Pipelines","en-us/blog/effective-ci-cd-pipelines.yml","en-us/blog/effective-ci-cd-pipelines",{"_path":21025,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21026,"content":21031,"config":21036,"_id":21038,"_type":16,"title":21039,"_source":17,"_file":21040,"_stem":21041,"_extension":20},"/en-us/blog/forrester-tei",{"title":21027,"description":21028,"ogTitle":21027,"ogDescription":21028,"noIndex":6,"ogImage":16110,"ogUrl":21029,"ogSiteName":995,"ogType":996,"canonicalUrls":21029,"schema":21030},"Estimate your GitLab ROI with Forrester's economic study","Now available: A new Forrester ROI study and calculator based on real value customers got from using GitLab for SCM, CI, and CD.","https://about.gitlab.com/blog/forrester-tei","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Discover your GitLab return on investment with the Forrester Total Economic Impact™ Study and Estimator\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Colin Fletcher\"}],\n        \"datePublished\": \"2020-07-29\",\n      }",{"title":21032,"description":21028,"authors":21033,"heroImage":16110,"date":21016,"category":1049,"tags":21035},"Discover your GitLab return on investment with the Forrester Total Economic Impact™ Study and Estimator",[21034],"Colin Fletcher",[110,2815,564,1049,2025,4665],{"slug":21037,"featured":6,"template":736},"forrester-tei","content:en-us:blog:forrester-tei.yml","Forrester Tei","en-us/blog/forrester-tei.yml","en-us/blog/forrester-tei",{"_path":21043,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21044,"content":21049,"config":21054,"_id":21056,"_type":16,"title":21057,"_source":17,"_file":21058,"_stem":21059,"_extension":20},"/en-us/blog/container-security-in-gitlab",{"title":21045,"description":21046,"ogTitle":21045,"ogDescription":21046,"noIndex":6,"ogImage":10041,"ogUrl":21047,"ogSiteName":995,"ogType":996,"canonicalUrls":21047,"schema":21048},"Get better container security with GitLab: 4 real-world examples","Containers are increasingly popular – and increasingly vulnerable. Using\nfour threat scenarios, we step through how GitLab's built-in security\nfeatures will make containers safer.","https://about.gitlab.com/blog/container-security-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get better container security with GitLab: 4 real-world examples\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Thiago Figueiró\"}],\n        \"datePublished\": \"2020-07-28\",\n      }",{"title":21045,"description":21046,"authors":21050,"heroImage":10041,"date":21052,"category":790,"tags":21053},[21051],"Thiago Figueiró","2020-07-28",[2908,790,4182],{"slug":21055,"featured":6,"template":736},"container-security-in-gitlab","content:en-us:blog:container-security-in-gitlab.yml","Container Security In Gitlab","en-us/blog/container-security-in-gitlab.yml","en-us/blog/container-security-in-gitlab",{"_path":21061,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21062,"content":21068,"config":21072,"_id":21074,"_type":16,"title":21075,"_source":17,"_file":21076,"_stem":21077,"_extension":20},"/en-us/blog/safe-deploys",{"title":21063,"description":21064,"ogTitle":21063,"ogDescription":21064,"noIndex":6,"ogImage":21065,"ogUrl":21066,"ogSiteName":995,"ogType":996,"canonicalUrls":21066,"schema":21067},"GitLab's guide to safe deployment practices","It's important to safeguard your deployment process. Here's our best advice to protect your environments.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678412/Blog/Hero%20Images/safe_deploy.jpg","https://about.gitlab.com/blog/safe-deploys","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's guide to safe deployment practices\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2020-07-23\",\n      }",{"title":21063,"description":21064,"authors":21069,"heroImage":21065,"date":21070,"category":858,"tags":21071},[14332],"2020-07-23",[110,892,790],{"slug":21073,"featured":6,"template":736},"safe-deploys","content:en-us:blog:safe-deploys.yml","Safe Deploys","en-us/blog/safe-deploys.yml","en-us/blog/safe-deploys",{"_path":21079,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21080,"content":21085,"config":21089,"_id":21091,"_type":16,"title":21092,"_source":17,"_file":21093,"_stem":21094,"_extension":20},"/en-us/blog/rust-programming-language",{"title":21081,"description":21082,"ogTitle":21081,"ogDescription":21082,"noIndex":6,"ogImage":19114,"ogUrl":21083,"ogSiteName":995,"ogType":996,"canonicalUrls":21083,"schema":21084},"A guide to Rust programming language","Rust is a well-loved programming language but it is a mindset shift from options like C++. Here's a tutorial and an inside look at Rust code and its capabilities.","https://about.gitlab.com/blog/rust-programming-language","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A guide to Rust programming language\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-07-21\",\n      }",{"title":21081,"description":21082,"authors":21086,"heroImage":19114,"date":21087,"category":8140,"tags":21088},[10672],"2020-07-21",[1265,790,772],{"slug":21090,"featured":6,"template":736},"rust-programming-language","content:en-us:blog:rust-programming-language.yml","Rust Programming Language","en-us/blog/rust-programming-language.yml","en-us/blog/rust-programming-language",{"_path":21096,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21097,"content":21103,"config":21108,"_id":21110,"_type":16,"title":21111,"_source":17,"_file":21112,"_stem":21113,"_extension":20},"/en-us/blog/devsecops-security-standardization",{"title":21098,"description":21099,"ogTitle":21098,"ogDescription":21099,"noIndex":6,"ogImage":21100,"ogUrl":21101,"ogSiteName":995,"ogType":996,"canonicalUrls":21101,"schema":21102},"DevSecOps basics: 5 steps to standardize (and then scale) security","DevSecOps is incomplete without speed and scale. Standardize security to make it happen.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663613/Blog/Hero%20Images/devsecops-security-standardization.jpg","https://about.gitlab.com/blog/devsecops-security-standardization","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps basics: 5 steps to standardize (and then scale) security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2020-07-20\",\n      }",{"title":21098,"description":21099,"authors":21104,"heroImage":21100,"date":21106,"category":8140,"tags":21107},[21105],"Vanessa Wegner","2020-07-20",[564,790,1335,5733],{"slug":21109,"featured":6,"template":736},"devsecops-security-standardization","content:en-us:blog:devsecops-security-standardization.yml","Devsecops Security Standardization","en-us/blog/devsecops-security-standardization.yml","en-us/blog/devsecops-security-standardization",{"_path":21115,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21116,"content":21122,"config":21126,"_id":21128,"_type":16,"title":21129,"_source":17,"_file":21130,"_stem":21131,"_extension":20},"/en-us/blog/fuzz-testing",{"title":21117,"description":21118,"ogTitle":21117,"ogDescription":21118,"noIndex":6,"ogImage":21119,"ogUrl":21120,"ogSiteName":995,"ogType":996,"canonicalUrls":21120,"schema":21121},"How recent acquisitions introduce fuzz testing to GitLab","Learn more about fuzz testing and GitLab's recent acquisitions in the space.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681436/Blog/Hero%20Images/peaches2.jpg","https://about.gitlab.com/blog/fuzz-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How recent acquisitions introduce fuzz testing to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Kerr\"}],\n        \"datePublished\": \"2020-07-17\",\n      }",{"title":21117,"description":21118,"authors":21123,"heroImage":21119,"date":21124,"category":1049,"tags":21125},[6887],"2020-07-17",[730,1265,790],{"slug":21127,"featured":6,"template":736},"fuzz-testing","content:en-us:blog:fuzz-testing.yml","Fuzz Testing","en-us/blog/fuzz-testing.yml","en-us/blog/fuzz-testing",{"_path":21133,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21134,"content":21140,"config":21144,"_id":21146,"_type":16,"title":21147,"_source":17,"_file":21148,"_stem":21149,"_extension":20},"/en-us/blog/ci-cd-changing-roles",{"title":21135,"description":21136,"ogTitle":21135,"ogDescription":21136,"noIndex":6,"ogImage":21137,"ogUrl":21138,"ogSiteName":995,"ogType":996,"canonicalUrls":21138,"schema":21139},"A surprising benefit of CI/CD: Changing development roles","DevOps and CI/CD make for faster code release, but they're also causing sweeping changes in dev and ops roles and responsibilities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668027/Blog/Hero%20Images/cicd.jpg","https://about.gitlab.com/blog/ci-cd-changing-roles","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A surprising benefit of CI/CD: Changing development roles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-07-16\",\n      }",{"title":21135,"description":21136,"authors":21141,"heroImage":21137,"date":21142,"category":8140,"tags":21143},[10672],"2020-07-16",[110,564,7788],{"slug":21145,"featured":6,"template":736},"ci-cd-changing-roles","content:en-us:blog:ci-cd-changing-roles.yml","Ci Cd Changing Roles","en-us/blog/ci-cd-changing-roles.yml","en-us/blog/ci-cd-changing-roles",{"_path":21151,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21152,"content":21158,"config":21162,"_id":21164,"_type":16,"title":21165,"_source":17,"_file":21166,"_stem":21167,"_extension":20},"/en-us/blog/security-culture-devsecops",{"title":21153,"description":21154,"ogTitle":21153,"ogDescription":21154,"noIndex":6,"ogImage":21155,"ogUrl":21156,"ogSiteName":995,"ogType":996,"canonicalUrls":21156,"schema":21157},"DevSecOps basics: how to build a security culture in 6 steps","How to build a DevSecOps culture in your workplace. Get there faster by creating a strong security culture.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663608/Blog/Hero%20Images/security-culture-devsecops.jpg","https://about.gitlab.com/blog/security-culture-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps basics: how to build a security culture in 6 steps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2020-07-15\",\n      }",{"title":21153,"description":21154,"authors":21159,"heroImage":21155,"date":21160,"category":8140,"tags":21161},[21105],"2020-07-15",[564,790,730],{"slug":21163,"featured":6,"template":736},"security-culture-devsecops","content:en-us:blog:security-culture-devsecops.yml","Security Culture Devsecops","en-us/blog/security-culture-devsecops.yml","en-us/blog/security-culture-devsecops",{"_path":21169,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21170,"content":21176,"config":21180,"_id":21182,"_type":16,"title":21183,"_source":17,"_file":21184,"_stem":21185,"_extension":20},"/en-us/blog/gitops-next-big-thing-automation",{"title":21171,"description":21172,"ogTitle":21171,"ogDescription":21172,"noIndex":6,"ogImage":21173,"ogUrl":21174,"ogSiteName":995,"ogType":996,"canonicalUrls":21174,"schema":21175},"Is GitOps the next big thing in automation?","We polled our community on Twitter to ask about GitOps. Here is what we found.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681428/Blog/Hero%20Images/iac-gitops-blog-post_with-gl-logo.png","https://about.gitlab.com/blog/gitops-next-big-thing-automation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Is GitOps the next big thing in automation?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-07-14\",\n      }",{"title":21171,"description":21172,"authors":21177,"heroImage":21173,"date":21178,"category":8140,"tags":21179},[17150],"2020-07-14",[110,564,269],{"slug":21181,"featured":6,"template":736},"gitops-next-big-thing-automation","content:en-us:blog:gitops-next-big-thing-automation.yml","Gitops Next Big Thing Automation","en-us/blog/gitops-next-big-thing-automation.yml","en-us/blog/gitops-next-big-thing-automation",{"_path":21187,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21188,"content":21194,"config":21198,"_id":21200,"_type":16,"title":21201,"_source":17,"_file":21202,"_stem":21203,"_extension":20},"/en-us/blog/administering-gitlab-edu",{"title":21189,"description":21190,"ogTitle":21189,"ogDescription":21190,"noIndex":6,"ogImage":21191,"ogUrl":21192,"ogSiteName":995,"ogType":996,"canonicalUrls":21192,"schema":21193},"Administering your GitLab for Education License","Getting ready for fall semester and wondering how to set up your GitLab License? We've got you covered!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681419/Blog/Hero%20Images/servers_image.jpg","https://about.gitlab.com/blog/administering-gitlab-edu","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Administering your GitLab for Education License\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2020-07-10\",\n      }",{"title":21189,"description":21190,"authors":21195,"heroImage":21191,"date":21196,"category":17170,"tags":21197},[13131],"2020-07-10",[6376,559],{"slug":21199,"featured":6,"template":736},"administering-gitlab-edu","content:en-us:blog:administering-gitlab-edu.yml","Administering Gitlab Edu","en-us/blog/administering-gitlab-edu.yml","en-us/blog/administering-gitlab-edu",{"_path":21205,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21206,"content":21212,"config":21216,"_id":21218,"_type":16,"title":21219,"_source":17,"_file":21220,"_stem":21221,"_extension":20},"/en-us/blog/integrating-azure-devops-scm-and-gitlab",{"title":21207,"description":21208,"ogTitle":21207,"ogDescription":21208,"noIndex":6,"ogImage":21209,"ogUrl":21210,"ogSiteName":995,"ogType":996,"canonicalUrls":21210,"schema":21211},"How to integrate Azure DevOps repositories with GitLab","How to keep your code in an Azure DevOps repository and run CI/CD with GitLab pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664363/Blog/Hero%20Images/aleksey-kuprikov.jpg","https://about.gitlab.com/blog/integrating-azure-devops-scm-and-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to integrate Azure DevOps repositories with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2020-07-09\",\n      }",{"title":21207,"description":21208,"authors":21213,"heroImage":21209,"date":21214,"category":858,"tags":21215},[1016],"2020-07-09",[110,729,772],{"slug":21217,"featured":6,"template":736},"integrating-azure-devops-scm-and-gitlab","content:en-us:blog:integrating-azure-devops-scm-and-gitlab.yml","Integrating Azure Devops Scm And Gitlab","en-us/blog/integrating-azure-devops-scm-and-gitlab.yml","en-us/blog/integrating-azure-devops-scm-and-gitlab",{"_path":21223,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21224,"content":21230,"config":21234,"_id":21236,"_type":16,"title":21237,"_source":17,"_file":21238,"_stem":21239,"_extension":20},"/en-us/blog/ceo-shadow-impressions-takeaways",{"title":21225,"description":21226,"ogTitle":21225,"ogDescription":21226,"noIndex":6,"ogImage":21227,"ogUrl":21228,"ogSiteName":995,"ogType":996,"canonicalUrls":21228,"schema":21229},"CEO Shadow program impressions and takeaways","What is the GitLab CEO shadow program? Why should a GitLab team member apply to participate? How did I see the GitLab values in action?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681405/Blog/Hero%20Images/ceo-shadow-unfiltered-whaber.jpg","https://about.gitlab.com/blog/ceo-shadow-impressions-takeaways","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CEO Shadow program impressions and takeaways\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Wayne Haber\"}],\n        \"datePublished\": \"2020-07-08\",\n      }",{"title":21225,"description":21226,"authors":21231,"heroImage":21227,"date":21232,"category":17170,"tags":21233},[15310],"2020-07-08",[2025,730],{"slug":21235,"featured":6,"template":736},"ceo-shadow-impressions-takeaways","content:en-us:blog:ceo-shadow-impressions-takeaways.yml","Ceo Shadow Impressions Takeaways","en-us/blog/ceo-shadow-impressions-takeaways.yml","en-us/blog/ceo-shadow-impressions-takeaways",{"_path":21241,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21242,"content":21247,"config":21250,"_id":21252,"_type":16,"title":21253,"_source":17,"_file":21254,"_stem":21255,"_extension":20},"/en-us/blog/devsecops-security-automation",{"title":21243,"description":21244,"ogTitle":21243,"ogDescription":21244,"noIndex":6,"ogImage":5621,"ogUrl":21245,"ogSiteName":995,"ogType":996,"canonicalUrls":21245,"schema":21246},"Automated security testing for DevSecOps","We share four fool-proof ways to bring your security automation to the next level and five reasons why it's critical.","https://about.gitlab.com/blog/devsecops-security-automation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automated security testing for DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2020-07-08\",\n      }",{"title":21243,"description":21244,"authors":21248,"heroImage":5621,"date":21232,"category":8140,"tags":21249},[21105],[564,790,1335,5733],{"slug":21251,"featured":6,"template":736},"devsecops-security-automation","content:en-us:blog:devsecops-security-automation.yml","Devsecops Security Automation","en-us/blog/devsecops-security-automation.yml","en-us/blog/devsecops-security-automation",{"_path":21257,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21258,"content":21263,"config":21267,"_id":21269,"_type":16,"title":21270,"_source":17,"_file":21271,"_stem":21272,"_extension":20},"/en-us/blog/forrester-cdra2020",{"title":21259,"description":21260,"ogTitle":21259,"ogDescription":21260,"noIndex":6,"ogImage":16110,"ogUrl":21261,"ogSiteName":995,"ogType":996,"canonicalUrls":21261,"schema":21262},"GitLab and The Forrester Wave: CD and release automation","GitLab named a Strong Performer in Forrester Wave for Continuous Delivery and Release Automation","https://about.gitlab.com/blog/forrester-cdra2020","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and The Forrester Wave: Continuous Delivery and Release Automation Q2 2020\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Parker Ennis\"}],\n        \"datePublished\": \"2020-07-08\",\n      }",{"title":21264,"description":21260,"authors":21265,"heroImage":16110,"date":21232,"category":1049,"tags":21266},"GitLab and The Forrester Wave: Continuous Delivery and Release Automation Q2 2020",[16041],[2098,564,1049],{"slug":21268,"featured":6,"template":736},"forrester-cdra2020","content:en-us:blog:forrester-cdra2020.yml","Forrester Cdra2020","en-us/blog/forrester-cdra2020.yml","en-us/blog/forrester-cdra2020",{"_path":21274,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21275,"content":21281,"config":21285,"_id":21287,"_type":16,"title":21288,"_source":17,"_file":21289,"_stem":21290,"_extension":20},"/en-us/blog/migrating-to-puma-on-gitlab",{"title":21276,"description":21277,"ogTitle":21276,"ogDescription":21277,"noIndex":6,"ogImage":21278,"ogUrl":21279,"ogSiteName":995,"ogType":996,"canonicalUrls":21279,"schema":21280},"How we migrated application servers from Unicorn to Puma","It's been a long journey but with the release of GitLab 13.0 Puma is our default application server. Here's what we did and learned along the way.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681413/Blog/Hero%20Images/appserverpuma.jpg","https://about.gitlab.com/blog/migrating-to-puma-on-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we migrated application servers from Unicorn to Puma\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Craig Gomes\"}],\n        \"datePublished\": \"2020-07-08\",\n      }",{"title":21276,"description":21277,"authors":21282,"heroImage":21278,"date":21232,"category":858,"tags":21284},[21283],"Craig Gomes",[1569,730,1988],{"slug":21286,"featured":6,"template":736},"migrating-to-puma-on-gitlab","content:en-us:blog:migrating-to-puma-on-gitlab.yml","Migrating To Puma On Gitlab","en-us/blog/migrating-to-puma-on-gitlab.yml","en-us/blog/migrating-to-puma-on-gitlab",{"_path":21292,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21293,"content":21299,"config":21304,"_id":21306,"_type":16,"title":21307,"_source":17,"_file":21308,"_stem":21309,"_extension":20},"/en-us/blog/how-to-optimize-gitlab-s-culture-with-proper-values",{"title":21294,"description":21295,"ogTitle":21294,"ogDescription":21295,"noIndex":6,"ogImage":21296,"ogUrl":21297,"ogSiteName":995,"ogType":996,"canonicalUrls":21297,"schema":21298},"How to Optimize GitLab’s Culture Through Ideal Values","An outside perspective on GitLab’s highly collaborative and agile culture, and ways in which they should improve their values","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681397/Blog/Hero%20Images/artem-kniaz-Z9_pOnIbgjg-unsplash__1_.jpg","https://about.gitlab.com/blog/how-to-optimize-gitlab-s-culture-with-proper-values","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to Optimize GitLab’s Culture Through Ideal Values\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan Regan\"}],\n        \"datePublished\": \"2020-07-07\",\n      }",{"title":21294,"description":21295,"authors":21300,"heroImage":21296,"date":21302,"category":17170,"tags":21303},[21301],"Brendan Regan","2020-07-07",[730,730],{"slug":21305,"featured":6,"template":736},"how-to-optimize-gitlab-s-culture-with-proper-values","content:en-us:blog:how-to-optimize-gitlab-s-culture-with-proper-values.yml","How To Optimize Gitlab S Culture With Proper Values","en-us/blog/how-to-optimize-gitlab-s-culture-with-proper-values.yml","en-us/blog/how-to-optimize-gitlab-s-culture-with-proper-values",{"_path":21311,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21312,"content":21318,"config":21321,"_id":21323,"_type":16,"title":21324,"_source":17,"_file":21325,"_stem":21326,"_extension":20},"/en-us/blog/secure-stage-for-appsec",{"title":21313,"description":21314,"ogTitle":21313,"ogDescription":21314,"noIndex":6,"ogImage":21315,"ogUrl":21316,"ogSiteName":995,"ogType":996,"canonicalUrls":21316,"schema":21317},"How GitLab's application security dashboard helps AppSec engineers","GitLab Security features help application security engineers collaborate more efficiently and better assess the security posture of the projects they oversee.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663482/Blog/Hero%20Images/ralph-kayden-4Cg5T03B_8s-unsplash.jpg","https://about.gitlab.com/blog/secure-stage-for-appsec","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab's application security dashboard helps AppSec engineers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2020-07-07\",\n      }",{"title":21313,"description":21314,"authors":21319,"heroImage":21315,"date":21302,"category":858,"tags":21320},[1097],[790,564,1335,729],{"slug":21322,"featured":6,"template":736},"secure-stage-for-appsec","content:en-us:blog:secure-stage-for-appsec.yml","Secure Stage For Appsec","en-us/blog/secure-stage-for-appsec.yml","en-us/blog/secure-stage-for-appsec",{"_path":21328,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21329,"content":21335,"config":21339,"_id":21341,"_type":16,"title":21342,"_source":17,"_file":21343,"_stem":21344,"_extension":20},"/en-us/blog/beginner-guide-ci-cd",{"title":21330,"description":21331,"ogTitle":21330,"ogDescription":21331,"noIndex":6,"ogImage":21332,"ogUrl":21333,"ogSiteName":995,"ogType":996,"canonicalUrls":21333,"schema":21334},"GitLab’s guide to CI/CD for beginners","CI/CD is a key part of the DevOps journey. Here’s everything you need to understand about this game-changing process.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681391/Blog/Hero%20Images/beginnercicd.jpg","https://about.gitlab.com/blog/beginner-guide-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s guide to CI/CD for beginners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-07-06\",\n      }",{"title":21330,"description":21331,"authors":21336,"heroImage":21332,"date":21337,"category":858,"tags":21338},[10672],"2020-07-06",[110,564,2908],{"slug":21340,"featured":6,"template":736},"beginner-guide-ci-cd","content:en-us:blog:beginner-guide-ci-cd.yml","Beginner Guide Ci Cd","en-us/blog/beginner-guide-ci-cd.yml","en-us/blog/beginner-guide-ci-cd",{"_path":21346,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21347,"content":21352,"config":21356,"_id":21358,"_type":16,"title":21359,"_source":17,"_file":21360,"_stem":21361,"_extension":20},"/en-us/blog/challenges-of-code-reviews",{"title":21348,"description":21349,"ogTitle":21348,"ogDescription":21349,"noIndex":6,"ogImage":8416,"ogUrl":21350,"ogSiteName":995,"ogType":996,"canonicalUrls":21350,"schema":21351},"The challenges of code reviews","The 2020 DevSecOps Report discovers that developers are bogged down by code reviews. Are they worth the trouble?","https://about.gitlab.com/blog/challenges-of-code-reviews","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The challenges of code reviews\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2020-07-03\",\n      }",{"title":21348,"description":21349,"authors":21353,"heroImage":8416,"date":21354,"category":8140,"tags":21355},[19332],"2020-07-03",[1932,7788,564],{"slug":21357,"featured":6,"template":736},"challenges-of-code-reviews","content:en-us:blog:challenges-of-code-reviews.yml","Challenges Of Code Reviews","en-us/blog/challenges-of-code-reviews.yml","en-us/blog/challenges-of-code-reviews",{"_path":21363,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21364,"content":21369,"config":21373,"_id":21375,"_type":16,"title":21376,"_source":17,"_file":21377,"_stem":21378,"_extension":20},"/en-us/blog/compliance-made-easy",{"title":21365,"description":21366,"ogTitle":21365,"ogDescription":21366,"noIndex":6,"ogImage":9779,"ogUrl":21367,"ogSiteName":995,"ogType":996,"canonicalUrls":21367,"schema":21368},"How to build a compliance program with ease","Compliance audits should not cause headaches. Learn how building compliance programs and carrying compliance audits effectively using GitLab.","https://about.gitlab.com/blog/compliance-made-easy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to build a compliance program with ease\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Saumya Upadhyaya\"},{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2020-07-02\",\n      }",{"title":21365,"description":21366,"authors":21370,"heroImage":9779,"date":21371,"category":8140,"tags":21372},[17505,1712],"2020-07-02",[564,730],{"slug":21374,"featured":6,"template":736},"compliance-made-easy","content:en-us:blog:compliance-made-easy.yml","Compliance Made Easy","en-us/blog/compliance-made-easy.yml","en-us/blog/compliance-made-easy",{"_path":21380,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21381,"content":21387,"config":21391,"_id":21393,"_type":16,"title":21394,"_source":17,"_file":21395,"_stem":21396,"_extension":20},"/en-us/blog/achieve-devsecops-collaboration",{"title":21382,"description":21383,"ogTitle":21382,"ogDescription":21383,"noIndex":6,"ogImage":21384,"ogUrl":21385,"ogSiteName":995,"ogType":996,"canonicalUrls":21385,"schema":21386},"DevSecOps basics: 5 cross-functional team collaboration goals","Team work makes the (DevSecOps) dream work. Here's what you need to know about collaboration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663594/Blog/Hero%20Images/devsecops-cross-collaboration.jpg","https://about.gitlab.com/blog/achieve-devsecops-collaboration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps basics: 5 cross-functional team collaboration goals\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2020-07-01\",\n      }",{"title":21382,"description":21383,"authors":21388,"heroImage":21384,"date":21389,"category":8140,"tags":21390},[21105],"2020-07-01",[729,2815,564,790],{"slug":21392,"featured":6,"template":736},"achieve-devsecops-collaboration","content:en-us:blog:achieve-devsecops-collaboration.yml","Achieve Devsecops Collaboration","en-us/blog/achieve-devsecops-collaboration.yml","en-us/blog/achieve-devsecops-collaboration",{"_path":21398,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21399,"content":21404,"config":21408,"_id":21410,"_type":16,"title":21411,"_source":17,"_file":21412,"_stem":21413,"_extension":20},"/en-us/blog/many-meanings-multicloud",{"title":21400,"description":21401,"ogTitle":21400,"ogDescription":21401,"noIndex":6,"ogImage":8416,"ogUrl":21402,"ogSiteName":995,"ogType":996,"canonicalUrls":21402,"schema":21403},"Understand the many meanings of multicloud","In our 2020 DevSecOps Survey we uncovered a number of different definitions of 'multicloud.' Here's how to make sense of it all.","https://about.gitlab.com/blog/many-meanings-multicloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Understand the many meanings of multicloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-06-30\",\n      }",{"title":21400,"description":21401,"authors":21405,"heroImage":8416,"date":21406,"category":8140,"tags":21407},[10672],"2020-06-30",[1932,7788,564],{"slug":21409,"featured":6,"template":736},"many-meanings-multicloud","content:en-us:blog:many-meanings-multicloud.yml","Many Meanings Multicloud","en-us/blog/many-meanings-multicloud.yml","en-us/blog/many-meanings-multicloud",{"_path":21415,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21416,"content":21422,"config":21426,"_id":21428,"_type":16,"title":21429,"_source":17,"_file":21430,"_stem":21431,"_extension":20},"/en-us/blog/welcome-kde",{"title":21417,"description":21418,"ogTitle":21417,"ogDescription":21418,"noIndex":6,"ogImage":21419,"ogUrl":21420,"ogSiteName":995,"ogType":996,"canonicalUrls":21420,"schema":21421},"Why the KDE community is #movingtogitlab","Open source software community giant KDE finished phase one of their migration to GitLab and has joined our GitLab open source program. Check out what's next for KDE and GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681382/Blog/Hero%20Images/migratingbirds.jpg","https://about.gitlab.com/blog/welcome-kde","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why the KDE community is #movingtogitlab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nuritzi Sanchez\"}],\n        \"datePublished\": \"2020-06-29\",\n      }",{"title":21417,"description":21418,"authors":21423,"heroImage":21419,"date":21424,"category":1388,"tags":21425},[17560],"2020-06-29",[1265,4665,564],{"slug":21427,"featured":6,"template":736},"welcome-kde","content:en-us:blog:welcome-kde.yml","Welcome Kde","en-us/blog/welcome-kde.yml","en-us/blog/welcome-kde",{"_path":21433,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21434,"content":21440,"config":21444,"_id":21446,"_type":16,"title":21447,"_source":17,"_file":21448,"_stem":21449,"_extension":20},"/en-us/blog/7-things-ive-learnt-while-shadowing-sre",{"title":21435,"description":21436,"ogTitle":21435,"ogDescription":21436,"noIndex":6,"ogImage":21437,"ogUrl":21438,"ogSiteName":995,"ogType":996,"canonicalUrls":21438,"schema":21439},"7 things I’ve learnt while shadowing an SRE","What I learned while participating in the SRE shadow program.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683837/Blog/Hero%20Images/sre-shadow.jpg","https://about.gitlab.com/blog/7-things-ive-learnt-while-shadowing-sre","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"7 things I’ve learnt while shadowing an SRE\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Olena Horal-Koretska\"}],\n        \"datePublished\": \"2020-06-25\",\n      }",{"title":21435,"description":21436,"authors":21441,"heroImage":21437,"date":21443,"category":17170},[21442],"Olena Horal-Koretska","2020-06-25",{"slug":21445,"featured":6,"template":736},"7-things-ive-learnt-while-shadowing-sre","content:en-us:blog:7-things-ive-learnt-while-shadowing-sre.yml","7 Things Ive Learnt While Shadowing Sre","en-us/blog/7-things-ive-learnt-while-shadowing-sre.yml","en-us/blog/7-things-ive-learnt-while-shadowing-sre",{"_path":21451,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21452,"content":21457,"config":21462,"_id":21464,"_type":16,"title":21465,"_source":17,"_file":21466,"_stem":21467,"_extension":20},"/en-us/blog/package-key-extension",{"title":21453,"description":21454,"ogTitle":21453,"ogDescription":21454,"noIndex":6,"ogImage":16110,"ogUrl":21455,"ogSiteName":995,"ogType":996,"canonicalUrls":21455,"schema":21456},"GitLab extends package signing key expiration to 2022","Our GPG key will now expire on July 1, 2021. Here's what you need to know.","https://about.gitlab.com/blog/package-key-extension","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab will extend package signing key expiration by one year\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gerard Hickey\"}],\n        \"datePublished\": \"2020-06-25\",\n      }",{"title":21458,"description":21454,"authors":21459,"heroImage":16110,"date":21443,"category":790,"tags":21461},"GitLab will extend package signing key expiration by one year",[21460],"Gerard Hickey",[790,752,1335],{"slug":21463,"featured":6,"template":736},"package-key-extension","content:en-us:blog:package-key-extension.yml","Package Key Extension","en-us/blog/package-key-extension.yml","en-us/blog/package-key-extension",{"_path":21469,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21470,"content":21475,"config":21480,"_id":21482,"_type":16,"title":21483,"_source":17,"_file":21484,"_stem":21485,"_extension":20},"/en-us/blog/scaling-our-use-of-sidekiq",{"title":21471,"description":21472,"ogTitle":21471,"ogDescription":21472,"noIndex":6,"ogImage":15968,"ogUrl":21473,"ogSiteName":995,"ogType":996,"canonicalUrls":21473,"schema":21474},"How we scaled async workload processing at GitLab.com using Sidekiq","Sidekiq was a great tool for async processing until it couldn't keep up. Here's how we made it scale.","https://about.gitlab.com/blog/scaling-our-use-of-sidekiq","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we scaled async workload processing at GitLab.com using Sidekiq\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rachel Nienaber\"}],\n        \"datePublished\": \"2020-06-24\",\n      }",{"title":21471,"description":21472,"authors":21476,"heroImage":15968,"date":21478,"category":858,"tags":21479},[21477],"Rachel Nienaber","2020-06-24",[1569,1988,1335],{"slug":21481,"featured":6,"template":736},"scaling-our-use-of-sidekiq","content:en-us:blog:scaling-our-use-of-sidekiq.yml","Scaling Our Use Of Sidekiq","en-us/blog/scaling-our-use-of-sidekiq.yml","en-us/blog/scaling-our-use-of-sidekiq",{"_path":21487,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21488,"content":21494,"config":21497,"_id":21499,"_type":16,"title":21500,"_source":17,"_file":21501,"_stem":21502,"_extension":20},"/en-us/blog/soc2-compliance",{"title":21489,"description":21490,"ogTitle":21489,"ogDescription":21490,"noIndex":6,"ogImage":21491,"ogUrl":21492,"ogSiteName":995,"ogType":996,"canonicalUrls":21492,"schema":21493},"How secure is GitLab?","Learn about GitLab's commitment to security and compliance, our security program maturity and accreditations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669646/Blog/Hero%20Images/blog-soc2-compliance.jpg","https://about.gitlab.com/blog/soc2-compliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How secure is GitLab?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Saumya Upadhyaya\"},{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2020-06-24\",\n      }",{"title":21489,"description":21490,"authors":21495,"heroImage":21491,"date":21478,"category":790,"tags":21496},[17505,1712],[564,730,790],{"slug":21498,"featured":6,"template":736},"soc2-compliance","content:en-us:blog:soc2-compliance.yml","Soc2 Compliance","en-us/blog/soc2-compliance.yml","en-us/blog/soc2-compliance",{"_path":21504,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21505,"content":21511,"config":21515,"_id":21517,"_type":16,"title":21518,"_source":17,"_file":21519,"_stem":21520,"_extension":20},"/en-us/blog/3000-contributors-post",{"title":21506,"description":21507,"ogTitle":21506,"ogDescription":21507,"noIndex":6,"ogImage":21508,"ogUrl":21509,"ogSiteName":995,"ogType":996,"canonicalUrls":21509,"schema":21510},"Celebrating 3,000 wider community contributors","We've reached an important contributor milestone and added two new members to the Core Team.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678450/Blog/Hero%20Images/blog-header-3000-contributors.png","https://about.gitlab.com/blog/3000-contributors-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Celebrating 3,000 wider community contributors\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2020-06-23\",\n      }",{"title":21506,"description":21507,"authors":21512,"heroImage":21508,"date":21513,"category":1388,"tags":21514},[20126],"2020-06-23",[269,1265,3074],{"slug":21516,"featured":6,"template":736},"3000-contributors-post","content:en-us:blog:3000-contributors-post.yml","3000 Contributors Post","en-us/blog/3000-contributors-post.yml","en-us/blog/3000-contributors-post",{"_path":21522,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21523,"content":21529,"config":21532,"_id":21534,"_type":16,"title":21535,"_source":17,"_file":21536,"_stem":21537,"_extension":20},"/en-us/blog/efficient-devsecops-nine-tips-shift-left",{"title":21524,"description":21525,"ogTitle":21524,"ogDescription":21525,"noIndex":6,"ogImage":21526,"ogUrl":21527,"ogSiteName":995,"ogType":996,"canonicalUrls":21527,"schema":21528},"DevSecOps basics: 9 tips for shifting left","Here's how to create an efficient DevSecOps practice and shift your security left.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663602/Blog/Hero%20Images/efficient-devsecops-9-tips.jpg","https://about.gitlab.com/blog/efficient-devsecops-nine-tips-shift-left","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevSecOps basics: 9 tips for shifting left\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2020-06-23\",\n      }",{"title":21524,"description":21525,"authors":21530,"heroImage":21526,"date":21513,"category":8140,"tags":21531},[21105],[729,2815,564,790],{"slug":21533,"featured":6,"template":736},"efficient-devsecops-nine-tips-shift-left","content:en-us:blog:efficient-devsecops-nine-tips-shift-left.yml","Efficient Devsecops Nine Tips Shift Left","en-us/blog/efficient-devsecops-nine-tips-shift-left.yml","en-us/blog/efficient-devsecops-nine-tips-shift-left",{"_path":21539,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21540,"content":21545,"config":21549,"_id":21551,"_type":16,"title":21552,"_source":17,"_file":21553,"_stem":21554,"_extension":20},"/en-us/blog/job-artifact-meta-data-expiration-change",{"title":21541,"description":21542,"ogTitle":21541,"ogDescription":21542,"noIndex":6,"ogImage":16110,"ogUrl":21543,"ogSiteName":995,"ogType":996,"canonicalUrls":21543,"schema":21544},"Artifact and job meta data expiration settings are changing for GitLab.com","Default expiration dates for job meta data and artifacts will change on June 22, 2020. Find out how this benefits all users of GitLab.com","https://about.gitlab.com/blog/job-artifact-meta-data-expiration-change","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Artifact and job meta data expiration settings are changing for GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Parker Ennis\"}],\n        \"datePublished\": \"2020-06-18\",\n      }",{"title":21541,"description":21542,"authors":21546,"heroImage":16110,"date":21547,"category":1049,"tags":21548},[16041],"2020-06-18",[1988,892,6376],{"slug":21550,"featured":6,"template":736},"job-artifact-meta-data-expiration-change","content:en-us:blog:job-artifact-meta-data-expiration-change.yml","Job Artifact Meta Data Expiration Change","en-us/blog/job-artifact-meta-data-expiration-change.yml","en-us/blog/job-artifact-meta-data-expiration-change",{"_path":21556,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21557,"content":21562,"config":21566,"_id":21568,"_type":16,"title":21569,"_source":17,"_file":21570,"_stem":21571,"_extension":20},"/en-us/blog/gitlab-for-education-student-spotlights",{"title":21558,"description":21559,"ogTitle":21558,"ogDescription":21559,"noIndex":6,"ogImage":17164,"ogUrl":21560,"ogSiteName":995,"ogType":996,"canonicalUrls":21560,"schema":21561},"Apply to be featured as a GitLab Student Spotlight","Feature your work on GitLab.com and get GitLab swag!","https://about.gitlab.com/blog/gitlab-for-education-student-spotlights","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Apply to be featured as a GitLab Student Spotlight\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2020-06-17\",\n      }",{"title":21558,"description":21559,"authors":21563,"heroImage":17164,"date":21564,"category":17170,"tags":21565},[13131],"2020-06-17",[269,6376,2815,4665],{"slug":21567,"featured":6,"template":736},"gitlab-for-education-student-spotlights","content:en-us:blog:gitlab-for-education-student-spotlights.yml","Gitlab For Education Student Spotlights","en-us/blog/gitlab-for-education-student-spotlights.yml","en-us/blog/gitlab-for-education-student-spotlights",{"_path":21573,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21574,"content":21580,"config":21583,"_id":21585,"_type":16,"title":21586,"_source":17,"_file":21587,"_stem":21588,"_extension":20},"/en-us/blog/notification-on-pipeline-succeeds",{"title":21575,"description":21576,"ogTitle":21575,"ogDescription":21576,"noIndex":6,"ogImage":21577,"ogUrl":21578,"ogSiteName":995,"ogType":996,"canonicalUrls":21578,"schema":21579},"Notification emails when pipelines are fixed","How to turn on/off Notifications for when pipelines are fixed","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681358/Blog/Hero%20Images/pipeline_success_unsplash.jpg","https://about.gitlab.com/blog/notification-on-pipeline-succeeds","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Notification emails when pipelines are fixed\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2020-06-17\",\n      }",{"title":21575,"description":21576,"authors":21581,"heroImage":21577,"date":21564,"category":17170,"tags":21582},[14332],[110],{"slug":21584,"featured":6,"template":736},"notification-on-pipeline-succeeds","content:en-us:blog:notification-on-pipeline-succeeds.yml","Notification On Pipeline Succeeds","en-us/blog/notification-on-pipeline-succeeds.yml","en-us/blog/notification-on-pipeline-succeeds",{"_path":21590,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21591,"content":21597,"config":21601,"_id":21603,"_type":16,"title":21604,"_source":17,"_file":21605,"_stem":21606,"_extension":20},"/en-us/blog/helping-organizations-build-successful-design-systems",{"title":21592,"description":21593,"ogTitle":21592,"ogDescription":21593,"noIndex":6,"ogImage":21594,"ogUrl":21595,"ogSiteName":995,"ogType":996,"canonicalUrls":21595,"schema":21596},"Benefits of building a design system for your organization ","At GitLab, we want to help organizations build successful design systems. In order to do that, we are looking for your feedback.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681349/Blog/Hero%20Images/helping-organizations-build-successful-design-systems.png","https://about.gitlab.com/blog/helping-organizations-build-successful-design-systems","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Benefits of building a design system for your organization \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2020-06-16\",\n      }",{"title":21592,"description":21593,"authors":21598,"heroImage":21594,"date":21599,"category":17170,"tags":21600},[18295],"2020-06-16",[6980,2702],{"slug":21602,"featured":6,"template":736},"helping-organizations-build-successful-design-systems","content:en-us:blog:helping-organizations-build-successful-design-systems.yml","Helping Organizations Build Successful Design Systems","en-us/blog/helping-organizations-build-successful-design-systems.yml","en-us/blog/helping-organizations-build-successful-design-systems",{"_path":21608,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21609,"content":21614,"config":21618,"_id":21620,"_type":16,"title":21621,"_source":17,"_file":21622,"_stem":21623,"_extension":20},"/en-us/blog/better-code-reviews",{"title":21610,"description":21611,"ogTitle":21610,"ogDescription":21611,"noIndex":6,"ogImage":17943,"ogUrl":21612,"ogSiteName":995,"ogType":996,"canonicalUrls":21612,"schema":21613},"Better Code Reviews GitLab Style","Better Code Reviews - A selection of tools for your tool-belt when it comes to code reviews.","https://about.gitlab.com/blog/better-code-reviews","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Better Code Reviews GitLab Style\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2020-06-08\",\n      }",{"title":21610,"description":21611,"authors":21615,"heroImage":17943,"date":21616,"category":17170,"tags":21617},[3053],"2020-06-08",[1932,5733,559],{"slug":21619,"featured":6,"template":736},"better-code-reviews","content:en-us:blog:better-code-reviews.yml","Better Code Reviews","en-us/blog/better-code-reviews.yml","en-us/blog/better-code-reviews",{"_path":21625,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21626,"content":21631,"config":21636,"_id":21638,"_type":16,"title":21639,"_source":17,"_file":21640,"_stem":21641,"_extension":20},"/en-us/blog/collaboration-in-product-planning",{"title":21627,"description":21628,"ogTitle":21627,"ogDescription":21628,"noIndex":6,"ogImage":17164,"ogUrl":21629,"ogSiteName":995,"ogType":996,"canonicalUrls":21629,"schema":21630},"Successful collaboration approaches in product planning","Collaboration can be hard, but we've found a few tips and tricks that help us succeed here at GitLab.","https://about.gitlab.com/blog/collaboration-in-product-planning","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Successful approaches for team collaboration between Design, Product, Engineering, and Quality\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2020-06-03\",\n      }",{"title":21632,"description":21628,"authors":21633,"heroImage":17164,"date":21634,"category":17170,"tags":21635},"Successful approaches for team collaboration between Design, Product, Engineering, and Quality",[20535],"2020-06-03",[2702,731,964,790,2815],{"slug":21637,"featured":6,"template":736},"collaboration-in-product-planning","content:en-us:blog:collaboration-in-product-planning.yml","Collaboration In Product Planning","en-us/blog/collaboration-in-product-planning.yml","en-us/blog/collaboration-in-product-planning",{"_path":21643,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21644,"content":21650,"config":21654,"_id":21656,"_type":16,"title":21657,"_source":17,"_file":21658,"_stem":21659,"_extension":20},"/en-us/blog/13-0-contributor-experience-update",{"title":21645,"description":21646,"ogTitle":21645,"ogDescription":21646,"noIndex":6,"ogImage":21647,"ogUrl":21648,"ogSiteName":995,"ogType":996,"canonicalUrls":21648,"schema":21649},"13.0 Contributor Experience Update","We're continually improving the tooling that helps our community of contributors build GitLab. Here's what's new over the last month!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669604/Blog/Hero%20Images/tanuki-bg-sm.gif","https://about.gitlab.com/blog/13-0-contributor-experience-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"13.0 Contributor Experience Update\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Deuley\"},{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2020-06-01\",\n      }",{"title":21645,"description":21646,"authors":21651,"heroImage":21647,"date":21652,"category":17170,"tags":21653},[19313,18295],"2020-06-01",[3074,6980,2098],{"slug":21655,"featured":6,"template":736},"13-0-contributor-experience-update","content:en-us:blog:13-0-contributor-experience-update.yml","13 0 Contributor Experience Update","en-us/blog/13-0-contributor-experience-update.yml","en-us/blog/13-0-contributor-experience-update",{"_path":21661,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21662,"content":21667,"config":21672,"_id":21674,"_type":16,"title":21675,"_source":17,"_file":21676,"_stem":21677,"_extension":20},"/en-us/blog/how-the-ceo-shadow-program-boosted-my-individual-productivity-during-the-covid-19-crisis",{"title":21663,"description":21664,"ogTitle":21663,"ogDescription":21664,"noIndex":6,"ogImage":17164,"ogUrl":21665,"ogSiteName":995,"ogType":996,"canonicalUrls":21665,"schema":21666},"How the CEO Shadow Program improved my pandemic productivity","How the CEO Shadow Program boosted my individual productivity during the COVID-19 crisis","https://about.gitlab.com/blog/how-the-ceo-shadow-program-boosted-my-individual-productivity-during-the-covid-19-crisis","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the CEO Shadow Program boosted my individual productivity during the COVID-19 Crisis\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brittany Rohde\"}],\n        \"datePublished\": \"2020-05-29\",\n      }",{"title":21668,"description":21664,"authors":21669,"heroImage":17164,"date":21671,"category":17170},"How the CEO Shadow Program boosted my individual productivity during the COVID-19 Crisis",[21670],"Brittany Rohde","2020-05-29",{"slug":21673,"featured":6,"template":736},"how-the-ceo-shadow-program-boosted-my-individual-productivity-during-the-covid-19-crisis","content:en-us:blog:how-the-ceo-shadow-program-boosted-my-individual-productivity-during-the-covid-19-crisis.yml","How The Ceo Shadow Program Boosted My Individual Productivity During The Covid 19 Crisis","en-us/blog/how-the-ceo-shadow-program-boosted-my-individual-productivity-during-the-covid-19-crisis.yml","en-us/blog/how-the-ceo-shadow-program-boosted-my-individual-productivity-during-the-covid-19-crisis",{"_path":21679,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21680,"content":21685,"config":21688,"_id":21690,"_type":16,"title":21691,"_source":17,"_file":21692,"_stem":21693,"_extension":20},"/en-us/blog/what-blocks-faster-code-release",{"title":21681,"description":21682,"ogTitle":21681,"ogDescription":21682,"noIndex":6,"ogImage":8416,"ogUrl":21683,"ogSiteName":995,"ogType":996,"canonicalUrls":21683,"schema":21684},"What blocks faster code releases? It starts with testing","Our 2020 DevSecOps Survey found testing was the number one reason for release delays, but planning and code reviews were also challenges. Here’s what you need to know.","https://about.gitlab.com/blog/what-blocks-faster-code-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What blocks faster code releases? It starts with testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-05-29\",\n      }",{"title":21681,"description":21682,"authors":21686,"heroImage":8416,"date":21671,"category":8140,"tags":21687},[10672],[1932,7788,564],{"slug":21689,"featured":6,"template":736},"what-blocks-faster-code-release","content:en-us:blog:what-blocks-faster-code-release.yml","What Blocks Faster Code Release","en-us/blog/what-blocks-faster-code-release.yml","en-us/blog/what-blocks-faster-code-release",{"_path":21695,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21696,"content":21702,"config":21706,"_id":21708,"_type":16,"title":21709,"_source":17,"_file":21710,"_stem":21711,"_extension":20},"/en-us/blog/using-gitlab-web-ide-gitlab-ci-cd",{"title":21697,"description":21698,"ogTitle":21697,"ogDescription":21698,"noIndex":6,"ogImage":21699,"ogUrl":21700,"ogSiteName":995,"ogType":996,"canonicalUrls":21700,"schema":21701},"How to make small changes using GitLab’s Web IDE","A quick three minute demo shows how teams can deliver better apps faster using GitLab CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678812/Blog/Hero%20Images/web-ide-cover.jpg","https://about.gitlab.com/blog/using-gitlab-web-ide-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to make small changes using GitLab’s Web IDE\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-05-28\",\n      }",{"title":21697,"description":21698,"authors":21703,"heroImage":21699,"date":21704,"category":8140,"tags":21705},[17150],"2020-05-28",[110,1335,772],{"slug":21707,"featured":6,"template":736},"using-gitlab-web-ide-gitlab-ci-cd","content:en-us:blog:using-gitlab-web-ide-gitlab-ci-cd.yml","Using Gitlab Web Ide Gitlab Ci Cd","en-us/blog/using-gitlab-web-ide-gitlab-ci-cd.yml","en-us/blog/using-gitlab-web-ide-gitlab-ci-cd",{"_path":21713,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21714,"content":21720,"config":21724,"_id":21726,"_type":16,"title":21727,"_source":17,"_file":21728,"_stem":21729,"_extension":20},"/en-us/blog/best-practices-for-kubernetes-runners",{"title":21715,"description":21716,"ogTitle":21715,"ogDescription":21716,"noIndex":6,"ogImage":21717,"ogUrl":21718,"ogSiteName":995,"ogType":996,"canonicalUrls":21718,"schema":21719},"Best practices to keep your Kubernetes runners moving","In a presentation at GitLab Commit San Francisco, a senior software engineer from F5 Networks shares some best practices for working with Kubernetes runners.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681341/Blog/Hero%20Images/trackandfield.jpg","https://about.gitlab.com/blog/best-practices-for-kubernetes-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Best practices to keep your Kubernetes runners moving\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-05-27\",\n      }",{"title":21715,"description":21716,"authors":21721,"heroImage":21717,"date":21722,"category":858,"tags":21723},[16023],"2020-05-27",[2908,110,4665],{"slug":21725,"featured":6,"template":736},"best-practices-for-kubernetes-runners","content:en-us:blog:best-practices-for-kubernetes-runners.yml","Best Practices For Kubernetes Runners","en-us/blog/best-practices-for-kubernetes-runners.yml","en-us/blog/best-practices-for-kubernetes-runners",{"_path":21731,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21732,"content":21737,"config":21741,"_id":21743,"_type":16,"title":21744,"_source":17,"_file":21745,"_stem":21746,"_extension":20},"/en-us/blog/gitlab-remote-ceo-shadow-takeaways",{"title":21733,"description":21734,"ogTitle":21733,"ogDescription":21734,"noIndex":6,"ogImage":16986,"ogUrl":21735,"ogSiteName":995,"ogType":996,"canonicalUrls":21735,"schema":21736},"GitLab CEO Shadow program takeaways and lessons learned","I attended every meeting with GitLab's CEO for two weeks. This is what I learned.","https://about.gitlab.com/blog/gitlab-remote-ceo-shadow-takeaways","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab CEO Shadow program takeaways and lessons learned\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Murph\"}],\n        \"datePublished\": \"2020-05-22\",\n      }",{"title":21733,"description":21734,"authors":21738,"heroImage":16986,"date":21739,"category":17170,"tags":21740},[18277],"2020-05-22",[4182,729,4182],{"slug":21742,"featured":6,"template":736},"gitlab-remote-ceo-shadow-takeaways","content:en-us:blog:gitlab-remote-ceo-shadow-takeaways.yml","Gitlab Remote Ceo Shadow Takeaways","en-us/blog/gitlab-remote-ceo-shadow-takeaways.yml","en-us/blog/gitlab-remote-ceo-shadow-takeaways",{"_path":21748,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21749,"content":21755,"config":21759,"_id":21761,"_type":16,"title":21762,"_source":17,"_file":21763,"_stem":21764,"_extension":20},"/en-us/blog/version-12-year-in-review",{"title":21750,"description":21751,"ogTitle":21750,"ogDescription":21751,"noIndex":6,"ogImage":21752,"ogUrl":21753,"ogSiteName":995,"ogType":996,"canonicalUrls":21753,"schema":21754},"GitLab Version 12 Year In Review: Releases 12.0 to 12.10","Product highlights from a pivotal year","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680891/Blog/Hero%20Images/cloud-adoption-roadmap.jpg","https://about.gitlab.com/blog/version-12-year-in-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Version 12 Year In Review: Releases 12.0 to 12.10\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brian Glanz\"}],\n        \"datePublished\": \"2020-05-21\",\n      }",{"title":21750,"description":21751,"authors":21756,"heroImage":21752,"date":21757,"category":1049,"tags":21758},[16812],"2020-05-21",[730,269,1569],{"slug":21760,"featured":6,"template":736},"version-12-year-in-review","content:en-us:blog:version-12-year-in-review.yml","Version 12 Year In Review","en-us/blog/version-12-year-in-review.yml","en-us/blog/version-12-year-in-review",{"_path":21766,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21767,"content":21773,"config":21777,"_id":21779,"_type":16,"title":21780,"_source":17,"_file":21781,"_stem":21782,"_extension":20},"/en-us/blog/creating-a-dark-ui-for-gitlabs-web-ide",{"title":21768,"description":21769,"ogTitle":21768,"ogDescription":21769,"noIndex":6,"ogImage":21770,"ogUrl":21771,"ogSiteName":995,"ogType":996,"canonicalUrls":21771,"schema":21772},"How we created a dark UI for GitLab's Web IDE","The Web IDE now has a Dark Mode, and we've put together a few learnings from a design perspective.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669611/Blog/Hero%20Images/ide-dark-post-banner.png","https://about.gitlab.com/blog/creating-a-dark-ui-for-gitlabs-web-ide","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we created a dark UI for GitLab's Web IDE\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcel van Remmerden\"},{\"@type\":\"Person\",\"name\":\"Jeremy Elder\"}],\n        \"datePublished\": \"2020-05-20\",\n      }",{"title":21768,"description":21769,"authors":21774,"heroImage":21770,"date":21775,"category":858,"tags":21776},[15849,4219],"2020-05-20",[3721,2703,2702,1335],{"slug":21778,"featured":6,"template":736},"creating-a-dark-ui-for-gitlabs-web-ide","content:en-us:blog:creating-a-dark-ui-for-gitlabs-web-ide.yml","Creating A Dark Ui For Gitlabs Web Ide","en-us/blog/creating-a-dark-ui-for-gitlabs-web-ide.yml","en-us/blog/creating-a-dark-ui-for-gitlabs-web-ide",{"_path":21784,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21785,"content":21791,"config":21794,"_id":21796,"_type":16,"title":21797,"_source":17,"_file":21798,"_stem":21799,"_extension":20},"/en-us/blog/gitlab-instance-security-best-practices",{"title":21786,"description":21787,"ogTitle":21786,"ogDescription":21787,"noIndex":6,"ogImage":21788,"ogUrl":21789,"ogSiteName":995,"ogType":996,"canonicalUrls":21789,"schema":21790},"GitLab instance: security best practices","Default settings on products can be massively helpful. However, when it comes to hardening your GitLab instance, we’ve got some helpful configuration recommendations from our security team.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667057/Blog/Hero%20Images/configs_unsplash.jpg","https://about.gitlab.com/blog/gitlab-instance-security-best-practices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab instance: security best practices\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2020-05-20\",\n      }",{"title":21786,"description":21787,"authors":21792,"heroImage":21788,"date":21775,"category":790,"tags":21793},[5108],[790,3292,772],{"slug":21795,"featured":6,"template":736},"gitlab-instance-security-best-practices","content:en-us:blog:gitlab-instance-security-best-practices.yml","Gitlab Instance Security Best Practices","en-us/blog/gitlab-instance-security-best-practices.yml","en-us/blog/gitlab-instance-security-best-practices",{"_path":21801,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21802,"content":21807,"config":21811,"_id":21813,"_type":16,"title":21814,"_source":17,"_file":21815,"_stem":21816,"_extension":20},"/en-us/blog/devsecops-survey-released",{"title":21803,"description":21804,"ogTitle":21803,"ogDescription":21804,"noIndex":6,"ogImage":8416,"ogUrl":21805,"ogSiteName":995,"ogType":996,"canonicalUrls":21805,"schema":21806},"Our 2020 DevSecOps Survey found faster releases and changing roles","Nearly 3700 software pros shared their DevOps successes, failures and thoughts on the future. Here’s what you need to know.","https://about.gitlab.com/blog/devsecops-survey-released","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our 2020 DevSecOps Survey found faster releases and changing roles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-05-18\",\n      }",{"title":21803,"description":21804,"authors":21808,"heroImage":8416,"date":21809,"category":1049,"tags":21810},[10672],"2020-05-18",[564,7788,110],{"slug":21812,"featured":6,"template":736},"devsecops-survey-released","content:en-us:blog:devsecops-survey-released.yml","Devsecops Survey Released","en-us/blog/devsecops-survey-released.yml","en-us/blog/devsecops-survey-released",{"_path":21818,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21819,"content":21825,"config":21828,"_id":21830,"_type":16,"title":21831,"_source":17,"_file":21832,"_stem":21833,"_extension":20},"/en-us/blog/security-strengthened-by-interation-and-transparency",{"title":21820,"description":21821,"ogTitle":21820,"ogDescription":21821,"noIndex":6,"ogImage":21822,"ogUrl":21823,"ogSiteName":995,"ogType":996,"canonicalUrls":21823,"schema":21824},"Security strengthened by iteration, and transparency","Iteration is a core value at GitLab. How do you keep things protected when change is a constant?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670837/Blog/Hero%20Images/two-brown-trees.jpg","https://about.gitlab.com/blog/security-strengthened-by-interation-and-transparency","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Security strengthened by iteration, and transparency\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-05-18\",\n      }",{"title":21820,"description":21821,"authors":21826,"heroImage":21822,"date":21809,"category":17170,"tags":21827},[11324],[6980,1569,790,790],{"slug":21829,"featured":6,"template":736},"security-strengthened-by-interation-and-transparency","content:en-us:blog:security-strengthened-by-interation-and-transparency.yml","Security Strengthened By Interation And Transparency","en-us/blog/security-strengthened-by-interation-and-transparency.yml","en-us/blog/security-strengthened-by-interation-and-transparency",{"_path":21835,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21836,"content":21841,"config":21845,"_id":21847,"_type":16,"title":21848,"_source":17,"_file":21849,"_stem":21850,"_extension":20},"/en-us/blog/why-gitlab-is-building-meltano-an-open-source-platform-for-elt-pipelines",{"title":21837,"description":21838,"ogTitle":21837,"ogDescription":21838,"noIndex":6,"ogImage":17164,"ogUrl":21839,"ogSiteName":995,"ogType":996,"canonicalUrls":21839,"schema":21840},"Why GitLab is building Meltano, an open source platform for ELT pipelines","Our goal is to make the power of data integration available to all by building a true open source alternative to existing proprietary hosted ELT solutions.","https://about.gitlab.com/blog/why-gitlab-is-building-meltano-an-open-source-platform-for-elt-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab is building Meltano, an open source platform for ELT pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Douwe Maan\"}],\n        \"datePublished\": \"2020-05-18\",\n      }",{"title":21837,"description":21838,"authors":21842,"heroImage":17164,"date":21809,"category":17170,"tags":21844},[21843],"Douwe Maan",[1265,1569],{"slug":21846,"featured":6,"template":736},"why-gitlab-is-building-meltano-an-open-source-platform-for-elt-pipelines","content:en-us:blog:why-gitlab-is-building-meltano-an-open-source-platform-for-elt-pipelines.yml","Why Gitlab Is Building Meltano An Open Source Platform For Elt Pipelines","en-us/blog/why-gitlab-is-building-meltano-an-open-source-platform-for-elt-pipelines.yml","en-us/blog/why-gitlab-is-building-meltano-an-open-source-platform-for-elt-pipelines",{"_path":21852,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21853,"content":21858,"config":21863,"_id":21865,"_type":16,"title":21866,"_source":17,"_file":21867,"_stem":21868,"_extension":20},"/en-us/blog/gitlab-arm-aws-graviton2-solution",{"title":21854,"description":21855,"ogTitle":21854,"ogDescription":21855,"noIndex":6,"ogImage":16110,"ogUrl":21856,"ogSiteName":995,"ogType":996,"canonicalUrls":21856,"schema":21857},"Announcing 32/64-bit Arm Runner Support for AWS Graviton2","GitLab enables CI/CD solution on Arm-based AWS Graviton2 instances.","https://about.gitlab.com/blog/gitlab-arm-aws-graviton2-solution","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing 32/64-bit Arm Runner Support for AWS Graviton2\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kushal Koolwal\"}],\n        \"datePublished\": \"2020-05-15\",\n      }",{"title":21854,"description":21855,"authors":21859,"heroImage":16110,"date":21861,"category":1049,"tags":21862},[21860],"Kushal Koolwal","2020-05-15",[233,110,4182],{"slug":21864,"featured":6,"template":736},"gitlab-arm-aws-graviton2-solution","content:en-us:blog:gitlab-arm-aws-graviton2-solution.yml","Gitlab Arm Aws Graviton2 Solution","en-us/blog/gitlab-arm-aws-graviton2-solution.yml","en-us/blog/gitlab-arm-aws-graviton2-solution",{"_path":21870,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21871,"content":21877,"config":21880,"_id":21882,"_type":16,"title":21883,"_source":17,"_file":21884,"_stem":21885,"_extension":20},"/en-us/blog/startup-covid-tracking",{"title":21872,"description":21873,"ogTitle":21872,"ogDescription":21873,"noIndex":6,"ogImage":21874,"ogUrl":21875,"ogSiteName":995,"ogType":996,"canonicalUrls":21875,"schema":21876},"How an analytics software startup took aim at COVID-19","Illumina Consulting Group didn’t just sit idle during the pandemic. Here’s how they developed a COVID-19 assessment and analysis tool.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681320/Blog/Hero%20Images/startupcovid.jpg","https://about.gitlab.com/blog/startup-covid-tracking","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How an analytics software startup took aim at COVID-19\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-05-15\",\n      }",{"title":21872,"description":21873,"authors":21878,"heroImage":21874,"date":21861,"category":1388,"tags":21879},[10672],[2815,269,3074],{"slug":21881,"featured":6,"template":736},"startup-covid-tracking","content:en-us:blog:startup-covid-tracking.yml","Startup Covid Tracking","en-us/blog/startup-covid-tracking.yml","en-us/blog/startup-covid-tracking",{"_path":21887,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21888,"content":21893,"config":21897,"_id":21899,"_type":16,"title":21900,"_source":17,"_file":21901,"_stem":21902,"_extension":20},"/en-us/blog/how-we-release-software-patches",{"title":21889,"description":21890,"ogTitle":21889,"ogDescription":21890,"noIndex":6,"ogImage":17889,"ogUrl":21891,"ogSiteName":995,"ogType":996,"canonicalUrls":21891,"schema":21892},"Inside GitLab: How we release software patches","At GitLab, we tackle software patches in two ways – hands on and automatically. Learn how the release manager works to create and deliver essential fixes with auto-deploy releases on GitLab.com and patch releases for self-managed users.","https://about.gitlab.com/blog/how-we-release-software-patches","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside GitLab: How we release software patches\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-05-13\",\n      }",{"title":21889,"description":21890,"authors":21894,"heroImage":17889,"date":21895,"category":858,"tags":21896},[16023],"2020-05-13",[1569],{"slug":21898,"featured":6,"template":736},"how-we-release-software-patches","content:en-us:blog:how-we-release-software-patches.yml","How We Release Software Patches","en-us/blog/how-we-release-software-patches.yml","en-us/blog/how-we-release-software-patches",{"_path":21904,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21905,"content":21911,"config":21915,"_id":21917,"_type":16,"title":21918,"_source":17,"_file":21919,"_stem":21920,"_extension":20},"/en-us/blog/directed-acyclic-graph",{"title":21906,"description":21907,"ogTitle":21906,"ogDescription":21907,"noIndex":6,"ogImage":21908,"ogUrl":21909,"ogSiteName":995,"ogType":996,"canonicalUrls":21909,"schema":21910},"Get faster and more flexible pipelines with a Directed Acyclic Graph","A Directed Acyclic Graph will let you run pipeline steps out of order, break the stage sequencing, and allow jobs to relate to each other directly.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681298/Blog/Hero%20Images/james-eades-bfwhP9xodvE-unsplash.jpg","https://about.gitlab.com/blog/directed-acyclic-graph","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get faster and more flexible pipelines with a Directed Acyclic Graph\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2020-05-12\",\n      }",{"title":21906,"description":21907,"authors":21912,"heroImage":21908,"date":21913,"category":858,"tags":21914},[1016],"2020-05-12",[110,729],{"slug":21916,"featured":6,"template":736},"directed-acyclic-graph","content:en-us:blog:directed-acyclic-graph.yml","Directed Acyclic Graph","en-us/blog/directed-acyclic-graph.yml","en-us/blog/directed-acyclic-graph",{"_path":21922,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21923,"content":21929,"config":21932,"_id":21934,"_type":16,"title":21935,"_source":17,"_file":21936,"_stem":21937,"_extension":20},"/en-us/blog/solve-devsecops-challenges-with-gitlab-ci-cd",{"title":21924,"description":21925,"ogTitle":21924,"ogDescription":21925,"noIndex":6,"ogImage":21926,"ogUrl":21927,"ogSiteName":995,"ogType":996,"canonicalUrls":21927,"schema":21928},"How GitLab CI helps solve common DevSecOps challenges","How single application continuous integration helps team automate and collaborate.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681305/Blog/Hero%20Images/ci-use-case-web-header.png","https://about.gitlab.com/blog/solve-devsecops-challenges-with-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab CI helps solve common DevSecOps challenges\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-05-12\",\n      }",{"title":21924,"description":21925,"authors":21930,"heroImage":21926,"date":21913,"category":8140,"tags":21931},[17150],[110,1335],{"slug":21933,"featured":6,"template":736},"solve-devsecops-challenges-with-gitlab-ci-cd","content:en-us:blog:solve-devsecops-challenges-with-gitlab-ci-cd.yml","Solve Devsecops Challenges With Gitlab Ci Cd","en-us/blog/solve-devsecops-challenges-with-gitlab-ci-cd.yml","en-us/blog/solve-devsecops-challenges-with-gitlab-ci-cd",{"_path":21939,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21940,"content":21946,"config":21950,"_id":21952,"_type":16,"title":21953,"_source":17,"_file":21954,"_stem":21955,"_extension":20},"/en-us/blog/introducing-autoscaling-gitlab-runners-on-aws-fargate",{"title":21941,"description":21942,"ogTitle":21941,"ogDescription":21942,"noIndex":6,"ogImage":21943,"ogUrl":21944,"ogSiteName":995,"ogType":996,"canonicalUrls":21944,"schema":21945},"How autoscaling GitLab CI works on AWS Fargate","Run your CI jobs as AWS Fargate tasks with GitLab Runner and the Fargate Driver","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681285/Blog/Hero%20Images/runner-autoscale-fargate-blog-cover.jpg","https://about.gitlab.com/blog/introducing-autoscaling-gitlab-runners-on-aws-fargate","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How autoscaling GitLab CI works on AWS Fargate\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2020-05-11\",\n      }",{"title":21941,"description":21942,"authors":21947,"heroImage":21943,"date":21948,"category":858,"tags":21949},[4857],"2020-05-11",[110,730,1988],{"slug":21951,"featured":6,"template":736},"introducing-autoscaling-gitlab-runners-on-aws-fargate","content:en-us:blog:introducing-autoscaling-gitlab-runners-on-aws-fargate.yml","Introducing Autoscaling Gitlab Runners On Aws Fargate","en-us/blog/introducing-autoscaling-gitlab-runners-on-aws-fargate.yml","en-us/blog/introducing-autoscaling-gitlab-runners-on-aws-fargate",{"_path":21957,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21958,"content":21964,"config":21967,"_id":21969,"_type":16,"title":21970,"_source":17,"_file":21971,"_stem":21972,"_extension":20},"/en-us/blog/publishing-a11y-reports-in-gitlab-pages",{"title":21959,"description":21960,"ogTitle":21959,"ogDescription":21960,"noIndex":6,"ogImage":21961,"ogUrl":21962,"ogSiteName":995,"ogType":996,"canonicalUrls":21962,"schema":21963},"Publishing Accessibility Reports in GitLab Pages","How to setup the Automated Accessibility Scanning feature in GitLab and publish the report to GitLab Pages.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681293/Blog/Hero%20Images/a11y-report-html.jpg","https://about.gitlab.com/blog/publishing-a11y-reports-in-gitlab-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Publishing Accessibility Reports in GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Heimbuck\"}],\n        \"datePublished\": \"2020-05-11\",\n      }",{"title":21959,"description":21960,"authors":21965,"heroImage":21961,"date":21948,"category":17170,"tags":21966},[6886],[110,730],{"slug":21968,"featured":6,"template":736},"publishing-a11y-reports-in-gitlab-pages","content:en-us:blog:publishing-a11y-reports-in-gitlab-pages.yml","Publishing A11y Reports In Gitlab Pages","en-us/blog/publishing-a11y-reports-in-gitlab-pages.yml","en-us/blog/publishing-a11y-reports-in-gitlab-pages",{"_path":21974,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21975,"content":21981,"config":21986,"_id":21988,"_type":16,"title":21989,"_source":17,"_file":21990,"_stem":21991,"_extension":20},"/en-us/blog/how-gitlab-automates-releases",{"title":21976,"description":21977,"ogTitle":21976,"ogDescription":21977,"noIndex":6,"ogImage":21978,"ogUrl":21979,"ogSiteName":995,"ogType":996,"canonicalUrls":21979,"schema":21980},"How GitLab is automating release generation in .gitlab-ci.yml","Under the covers look at the tooling behind creating releases from `.gitlab-ci.yml` with a Go command line interface","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672765/Blog/Hero%20Images/generator.jpg","https://about.gitlab.com/blog/how-gitlab-automates-releases","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab is automating release generation in .gitlab-ci.yml\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jackie Meshell\"}],\n        \"datePublished\": \"2020-05-07\",\n      }",{"title":21976,"description":21977,"authors":21982,"heroImage":21978,"date":21984,"category":17170,"tags":21985},[21983],"Jackie Meshell","2020-05-07",[729,729,729],{"slug":21987,"featured":6,"template":736},"how-gitlab-automates-releases","content:en-us:blog:how-gitlab-automates-releases.yml","How Gitlab Automates Releases","en-us/blog/how-gitlab-automates-releases.yml","en-us/blog/how-gitlab-automates-releases",{"_path":21993,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":21994,"content":21999,"config":22002,"_id":22004,"_type":16,"title":22005,"_source":17,"_file":22006,"_stem":22007,"_extension":20},"/en-us/blog/working-with-performance-metrics",{"title":21995,"description":21996,"ogTitle":21995,"ogDescription":21996,"noIndex":6,"ogImage":13552,"ogUrl":21997,"ogSiteName":995,"ogType":996,"canonicalUrls":21997,"schema":21998},"How application performance monitoring metrics helps developers","Automatically detect and monitor Kubernetes Clusters and deployed applications from the GitLab interface with application performance metrics (APM).","https://about.gitlab.com/blog/working-with-performance-metrics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How application performance monitoring metrics helps developers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Saumya Upadhyaya\"},{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2020-05-07\",\n      }",{"title":21995,"description":21996,"authors":22000,"heroImage":13552,"date":21984,"category":8140,"tags":22001},[17505,1712],[564,730],{"slug":22003,"featured":6,"template":736},"working-with-performance-metrics","content:en-us:blog:working-with-performance-metrics.yml","Working With Performance Metrics","en-us/blog/working-with-performance-metrics.yml","en-us/blog/working-with-performance-metrics",{"_path":22009,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22010,"content":22016,"config":22020,"_id":22022,"_type":16,"title":22023,"_source":17,"_file":22024,"_stem":22025,"_extension":20},"/en-us/blog/git-challenge",{"title":22011,"description":22012,"ogTitle":22011,"ogDescription":22012,"noIndex":6,"ogImage":22013,"ogUrl":22014,"ogSiteName":995,"ogType":996,"canonicalUrls":22014,"schema":22015},"#GitChallenge just got better","GitHub makes the #GitChallenge more interesting with new feature announcements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681235/Blog/Hero%20Images/hero-blog-gitlab-github.jpg","https://about.gitlab.com/blog/git-challenge","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"#GitChallenge just got better\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2020-05-06\",\n      }",{"title":22011,"description":22012,"authors":22017,"heroImage":22013,"date":22018,"category":1049,"tags":22019},[1000],"2020-05-06",[1049],{"slug":22021,"featured":6,"template":736},"git-challenge","content:en-us:blog:git-challenge.yml","Git Challenge","en-us/blog/git-challenge.yml","en-us/blog/git-challenge",{"_path":22027,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22028,"content":22033,"config":22037,"_id":22039,"_type":16,"title":22040,"_source":17,"_file":22041,"_stem":22042,"_extension":20},"/en-us/blog/gitlab-com-13-0-breaking-changes",{"title":22029,"description":22030,"ogTitle":22029,"ogDescription":22030,"noIndex":6,"ogImage":11046,"ogUrl":22031,"ogSiteName":995,"ogType":996,"canonicalUrls":22031,"schema":22032},"GitLab.com is moving to 13.0, with narrow breaking changes","Our next release, 13.0, will include narrow breaking changes. Find out how this could affect you and what you need to do.","https://about.gitlab.com/blog/gitlab-com-13-0-breaking-changes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com is moving to 13.0, with narrow breaking changes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joshua Lambert\"}],\n        \"datePublished\": \"2020-05-06\",\n      }\n                  ",{"title":22029,"description":22030,"authors":22034,"heroImage":11046,"date":22018,"category":1049,"tags":22036},[22035],"Joshua Lambert",[1049,6376,892],{"slug":22038,"featured":6,"template":736},"gitlab-com-13-0-breaking-changes","content:en-us:blog:gitlab-com-13-0-breaking-changes.yml","Gitlab Com 13 0 Breaking Changes","en-us/blog/gitlab-com-13-0-breaking-changes.yml","en-us/blog/gitlab-com-13-0-breaking-changes",{"_path":22044,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22045,"content":22050,"config":22055,"_id":22057,"_type":16,"title":22058,"_source":17,"_file":22059,"_stem":22060,"_extension":20},"/en-us/blog/how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io",{"title":22046,"description":22047,"ogTitle":22046,"ogDescription":22047,"noIndex":6,"ogImage":17164,"ogUrl":22048,"ogSiteName":995,"ogType":996,"canonicalUrls":22048,"schema":22049},"Review Apps for Android with GitLab, fastlane & Appetize.io","See how GitLab and Appetize.io can bring Review Apps to your Android project","https://about.gitlab.com/blog/how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to create Review Apps for Android with GitLab, fastlane, and Appetize.io\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Fontaine\"}],\n        \"datePublished\": \"2020-05-06\",\n      }",{"title":22051,"description":22047,"authors":22052,"heroImage":17164,"date":22018,"category":17170,"tags":22054},"How to create Review Apps for Android with GitLab, fastlane, and Appetize.io",[22053],"Andrew Fontaine",[110,233,730,772],{"slug":22056,"featured":6,"template":736},"how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io","content:en-us:blog:how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io.yml","How To Create Review Apps For Android With Gitlab Fastlane And Appetize Dot Io","en-us/blog/how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io.yml","en-us/blog/how-to-create-review-apps-for-android-with-gitlab-fastlane-and-appetize-dot-io",{"_path":22062,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22063,"content":22069,"config":22072,"_id":22074,"_type":16,"title":22075,"_source":17,"_file":22076,"_stem":22077,"_extension":20},"/en-us/blog/observations-on-how-to-iterate-faster",{"title":22064,"description":22065,"ogTitle":22064,"ogDescription":22065,"noIndex":6,"ogImage":22066,"ogUrl":22067,"ogSiteName":995,"ogType":996,"canonicalUrls":22067,"schema":22068},"Why iteration helps increase the merge request rate","How the Monitor:Health team has been able to increase the merge request rate using better iteration, a bias for action, and by writing things down.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666603/Blog/Hero%20Images/book.jpg","https://about.gitlab.com/blog/observations-on-how-to-iterate-faster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why iteration helps increase the merge request rate\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2020-05-06\",\n      }",{"title":22064,"description":22065,"authors":22070,"heroImage":22066,"date":22018,"category":858,"tags":22071},[3053],[1569,564],{"slug":22073,"featured":6,"template":736},"observations-on-how-to-iterate-faster","content:en-us:blog:observations-on-how-to-iterate-faster.yml","Observations On How To Iterate Faster","en-us/blog/observations-on-how-to-iterate-faster.yml","en-us/blog/observations-on-how-to-iterate-faster",{"_path":22079,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22080,"content":22086,"config":22091,"_id":22093,"_type":16,"title":22094,"_source":17,"_file":22095,"_stem":22096,"_extension":20},"/en-us/blog/deploying-application-eks",{"title":22081,"description":22082,"ogTitle":22081,"ogDescription":22082,"noIndex":6,"ogImage":22083,"ogUrl":22084,"ogSiteName":995,"ogType":996,"canonicalUrls":22084,"schema":22085},"Deploying apps to GitLab-managed Amazon EKS with Auto DevOps","A Kubernetes tutorial: Use GitLab AutoDevOps to deploy your applications to Amazon EKS.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666959/Blog/Hero%20Images/gitlab-aws-cover.png","https://about.gitlab.com/blog/deploying-application-eks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to deploy your application to a GitLab-managed Amazon EKS cluster with Auto DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2020-05-05\",\n      }",{"title":22087,"description":22082,"authors":22088,"heroImage":22083,"date":22089,"category":858,"tags":22090},"How to deploy your application to a GitLab-managed Amazon EKS cluster with Auto DevOps",[3181],"2020-05-05",[2908,730,4182,772],{"slug":22092,"featured":6,"template":736},"deploying-application-eks","content:en-us:blog:deploying-application-eks.yml","Deploying Application Eks","en-us/blog/deploying-application-eks.yml","en-us/blog/deploying-application-eks",{"_path":22098,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22099,"content":22104,"config":22106,"_id":22108,"_type":16,"title":22109,"_source":17,"_file":22110,"_stem":22111,"_extension":20},"/en-us/blog/wow-rule",{"title":22100,"description":22101,"ogTitle":22100,"ogDescription":22101,"noIndex":6,"ogImage":16110,"ogUrl":22102,"ogSiteName":995,"ogType":996,"canonicalUrls":22102,"schema":22103},"Introducing the WoW rule: A formula for growth for SaaS Startups","The WoW rule is a guideline for growth for venture funded SaaS startups.","https://about.gitlab.com/blog/wow-rule","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing the WoW rule: A formula for growth for SaaS Startups\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2020-05-05\",\n      }",{"title":22100,"description":22101,"authors":22105,"heroImage":16110,"date":22089,"category":17170},[3701],{"slug":22107,"featured":6,"template":736},"wow-rule","content:en-us:blog:wow-rule.yml","Wow Rule","en-us/blog/wow-rule.yml","en-us/blog/wow-rule",{"_path":22113,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22114,"content":22120,"config":22125,"_id":22127,"_type":16,"title":22128,"_source":17,"_file":22129,"_stem":22130,"_extension":20},"/en-us/blog/auto-devops",{"title":22115,"description":22116,"ogTitle":22115,"ogDescription":22116,"noIndex":6,"ogImage":22117,"ogUrl":22118,"ogSiteName":995,"ogType":996,"canonicalUrls":22118,"schema":22119},"What's coming for Auto DevOps","We're working on a number of improvements to GitLab Auto DevOps – here's where it's at and where it's headed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667050/Blog/Hero%20Images/auto-devops-pipeline-stages.png","https://about.gitlab.com/blog/auto-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What's coming for Auto DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Ward\"}],\n        \"datePublished\": \"2020-04-30\",\n      }",{"title":22115,"description":22116,"authors":22121,"heroImage":22117,"date":22123,"category":1049,"tags":22124},[22122],"Chris Ward","2020-04-30",[110,730,1569],{"slug":22126,"featured":6,"template":736},"auto-devops","content:en-us:blog:auto-devops.yml","Auto Devops","en-us/blog/auto-devops.yml","en-us/blog/auto-devops",{"_path":22132,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22133,"content":22138,"config":22142,"_id":22144,"_type":16,"title":22145,"_source":17,"_file":22146,"_stem":22147,"_extension":20},"/en-us/blog/living-for-more-than-the-weekend",{"title":22134,"description":22135,"ogTitle":22134,"ogDescription":22135,"noIndex":6,"ogImage":17164,"ogUrl":22136,"ogSiteName":995,"ogType":996,"canonicalUrls":22136,"schema":22137},"My remote story: Living for more than the weekend","A quick look into what drove me to choose an organization that lives and breathes it's core values and allowed me the flexibility to be a full time member of my family","https://about.gitlab.com/blog/living-for-more-than-the-weekend","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"My remote story: Living for more than the weekend\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"JD Alex\"}],\n        \"datePublished\": \"2020-04-30\",\n      }",{"title":22134,"description":22135,"authors":22139,"heroImage":17164,"date":22123,"category":17170,"tags":22141},[22140],"JD Alex",[6980,269,1569],{"slug":22143,"featured":6,"template":736},"living-for-more-than-the-weekend","content:en-us:blog:living-for-more-than-the-weekend.yml","Living For More Than The Weekend","en-us/blog/living-for-more-than-the-weekend.yml","en-us/blog/living-for-more-than-the-weekend",{"_path":22149,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22150,"content":22155,"config":22159,"_id":22161,"_type":16,"title":22162,"_source":17,"_file":22163,"_stem":22164,"_extension":20},"/en-us/blog/aws-gitlab-serverless-webcast",{"title":22151,"description":22152,"ogTitle":22151,"ogDescription":22152,"noIndex":6,"ogImage":16110,"ogUrl":22153,"ogSiteName":995,"ogType":996,"canonicalUrls":22153,"schema":22154},"How to deploy AWS Lambda applications with ease","Highlights from our serverless webcast with AWS exploring the Serverless Application Model.","https://about.gitlab.com/blog/aws-gitlab-serverless-webcast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to deploy AWS Lambda applications with ease\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-04-29\",\n      }",{"title":22151,"description":22152,"authors":22156,"heroImage":16110,"date":22157,"category":8140,"tags":22158},[17150],"2020-04-29",[3721,582,110],{"slug":22160,"featured":6,"template":736},"aws-gitlab-serverless-webcast","content:en-us:blog:aws-gitlab-serverless-webcast.yml","Aws Gitlab Serverless Webcast","en-us/blog/aws-gitlab-serverless-webcast.yml","en-us/blog/aws-gitlab-serverless-webcast",{"_path":22166,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22167,"content":22172,"config":22175,"_id":22177,"_type":16,"title":22178,"_source":17,"_file":22179,"_stem":22180,"_extension":20},"/en-us/blog/gitlab-and-redhat-automation",{"title":22168,"description":22169,"ogTitle":22168,"ogDescription":22169,"noIndex":6,"ogImage":16110,"ogUrl":22170,"ogSiteName":995,"ogType":996,"canonicalUrls":22170,"schema":22171},"GitLab and Red Hat: Automation to enhance secure software development","How our closer relationship with Red Hat will boost deployment automation.","https://about.gitlab.com/blog/gitlab-and-redhat-automation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and Red Hat: Automation to enhance secure software development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vick Kelkar\"}],\n        \"datePublished\": \"2020-04-29\",\n      }",{"title":22168,"description":22169,"authors":22173,"heroImage":16110,"date":22157,"category":1049,"tags":22174},[11105],[729,110,582,564,2908],{"slug":22176,"featured":6,"template":736},"gitlab-and-redhat-automation","content:en-us:blog:gitlab-and-redhat-automation.yml","Gitlab And Redhat Automation","en-us/blog/gitlab-and-redhat-automation.yml","en-us/blog/gitlab-and-redhat-automation",{"_path":22182,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22183,"content":22189,"config":22192,"_id":22194,"_type":16,"title":22195,"_source":17,"_file":22196,"_stem":22197,"_extension":20},"/en-us/blog/how-we-built-status-page-mvc",{"title":22184,"description":22185,"ogTitle":22184,"ogDescription":22185,"noIndex":6,"ogImage":22186,"ogUrl":22187,"ogSiteName":995,"ogType":996,"canonicalUrls":22187,"schema":22188},"How we built Status Page","Get the scoop on the process behind engineering and troubleshooting the implementation of the Status Page","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681270/Blog/Hero%20Images/red-green-chilli.jpg","https://about.gitlab.com/blog/how-we-built-status-page-mvc","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we built Status Page\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Olena Horal-Koretska\"}],\n        \"datePublished\": \"2020-04-29\",\n      }",{"title":22184,"description":22185,"authors":22190,"heroImage":22186,"date":22157,"category":858,"tags":22191},[21442],[564],{"slug":22193,"featured":6,"template":736},"how-we-built-status-page-mvc","content:en-us:blog:how-we-built-status-page-mvc.yml","How We Built Status Page Mvc","en-us/blog/how-we-built-status-page-mvc.yml","en-us/blog/how-we-built-status-page-mvc",{"_path":22199,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22200,"content":22206,"config":22211,"_id":22213,"_type":16,"title":22214,"_source":17,"_file":22215,"_stem":22216,"_extension":20},"/en-us/blog/benefits-of-transparency-in-compliance",{"title":22201,"description":22202,"ogTitle":22201,"ogDescription":22202,"noIndex":6,"ogImage":22203,"ogUrl":22204,"ogSiteName":995,"ogType":996,"canonicalUrls":22204,"schema":22205},"The benefits of transparency in a compliance audit","We’re transparent by default, and just completed our first SOC 2 Type 1 audit! How does our public-first stance affect our compliance efforts and impact an audit?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681258/Blog/Hero%20Images/mvdheuvel-unsplash.jpg","https://about.gitlab.com/blog/benefits-of-transparency-in-compliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The benefits of transparency in a compliance audit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Truong\"}],\n        \"datePublished\": \"2020-04-28\",\n      }",{"title":22201,"description":22202,"authors":22207,"heroImage":22203,"date":22209,"category":790,"tags":22210},[22208],"Steve Truong","2020-04-28",[1569,790],{"slug":22212,"featured":6,"template":736},"benefits-of-transparency-in-compliance","content:en-us:blog:benefits-of-transparency-in-compliance.yml","Benefits Of Transparency In Compliance","en-us/blog/benefits-of-transparency-in-compliance.yml","en-us/blog/benefits-of-transparency-in-compliance",{"_path":22218,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22219,"content":22225,"config":22228,"_id":22230,"_type":16,"title":22231,"_source":17,"_file":22232,"_stem":22233,"_extension":20},"/en-us/blog/gitlab-education-virtual-meetup",{"title":22220,"description":22221,"ogTitle":22220,"ogDescription":22221,"noIndex":6,"ogImage":22222,"ogUrl":22223,"ogSiteName":995,"ogType":996,"canonicalUrls":22223,"schema":22224},"GitLab for Education: First Virtual Meetup","The GitLab for Education Program is excited to announce our first global virtual meetup on May 6th!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669510/Blog/Hero%20Images/classroom.jpg","https://about.gitlab.com/blog/gitlab-education-virtual-meetup","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab for Education: First Virtual Meetup\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2020-04-28\",\n      }",{"title":22220,"description":22221,"authors":22226,"heroImage":22222,"date":22209,"category":17170,"tags":22227},[13131],[269,2815,279],{"slug":22229,"featured":6,"template":736},"gitlab-education-virtual-meetup","content:en-us:blog:gitlab-education-virtual-meetup.yml","Gitlab Education Virtual Meetup","en-us/blog/gitlab-education-virtual-meetup.yml","en-us/blog/gitlab-education-virtual-meetup",{"_path":22235,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22236,"content":22242,"config":22246,"_id":22248,"_type":16,"title":22249,"_source":17,"_file":22250,"_stem":22251,"_extension":20},"/en-us/blog/appsflyer-moves-to-gitlab",{"title":22237,"description":22238,"ogTitle":22237,"ogDescription":22238,"noIndex":6,"ogImage":22239,"ogUrl":22240,"ogSiteName":995,"ogType":996,"canonicalUrls":22240,"schema":22241},"Why AppsFlyer moved from Bitbucket to GitLab","AppsFlyer migrated from Mercurial to Git so the company could move to GitLab's open source, self-managed solution.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681252/Blog/Hero%20Images/gitlab-appsflyer.png","https://about.gitlab.com/blog/appsflyer-moves-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why AppsFlyer moved from Bitbucket to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-04-27\",\n      }",{"title":22237,"description":22238,"authors":22243,"heroImage":22239,"date":22244,"category":1049,"tags":22245},[16023],"2020-04-27",[1195,1265,269],{"slug":22247,"featured":6,"template":736},"appsflyer-moves-to-gitlab","content:en-us:blog:appsflyer-moves-to-gitlab.yml","Appsflyer Moves To Gitlab","en-us/blog/appsflyer-moves-to-gitlab.yml","en-us/blog/appsflyer-moves-to-gitlab",{"_path":22253,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22254,"content":22260,"config":22264,"_id":22266,"_type":16,"title":22267,"_source":17,"_file":22268,"_stem":22269,"_extension":20},"/en-us/blog/parent-child-pipelines",{"title":22255,"description":22256,"ogTitle":22255,"ogDescription":22256,"noIndex":6,"ogImage":22257,"ogUrl":22258,"ogSiteName":995,"ogType":996,"canonicalUrls":22258,"schema":22259},"How to get started with Parent-child pipelines","We introduced improvements to pipelines to help scale applications and their repo structures more effectively. Here's how they work.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667040/Blog/Hero%20Images/parent_pipeline_graph.png","https://about.gitlab.com/blog/parent-child-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to get started with Parent-child pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Ward\"}],\n        \"datePublished\": \"2020-04-24\",\n      }",{"title":22255,"description":22256,"authors":22261,"heroImage":22257,"date":22262,"category":858,"tags":22263},[22122],"2020-04-24",[110,730,1569,772],{"slug":22265,"featured":6,"template":736},"parent-child-pipelines","content:en-us:blog:parent-child-pipelines.yml","Parent Child Pipelines","en-us/blog/parent-child-pipelines.yml","en-us/blog/parent-child-pipelines",{"_path":22271,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22272,"content":22277,"config":22281,"_id":22283,"_type":16,"title":22284,"_source":17,"_file":22285,"_stem":22286,"_extension":20},"/en-us/blog/cobol-programmer-shortage",{"title":22273,"description":22274,"ogTitle":22273,"ogDescription":22274,"noIndex":6,"ogImage":11081,"ogUrl":22275,"ogSiteName":995,"ogType":996,"canonicalUrls":22275,"schema":22276},"How can we help solve the COBOL programmer shortage?","A shortage of COBOL programmers is causing delays in processing unemployment claims and small business loans. We’re hoping our community can help.","https://about.gitlab.com/blog/cobol-programmer-shortage","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How can we help solve the COBOL programmer shortage?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-04-23\",\n      }",{"title":22273,"description":22274,"authors":22278,"heroImage":11081,"date":22279,"category":1388,"tags":22280},[10672],"2020-04-23",[269,3074,1265],{"slug":22282,"featured":6,"template":736},"cobol-programmer-shortage","content:en-us:blog:cobol-programmer-shortage.yml","Cobol Programmer Shortage","en-us/blog/cobol-programmer-shortage.yml","en-us/blog/cobol-programmer-shortage",{"_path":22288,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22289,"content":22295,"config":22299,"_id":22301,"_type":16,"title":22302,"_source":17,"_file":22303,"_stem":22304,"_extension":20},"/en-us/blog/ultimate-git-guide",{"title":22290,"description":22291,"ogTitle":22290,"ogDescription":22291,"noIndex":6,"ogImage":22292,"ogUrl":22293,"ogSiteName":995,"ogType":996,"canonicalUrls":22293,"schema":22294},"Our ultimate guide to Git","Open source pioneer Git is 15 years old. Here is our guide to making the most of it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681222/Blog/Hero%20Images/git-15th-anniversary-cover.png","https://about.gitlab.com/blog/ultimate-git-guide","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our ultimate guide to Git\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-04-20\",\n      }",{"title":22290,"description":22291,"authors":22296,"heroImage":22292,"date":22297,"category":1388,"tags":22298},[10672],"2020-04-20",[1195,1265,730],{"slug":22300,"featured":6,"template":736},"ultimate-git-guide","content:en-us:blog:ultimate-git-guide.yml","Ultimate Git Guide","en-us/blog/ultimate-git-guide.yml","en-us/blog/ultimate-git-guide",{"_path":22306,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22307,"content":22312,"config":22316,"_id":22318,"_type":16,"title":22319,"_source":17,"_file":22320,"_stem":22321,"_extension":20},"/en-us/blog/dotfiles-document-and-automate-your-macbook-setup",{"title":22308,"description":22309,"ogTitle":22308,"ogDescription":22309,"noIndex":6,"ogImage":17164,"ogUrl":22310,"ogSiteName":995,"ogType":996,"canonicalUrls":22310,"schema":22311},"dotfiles - Document and automate your Macbook setup","Document and automate your Macbook setup with installing tools and well-known configuration settings. Follow best practices from a developer’s point of view.","https://about.gitlab.com/blog/dotfiles-document-and-automate-your-macbook-setup","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"dotfiles - Document and automate your Macbook setup\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2020-04-17\",\n      }",{"title":22308,"description":22309,"authors":22313,"heroImage":17164,"date":22314,"category":17170,"tags":22315},[1424],"2020-04-17",[582,582,729,729],{"slug":22317,"featured":6,"template":736},"dotfiles-document-and-automate-your-macbook-setup","content:en-us:blog:dotfiles-document-and-automate-your-macbook-setup.yml","Dotfiles Document And Automate Your Macbook Setup","en-us/blog/dotfiles-document-and-automate-your-macbook-setup.yml","en-us/blog/dotfiles-document-and-automate-your-macbook-setup",{"_path":22323,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22324,"content":22330,"config":22333,"_id":22335,"_type":16,"title":22336,"_source":17,"_file":22337,"_stem":22338,"_extension":20},"/en-us/blog/why-gitops-should-be-workflow-of-choice",{"title":22325,"description":22326,"ogTitle":22325,"ogDescription":22326,"noIndex":6,"ogImage":22327,"ogUrl":22328,"ogSiteName":995,"ogType":996,"canonicalUrls":22328,"schema":22329},"Why GitOps should be the workflow of choice","What is GitOps and how do you apply it in real-world applications?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681239/Blog/Hero%20Images/shiro-hatori-WR-ifjFy4CI-unsplash.jpg","https://about.gitlab.com/blog/why-gitops-should-be-workflow-of-choice","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitOps should be the workflow of choice\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2020-04-17\",\n      }",{"title":22325,"description":22326,"authors":22331,"heroImage":22327,"date":22314,"category":858,"tags":22332},[10835],[110,582,233],{"slug":22334,"featured":6,"template":736},"why-gitops-should-be-workflow-of-choice","content:en-us:blog:why-gitops-should-be-workflow-of-choice.yml","Why Gitops Should Be Workflow Of Choice","en-us/blog/why-gitops-should-be-workflow-of-choice.yml","en-us/blog/why-gitops-should-be-workflow-of-choice",{"_path":22340,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22341,"content":22347,"config":22351,"_id":22353,"_type":16,"title":22354,"_source":17,"_file":22355,"_stem":22356,"_extension":20},"/en-us/blog/geo-is-available-on-staging-for-gitlab-com",{"title":22342,"description":22343,"ogTitle":22342,"ogDescription":22343,"noIndex":6,"ogImage":22344,"ogUrl":22345,"ogSiteName":995,"ogType":996,"canonicalUrls":22345,"schema":22346},"Why we enabled Geo on the staging environment for GitLab.com","Geo is GitLab's solution for distributed teams and now we can validate and test it at scale.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669656/Blog/Hero%20Images/donald-giannatti-4qk3nQI3WHY-unsplash-small.jpg","https://about.gitlab.com/blog/geo-is-available-on-staging-for-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we enabled Geo on the staging environment for GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabian Zimmer\"},{\"@type\":\"Person\",\"name\":\"Douglas Alexandre\"}],\n        \"datePublished\": \"2020-04-16\",\n      }",{"title":22342,"description":22343,"authors":22348,"heroImage":22344,"date":22349,"category":858,"tags":22350},[2318,12769],"2020-04-16",[730,1569,1730],{"slug":22352,"featured":6,"template":736},"geo-is-available-on-staging-for-gitlab-com","content:en-us:blog:geo-is-available-on-staging-for-gitlab-com.yml","Geo Is Available On Staging For Gitlab Com","en-us/blog/geo-is-available-on-staging-for-gitlab-com.yml","en-us/blog/geo-is-available-on-staging-for-gitlab-com",{"_path":22358,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22359,"content":22365,"config":22369,"_id":22371,"_type":16,"title":22372,"_source":17,"_file":22373,"_stem":22374,"_extension":20},"/en-us/blog/remote-board-meeting",{"title":22360,"description":22361,"ogTitle":22360,"ogDescription":22361,"noIndex":6,"ogImage":22362,"ogUrl":22363,"ogSiteName":995,"ogType":996,"canonicalUrls":22363,"schema":22364},"How to run an all-remote board meeting","Transitioning your board meeting from a conference room to a Zoom room is easier than you think.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683842/Blog/Hero%20Images/remoteboardmtg.jpg","https://about.gitlab.com/blog/remote-board-meeting","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to run an all-remote board meeting\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilie Schario\"}],\n        \"datePublished\": \"2020-04-15\",\n      }",{"title":22360,"description":22361,"authors":22366,"heroImage":22362,"date":22368,"category":6121},[22367],"Emilie Schario","2020-04-15",{"slug":22370,"featured":6,"template":736},"remote-board-meeting","content:en-us:blog:remote-board-meeting.yml","Remote Board Meeting","en-us/blog/remote-board-meeting.yml","en-us/blog/remote-board-meeting",{"_path":22376,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22377,"content":22382,"config":22386,"_id":22388,"_type":16,"title":22389,"_source":17,"_file":22390,"_stem":22391,"_extension":20},"/en-us/blog/github-free-for-teams",{"title":22378,"description":22379,"ogTitle":22378,"ogDescription":22379,"noIndex":6,"ogImage":22013,"ogUrl":22380,"ogSiteName":995,"ogType":996,"canonicalUrls":22380,"schema":22381},"#GitChallenge: Compare GitLab to GitHub and earn swag","Send us a review of GitLab and GitHub and get swag.","https://about.gitlab.com/blog/github-free-for-teams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"#GitChallenge: Compare GitLab to GitHub and earn swag\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2020-04-14\",\n      }",{"title":22378,"description":22379,"authors":22383,"heroImage":22013,"date":22384,"category":1049,"tags":22385},[1000],"2020-04-14",[564,1195],{"slug":22387,"featured":6,"template":736},"github-free-for-teams","content:en-us:blog:github-free-for-teams.yml","Github Free For Teams","en-us/blog/github-free-for-teams.yml","en-us/blog/github-free-for-teams",{"_path":22393,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22394,"content":22399,"config":22403,"_id":22405,"_type":16,"title":22406,"_source":17,"_file":22407,"_stem":22408,"_extension":20},"/en-us/blog/beginner-git-guide",{"title":22395,"description":22396,"ogTitle":22395,"ogDescription":22396,"noIndex":6,"ogImage":22292,"ogUrl":22397,"ogSiteName":995,"ogType":996,"canonicalUrls":22397,"schema":22398},"A guide to Git for beginners","Our senior developer evangelist answers newbie questions about Git.","https://about.gitlab.com/blog/beginner-git-guide","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A guide to Git for beginners\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2020-04-13\",\n      }",{"title":22395,"description":22396,"authors":22400,"heroImage":22292,"date":22401,"category":8140,"tags":22402},[10835],"2020-04-13",[1195,1265,6980],{"slug":22404,"featured":6,"template":736},"beginner-git-guide","content:en-us:blog:beginner-git-guide.yml","Beginner Git Guide","en-us/blog/beginner-git-guide.yml","en-us/blog/beginner-git-guide",{"_path":22410,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22411,"content":22417,"config":22421,"_id":22423,"_type":16,"title":22424,"_source":17,"_file":22425,"_stem":22426,"_extension":20},"/en-us/blog/lm-sre-shadow",{"title":22412,"description":22413,"ogTitle":22412,"ogDescription":22413,"noIndex":6,"ogImage":22414,"ogUrl":22415,"ogSiteName":995,"ogType":996,"canonicalUrls":22415,"schema":22416},"Shadowing a Site Reliability Engineer","On-call through the eyes of a software engineer. Read Laura's week shadowing a Site Reliability Engineer","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679120/Blog/Hero%20Images/sre-shadow-week.jpg","https://about.gitlab.com/blog/lm-sre-shadow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Shadowing a Site Reliability Engineer\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Laura Montemayor\"}],\n        \"datePublished\": \"2020-04-13\",\n      }",{"title":22412,"description":22413,"authors":22418,"heroImage":22414,"date":22401,"category":17170,"tags":22420},[22419],"Laura Montemayor",[564,6376],{"slug":22422,"featured":6,"template":736},"lm-sre-shadow","content:en-us:blog:lm-sre-shadow.yml","Lm Sre Shadow","en-us/blog/lm-sre-shadow.yml","en-us/blog/lm-sre-shadow",{"_path":22428,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22429,"content":22435,"config":22439,"_id":22441,"_type":16,"title":22442,"_source":17,"_file":22443,"_stem":22444,"_extension":20},"/en-us/blog/open-source-security",{"title":22430,"description":22431,"ogTitle":22430,"ogDescription":22431,"noIndex":6,"ogImage":22432,"ogUrl":22433,"ogSiteName":995,"ogType":996,"canonicalUrls":22433,"schema":22434},"How we manage open source security software","Open source software presents unique security challenges. Here’s what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681227/Blog/Hero%20Images/opensourcesecurity.jpg","https://about.gitlab.com/blog/open-source-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we manage open source security software\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2020-04-10\",\n      }",{"title":22430,"description":22431,"authors":22436,"heroImage":22432,"date":22437,"category":790,"tags":22438},[5108],"2020-04-10",[1265,790,3292],{"slug":22440,"featured":6,"template":736},"open-source-security","content:en-us:blog:open-source-security.yml","Open Source Security","en-us/blog/open-source-security.yml","en-us/blog/open-source-security",{"_path":22446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22447,"content":22452,"config":22456,"_id":22458,"_type":16,"title":22448,"_source":17,"_file":22459,"_stem":22460,"_extension":20},"/en-us/blog/jira-importer-research",{"title":22448,"description":22449,"ogTitle":22448,"ogDescription":22449,"noIndex":6,"ogImage":17073,"ogUrl":22450,"ogSiteName":995,"ogType":996,"canonicalUrls":22450,"schema":22451},"Jira Importer Research","Senior Product Designer Holly Reynolds is seeking participants for research surrounding importing Jira issues.","https://about.gitlab.com/blog/jira-importer-research","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Jira Importer Research\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Holly Reynolds\"}],\n        \"datePublished\": \"2020-04-08\",\n      }",{"title":22448,"description":22449,"authors":22453,"heroImage":17073,"date":22454,"category":17170,"tags":22455},[19790],"2020-04-08",[730,2702,2703,7788,2025],{"slug":22457,"featured":6,"template":736},"jira-importer-research","content:en-us:blog:jira-importer-research.yml","en-us/blog/jira-importer-research.yml","en-us/blog/jira-importer-research",{"_path":22462,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22463,"content":22468,"config":22471,"_id":22473,"_type":16,"title":22474,"_source":17,"_file":22475,"_stem":22476,"_extension":20},"/en-us/blog/snowflake-spend-dbt-package-release",{"title":22464,"description":22465,"ogTitle":22464,"ogDescription":22465,"noIndex":6,"ogImage":17164,"ogUrl":22466,"ogSiteName":995,"ogType":996,"canonicalUrls":22466,"schema":22467},"Snowflake Spend dbt Package Release 1.1.0","The latest Snowflake Spend dbt package release is helping companies become even more efficient.","https://about.gitlab.com/blog/snowflake-spend-dbt-package-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Snowflake Spend dbt Package Release 1.1.0\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor Murphy\"},{\"@type\":\"Person\",\"name\":\"Emilie Schario\"}],\n        \"datePublished\": \"2020-04-08\",\n      }",{"title":22464,"description":22465,"authors":22469,"heroImage":17164,"date":22454,"category":17170},[22470,22367],"Taylor Murphy",{"slug":22472,"featured":6,"template":736},"snowflake-spend-dbt-package-release","content:en-us:blog:snowflake-spend-dbt-package-release.yml","Snowflake Spend Dbt Package Release","en-us/blog/snowflake-spend-dbt-package-release.yml","en-us/blog/snowflake-spend-dbt-package-release",{"_path":22478,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22479,"content":22484,"config":22488,"_id":22490,"_type":16,"title":22491,"_source":17,"_file":22492,"_stem":22493,"_extension":20},"/en-us/blog/15-git-tips-improve-workflow",{"title":22480,"description":22481,"ogTitle":22480,"ogDescription":22481,"noIndex":6,"ogImage":22292,"ogUrl":22482,"ogSiteName":995,"ogType":996,"canonicalUrls":22482,"schema":22483},"15 Git tips to improve your workflow","Learn how to compare commits, delete stale branches, and write aliases to save you some time. It's time to dust off your command line and Git busy!","https://about.gitlab.com/blog/15-git-tips-improve-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"15 Git tips to improve your workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2020-04-07\",\n      }",{"title":22480,"description":22481,"authors":22485,"heroImage":22292,"date":22486,"category":1388,"tags":22487},[19332],"2020-04-07",[1195,1335,1932],{"slug":22489,"featured":6,"template":736},"15-git-tips-improve-workflow","content:en-us:blog:15-git-tips-improve-workflow.yml","15 Git Tips Improve Workflow","en-us/blog/15-git-tips-improve-workflow.yml","en-us/blog/15-git-tips-improve-workflow",{"_path":22495,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22496,"content":22502,"config":22507,"_id":22509,"_type":16,"title":22510,"_source":17,"_file":22511,"_stem":22512,"_extension":20},"/en-us/blog/cs-scavenger-hunt",{"title":22497,"description":22498,"ogTitle":22497,"ogDescription":22498,"noIndex":6,"ogImage":22499,"ogUrl":22500,"ogSiteName":995,"ogType":996,"canonicalUrls":22500,"schema":22501},"Customer Success Scavenger Hunt","The CS team was challenged with a weekend-long scavenger hunt to utilize their creativity and collaboration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681215/Blog/Hero%20Images/rocky.jpg","https://about.gitlab.com/blog/cs-scavenger-hunt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer Success Scavenger Hunt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chloe Whitestone\"}],\n        \"datePublished\": \"2020-04-06\",\n      }",{"title":22497,"description":22498,"authors":22503,"heroImage":22499,"date":22505,"category":17170,"tags":22506},[22504],"Chloe Whitestone","2020-04-06",[1569],{"slug":22508,"featured":6,"template":736},"cs-scavenger-hunt","content:en-us:blog:cs-scavenger-hunt.yml","Cs Scavenger Hunt","en-us/blog/cs-scavenger-hunt.yml","en-us/blog/cs-scavenger-hunt",{"_path":22514,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22515,"content":22521,"config":22525,"_id":22527,"_type":16,"title":22528,"_source":17,"_file":22529,"_stem":22530,"_extension":20},"/en-us/blog/incident-management-with-gitlab",{"title":22516,"description":22517,"ogTitle":22516,"ogDescription":22517,"noIndex":6,"ogImage":22518,"ogUrl":22519,"ogSiteName":995,"ogType":996,"canonicalUrls":22519,"schema":22520},"Understand incident management with GitLab","GitLab Incident Management helps your response teams focus on the problem and shorten the mean time to repair rather than waste time on the process itself.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681208/Blog/Hero%20Images/incident-management-blog-cover.jpg","https://about.gitlab.com/blog/incident-management-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Understand incident management with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Waldner\"}],\n        \"datePublished\": \"2020-04-03\",\n      }",{"title":22516,"description":22517,"authors":22522,"heroImage":22518,"date":22523,"category":8140,"tags":22524},[9229],"2020-04-03",[564,730],{"slug":22526,"featured":6,"template":736},"incident-management-with-gitlab","content:en-us:blog:incident-management-with-gitlab.yml","Incident Management With Gitlab","en-us/blog/incident-management-with-gitlab.yml","en-us/blog/incident-management-with-gitlab",{"_path":22532,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22533,"content":22538,"config":22542,"_id":22544,"_type":16,"title":22545,"_source":17,"_file":22546,"_stem":22547,"_extension":20},"/en-us/blog/security-trends-in-gitlab-hosted-projects",{"title":22534,"description":22535,"ogTitle":22534,"ogDescription":22535,"noIndex":6,"ogImage":17943,"ogUrl":22536,"ogSiteName":995,"ogType":996,"canonicalUrls":22536,"schema":22537},"Top 6 security trends in GitLab-hosted projects","Using components with known vulnerabilities is the most common security problem in GitLab.com-hosted projects.","https://about.gitlab.com/blog/security-trends-in-gitlab-hosted-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 6 security trends in GitLab-hosted projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Wayne Haber\"}],\n        \"datePublished\": \"2020-04-02\",\n      }",{"title":22534,"description":22535,"authors":22539,"heroImage":17943,"date":22540,"category":790,"tags":22541},[15310],"2020-04-02",[790,3292],{"slug":22543,"featured":6,"template":736},"security-trends-in-gitlab-hosted-projects","content:en-us:blog:security-trends-in-gitlab-hosted-projects.yml","Security Trends In Gitlab Hosted Projects","en-us/blog/security-trends-in-gitlab-hosted-projects.yml","en-us/blog/security-trends-in-gitlab-hosted-projects",{"_path":22549,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22550,"content":22555,"config":22561,"_id":22563,"_type":16,"title":22564,"_source":17,"_file":22565,"_stem":22566,"_extension":20},"/en-us/blog/synchronous-collaboration-as-a-remote-designer-at-gitlab",{"title":22551,"description":22552,"ogTitle":22551,"ogDescription":22552,"noIndex":6,"ogImage":13802,"ogUrl":22553,"ogSiteName":995,"ogType":996,"canonicalUrls":22553,"schema":22554},"Synchronous collaboration as a remote designer at GitLab","Find out how GitLab Designers collaborate synchronously within an all-remote company!","https://about.gitlab.com/blog/synchronous-collaboration-as-a-remote-designer-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Synchronous collaboration as a remote designer at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alexis Ginsberg\"},{\"@type\":\"Person\",\"name\":\"Becka Lippert\"},{\"@type\":\"Person\",\"name\":\"Matej Latin\"},{\"@type\":\"Person\",\"name\":\"Holly Reynolds\"}],\n        \"datePublished\": \"2020-04-01\",\n      }",{"title":22551,"description":22552,"authors":22556,"heroImage":13802,"date":22559,"category":17170,"tags":22560},[22557,22558,17415,19790],"Alexis Ginsberg","Becka Lippert","2020-04-01",[2702,2703,2704,3914,2815],{"slug":22562,"featured":6,"template":736},"synchronous-collaboration-as-a-remote-designer-at-gitlab","content:en-us:blog:synchronous-collaboration-as-a-remote-designer-at-gitlab.yml","Synchronous Collaboration As A Remote Designer At Gitlab","en-us/blog/synchronous-collaboration-as-a-remote-designer-at-gitlab.yml","en-us/blog/synchronous-collaboration-as-a-remote-designer-at-gitlab",{"_path":22568,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22569,"content":22574,"config":22578,"_id":22580,"_type":16,"title":22581,"_source":17,"_file":22582,"_stem":22583,"_extension":20},"/en-us/blog/conan-c-cpp-package-management-integration",{"title":22570,"description":22571,"ogTitle":22570,"ogDescription":22571,"noIndex":6,"ogImage":16110,"ogUrl":22572,"ogSiteName":995,"ogType":996,"canonicalUrls":22572,"schema":22573},"Modern C and C++: How Conan integration works in GitLab","Conan is a leading C and C++ package manager and it is now available in GitLab. Store and share packages easily with your teams or publicly.","https://about.gitlab.com/blog/conan-c-cpp-package-management-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Modern C and C++: How Conan integration works in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jordi Mon\"}],\n        \"datePublished\": \"2020-03-31\",\n      }",{"title":22570,"description":22571,"authors":22575,"heroImage":16110,"date":22576,"category":858,"tags":22577},[20445],"2020-03-31",[730,233,1265,1335],{"slug":22579,"featured":6,"template":736},"conan-c-cpp-package-management-integration","content:en-us:blog:conan-c-cpp-package-management-integration.yml","Conan C Cpp Package Management Integration","en-us/blog/conan-c-cpp-package-management-integration.yml","en-us/blog/conan-c-cpp-package-management-integration",{"_path":22585,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22586,"content":22591,"config":22596,"_id":22598,"_type":16,"title":22599,"_source":17,"_file":22600,"_stem":22601,"_extension":20},"/en-us/blog/gpg-key-for-gitlab-package-repositories-metadata-changing",{"title":22587,"description":22588,"ogTitle":22587,"ogDescription":22588,"noIndex":6,"ogImage":16110,"ogUrl":22589,"ogSiteName":995,"ogType":996,"canonicalUrls":22589,"schema":22590},"The GPG key used to sign GitLab package repositories' metadata is changing","The GPG key used to sign repository metadata on GitLab's Packagecloud instance at packages.gitlab.com is changing – find out what this means for you.","https://about.gitlab.com/blog/gpg-key-for-gitlab-package-repositories-metadata-changing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The GPG key used to sign GitLab package repositories' metadata is changing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Balasankar 'Balu' C\"}],\n        \"datePublished\": \"2020-03-30\",\n      }",{"title":22587,"description":22588,"authors":22592,"heroImage":16110,"date":22594,"category":1049,"tags":22595},[22593],"Balasankar 'Balu' C","2020-03-30",[233],{"slug":22597,"featured":6,"template":736},"gpg-key-for-gitlab-package-repositories-metadata-changing","content:en-us:blog:gpg-key-for-gitlab-package-repositories-metadata-changing.yml","Gpg Key For Gitlab Package Repositories Metadata Changing","en-us/blog/gpg-key-for-gitlab-package-repositories-metadata-changing.yml","en-us/blog/gpg-key-for-gitlab-package-repositories-metadata-changing",{"_path":22603,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22604,"content":22609,"config":22612,"_id":22614,"_type":16,"title":22615,"_source":17,"_file":22616,"_stem":22617,"_extension":20},"/en-us/blog/how-to-exploit-parser-differentials",{"title":22605,"description":22606,"ogTitle":22605,"ogDescription":22606,"noIndex":6,"ogImage":10311,"ogUrl":22607,"ogSiteName":995,"ogType":996,"canonicalUrls":22607,"schema":22608},"How to exploit parser differentials","Your guide to abusing 'language barriers' between web components.","https://about.gitlab.com/blog/how-to-exploit-parser-differentials","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to exploit parser differentials\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joern Schneeweisz\"}],\n        \"datePublished\": \"2020-03-30\",\n      }",{"title":22605,"description":22606,"authors":22610,"heroImage":10311,"date":22594,"category":790,"tags":22611},[10316],[790,3292],{"slug":22613,"featured":6,"template":736},"how-to-exploit-parser-differentials","content:en-us:blog:how-to-exploit-parser-differentials.yml","How To Exploit Parser Differentials","en-us/blog/how-to-exploit-parser-differentials.yml","en-us/blog/how-to-exploit-parser-differentials",{"_path":22619,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22620,"content":22626,"config":22629,"_id":22631,"_type":16,"title":22632,"_source":17,"_file":22633,"_stem":22634,"_extension":20},"/en-us/blog/new-features-to-core",{"title":22621,"description":22622,"ogTitle":22621,"ogDescription":22622,"noIndex":6,"ogImage":22623,"ogUrl":22624,"ogSiteName":995,"ogType":996,"canonicalUrls":22624,"schema":22625},"18 GitLab features are moving to open source","We're open sourcing rich functionality across Plan, Create, Verify, Package, Release, Configure, and Protect.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667021/Blog/Hero%20Images/newnature_cropped.png","https://about.gitlab.com/blog/new-features-to-core","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"18 GitLab features are moving to open source\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2020-03-30\",\n      }",{"title":22621,"description":22622,"authors":22627,"heroImage":22623,"date":22594,"category":1049,"tags":22628},[3701],[564,1265],{"slug":22630,"featured":6,"template":736},"new-features-to-core","content:en-us:blog:new-features-to-core.yml","New Features To Core","en-us/blog/new-features-to-core.yml","en-us/blog/new-features-to-core",{"_path":22636,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22637,"content":22643,"config":22648,"_id":22650,"_type":16,"title":22651,"_source":17,"_file":22652,"_stem":22653,"_extension":20},"/en-us/blog/async-sketching",{"title":22638,"description":22639,"ogTitle":22638,"ogDescription":22639,"noIndex":6,"ogImage":22640,"ogUrl":22641,"ogSiteName":995,"ogType":996,"canonicalUrls":22641,"schema":22642},"Running an Asynchronous Sketch Workshop for UX","How to generate ideas with team members in multiple time zones","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669734/Blog/Hero%20Images/sketch-cover.jpg","https://about.gitlab.com/blog/async-sketching","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Running an Asynchronous Sketch Workshop for UX\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacki Bauer\"},{\"@type\":\"Person\",\"name\":\"Inchul Yoo, Sunjung Park\"}],\n        \"datePublished\": \"2020-03-27\",\n      }",{"title":22638,"description":22639,"authors":22644,"heroImage":22640,"date":22646,"category":17170,"tags":22647},[22645,7434],"Jacki Bauer","2020-03-27",[2815,2702,3914,2704,2703],{"slug":22649,"featured":6,"template":736},"async-sketching","content:en-us:blog:async-sketching.yml","Async Sketching","en-us/blog/async-sketching.yml","en-us/blog/async-sketching",{"_path":22655,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22656,"content":22661,"config":22664,"_id":22666,"_type":16,"title":22667,"_source":17,"_file":22668,"_stem":22669,"_extension":20},"/en-us/blog/designing-in-an-all-remote-company",{"title":22657,"description":22658,"ogTitle":22657,"ogDescription":22658,"noIndex":6,"ogImage":15395,"ogUrl":22659,"ogSiteName":995,"ogType":996,"canonicalUrls":22659,"schema":22660},"How we work 100% remote in Product Design","UX is such a collaborative activity. How do you work effectively when everyone is remote?","https://about.gitlab.com/blog/designing-in-an-all-remote-company","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we work 100% remote in Product Design\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christie Lenneville\"}],\n        \"datePublished\": \"2020-03-27\",\n      }",{"title":22657,"description":22658,"authors":22662,"heroImage":15395,"date":22646,"category":6121,"tags":22663},[18313],[2703,2704,3914],{"slug":22665,"featured":6,"template":736},"designing-in-an-all-remote-company","content:en-us:blog:designing-in-an-all-remote-company.yml","Designing In An All Remote Company","en-us/blog/designing-in-an-all-remote-company.yml","en-us/blog/designing-in-an-all-remote-company",{"_path":22671,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22672,"content":22678,"config":22681,"_id":22683,"_type":16,"title":22684,"_source":17,"_file":22685,"_stem":22686,"_extension":20},"/en-us/blog/gitlab-ci-on-google-kubernetes-engine",{"title":22673,"description":22674,"ogTitle":22673,"ogDescription":22674,"noIndex":6,"ogImage":22675,"ogUrl":22676,"ogSiteName":995,"ogType":996,"canonicalUrls":22676,"schema":22677},"GitLab CI/CD on Google Kubernetes Engine in 15 minutes or less","Install GitLab's Runner on GKE in a few simple steps and get started with GitLab CI/CD pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667003/Blog/Hero%20Images/gke_in_15_cover_2.jpg","https://about.gitlab.com/blog/gitlab-ci-on-google-kubernetes-engine","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab CI/CD on Google Kubernetes Engine in 15 minutes or less\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Elliot Rushton\"}],\n        \"datePublished\": \"2020-03-27\",\n      }",{"title":22673,"description":22674,"authors":22679,"heroImage":22675,"date":22646,"category":858,"tags":22680},[16864],[233,2908,582,110,3346,1730],{"slug":22682,"featured":6,"template":736},"gitlab-ci-on-google-kubernetes-engine","content:en-us:blog:gitlab-ci-on-google-kubernetes-engine.yml","Gitlab Ci On Google Kubernetes Engine","en-us/blog/gitlab-ci-on-google-kubernetes-engine.yml","en-us/blog/gitlab-ci-on-google-kubernetes-engine",{"_path":22688,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22689,"content":22695,"config":22698,"_id":22700,"_type":16,"title":22701,"_source":17,"_file":22702,"_stem":22703,"_extension":20},"/en-us/blog/going-remote-education-virtual-learning-tips",{"title":22690,"description":22691,"ogTitle":22690,"ogDescription":22691,"noIndex":6,"ogImage":22692,"ogUrl":22693,"ogSiteName":995,"ogType":996,"canonicalUrls":22693,"schema":22694},"Going remote in education? Don't panic.","If you're an educator moving online, we have some tips for virtual learning success.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681183/Blog/Hero%20Images/work_remote_coffee_green.jpg","https://about.gitlab.com/blog/going-remote-education-virtual-learning-tips","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Going remote in education? Don't panic.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2020-03-27\",\n      }",{"title":22690,"description":22691,"authors":22696,"heroImage":22692,"date":22646,"category":6121,"tags":22697},[13131],[730,1569,3914],{"slug":22699,"featured":6,"template":736},"going-remote-education-virtual-learning-tips","content:en-us:blog:going-remote-education-virtual-learning-tips.yml","Going Remote Education Virtual Learning Tips","en-us/blog/going-remote-education-virtual-learning-tips.yml","en-us/blog/going-remote-education-virtual-learning-tips",{"_path":22705,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22706,"content":22712,"config":22715,"_id":22717,"_type":16,"title":22718,"_source":17,"_file":22719,"_stem":22720,"_extension":20},"/en-us/blog/how-we-utilize-user-stories-as-a-collaborative-design-tool",{"title":22707,"description":22708,"ogTitle":22707,"ogDescription":22708,"noIndex":6,"ogImage":22709,"ogUrl":22710,"ogSiteName":995,"ogType":996,"canonicalUrls":22710,"schema":22711},"Improving iteration and collaboration with user stories","From problem validation to implementation, here's the Release Management team workflow for building user-centered features at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681193/Blog/Hero%20Images/blog-user-stories.jpg","https://about.gitlab.com/blog/how-we-utilize-user-stories-as-a-collaborative-design-tool","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improving iteration and collaboration with user stories\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rayana Verissimo\"}],\n        \"datePublished\": \"2020-03-27\",\n      }",{"title":22707,"description":22708,"authors":22713,"heroImage":22709,"date":22646,"category":17170,"tags":22714},[18769],[2703,2702,2815,1569,2702],{"slug":22716,"featured":6,"template":736},"how-we-utilize-user-stories-as-a-collaborative-design-tool","content:en-us:blog:how-we-utilize-user-stories-as-a-collaborative-design-tool.yml","How We Utilize User Stories As A Collaborative Design Tool","en-us/blog/how-we-utilize-user-stories-as-a-collaborative-design-tool.yml","en-us/blog/how-we-utilize-user-stories-as-a-collaborative-design-tool",{"_path":22722,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22723,"content":22729,"config":22733,"_id":22735,"_type":16,"title":22736,"_source":17,"_file":22737,"_stem":22738,"_extension":20},"/en-us/blog/low-code-no-code",{"title":22724,"description":22725,"ogTitle":22724,"ogDescription":22725,"noIndex":6,"ogImage":22726,"ogUrl":22727,"ogSiteName":995,"ogType":996,"canonicalUrls":22727,"schema":22728},"The role low code app development tools may play at GitLab","Citizen developers are creating code without being coders. CEO Sid Sijbrandij and senior PMM Parker Ennis explain the impact of low code app development tools on GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681170/Blog/Hero%20Images/lowcodenocode.jpg","https://about.gitlab.com/blog/low-code-no-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The role low code app development tools may play at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-03-26\",\n      }",{"title":22724,"description":22725,"authors":22730,"heroImage":22726,"date":22731,"category":8140,"tags":22732},[10672],"2020-03-26",[233,1569,1335],{"slug":22734,"featured":6,"template":736},"low-code-no-code","content:en-us:blog:low-code-no-code.yml","Low Code No Code","en-us/blog/low-code-no-code.yml","en-us/blog/low-code-no-code",{"_path":22740,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22741,"content":22747,"config":22751,"_id":22753,"_type":16,"title":22754,"_source":17,"_file":22755,"_stem":22756,"_extension":20},"/en-us/blog/git-merge-fifteen-year-git-party",{"title":22742,"description":22743,"ogTitle":22742,"ogDescription":22743,"noIndex":6,"ogImage":22744,"ogUrl":22745,"ogSiteName":995,"ogType":996,"canonicalUrls":22745,"schema":22746},"Git Merge 2020: a celebration of Git","A look at Git Merge 2020 and a look forward to the next decade of remote, async, and powerful source code management.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681154/Blog/Hero%20Images/GitLab-sponsoring-Git-Merge.jpg","https://about.gitlab.com/blog/git-merge-fifteen-year-git-party","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git Merge 2020: a celebration of Git\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jordi Mon\"}],\n        \"datePublished\": \"2020-03-25\",\n      }",{"title":22742,"description":22743,"authors":22748,"heroImage":22744,"date":22749,"category":1388,"tags":22750},[20445],"2020-03-25",[279,1195,1265],{"slug":22752,"featured":6,"template":736},"git-merge-fifteen-year-git-party","content:en-us:blog:git-merge-fifteen-year-git-party.yml","Git Merge Fifteen Year Git Party","en-us/blog/git-merge-fifteen-year-git-party.yml","en-us/blog/git-merge-fifteen-year-git-party",{"_path":22758,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22759,"content":22764,"config":22767,"_id":22769,"_type":16,"title":22770,"_source":17,"_file":22771,"_stem":22772,"_extension":20},"/en-us/blog/q1-hackathon-recap",{"title":22760,"description":22761,"ogTitle":22760,"ogDescription":22761,"noIndex":6,"ogImage":18395,"ogUrl":22762,"ogSiteName":995,"ogType":996,"canonicalUrls":22762,"schema":22763},"What went down at the Q1'2020 GitLab Hackathon","A recap of GitLab community's accomplishments during another record-setting Hackathon on February 12-13.","https://about.gitlab.com/blog/q1-hackathon-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What went down at the Q1'2020 GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2020-03-25\",\n      }",{"title":22760,"description":22761,"authors":22765,"heroImage":18395,"date":22749,"category":17170,"tags":22766},[20126],[269,2815,1265],{"slug":22768,"featured":6,"template":736},"q1-hackathon-recap","content:en-us:blog:q1-hackathon-recap.yml","Q1 Hackathon Recap","en-us/blog/q1-hackathon-recap.yml","en-us/blog/q1-hackathon-recap",{"_path":22774,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22775,"content":22781,"config":22786,"_id":22788,"_type":16,"title":22789,"_source":17,"_file":22790,"_stem":22791,"_extension":20},"/en-us/blog/from-monolith-to-microservices-how-to-leverage-aws-with-gitlab",{"title":22776,"description":22777,"ogTitle":22776,"ogDescription":22777,"noIndex":6,"ogImage":22778,"ogUrl":22779,"ogSiteName":995,"ogType":996,"canonicalUrls":22779,"schema":22780},"From monolith to microservices: How to leverage AWS with GitLab","GitLab recently spent time with Ask Media Group and AWS to discuss how modernizing from self-managed to a cloud native system empowers developers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679645/Blog/Hero%20Images/askmediablog-.jpg","https://about.gitlab.com/blog/from-monolith-to-microservices-how-to-leverage-aws-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"From monolith to microservices: How to leverage AWS with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2020-03-24\",\n      }",{"title":22776,"description":22777,"authors":22782,"heroImage":22778,"date":22784,"category":1388,"tags":22785},[22783],"Brein Matturro","2020-03-24",[3721,4665,2908,2704],{"slug":22787,"featured":6,"template":736},"from-monolith-to-microservices-how-to-leverage-aws-with-gitlab","content:en-us:blog:from-monolith-to-microservices-how-to-leverage-aws-with-gitlab.yml","From Monolith To Microservices How To Leverage Aws With Gitlab","en-us/blog/from-monolith-to-microservices-how-to-leverage-aws-with-gitlab.yml","en-us/blog/from-monolith-to-microservices-how-to-leverage-aws-with-gitlab",{"_path":22793,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22794,"content":22800,"config":22805,"_id":22807,"_type":16,"title":22808,"_source":17,"_file":22809,"_stem":22810,"_extension":20},"/en-us/blog/the-trouble-with-technical-interviews",{"title":22795,"description":22796,"ogTitle":22795,"ogDescription":22796,"noIndex":6,"ogImage":22797,"ogUrl":22798,"ogSiteName":995,"ogType":996,"canonicalUrls":22798,"schema":22799},"The main problem with technical interviews","Forget the coding exercise. Here's how to create realistic scenarios for engineering candidates in technical interviews.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681148/Blog/Hero%20Images/nycbrooklyn.jpg","https://about.gitlab.com/blog/the-trouble-with-technical-interviews","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The trouble with technical interviews? They aren't like the job you're interviewing for\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-03-19\",\n      }",{"title":22801,"description":22796,"authors":22802,"heroImage":22797,"date":22803,"category":858,"tags":22804},"The trouble with technical interviews? They aren't like the job you're interviewing for",[16023],"2020-03-19",[10121,1569],{"slug":22806,"featured":6,"template":736},"the-trouble-with-technical-interviews","content:en-us:blog:the-trouble-with-technical-interviews.yml","The Trouble With Technical Interviews","en-us/blog/the-trouble-with-technical-interviews.yml","en-us/blog/the-trouble-with-technical-interviews",{"_path":22812,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22813,"content":22818,"config":22822,"_id":22824,"_type":16,"title":22825,"_source":17,"_file":22826,"_stem":22827,"_extension":20},"/en-us/blog/ci-minutes-for-free-users",{"title":22814,"description":22815,"ogTitle":22814,"ogDescription":22815,"noIndex":6,"ogImage":16110,"ogUrl":22816,"ogSiteName":995,"ogType":996,"canonicalUrls":22816,"schema":22817},"Changes to CI pipeline minutes for new free users","This change better aligns to GitLab's buyer-based open-core model.","https://about.gitlab.com/blog/ci-minutes-for-free-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Changes to CI pipeline minutes for new free users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2020-03-18\",\n      }",{"title":22814,"description":22815,"authors":22819,"heroImage":16110,"date":22820,"category":1049,"tags":22821},[3701],"2020-03-18",[110,564,269,1265],{"slug":22823,"featured":6,"template":736},"ci-minutes-for-free-users","content:en-us:blog:ci-minutes-for-free-users.yml","Ci Minutes For Free Users","en-us/blog/ci-minutes-for-free-users.yml","en-us/blog/ci-minutes-for-free-users",{"_path":22829,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22830,"content":22836,"config":22839,"_id":22841,"_type":16,"title":22842,"_source":17,"_file":22843,"_stem":22844,"_extension":20},"/en-us/blog/troubleshoot-delays-with-code-review-analytics",{"title":22831,"description":22832,"ogTitle":22831,"ogDescription":22832,"noIndex":6,"ogImage":22833,"ogUrl":22834,"ogSiteName":995,"ogType":996,"canonicalUrls":22834,"schema":22835},"Troubleshoot delays with our Code Review Analytics tool","Introduced in GitLab 12.7, Code Review Analytics can help you dig deeper into slow-moving merge requests.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681140/Blog/Hero%20Images/code_review_analytics.png","https://about.gitlab.com/blog/troubleshoot-delays-with-code-review-analytics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Troubleshoot delays with our Code Review Analytics tool\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Ward\"}],\n        \"datePublished\": \"2020-03-18\",\n      }",{"title":22831,"description":22832,"authors":22837,"heroImage":22833,"date":22820,"category":1049,"tags":22838},[22122],[1932,730,1569],{"slug":22840,"featured":6,"template":736},"troubleshoot-delays-with-code-review-analytics","content:en-us:blog:troubleshoot-delays-with-code-review-analytics.yml","Troubleshoot Delays With Code Review Analytics","en-us/blog/troubleshoot-delays-with-code-review-analytics.yml","en-us/blog/troubleshoot-delays-with-code-review-analytics",{"_path":22846,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22847,"content":22852,"config":22856,"_id":22858,"_type":16,"title":22859,"_source":17,"_file":22860,"_stem":22861,"_extension":20},"/en-us/blog/gitlab-ci-cd-with-firebase",{"title":22848,"description":22849,"ogTitle":22848,"ogDescription":22849,"noIndex":6,"ogImage":16110,"ogUrl":22850,"ogSiteName":995,"ogType":996,"canonicalUrls":22850,"schema":22851},"How to leverage GitLab CI/CD for Google Firebase","Firebase is a powerful backend-as-a-service tool and when combined with GitLab it can be easy to enable continuous deployment of database, serverless and apps.","https://about.gitlab.com/blog/gitlab-ci-cd-with-firebase","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to leverage GitLab CI/CD for Google Firebase\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2020-03-16\",\n      }",{"title":22848,"description":22849,"authors":22853,"heroImage":16110,"date":22854,"category":858,"tags":22855},[10835],"2020-03-16",[110,582,233],{"slug":22857,"featured":6,"template":736},"gitlab-ci-cd-with-firebase","content:en-us:blog:gitlab-ci-cd-with-firebase.yml","Gitlab Ci Cd With Firebase","en-us/blog/gitlab-ci-cd-with-firebase.yml","en-us/blog/gitlab-ci-cd-with-firebase",{"_path":22863,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22864,"content":22870,"config":22874,"_id":22876,"_type":16,"title":22877,"_source":17,"_file":22878,"_stem":22879,"_extension":20},"/en-us/blog/how-were-improving-self-managed-billing",{"title":22865,"description":22866,"ogTitle":22865,"ogDescription":22866,"noIndex":6,"ogImage":22867,"ogUrl":22868,"ogSiteName":995,"ogType":996,"canonicalUrls":22868,"schema":22869},"How we’re improving self-managed billing","GitLab is introducing Seat Link in our 12.9 release to make renewals easier for our self-managed customers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679112/Blog/Hero%20Images/golden-gate.jpg","https://about.gitlab.com/blog/how-were-improving-self-managed-billing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we’re improving self-managed billing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Karampalas\"}],\n        \"datePublished\": \"2020-03-16\",\n      }",{"title":22865,"description":22866,"authors":22871,"heroImage":22867,"date":22854,"category":1049,"tags":22873},[22872],"Michael Karampalas",[1569],{"slug":22875,"featured":6,"template":736},"how-were-improving-self-managed-billing","content:en-us:blog:how-were-improving-self-managed-billing.yml","How Were Improving Self Managed Billing","en-us/blog/how-were-improving-self-managed-billing.yml","en-us/blog/how-were-improving-self-managed-billing",{"_path":22881,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22882,"content":22888,"config":22893,"_id":22895,"_type":16,"title":22896,"_source":17,"_file":22897,"_stem":22898,"_extension":20},"/en-us/blog/partial-clone-for-massive-repositories",{"title":22883,"description":22884,"ogTitle":22883,"ogDescription":22884,"noIndex":6,"ogImage":22885,"ogUrl":22886,"ogSiteName":995,"ogType":996,"canonicalUrls":22886,"schema":22887},"How Git Partial Clone lets you fetch only the large file you need","Work faster with this experimental Partial Clone feature for huge Git repositories, saving you time, bandwidth, and storage, one large file at a time.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681131/Blog/Hero%20Images/partial-clone-for-massive-repositories.jpg","https://about.gitlab.com/blog/partial-clone-for-massive-repositories","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Git Partial Clone lets you fetch only the large file you need\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Ramsay\"}],\n        \"datePublished\": \"2020-03-13\",\n      }",{"title":22883,"description":22884,"authors":22889,"heroImage":22885,"date":22891,"category":1388,"tags":22892},[22890],"James Ramsay","2020-03-13",[1195,1988],{"slug":22894,"featured":6,"template":736},"partial-clone-for-massive-repositories","content:en-us:blog:partial-clone-for-massive-repositories.yml","Partial Clone For Massive Repositories","en-us/blog/partial-clone-for-massive-repositories.yml","en-us/blog/partial-clone-for-massive-repositories",{"_path":22900,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22901,"content":22906,"config":22910,"_id":22912,"_type":16,"title":22913,"_source":17,"_file":22914,"_stem":22915,"_extension":20},"/en-us/blog/free-period-for-cicd-external-repositories",{"title":22902,"description":22903,"ogTitle":22902,"ogDescription":22903,"noIndex":6,"ogImage":16110,"ogUrl":22904,"ogSiteName":995,"ogType":996,"canonicalUrls":22904,"schema":22905},"The free period of CI/CD for GitHub is ending soon","The free-of-charge use of CI/CD for GitHub is ending soon, so you'll need to upgrade to continue using this feature.","https://about.gitlab.com/blog/free-period-for-cicd-external-repositories","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The free period of CI/CD for GitHub is ending soon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Parker Ennis\"}],\n        \"datePublished\": \"2020-03-12\",\n      }",{"title":22902,"description":22903,"authors":22907,"heroImage":16110,"date":22908,"category":1049,"tags":22909},[16041],"2020-03-12",[110,564,269,1265],{"slug":22911,"featured":6,"template":736},"free-period-for-cicd-external-repositories","content:en-us:blog:free-period-for-cicd-external-repositories.yml","Free Period For Cicd External Repositories","en-us/blog/free-period-for-cicd-external-repositories.yml","en-us/blog/free-period-for-cicd-external-repositories",{"_path":22917,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22918,"content":22924,"config":22927,"_id":22929,"_type":16,"title":22930,"_source":17,"_file":22931,"_stem":22932,"_extension":20},"/en-us/blog/how-to-security-as-code",{"title":22919,"description":22920,"ogTitle":22919,"ogDescription":22920,"noIndex":6,"ogImage":22921,"ogUrl":22922,"ogSiteName":995,"ogType":996,"canonicalUrls":22922,"schema":22923},"Why implementing security as code is important for DevSecOps","We created a DevSecOps assessment to help your company level up its DevSecOps capabilities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663618/Blog/Hero%20Images/how-to-implement-security-as-code.jpg","https://about.gitlab.com/blog/how-to-security-as-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why implementing security as code is important for DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2020-03-12\",\n      }",{"title":22919,"description":22920,"authors":22925,"heroImage":22921,"date":22908,"category":8140,"tags":22926},[21105],[564,790,110,1335],{"slug":22928,"featured":6,"template":736},"how-to-security-as-code","content:en-us:blog:how-to-security-as-code.yml","How To Security As Code","en-us/blog/how-to-security-as-code.yml","en-us/blog/how-to-security-as-code",{"_path":22934,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22935,"content":22941,"config":22944,"_id":22946,"_type":16,"title":22947,"_source":17,"_file":22948,"_stem":22949,"_extension":20},"/en-us/blog/make-tracking-agreements-simple-compliance-dashboard",{"title":22936,"description":22937,"ogTitle":22936,"ogDescription":22937,"noIndex":6,"ogImage":22938,"ogUrl":22939,"ogSiteName":995,"ogType":996,"canonicalUrls":22939,"schema":22940},"Make tracking agreements simple with our new Compliance Dashboard","New in GitLab 12.8, this dashboard helps to simplify the complex process of compliance tracking, right inside GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666985/Blog/Hero%20Images/compliance_dashboard.png","https://about.gitlab.com/blog/make-tracking-agreements-simple-compliance-dashboard","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Make tracking agreements simple with our new Compliance Dashboard\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Ward\"}],\n        \"datePublished\": \"2020-03-11\",\n      }",{"title":22936,"description":22937,"authors":22942,"heroImage":22938,"date":22943,"category":1049},[22122],"2020-03-11",{"slug":22945,"featured":6,"template":736},"make-tracking-agreements-simple-compliance-dashboard","content:en-us:blog:make-tracking-agreements-simple-compliance-dashboard.yml","Make Tracking Agreements Simple Compliance Dashboard","en-us/blog/make-tracking-agreements-simple-compliance-dashboard.yml","en-us/blog/make-tracking-agreements-simple-compliance-dashboard",{"_path":22951,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22952,"content":22957,"config":22961,"_id":22963,"_type":16,"title":22964,"_source":17,"_file":22965,"_stem":22966,"_extension":20},"/en-us/blog/gitlab-eks-integration-how-to",{"title":22953,"description":22954,"ogTitle":22953,"ogDescription":22954,"noIndex":6,"ogImage":22083,"ogUrl":22955,"ogSiteName":995,"ogType":996,"canonicalUrls":22955,"schema":22956},"How to create a Kubernetes cluster on Amazon EKS in GitLab","A Kubernetes tutorial: Create clusters in a few clicks with GitLab and Amazon EKS.","https://about.gitlab.com/blog/gitlab-eks-integration-how-to","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to create a Kubernetes cluster on Amazon EKS in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2020-03-09\",\n      }",{"title":22953,"description":22954,"authors":22958,"heroImage":22083,"date":22959,"category":858,"tags":22960},[3181],"2020-03-09",[2908,730,4182],{"slug":22962,"featured":6,"template":736},"gitlab-eks-integration-how-to","content:en-us:blog:gitlab-eks-integration-how-to.yml","Gitlab Eks Integration How To","en-us/blog/gitlab-eks-integration-how-to.yml","en-us/blog/gitlab-eks-integration-how-to",{"_path":22968,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22969,"content":22975,"config":22979,"_id":22981,"_type":16,"title":22982,"_source":17,"_file":22983,"_stem":22984,"_extension":20},"/en-us/blog/bring-gitlab-to-classroom-nearyou",{"title":22970,"description":22971,"ogTitle":22970,"ogDescription":22971,"noIndex":6,"ogImage":22972,"ogUrl":22973,"ogSiteName":995,"ogType":996,"canonicalUrls":22973,"schema":22974},"How to bring GitLab to a classroom near you","Learn more about the education program at GitLab!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669503/Blog/Hero%20Images/susan-yin-library.jpg","https://about.gitlab.com/blog/bring-gitlab-to-classroom-nearyou","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to bring GitLab to a classroom near you\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christina Hupy, Ph.D.\"}],\n        \"datePublished\": \"2020-03-06\",\n      }",{"title":22970,"description":22971,"authors":22976,"heroImage":22972,"date":22977,"category":301,"tags":22978},[13131],"2020-03-06",[6376,790,6980],{"slug":22980,"featured":6,"template":736},"bring-gitlab-to-classroom-nearyou","content:en-us:blog:bring-gitlab-to-classroom-nearyou.yml","Bring Gitlab To Classroom Nearyou","en-us/blog/bring-gitlab-to-classroom-nearyou.yml","en-us/blog/bring-gitlab-to-classroom-nearyou",{"_path":22986,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":22987,"content":22993,"config":22996,"_id":22998,"_type":16,"title":22999,"_source":17,"_file":23000,"_stem":23001,"_extension":20},"/en-us/blog/resources-for-companies-embracing-remote-work",{"title":22988,"description":22989,"ogTitle":22988,"ogDescription":22989,"noIndex":6,"ogImage":22990,"ogUrl":22991,"ogSiteName":995,"ogType":996,"canonicalUrls":22991,"schema":22992},"Resources for companies embracing remote work","We're sharing our comprehensive guide to remote work with companies who are now embracing a remote environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679651/Blog/Hero%20Images/gitlab-all-remote-cover-2560x1440.jpg","https://about.gitlab.com/blog/resources-for-companies-embracing-remote-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Resources for companies embracing remote work\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Murph\"}],\n        \"datePublished\": \"2020-03-06\",\n      }",{"title":22988,"description":22989,"authors":22994,"heroImage":22990,"date":22977,"category":1049,"tags":22995},[18277],[1569,3914,1049],{"slug":22997,"featured":6,"template":736},"resources-for-companies-embracing-remote-work","content:en-us:blog:resources-for-companies-embracing-remote-work.yml","Resources For Companies Embracing Remote Work","en-us/blog/resources-for-companies-embracing-remote-work.yml","en-us/blog/resources-for-companies-embracing-remote-work",{"_path":23003,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23004,"content":23010,"config":23014,"_id":23016,"_type":16,"title":23017,"_source":17,"_file":23018,"_stem":23019,"_extension":20},"/en-us/blog/get-involved-with-gitlab-meetups",{"title":23005,"description":23006,"ogTitle":23005,"ogDescription":23006,"noIndex":6,"ogImage":23007,"ogUrl":23008,"ogSiteName":995,"ogType":996,"canonicalUrls":23008,"schema":23009},"Get involved with GitLab Meetups","Level up your career and network by becoming an organizer, speaker, or host.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679108/Blog/Hero%20Images/japanmeetup.jpg","https://about.gitlab.com/blog/get-involved-with-gitlab-meetups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get involved with GitLab Meetups\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2020-03-05\",\n      }",{"title":23005,"description":23006,"authors":23011,"heroImage":23007,"date":23012,"category":17170,"tags":23013},[6119],"2020-03-05",[269],{"slug":23015,"featured":6,"template":736},"get-involved-with-gitlab-meetups","content:en-us:blog:get-involved-with-gitlab-meetups.yml","Get Involved With Gitlab Meetups","en-us/blog/get-involved-with-gitlab-meetups.yml","en-us/blog/get-involved-with-gitlab-meetups",{"_path":23021,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23022,"content":23027,"config":23030,"_id":23032,"_type":16,"title":23033,"_source":17,"_file":23034,"_stem":23035,"_extension":20},"/en-us/blog/what-is-gitlab-flow",{"title":23023,"description":23024,"ogTitle":23023,"ogDescription":23024,"noIndex":6,"ogImage":19589,"ogUrl":23025,"ogSiteName":995,"ogType":996,"canonicalUrls":23025,"schema":23026},"The problem with Git flow","Learn why Git flow complicates the lifecycle and discover an alternative to streamline development.","https://about.gitlab.com/blog/what-is-gitlab-flow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The problem with Git flow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2020-03-05\",\n      }",{"title":23023,"description":23024,"authors":23028,"heroImage":19589,"date":23012,"category":1388,"tags":23029},[19332],[1195,1335,1932],{"slug":23031,"featured":6,"template":736},"what-is-gitlab-flow","content:en-us:blog:what-is-gitlab-flow.yml","What Is Gitlab Flow","en-us/blog/what-is-gitlab-flow.yml","en-us/blog/what-is-gitlab-flow",{"_path":23037,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23038,"content":23044,"config":23048,"_id":23050,"_type":16,"title":23051,"_source":17,"_file":23052,"_stem":23053,"_extension":20},"/en-us/blog/introducing-accessibility-testing-in-gitlab",{"title":23039,"description":23040,"ogTitle":23039,"ogDescription":23040,"noIndex":6,"ogImage":23041,"ogUrl":23042,"ogSiteName":995,"ogType":996,"canonicalUrls":23042,"schema":23043},"Introducing Accessibility Testing in GitLab","How Accessibility Testing reinforces our value that everyone can contribute","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666941/Blog/Hero%20Images/accessibility-vision.jpg","https://about.gitlab.com/blog/introducing-accessibility-testing-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing Accessibility Testing in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Heimbuck\"}],\n        \"datePublished\": \"2020-03-04\",\n      }",{"title":23039,"description":23040,"authors":23045,"heroImage":23041,"date":23046,"category":17170,"tags":23047},[6886],"2020-03-04",[110,730],{"slug":23049,"featured":6,"template":736},"introducing-accessibility-testing-in-gitlab","content:en-us:blog:introducing-accessibility-testing-in-gitlab.yml","Introducing Accessibility Testing In Gitlab","en-us/blog/introducing-accessibility-testing-in-gitlab.yml","en-us/blog/introducing-accessibility-testing-in-gitlab",{"_path":23055,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23056,"content":23062,"config":23066,"_id":23068,"_type":16,"title":23069,"_source":17,"_file":23070,"_stem":23071,"_extension":20},"/en-us/blog/unifylogsmetrics",{"title":23057,"description":23058,"ogTitle":23057,"ogDescription":23058,"noIndex":6,"ogImage":23059,"ogUrl":23060,"ogSiteName":995,"ogType":996,"canonicalUrls":23060,"schema":23061},"How to integrate operation logs and metrics in GitLab","We've added Elasticsearch to our monitoring solution so you can see all your logs and metrics in one view. Here's a first look at this new feature, released in GitLab 12.8.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666923/Blog/Hero%20Images/logs.png","https://about.gitlab.com/blog/unifylogsmetrics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to integrate operation logs and metrics in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dov Hershkovitch\"}],\n        \"datePublished\": \"2020-03-03\",\n      }",{"title":23057,"description":23058,"authors":23063,"heroImage":23059,"date":23064,"category":858,"tags":23065},[1712],"2020-03-03",[2908,1265,730],{"slug":23067,"featured":6,"template":736},"unifylogsmetrics","content:en-us:blog:unifylogsmetrics.yml","Unifylogsmetrics","en-us/blog/unifylogsmetrics.yml","en-us/blog/unifylogsmetrics",{"_path":23073,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23074,"content":23080,"config":23084,"_id":23086,"_type":16,"title":23087,"_source":17,"_file":23088,"_stem":23089,"_extension":20},"/en-us/blog/how-holistic-ux-design-increased-gitlab-free-trial-signups",{"title":23075,"description":23076,"ogTitle":23075,"ogDescription":23076,"noIndex":6,"ogImage":23077,"ogUrl":23078,"ogSiteName":995,"ogType":996,"canonicalUrls":23078,"schema":23079},"How holistic UX design increased GitLab.com free trial signups","We boosted free trial signups by 141% by focusing on designing whole experiences instead of separate screens, small interactions, or pieces of UI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681113/Blog/Hero%20Images/user-journey-map.jpg","https://about.gitlab.com/blog/how-holistic-ux-design-increased-gitlab-free-trial-signups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How holistic UX design increased GitLab.com free trial signups\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2020-02-27\",\n      }",{"title":23075,"description":23076,"authors":23081,"heroImage":23077,"date":23082,"category":1049,"tags":23083},[17415],"2020-02-27",[2703,2702,8475,1569],{"slug":23085,"featured":6,"template":736},"how-holistic-ux-design-increased-gitlab-free-trial-signups","content:en-us:blog:how-holistic-ux-design-increased-gitlab-free-trial-signups.yml","How Holistic Ux Design Increased Gitlab Free Trial Signups","en-us/blog/how-holistic-ux-design-increased-gitlab-free-trial-signups.yml","en-us/blog/how-holistic-ux-design-increased-gitlab-free-trial-signups",{"_path":23091,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23092,"content":23098,"config":23103,"_id":23105,"_type":16,"title":23106,"_source":17,"_file":23107,"_stem":23108,"_extension":20},"/en-us/blog/contribute-through-the-eyes-of-a-new-gitlabber",{"title":23093,"description":23094,"ogTitle":23093,"ogDescription":23094,"noIndex":6,"ogImage":23095,"ogUrl":23096,"ogSiteName":995,"ogType":996,"canonicalUrls":23096,"schema":23097},"Contribute through the eyes of a new GitLabber","I joined GitLab just in time to make it to Contribute New Orleans. Here's a few things you might want to know before going to Contribute Prague...","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683192/Blog/Hero%20Images/contribute-through-the-eyes-of-a-new-gitlabber-unsplash.jpg","https://about.gitlab.com/blog/contribute-through-the-eyes-of-a-new-gitlabber","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Contribute through the eyes of a new GitLabber\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vlad Stoianovici\"}],\n        \"datePublished\": \"2020-02-25\",\n      }",{"title":23093,"description":23094,"authors":23099,"heroImage":23095,"date":23101,"category":6121,"tags":23102},[23100],"Vlad Stoianovici","2020-02-25",[279,3914],{"slug":23104,"featured":6,"template":736},"contribute-through-the-eyes-of-a-new-gitlabber","content:en-us:blog:contribute-through-the-eyes-of-a-new-gitlabber.yml","Contribute Through The Eyes Of A New Gitlabber","en-us/blog/contribute-through-the-eyes-of-a-new-gitlabber.yml","en-us/blog/contribute-through-the-eyes-of-a-new-gitlabber",{"_path":23110,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23111,"content":23116,"config":23119,"_id":23121,"_type":16,"title":23122,"_source":17,"_file":23123,"_stem":23124,"_extension":20},"/en-us/blog/gitlabs-deprecation-strategy",{"title":23112,"description":23113,"ogTitle":23112,"ogDescription":23113,"noIndex":6,"ogImage":17164,"ogUrl":23114,"ogSiteName":995,"ogType":996,"canonicalUrls":23114,"schema":23115},"What is GitLab's feature deprecation strategy?","We release a lot of new features every month! Curious how we're thinking about deprecation?","https://about.gitlab.com/blog/gitlabs-deprecation-strategy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What is GitLab's feature deprecation strategy?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2020-02-21\",\n      }",{"title":23112,"description":23113,"authors":23117,"heroImage":17164,"date":23118,"category":17170},[3701],"2020-02-21",{"slug":23120,"featured":6,"template":736},"gitlabs-deprecation-strategy","content:en-us:blog:gitlabs-deprecation-strategy.yml","Gitlabs Deprecation Strategy","en-us/blog/gitlabs-deprecation-strategy.yml","en-us/blog/gitlabs-deprecation-strategy",{"_path":23126,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23127,"content":23133,"config":23138,"_id":23140,"_type":16,"title":23141,"_source":17,"_file":23142,"_stem":23143,"_extension":20},"/en-us/blog/protecting-manual-jobs",{"title":23128,"description":23129,"ogTitle":23128,"ogDescription":23129,"noIndex":6,"ogImage":23130,"ogUrl":23131,"ogSiteName":995,"ogType":996,"canonicalUrls":23131,"schema":23132},"How to limit access to manual pipeline gates and deployments using GitLab","Let's look at how to use protected environments to set up access controls for production deployments and manual gates.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681105/Blog/Hero%20Images/protect_manual_jobs.jpg","https://about.gitlab.com/blog/protecting-manual-jobs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to limit access to manual pipeline gates and deployments using GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Thao Yeager\"}],\n        \"datePublished\": \"2020-02-20\",\n      }",{"title":23128,"description":23129,"authors":23134,"heroImage":23130,"date":23136,"category":858,"tags":23137},[23135],"Thao Yeager","2020-02-20",[110,4182,1335,730,564],{"slug":23139,"featured":6,"template":736},"protecting-manual-jobs","content:en-us:blog:protecting-manual-jobs.yml","Protecting Manual Jobs","en-us/blog/protecting-manual-jobs.yml","en-us/blog/protecting-manual-jobs",{"_path":23145,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23146,"content":23152,"config":23156,"_id":23158,"_type":16,"title":23159,"_source":17,"_file":23160,"_stem":23161,"_extension":20},"/en-us/blog/questions-regarding-our-zero-trust-efforts",{"title":23147,"description":23148,"ogTitle":23147,"ogDescription":23148,"noIndex":6,"ogImage":23149,"ogUrl":23150,"ogSiteName":995,"ogType":996,"canonicalUrls":23150,"schema":23151},"We answer your most popular questions about our Zero Trust journey","From why we chose Okta to issues around data fluidity, here are answers to your most-asked ZT questions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681098/Blog/Hero%20Images/lysander-yuen-wk-ztn-unsplash.jpg","https://about.gitlab.com/blog/questions-regarding-our-zero-trust-efforts","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We answer your most popular questions about our Zero Trust journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2020-02-19\",\n      }",{"title":23147,"description":23148,"authors":23153,"heroImage":23149,"date":23154,"category":790,"tags":23155},[5108],"2020-02-19",[1569,790,5733],{"slug":23157,"featured":6,"template":736},"questions-regarding-our-zero-trust-efforts","content:en-us:blog:questions-regarding-our-zero-trust-efforts.yml","Questions Regarding Our Zero Trust Efforts","en-us/blog/questions-regarding-our-zero-trust-efforts.yml","en-us/blog/questions-regarding-our-zero-trust-efforts",{"_path":23163,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23164,"content":23170,"config":23175,"_id":23177,"_type":16,"title":23178,"_source":17,"_file":23179,"_stem":23180,"_extension":20},"/en-us/blog/how-were-building-up-performance-testing-of-gitlab",{"title":23165,"description":23166,"ogTitle":23165,"ogDescription":23166,"noIndex":6,"ogImage":23167,"ogUrl":23168,"ogSiteName":995,"ogType":996,"canonicalUrls":23168,"schema":23169},"How GitLab's QA Team Leverages Performance Testing Tools","We built our open source GitLab Performance tool to evaluate pain points and implement solutions on every GitLab environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681087/Blog/Hero%20Images/performance-server-front.jpg","https://about.gitlab.com/blog/how-were-building-up-performance-testing-of-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How our QA team leverages GitLab’s performance testing tool (and you can too)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grant Young\"}],\n        \"datePublished\": \"2020-02-18\",\n      }",{"title":23171,"description":23166,"authors":23172,"heroImage":23167,"date":23173,"category":858,"tags":23174},"How our QA team leverages GitLab’s performance testing tool (and you can too)",[4311],"2020-02-18",[1988,964],{"slug":23176,"featured":6,"template":736},"how-were-building-up-performance-testing-of-gitlab","content:en-us:blog:how-were-building-up-performance-testing-of-gitlab.yml","How Were Building Up Performance Testing Of Gitlab","en-us/blog/how-were-building-up-performance-testing-of-gitlab.yml","en-us/blog/how-were-building-up-performance-testing-of-gitlab",{"_path":23182,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23183,"content":23189,"config":23193,"_id":23195,"_type":16,"title":23196,"_source":17,"_file":23197,"_stem":23198,"_extension":20},"/en-us/blog/staff-level-engineering-at-gitlab",{"title":23184,"description":23185,"ogTitle":23184,"ogDescription":23185,"noIndex":6,"ogImage":23186,"ogUrl":23187,"ogSiteName":995,"ogType":996,"canonicalUrls":23187,"schema":23188},"What does Staff level mean at GitLab?","Get a multifaceted view of Staff level Engineering at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681092/Blog/Hero%20Images/staff-engineering.jpg","https://about.gitlab.com/blog/staff-level-engineering-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What does Staff level mean at GitLab?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Charlie Ablett\"}],\n        \"datePublished\": \"2020-02-18\",\n      }",{"title":23184,"description":23185,"authors":23190,"heroImage":23186,"date":23173,"category":17170,"tags":23192},[23191],"Charlie Ablett",[233],{"slug":23194,"featured":6,"template":736},"staff-level-engineering-at-gitlab","content:en-us:blog:staff-level-engineering-at-gitlab.yml","Staff Level Engineering At Gitlab","en-us/blog/staff-level-engineering-at-gitlab.yml","en-us/blog/staff-level-engineering-at-gitlab",{"_path":23200,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23201,"content":23206,"config":23210,"_id":23212,"_type":16,"title":23213,"_source":17,"_file":23214,"_stem":23215,"_extension":20},"/en-us/blog/gitlab-at-scale",{"title":23202,"description":23203,"ogTitle":23202,"ogDescription":23203,"noIndex":6,"ogImage":18395,"ogUrl":23204,"ogSiteName":995,"ogType":996,"canonicalUrls":23204,"schema":23205},"Join the GitLab Community Day at SCaLE 18x!","If you're attending SCaLE 18x, here's how you can find the GitLab community at the event.","https://about.gitlab.com/blog/gitlab-at-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join the GitLab Community Day at SCaLE 18x!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2020-02-17\",\n      }",{"title":23202,"description":23203,"authors":23207,"heroImage":18395,"date":23208,"category":17170,"tags":23209},[20126],"2020-02-17",[269,2815,1265],{"slug":23211,"featured":6,"template":736},"gitlab-at-scale","content:en-us:blog:gitlab-at-scale.yml","Gitlab At Scale","en-us/blog/gitlab-at-scale.yml","en-us/blog/gitlab-at-scale",{"_path":23217,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23218,"content":23224,"config":23228,"_id":23230,"_type":16,"title":23231,"_source":17,"_file":23232,"_stem":23233,"_extension":20},"/en-us/blog/vault-integration-process",{"title":23219,"description":23220,"ogTitle":23219,"ogDescription":23220,"noIndex":6,"ogImage":23221,"ogUrl":23222,"ogSiteName":995,"ogType":996,"canonicalUrls":23222,"schema":23223},"How we’ll simplify Vault access for GitLab CI/CD users","CEO Sid Sijbrandij and senior product manager Thao Yeager discuss the easiest way to bring Vault access to GitLab customers. Hint: it involves a minimum viable change.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681067/Blog/Hero%20Images/vaultintegration.jpg","https://about.gitlab.com/blog/vault-integration-process","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we’ll simplify Vault access for GitLab CI/CD users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-02-13\",\n      }",{"title":23219,"description":23220,"authors":23225,"heroImage":23221,"date":23226,"category":1049,"tags":23227},[10672],"2020-02-13",[110,790,233],{"slug":23229,"featured":6,"template":736},"vault-integration-process","content:en-us:blog:vault-integration-process.yml","Vault Integration Process","en-us/blog/vault-integration-process.yml","en-us/blog/vault-integration-process",{"_path":23235,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23236,"content":23242,"config":23247,"_id":23249,"_type":16,"title":23250,"_source":17,"_file":23251,"_stem":23252,"_extension":20},"/en-us/blog/plundering-gcp-escalating-privileges-in-google-cloud-platform",{"title":23237,"description":23238,"ogTitle":23237,"ogDescription":23238,"noIndex":6,"ogImage":23239,"ogUrl":23240,"ogSiteName":995,"ogType":996,"canonicalUrls":23240,"schema":23241},"Google Cloud privilege escalation & post-exploitation tactics","A Red Team exercise on exploiting design decisions on GCP.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672755/Blog/Hero%20Images/white-lightning-heating-mountain.jpg","https://about.gitlab.com/blog/plundering-gcp-escalating-privileges-in-google-cloud-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial on privilege escalation and post exploitation tactics in Google Cloud Platform environments\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Moberly\"}],\n        \"datePublished\": \"2020-02-12\",\n      }",{"title":23243,"description":23238,"authors":23244,"heroImage":23239,"date":23245,"category":790,"tags":23246},"Tutorial on privilege escalation and post exploitation tactics in Google Cloud Platform environments",[2720],"2020-02-12",[790,3292,1265],{"slug":23248,"featured":6,"template":736},"plundering-gcp-escalating-privileges-in-google-cloud-platform","content:en-us:blog:plundering-gcp-escalating-privileges-in-google-cloud-platform.yml","Plundering Gcp Escalating Privileges In Google Cloud Platform","en-us/blog/plundering-gcp-escalating-privileges-in-google-cloud-platform.yml","en-us/blog/plundering-gcp-escalating-privileges-in-google-cloud-platform",{"_path":23254,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23255,"content":23260,"config":23264,"_id":23266,"_type":16,"title":23267,"_source":17,"_file":23268,"_stem":23269,"_extension":20},"/en-us/blog/lessons-learned-as-data-team-manager",{"title":23256,"description":23257,"ogTitle":23256,"ogDescription":23257,"noIndex":6,"ogImage":17164,"ogUrl":23258,"ogSiteName":995,"ogType":996,"canonicalUrls":23258,"schema":23259},"Lessons learned managing the GitLab Data team","Staff Data Engineer Taylor Murphy shares his lessons and takeways from one year as the Data team manager.","https://about.gitlab.com/blog/lessons-learned-as-data-team-manager","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Lessons learned managing the GitLab Data team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor Murphy\"}],\n        \"datePublished\": \"2020-02-10\",\n      }",{"title":23256,"description":23257,"authors":23261,"heroImage":17164,"date":23262,"category":6121,"tags":23263},[22470],"2020-02-10",[4182,2702,729],{"slug":23265,"featured":6,"template":736},"lessons-learned-as-data-team-manager","content:en-us:blog:lessons-learned-as-data-team-manager.yml","Lessons Learned As Data Team Manager","en-us/blog/lessons-learned-as-data-team-manager.yml","en-us/blog/lessons-learned-as-data-team-manager",{"_path":23271,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23272,"content":23278,"config":23282,"_id":23284,"_type":16,"title":23285,"_source":17,"_file":23286,"_stem":23287,"_extension":20},"/en-us/blog/kubernetes-and-multicloud",{"title":23273,"description":23274,"ogTitle":23273,"ogDescription":23274,"noIndex":6,"ogImage":23275,"ogUrl":23276,"ogSiteName":995,"ogType":996,"canonicalUrls":23276,"schema":23277},"How Kubernetes merges with multicloud & how to manage it","Google Cloud's Ian Chakeres and Tim Hockin discuss how Kubernetes reduces cloud noise and makes multicloud possible.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681075/Blog/Hero%20Images/kubernetes-multicloud-blog.jpg","https://about.gitlab.com/blog/kubernetes-and-multicloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Kubernetes merges with multicloud & how to manage it\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-02-05\",\n      }",{"title":23273,"description":23274,"authors":23279,"heroImage":23275,"date":23280,"category":8140,"tags":23281},[17150],"2020-02-05",[582,2908],{"slug":23283,"featured":6,"template":736},"kubernetes-and-multicloud","content:en-us:blog:kubernetes-and-multicloud.yml","Kubernetes And Multicloud","en-us/blog/kubernetes-and-multicloud.yml","en-us/blog/kubernetes-and-multicloud",{"_path":23289,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23290,"content":23296,"config":23300,"_id":23302,"_type":16,"title":23303,"_source":17,"_file":23304,"_stem":23305,"_extension":20},"/en-us/blog/power-of-iteration",{"title":23291,"description":23292,"ogTitle":23291,"ogDescription":23292,"noIndex":6,"ogImage":23293,"ogUrl":23294,"ogSiteName":995,"ogType":996,"canonicalUrls":23294,"schema":23295},"How iteration helps build our product and improve our work lives","One of GitLab’s core values, iteration permeates everything we do from UX design to product development. And when it comes to our work lives, iteration is a game changer.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681060/Blog/Hero%20Images/iteration.jpg","https://about.gitlab.com/blog/power-of-iteration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How iteration helps build our product and improve our work lives\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-02-04\",\n      }",{"title":23291,"description":23292,"authors":23297,"heroImage":23293,"date":23298,"category":6121,"tags":23299},[10672],"2020-02-04",[2815,1569,6980],{"slug":23301,"featured":6,"template":736},"power-of-iteration","content:en-us:blog:power-of-iteration.yml","Power Of Iteration","en-us/blog/power-of-iteration.yml","en-us/blog/power-of-iteration",{"_path":23307,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23308,"content":23313,"config":23316,"_id":23318,"_type":16,"title":23319,"_source":17,"_file":23320,"_stem":23321,"_extension":20},"/en-us/blog/devsecops-survey-sweepstakes",{"title":23309,"description":23310,"ogTitle":23309,"ogDescription":23310,"noIndex":6,"ogImage":16110,"ogUrl":23311,"ogSiteName":995,"ogType":996,"canonicalUrls":23311,"schema":23312},"Our 2020 Global DevSecOps Survey is here – take it and enter to win","Read respondents from 21 countries share their DevOps successes, challenges, and ongoing struggles","https://about.gitlab.com/blog/devsecops-survey-sweepstakes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our 2020 Global DevSecOps Survey is here – take it and enter to win\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2020-02-03\",\n      }",{"title":23309,"description":23310,"authors":23314,"heroImage":16110,"date":23315,"category":1049},[10672],"2020-02-03",{"slug":23317,"featured":6,"template":736},"devsecops-survey-sweepstakes","content:en-us:blog:devsecops-survey-sweepstakes.yml","Devsecops Survey Sweepstakes","en-us/blog/devsecops-survey-sweepstakes.yml","en-us/blog/devsecops-survey-sweepstakes",{"_path":23323,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23324,"content":23330,"config":23334,"_id":23336,"_type":16,"title":23337,"_source":17,"_file":23338,"_stem":23339,"_extension":20},"/en-us/blog/all-aboard-merge-trains",{"title":23325,"description":23326,"ogTitle":23325,"ogDescription":23326,"noIndex":6,"ogImage":23327,"ogUrl":23328,"ogSiteName":995,"ogType":996,"canonicalUrls":23328,"schema":23329},"How starting merge trains improve efficiency for DevOps","No more queuing and waiting for pipeline results! Read how merge trains will speed up your deployments while making sure master stays green.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678419/Blog/Hero%20Images/merge_trains.jpg","https://about.gitlab.com/blog/all-aboard-merge-trains","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How starting merge trains improve efficiency for DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Orit Golowinski\"}],\n        \"datePublished\": \"2020-01-30\",\n      }",{"title":23325,"description":23326,"authors":23331,"heroImage":23327,"date":23332,"category":858,"tags":23333},[14332],"2020-01-30",[110,4182,1335,730],{"slug":23335,"featured":6,"template":736},"all-aboard-merge-trains","content:en-us:blog:all-aboard-merge-trains.yml","All Aboard Merge Trains","en-us/blog/all-aboard-merge-trains.yml","en-us/blog/all-aboard-merge-trains",{"_path":23341,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23342,"content":23348,"config":23352,"_id":23353,"_type":16,"title":23354,"_source":17,"_file":23355,"_stem":23356,"_extension":20},"/en-us/blog/insights",{"title":23343,"description":23344,"ogTitle":23343,"ogDescription":23344,"noIndex":6,"ogImage":23345,"ogUrl":23346,"ogSiteName":995,"ogType":996,"canonicalUrls":23346,"schema":23347},"GitLab: New Tool to Visualize High-Level Project Trends","How our easy to configure Insights technology takes data from issues and merge requests to build visually appealing charts.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681053/Blog/Hero%20Images/birdseyeview.jpg","https://about.gitlab.com/blog/insights","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're dogfooding a tool to help visualize high-level trends in GitLab projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-01-30\",\n      }",{"title":23349,"description":23344,"authors":23350,"heroImage":23345,"date":23332,"category":858,"tags":23351},"We're dogfooding a tool to help visualize high-level trends in GitLab projects",[16023],[730,564,1569],{"slug":8140,"featured":6,"template":736},"content:en-us:blog:insights.yml","Insights","en-us/blog/insights.yml","en-us/blog/insights",{"_path":23358,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23359,"content":23364,"config":23367,"_id":23369,"_type":16,"title":23370,"_source":17,"_file":23371,"_stem":23372,"_extension":20},"/en-us/blog/simple-trick-for-smaller-screenshots",{"title":23360,"description":23361,"ogTitle":23360,"ogDescription":23361,"noIndex":6,"ogImage":10957,"ogUrl":23362,"ogSiteName":995,"ogType":996,"canonicalUrls":23362,"schema":23363},"One simple trick to make your screenshots 80% smaller","How to compress your screenshots automatically with pngquant and zopfli","https://about.gitlab.com/blog/simple-trick-for-smaller-screenshots","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"One simple trick to make your screenshots 80% smaller\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Ramsay\"}],\n        \"datePublished\": \"2020-01-30\",\n      }",{"title":23360,"description":23361,"authors":23365,"heroImage":10957,"date":23332,"category":17170,"tags":23366},[22890],[1335],{"slug":23368,"featured":6,"template":736},"simple-trick-for-smaller-screenshots","content:en-us:blog:simple-trick-for-smaller-screenshots.yml","Simple Trick For Smaller Screenshots","en-us/blog/simple-trick-for-smaller-screenshots.yml","en-us/blog/simple-trick-for-smaller-screenshots",{"_path":23374,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23375,"content":23380,"config":23386,"_id":23388,"_type":16,"title":23389,"_source":17,"_file":23390,"_stem":23391,"_extension":20},"/en-us/blog/comparably-awards-gitlab-top-culture-diversity-awards",{"title":23376,"description":23377,"ogTitle":23376,"ogDescription":23377,"noIndex":6,"ogImage":16110,"ogUrl":23378,"ogSiteName":995,"ogType":996,"canonicalUrls":23378,"schema":23379},"GitLab wins culture & diversity awards: More work ahead!","We're honored to be named best company for culture, diversity, and women. Here's how we're continuously improving our commitment to diversity, inclusion and belonging.","https://about.gitlab.com/blog/comparably-awards-gitlab-top-culture-diversity-awards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Comparably awards GitLab top culture and diversity awards but there is still work to do\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Carol Teskey\"}],\n        \"datePublished\": \"2020-01-29\",\n      }",{"title":23381,"description":23377,"authors":23382,"heroImage":16110,"date":23384,"category":1049,"tags":23385},"Comparably awards GitLab top culture and diversity awards but there is still work to do",[23383],"Carol Teskey","2020-01-29",[1049],{"slug":23387,"featured":6,"template":736},"comparably-awards-gitlab-top-culture-diversity-awards","content:en-us:blog:comparably-awards-gitlab-top-culture-diversity-awards.yml","Comparably Awards Gitlab Top Culture Diversity Awards","en-us/blog/comparably-awards-gitlab-top-culture-diversity-awards.yml","en-us/blog/comparably-awards-gitlab-top-culture-diversity-awards",{"_path":23393,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23394,"content":23400,"config":23404,"_id":23406,"_type":16,"title":23407,"_source":17,"_file":23408,"_stem":23409,"_extension":20},"/en-us/blog/gitlab-taught-in-korean-uni",{"title":23395,"description":23396,"ogTitle":23395,"ogDescription":23396,"noIndex":6,"ogImage":23397,"ogUrl":23398,"ogSiteName":995,"ogType":996,"canonicalUrls":23398,"schema":23399},"Schooled in GitLab: Teaching our handbook at a South Korean university","Students at Hankuk University of Foreign Studies tackled our handbook. The students' favorite topics were compensation and remote work.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673044/Blog/Hero%20Images/books-internship-post.jpg","https://about.gitlab.com/blog/gitlab-taught-in-korean-uni","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Schooled in GitLab: Teaching our handbook at a South Korean university\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Guenjun Yoo\"}],\n        \"datePublished\": \"2020-01-29\",\n      }",{"title":23395,"description":23396,"authors":23401,"heroImage":23397,"date":23384,"category":1388,"tags":23403},[23402],"Guenjun Yoo",[6980,269,564,1265,3914,10011],{"slug":23405,"featured":6,"template":736},"gitlab-taught-in-korean-uni","content:en-us:blog:gitlab-taught-in-korean-uni.yml","Gitlab Taught In Korean Uni","en-us/blog/gitlab-taught-in-korean-uni.yml","en-us/blog/gitlab-taught-in-korean-uni",{"_path":23411,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23412,"content":23418,"config":23422,"_id":23424,"_type":16,"title":23425,"_source":17,"_file":23426,"_stem":23427,"_extension":20},"/en-us/blog/ciso-secure-next-gen-software",{"title":23413,"description":23414,"ogTitle":23413,"ogDescription":23414,"noIndex":6,"ogImage":23415,"ogUrl":23416,"ogSiteName":995,"ogType":996,"canonicalUrls":23416,"schema":23417},"Securing next generation software","Scale your security efforts by understanding and integrating with the DevOps workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673038/Blog/Hero%20Images/ciso-secure-next-gen-software.jpg","https://about.gitlab.com/blog/ciso-secure-next-gen-software","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Securing next generation software\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2020-01-27\",\n      }",{"title":23413,"description":23414,"authors":23419,"heroImage":23415,"date":23420,"category":8140,"tags":23421},[11487],"2020-01-27",[790,564,1335],{"slug":23423,"featured":6,"template":736},"ciso-secure-next-gen-software","content:en-us:blog:ciso-secure-next-gen-software.yml","Ciso Secure Next Gen Software","en-us/blog/ciso-secure-next-gen-software.yml","en-us/blog/ciso-secure-next-gen-software",{"_path":23429,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23430,"content":23435,"config":23439,"_id":23441,"_type":16,"title":23442,"_source":17,"_file":23443,"_stem":23444,"_extension":20},"/en-us/blog/kubecon-na-2019-are-you-about-to-break-prod",{"title":23431,"description":23432,"ogTitle":23431,"ogDescription":23432,"noIndex":6,"ogImage":16110,"ogUrl":23433,"ogSiteName":995,"ogType":996,"canonicalUrls":23433,"schema":23434},"KubeCon NA: Are you about to break Prod?","Use Pulumi and GitLab to build a pipeline that validates your application, infrastructure, and deployment process.","https://about.gitlab.com/blog/kubecon-na-2019-are-you-about-to-break-prod","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"KubeCon NA: Are you about to break Prod?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erin Krengel, Pulumi\"}],\n        \"datePublished\": \"2020-01-27\",\n      }",{"title":23431,"description":23432,"authors":23436,"heroImage":16110,"date":23420,"category":1388,"tags":23438},[23437],"Erin Krengel, Pulumi",[964,2908,1265,110,233,279],{"slug":23440,"featured":6,"template":736},"kubecon-na-2019-are-you-about-to-break-prod","content:en-us:blog:kubecon-na-2019-are-you-about-to-break-prod.yml","Kubecon Na 2019 Are You About To Break Prod","en-us/blog/kubecon-na-2019-are-you-about-to-break-prod.yml","en-us/blog/kubecon-na-2019-are-you-about-to-break-prod",{"_path":23446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23447,"content":23452,"config":23456,"_id":23458,"_type":16,"title":23459,"_source":17,"_file":23460,"_stem":23461,"_extension":20},"/en-us/blog/community-update-for-2019",{"title":23448,"description":23449,"ogTitle":23448,"ogDescription":23449,"noIndex":6,"ogImage":18395,"ogUrl":23450,"ogSiteName":995,"ogType":996,"canonicalUrls":23450,"schema":23451},"Celebrating wider community contributions in 2019 and returning to FOSDEM","Here's what the wider community accomplished in 2019 and where to find GitLab at FOSDEM'20.","https://about.gitlab.com/blog/community-update-for-2019","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Celebrating wider community contributions in 2019 and returning to FOSDEM\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2020-01-24\",\n      }",{"title":23448,"description":23449,"authors":23453,"heroImage":18395,"date":23454,"category":17170,"tags":23455},[20126],"2020-01-24",[269,2815,1265],{"slug":23457,"featured":6,"template":736},"community-update-for-2019","content:en-us:blog:community-update-for-2019.yml","Community Update For 2019","en-us/blog/community-update-for-2019.yml","en-us/blog/community-update-for-2019",{"_path":23463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23464,"content":23470,"config":23473,"_id":23475,"_type":16,"title":23476,"_source":17,"_file":23477,"_stem":23478,"_extension":20},"/en-us/blog/goldman-sachs-partners-with-gitlab-for-next-gen-platform-strategies",{"title":23465,"description":23466,"ogTitle":23465,"ogDescription":23466,"noIndex":6,"ogImage":23467,"ogUrl":23468,"ogSiteName":995,"ogType":996,"canonicalUrls":23468,"schema":23469},"Goldman Sachs partners with GitLab for next-gen platform strategies","Goldman Sachs’ George Grant shares how partnering with GitLab has modernized the development ecosystem.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671845/Blog/Hero%20Images/serverless-ops-blog.jpg","https://about.gitlab.com/blog/goldman-sachs-partners-with-gitlab-for-next-gen-platform-strategies","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Goldman Sachs partners with GitLab for next-gen platform strategies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2020-01-24\",\n      }",{"title":23465,"description":23466,"authors":23471,"heroImage":23467,"date":23454,"category":8140,"tags":23472},[22783],[4665,110,564,1195,269],{"slug":23474,"featured":6,"template":736},"goldman-sachs-partners-with-gitlab-for-next-gen-platform-strategies","content:en-us:blog:goldman-sachs-partners-with-gitlab-for-next-gen-platform-strategies.yml","Goldman Sachs Partners With Gitlab For Next Gen Platform Strategies","en-us/blog/goldman-sachs-partners-with-gitlab-for-next-gen-platform-strategies.yml","en-us/blog/goldman-sachs-partners-with-gitlab-for-next-gen-platform-strategies",{"_path":23480,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23481,"content":23486,"config":23490,"_id":23492,"_type":16,"title":23493,"_source":17,"_file":23494,"_stem":23495,"_extension":20},"/en-us/blog/upgrading-bootstrap-vue",{"title":23482,"description":23483,"ogTitle":23482,"ogDescription":23483,"noIndex":6,"ogImage":17164,"ogUrl":23484,"ogSiteName":995,"ogType":996,"canonicalUrls":23484,"schema":23485},"Upgrading bootstrap-vue in gitlab-ui","How we upgraded BootstrapVue to v2 stable in GitLab UI, our UI library, and what challenges we encountered in the process","https://about.gitlab.com/blog/upgrading-bootstrap-vue","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Upgrading bootstrap-vue in gitlab-ui\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Enrique Alcántara\"},{\"@type\":\"Person\",\"name\":\"Paul Gascou-Vaillancourt\"}],\n        \"datePublished\": \"2020-01-24\",\n      }",{"title":23482,"description":23483,"authors":23487,"heroImage":17164,"date":23454,"category":17170},[23488,23489],"Enrique Alcántara","Paul Gascou-Vaillancourt",{"slug":23491,"featured":6,"template":736},"upgrading-bootstrap-vue","content:en-us:blog:upgrading-bootstrap-vue.yml","Upgrading Bootstrap Vue","en-us/blog/upgrading-bootstrap-vue.yml","en-us/blog/upgrading-bootstrap-vue",{"_path":23497,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23498,"content":23504,"config":23508,"_id":23510,"_type":16,"title":23511,"_source":17,"_file":23512,"_stem":23513,"_extension":20},"/en-us/blog/iteration-on-error-tracking",{"title":23499,"description":23500,"ogTitle":23499,"ogDescription":23500,"noIndex":6,"ogImage":23501,"ogUrl":23502,"ogSiteName":995,"ogType":996,"canonicalUrls":23502,"schema":23503},"Why we scoped down to build up error tracking ","We dig into how shipping small iterations is accelerating delivery on our error tracking product.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665440/Blog/Hero%20Images/automate-ce-ee-merges.jpg","https://about.gitlab.com/blog/iteration-on-error-tracking","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we scoped down to build up error tracking \",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-01-23\",\n      }",{"title":23499,"description":23500,"authors":23505,"heroImage":23501,"date":23506,"category":858,"tags":23507},[16023],"2020-01-23",[564,10121,6376,1335],{"slug":23509,"featured":6,"template":736},"iteration-on-error-tracking","content:en-us:blog:iteration-on-error-tracking.yml","Iteration On Error Tracking","en-us/blog/iteration-on-error-tracking.yml","en-us/blog/iteration-on-error-tracking",{"_path":23515,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23516,"content":23522,"config":23526,"_id":23528,"_type":16,"title":23529,"_source":17,"_file":23530,"_stem":23531,"_extension":20},"/en-us/blog/gitlab-apis-ci",{"title":23517,"description":23518,"ogTitle":23517,"ogDescription":23518,"noIndex":6,"ogImage":23519,"ogUrl":23520,"ogSiteName":995,"ogType":996,"canonicalUrls":23520,"schema":23521},"Using Gitlab APIs: Real Use Case Scenario","Learn about how GitLab CI and APIs can help you automate bulk tasks","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681037/Blog/Hero%20Images/gitlabapi-cover.jpg","https://about.gitlab.com/blog/gitlab-apis-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using Gitlab APIs: Real Use Case Scenario\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Arias\"}],\n        \"datePublished\": \"2020-01-22\",\n      }",{"title":23517,"description":23518,"authors":23523,"heroImage":23519,"date":23524,"category":17170,"tags":23525},[855],"2020-01-22",[2097,771,564,4182],{"slug":23527,"featured":6,"template":736},"gitlab-apis-ci","content:en-us:blog:gitlab-apis-ci.yml","Gitlab Apis Ci","en-us/blog/gitlab-apis-ci.yml","en-us/blog/gitlab-apis-ci",{"_path":23533,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23534,"content":23540,"config":23544,"_id":23546,"_type":16,"title":23547,"_source":17,"_file":23548,"_stem":23549,"_extension":20},"/en-us/blog/epics-three-features-accelerate-your-workflow",{"title":23535,"description":23536,"ogTitle":23535,"ogDescription":23536,"noIndex":6,"ogImage":23537,"ogUrl":23538,"ogSiteName":995,"ogType":996,"canonicalUrls":23538,"schema":23539},"3 Major improvements coming to GitLab Epics","Explore three new features of GitLab Epics to enhance your workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671891/Blog/Hero%20Images/epicsimprovements.jpg","https://about.gitlab.com/blog/epics-three-features-accelerate-your-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Major improvements coming to GitLab Epics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2020-01-21\",\n      }",{"title":23535,"description":23536,"authors":23541,"heroImage":23537,"date":23542,"category":1049,"tags":23543},[19332],"2020-01-21",[729,2815,1335],{"slug":23545,"featured":6,"template":736},"epics-three-features-accelerate-your-workflow","content:en-us:blog:epics-three-features-accelerate-your-workflow.yml","Epics Three Features Accelerate Your Workflow","en-us/blog/epics-three-features-accelerate-your-workflow.yml","en-us/blog/epics-three-features-accelerate-your-workflow",{"_path":23551,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23552,"content":23558,"config":23561,"_id":23563,"_type":16,"title":23564,"_source":17,"_file":23565,"_stem":23566,"_extension":20},"/en-us/blog/gitlab-is-now-a-member-of-the-owasp-foundation",{"title":23553,"description":23554,"ogTitle":23553,"ogDescription":23554,"noIndex":6,"ogImage":23555,"ogUrl":23556,"ogSiteName":995,"ogType":996,"canonicalUrls":23556,"schema":23557},"GitLab is now a member of the OWASP Foundation","GitLab is thrilled to announce our membership in the OWASP Foundation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679658/Blog/Hero%20Images/Owasp_logo.jpg","https://about.gitlab.com/blog/gitlab-is-now-a-member-of-the-owasp-foundation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is now a member of the OWASP Foundation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Wayne Haber\"}],\n        \"datePublished\": \"2020-01-21\",\n      }",{"title":23553,"description":23554,"authors":23559,"heroImage":23555,"date":23542,"category":790,"tags":23560},[15310],[279,1049,1265,790],{"slug":23562,"featured":6,"template":736},"gitlab-is-now-a-member-of-the-owasp-foundation","content:en-us:blog:gitlab-is-now-a-member-of-the-owasp-foundation.yml","Gitlab Is Now A Member Of The Owasp Foundation","en-us/blog/gitlab-is-now-a-member-of-the-owasp-foundation.yml","en-us/blog/gitlab-is-now-a-member-of-the-owasp-foundation",{"_path":23568,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23569,"content":23575,"config":23578,"_id":23580,"_type":16,"title":23581,"_source":17,"_file":23582,"_stem":23583,"_extension":20},"/en-us/blog/introducing-resource-groups",{"title":23570,"description":23571,"ogTitle":23570,"ogDescription":23571,"noIndex":6,"ogImage":23572,"ogUrl":23573,"ogSiteName":995,"ogType":996,"canonicalUrls":23573,"schema":23574},"Introducing: Resource groups","How we’re improving deployments by limiting pipeline concurrency.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679102/Blog/Hero%20Images/resource-groups.jpg","https://about.gitlab.com/blog/introducing-resource-groups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing: Resource groups\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-01-21\",\n      }",{"title":23570,"description":23571,"authors":23576,"heroImage":23572,"date":23542,"category":8140,"tags":23577},[17150],[110,1335],{"slug":23579,"featured":6,"template":736},"introducing-resource-groups","content:en-us:blog:introducing-resource-groups.yml","Introducing Resource Groups","en-us/blog/introducing-resource-groups.yml","en-us/blog/introducing-resource-groups",{"_path":23585,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23586,"content":23592,"config":23595,"_id":23597,"_type":16,"title":23598,"_source":17,"_file":23599,"_stem":23600,"_extension":20},"/en-us/blog/windows-shared-runner-beta",{"title":23587,"description":23588,"ogTitle":23587,"ogDescription":23588,"noIndex":6,"ogImage":23589,"ogUrl":23590,"ogSiteName":995,"ogType":996,"canonicalUrls":23590,"schema":23591},"Windows Shared Runners beta now available on GitLab.com","Scalable Windows VM's for running Windows build jobs on GitLab.com.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681027/Blog/Hero%20Images/windows-shared-beta.jpg","https://about.gitlab.com/blog/windows-shared-runner-beta","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Windows Shared Runners beta now available on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Eastman\"}],\n        \"datePublished\": \"2020-01-21\",\n      }",{"title":23587,"description":23588,"authors":23593,"heroImage":23589,"date":23542,"category":858,"tags":23594},[4857],[110],{"slug":23596,"featured":6,"template":736},"windows-shared-runner-beta","content:en-us:blog:windows-shared-runner-beta.yml","Windows Shared Runner Beta","en-us/blog/windows-shared-runner-beta.yml","en-us/blog/windows-shared-runner-beta",{"_path":23602,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23603,"content":23609,"config":23613,"_id":23615,"_type":16,"title":23616,"_source":17,"_file":23617,"_stem":23618,"_extension":20},"/en-us/blog/ci-cd-the-ticket-to-multicloud",{"title":23604,"description":23605,"ogTitle":23604,"ogDescription":23605,"noIndex":6,"ogImage":23606,"ogUrl":23607,"ogSiteName":995,"ogType":996,"canonicalUrls":23607,"schema":23608},"CI/CD: The ticket to multicloud","Read our expert panel from MulticloudCon on how CI/CD and cloud-agnostic DevOps help organizations go multicloud and increase productivity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679235/Blog/Hero%20Images/cloud-native-predictions-2019.jpg","https://about.gitlab.com/blog/ci-cd-the-ticket-to-multicloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CI/CD: The ticket to multicloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-01-17\",\n      }",{"title":23604,"description":23605,"authors":23610,"heroImage":23606,"date":23611,"category":8140,"tags":23612},[17150],"2020-01-17",[110,582,2908],{"slug":23614,"featured":6,"template":736},"ci-cd-the-ticket-to-multicloud","content:en-us:blog:ci-cd-the-ticket-to-multicloud.yml","Ci Cd The Ticket To Multicloud","en-us/blog/ci-cd-the-ticket-to-multicloud.yml","en-us/blog/ci-cd-the-ticket-to-multicloud",{"_path":23620,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23621,"content":23626,"config":23631,"_id":23633,"_type":16,"title":23634,"_source":17,"_file":23635,"_stem":23636,"_extension":20},"/en-us/blog/2019-gartner-aro-mq",{"title":23622,"description":23623,"ogTitle":23622,"ogDescription":23623,"noIndex":6,"ogImage":15826,"ogUrl":23624,"ogSiteName":995,"ogType":996,"canonicalUrls":23624,"schema":23625},"Gartner names GitLab challenger in release orchestration","We're happy to share that GitLab is a Challenger in Gartner's 2019 ARO Magic Quadrant","https://about.gitlab.com/blog/2019-gartner-aro-mq","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named Challenger in Gartner Magic Quadrant for Application Release Orchestration 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2020-01-16\",\n      }",{"title":23627,"description":23623,"authors":23628,"heroImage":15826,"date":23629,"category":1049,"tags":23630},"GitLab named Challenger in Gartner Magic Quadrant for Application Release Orchestration 2019",[15730],"2020-01-16",[564,1569,1049,110],{"slug":23632,"featured":6,"template":736},"2019-gartner-aro-mq","content:en-us:blog:2019-gartner-aro-mq.yml","2019 Gartner Aro Mq","en-us/blog/2019-gartner-aro-mq.yml","en-us/blog/2019-gartner-aro-mq",{"_path":23638,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23639,"content":23644,"config":23647,"_id":23649,"_type":16,"title":23650,"_source":17,"_file":23651,"_stem":23652,"_extension":20},"/en-us/blog/gitlab-changes-to-cloudflare",{"title":23640,"description":23641,"ogTitle":23640,"ogDescription":23641,"noIndex":6,"ogImage":11263,"ogUrl":23642,"ogSiteName":995,"ogType":996,"canonicalUrls":23642,"schema":23643},"Why GitLab.com is changing its CDN provider to Cloudflare March 28","Get the scoop on our plan to change GitLab.com to Cloudflare.","https://about.gitlab.com/blog/gitlab-changes-to-cloudflare","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab.com is changing its CDN provider to Cloudflare March 28\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David Smith\"}],\n        \"datePublished\": \"2020-01-16\",\n      }",{"title":23640,"description":23641,"authors":23645,"heroImage":11263,"date":23629,"category":858,"tags":23646},[12038],[1988,6376,790],{"slug":23648,"featured":6,"template":736},"gitlab-changes-to-cloudflare","content:en-us:blog:gitlab-changes-to-cloudflare.yml","Gitlab Changes To Cloudflare","en-us/blog/gitlab-changes-to-cloudflare.yml","en-us/blog/gitlab-changes-to-cloudflare",{"_path":23654,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23655,"content":23661,"config":23665,"_id":23667,"_type":16,"title":23668,"_source":17,"_file":23669,"_stem":23670,"_extension":20},"/en-us/blog/celebrating-one-million-bug-bounties-paid",{"title":23656,"description":23657,"ogTitle":23656,"ogDescription":23657,"noIndex":6,"ogImage":23658,"ogUrl":23659,"ogSiteName":995,"ogType":996,"canonicalUrls":23659,"schema":23660},"Celebrating a million dollars in bounties paid","Our bug bounty program has grown, expanded and matured in the past 5 years. A lot can happen in a million dollars’ time.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680992/Blog/Hero%20Images/silhouette-of-crowd-people-1486628.jpg","https://about.gitlab.com/blog/celebrating-one-million-bug-bounties-paid","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Celebrating a million dollars in bounties paid\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2020-01-14\",\n      }",{"title":23656,"description":23657,"authors":23662,"heroImage":23658,"date":23663,"category":790,"tags":23664},[11324],"2020-01-14",[790,2483,1265],{"slug":23666,"featured":6,"template":736},"celebrating-one-million-bug-bounties-paid","content:en-us:blog:celebrating-one-million-bug-bounties-paid.yml","Celebrating One Million Bug Bounties Paid","en-us/blog/celebrating-one-million-bug-bounties-paid.yml","en-us/blog/celebrating-one-million-bug-bounties-paid",{"_path":23672,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23673,"content":23678,"config":23682,"_id":23684,"_type":16,"title":23685,"_source":17,"_file":23686,"_stem":23687,"_extension":20},"/en-us/blog/serverless-js-project-template",{"title":23674,"description":23675,"ogTitle":23674,"ogDescription":23675,"noIndex":6,"ogImage":19202,"ogUrl":23676,"ogSiteName":995,"ogType":996,"canonicalUrls":23676,"schema":23677},"Starting a serverless JS project with GitLab","Introduction to the new serverless JS project template at GitLab","https://about.gitlab.com/blog/serverless-js-project-template","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Starting a serverless JS project with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Greiling\"}],\n        \"datePublished\": \"2020-01-14\",\n      }",{"title":23674,"description":23675,"authors":23679,"heroImage":19202,"date":23663,"category":17170,"tags":23681},[23680],"Mike Greiling",[233,730,582],{"slug":23683,"featured":6,"template":736},"serverless-js-project-template","content:en-us:blog:serverless-js-project-template.yml","Serverless Js Project Template","en-us/blog/serverless-js-project-template.yml","en-us/blog/serverless-js-project-template",{"_path":23689,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23690,"content":23696,"config":23700,"_id":23702,"_type":16,"title":23703,"_source":17,"_file":23704,"_stem":23705,"_extension":20},"/en-us/blog/whitesource-gitlab-security-integration",{"title":23691,"description":23692,"ogTitle":23691,"ogDescription":23692,"noIndex":6,"ogImage":23693,"ogUrl":23694,"ogSiteName":995,"ogType":996,"canonicalUrls":23694,"schema":23695},"GitLab and WhiteSource: the easy way to secure your open source code","How we integrated with GitLab's security dashboards to make it easier to secure your open source code earlier in the dev lifecycle","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681016/Blog/Hero%20Images/gitlab-whitesource.png","https://about.gitlab.com/blog/whitesource-gitlab-security-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and WhiteSource: the easy way to secure your open source code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Guy Bar-Gil, Product Manager at WhiteSource\"}],\n        \"datePublished\": \"2020-01-14\",\n      }",{"title":23691,"description":23692,"authors":23697,"heroImage":23693,"date":23663,"category":1388,"tags":23699},[23698],"Guy Bar-Gil, Product Manager at WhiteSource",[233,1265,790],{"slug":23701,"featured":6,"template":736},"whitesource-gitlab-security-integration","content:en-us:blog:whitesource-gitlab-security-integration.yml","Whitesource Gitlab Security Integration","en-us/blog/whitesource-gitlab-security-integration.yml","en-us/blog/whitesource-gitlab-security-integration",{"_path":23707,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23708,"content":23714,"config":23720,"_id":23722,"_type":16,"title":23723,"_source":17,"_file":23724,"_stem":23725,"_extension":20},"/en-us/blog/how-enterprise-dev-teams-use-gitlab-mattermost-chatops",{"title":23709,"description":23710,"ogTitle":23709,"ogDescription":23710,"noIndex":6,"ogImage":23711,"ogUrl":23712,"ogSiteName":995,"ogType":996,"canonicalUrls":23712,"schema":23713},"Teams speed development with GitLab & Mattermost ChatOps","A complete DevOps toolchain plus open source messaging and ChatOps – what’s not to love?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680983/Blog/Hero%20Images/mattermost-gitlab.png","https://about.gitlab.com/blog/how-enterprise-dev-teams-use-gitlab-mattermost-chatops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How enterprise dev teams use GitLab and Mattermost ChatOps to accelerate development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Blais – Mattermost\"}],\n        \"datePublished\": \"2020-01-13\",\n      }",{"title":23715,"description":23710,"authors":23716,"heroImage":23711,"date":23718,"category":1388,"tags":23719},"How enterprise dev teams use GitLab and Mattermost ChatOps to accelerate development",[23717],"Jason Blais – Mattermost","2020-01-13",[2815,233,1265],{"slug":23721,"featured":6,"template":736},"how-enterprise-dev-teams-use-gitlab-mattermost-chatops","content:en-us:blog:how-enterprise-dev-teams-use-gitlab-mattermost-chatops.yml","How Enterprise Dev Teams Use Gitlab Mattermost Chatops","en-us/blog/how-enterprise-dev-teams-use-gitlab-mattermost-chatops.yml","en-us/blog/how-enterprise-dev-teams-use-gitlab-mattermost-chatops",{"_path":23727,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23728,"content":23734,"config":23738,"_id":23740,"_type":16,"title":23741,"_source":17,"_file":23742,"_stem":23743,"_extension":20},"/en-us/blog/2019-year-in-review",{"title":23729,"description":23730,"ogTitle":23729,"ogDescription":23730,"noIndex":6,"ogImage":23731,"ogUrl":23732,"ogSiteName":995,"ogType":996,"canonicalUrls":23732,"schema":23733},"Highlights from 2019","2019 was a big year for GitLab! We look back on our achievements and growth from the past year.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665651/Blog/Hero%20Images/gitlab-holiday-2019-blog-cover.png","https://about.gitlab.com/blog/2019-year-in-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Highlights from 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2020-01-09\",\n      }",{"title":23729,"description":23730,"authors":23735,"heroImage":23731,"date":23736,"category":1049,"tags":23737},[16023],"2020-01-09",[730,269,1569],{"slug":23739,"featured":6,"template":736},"2019-year-in-review","content:en-us:blog:2019-year-in-review.yml","2019 Year In Review","en-us/blog/2019-year-in-review.yml","en-us/blog/2019-year-in-review",{"_path":23745,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23746,"content":23752,"config":23755,"_id":23757,"_type":16,"title":23758,"_source":17,"_file":23759,"_stem":23760,"_extension":20},"/en-us/blog/shifting-from-on-prem-to-cloud",{"title":23747,"description":23748,"ogTitle":23747,"ogDescription":23748,"noIndex":6,"ogImage":23749,"ogUrl":23750,"ogSiteName":995,"ogType":996,"canonicalUrls":23750,"schema":23751},"Shifting from on-prem to cloud","The challenges of being on-prem and what to consider when shifting to public cloud.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679664/Blog/Hero%20Images/on-prem-to-cloud.jpg","https://about.gitlab.com/blog/shifting-from-on-prem-to-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Shifting from on-prem to cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2020-01-09\",\n      }",{"title":23747,"description":23748,"authors":23753,"heroImage":23749,"date":23736,"category":8140,"tags":23754},[17150],[564,582],{"slug":23756,"featured":6,"template":736},"shifting-from-on-prem-to-cloud","content:en-us:blog:shifting-from-on-prem-to-cloud.yml","Shifting From On Prem To Cloud","en-us/blog/shifting-from-on-prem-to-cloud.yml","en-us/blog/shifting-from-on-prem-to-cloud",{"_path":23762,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23763,"content":23769,"config":23774,"_id":23776,"_type":16,"title":23777,"_source":17,"_file":23778,"_stem":23779,"_extension":20},"/en-us/blog/working-in-vastly-different-timezone",{"title":23764,"description":23765,"ogTitle":23764,"ogDescription":23765,"noIndex":6,"ogImage":23766,"ogUrl":23767,"ogSiteName":995,"ogType":996,"canonicalUrls":23767,"schema":23768},"A matter of perspective","What I learned while working remotely in a vastly different time zone.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680973/Blog/Hero%20Images/harbour_shadows.jpg","https://about.gitlab.com/blog/working-in-vastly-different-timezone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A matter of perspective\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erich Wegscheider\"}],\n        \"datePublished\": \"2020-01-06\",\n      }",{"title":23764,"description":23765,"authors":23770,"heroImage":23766,"date":23772,"category":6121,"tags":23773},[23771],"Erich Wegscheider","2020-01-06",[3914],{"slug":23775,"featured":6,"template":736},"working-in-vastly-different-timezone","content:en-us:blog:working-in-vastly-different-timezone.yml","Working In Vastly Different Timezone","en-us/blog/working-in-vastly-different-timezone.yml","en-us/blog/working-in-vastly-different-timezone",{"_path":23781,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23782,"content":23788,"config":23793,"_id":23795,"_type":16,"title":23796,"_source":17,"_file":23797,"_stem":23798,"_extension":20},"/en-us/blog/mastering-the-all-remote-environment",{"title":23783,"description":23784,"ogTitle":23783,"ogDescription":23784,"noIndex":6,"ogImage":23785,"ogUrl":23786,"ogSiteName":995,"ogType":996,"canonicalUrls":23786,"schema":23787},"Mastering the all-remote environment: My top 5 challenges and solutions","Unlocking potential and overcoming challenges in an all-remote environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673105/Blog/Hero%20Images/joshua-tree-desert-sunset.jpg","https://about.gitlab.com/blog/mastering-the-all-remote-environment","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Mastering the all-remote environment: My top 5 challenges and solutions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Shawn Winters\"}],\n        \"datePublished\": \"2019-12-30\",\n      }",{"title":23783,"description":23784,"authors":23789,"heroImage":23785,"date":23791,"category":6121,"tags":23792},[23790],"Shawn Winters","2019-12-30",[730,1569,3914],{"slug":23794,"featured":6,"template":736},"mastering-the-all-remote-environment","content:en-us:blog:mastering-the-all-remote-environment.yml","Mastering The All Remote Environment","en-us/blog/mastering-the-all-remote-environment.yml","en-us/blog/mastering-the-all-remote-environment",{"_path":23800,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23801,"content":23807,"config":23812,"_id":23814,"_type":16,"title":23815,"_source":17,"_file":23816,"_stem":23817,"_extension":20},"/en-us/blog/six-key-practices-that-improve-communication",{"title":23802,"description":23803,"ogTitle":23802,"ogDescription":23803,"noIndex":6,"ogImage":23804,"ogUrl":23805,"ogSiteName":995,"ogType":996,"canonicalUrls":23805,"schema":23806},"How to Improve Company Communication","Learn here how we've streamlined and improved company communication in six ways. And now your company can too.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680960/Blog/Hero%20Images/simon-abrams.jpg","https://about.gitlab.com/blog/six-key-practices-that-improve-communication","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to Improve Company Communication\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Brinkman\"}],\n        \"datePublished\": \"2019-12-23\",\n      }",{"title":23802,"description":23803,"authors":23808,"heroImage":23804,"date":23810,"category":6121,"tags":23811},[23809],"Eric Brinkman","2019-12-23",[1569,3914,2703],{"slug":23813,"featured":6,"template":736},"six-key-practices-that-improve-communication","content:en-us:blog:six-key-practices-that-improve-communication.yml","Six Key Practices That Improve Communication","en-us/blog/six-key-practices-that-improve-communication.yml","en-us/blog/six-key-practices-that-improve-communication",{"_path":23819,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23820,"content":23826,"config":23831,"_id":23833,"_type":16,"title":23834,"_source":17,"_file":23835,"_stem":23836,"_extension":20},"/en-us/blog/introducing-token-hunter",{"title":23821,"description":23822,"ogTitle":23821,"ogDescription":23822,"noIndex":6,"ogImage":23823,"ogUrl":23824,"ogSiteName":995,"ogType":996,"canonicalUrls":23824,"schema":23825},"Introducing Token-Hunter","Our red team has created a new tool to find sensitive data in the vast, wide-open.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679669/Blog/Hero%20Images/lightscape-Bsw6l6e01Rw-unsplash.jpg","https://about.gitlab.com/blog/introducing-token-hunter","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing Token-Hunter\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Greg Johnson\"}],\n        \"datePublished\": \"2019-12-20\",\n      }",{"title":23821,"description":23822,"authors":23827,"heroImage":23823,"date":23829,"category":790,"tags":23830},[23828],"Greg Johnson","2019-12-20",[790,3292,1265],{"slug":23832,"featured":6,"template":736},"introducing-token-hunter","content:en-us:blog:introducing-token-hunter.yml","Introducing Token Hunter","en-us/blog/introducing-token-hunter.yml","en-us/blog/introducing-token-hunter",{"_path":23838,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23839,"content":23844,"config":23848,"_id":23850,"_type":16,"title":23851,"_source":17,"_file":23852,"_stem":23853,"_extension":20},"/en-us/blog/future-merge-requests-realtime-collab",{"title":23840,"description":23841,"ogTitle":23840,"ogDescription":23841,"noIndex":6,"ogImage":10957,"ogUrl":23842,"ogSiteName":995,"ogType":996,"canonicalUrls":23842,"schema":23843},"The future of merge requests: Real-time collaboration","We want to hear your thoughts on the future of merge requests and code review.","https://about.gitlab.com/blog/future-merge-requests-realtime-collab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The future of merge requests: Real-time collaboration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pedro Moreira da Silva\"}],\n        \"datePublished\": \"2019-12-19\",\n      }",{"title":23840,"description":23841,"authors":23845,"heroImage":10957,"date":23846,"category":858,"tags":23847},[18751],"2019-12-19",[1932,2815,2703],{"slug":23849,"featured":6,"template":736},"future-merge-requests-realtime-collab","content:en-us:blog:future-merge-requests-realtime-collab.yml","Future Merge Requests Realtime Collab","en-us/blog/future-merge-requests-realtime-collab.yml","en-us/blog/future-merge-requests-realtime-collab",{"_path":23855,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23856,"content":23861,"config":23864,"_id":23866,"_type":16,"title":23867,"_source":17,"_file":23868,"_stem":23869,"_extension":20},"/en-us/blog/how-gitlab-handles-retrospectives",{"title":23857,"description":23858,"ogTitle":23857,"ogDescription":23858,"noIndex":6,"ogImage":14188,"ogUrl":23859,"ogSiteName":995,"ogType":996,"canonicalUrls":23859,"schema":23860},"How GitLab handles retrospectives","Take a peek at how the GitLab team holds monthly retrospectives.","https://about.gitlab.com/blog/how-gitlab-handles-retrospectives","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab handles retrospectives\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-12-19\",\n      }",{"title":23857,"description":23858,"authors":23862,"heroImage":14188,"date":23846,"category":301,"tags":23863},[19332],[729,2815,1335],{"slug":23865,"featured":6,"template":736},"how-gitlab-handles-retrospectives","content:en-us:blog:how-gitlab-handles-retrospectives.yml","How Gitlab Handles Retrospectives","en-us/blog/how-gitlab-handles-retrospectives.yml","en-us/blog/how-gitlab-handles-retrospectives",{"_path":23871,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23872,"content":23878,"config":23882,"_id":23884,"_type":16,"title":23885,"_source":17,"_file":23886,"_stem":23887,"_extension":20},"/en-us/blog/agile-for-developers-refactor-code",{"title":23873,"description":23874,"ogTitle":23873,"ogDescription":23874,"noIndex":6,"ogImage":23875,"ogUrl":23876,"ogSiteName":995,"ogType":996,"canonicalUrls":23876,"schema":23877},"Agile for developers: Refactoring code","The time commitment involved in refactoring may cause hesitation, but the impact on developer productivity and efficiency outweighs the initial discomfort.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680945/Blog/Hero%20Images/refactorpost.jpg","https://about.gitlab.com/blog/agile-for-developers-refactor-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Agile for developers: Refactoring code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-12-18\",\n      }",{"title":23873,"description":23874,"authors":23879,"heroImage":23875,"date":23880,"category":301,"tags":23881},[19332],"2019-12-18",[729,2815,1335],{"slug":23883,"featured":6,"template":736},"agile-for-developers-refactor-code","content:en-us:blog:agile-for-developers-refactor-code.yml","Agile For Developers Refactor Code","en-us/blog/agile-for-developers-refactor-code.yml","en-us/blog/agile-for-developers-refactor-code",{"_path":23889,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23890,"content":23896,"config":23900,"_id":23902,"_type":16,"title":23903,"_source":17,"_file":23904,"_stem":23905,"_extension":20},"/en-us/blog/dotscience-mlops-integration",{"title":23891,"description":23892,"ogTitle":23891,"ogDescription":23892,"noIndex":6,"ogImage":23893,"ogUrl":23894,"ogSiteName":995,"ogType":996,"canonicalUrls":23894,"schema":23895},"Dotscience announces MLOps integration with GitLab","The combination of GitLab and Dotscience provides a fully integrated DevOps & MLOps platform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680952/Blog/Hero%20Images/dotscience-gitlab.png","https://about.gitlab.com/blog/dotscience-mlops-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Dotscience announces MLOps integration with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chris Sterry, Dotscience\"}],\n        \"datePublished\": \"2019-12-18\",\n      }",{"title":23891,"description":23892,"authors":23897,"heroImage":23893,"date":23880,"category":301,"tags":23899},[23898],"Chris Sterry, Dotscience",[269,233,1049],{"slug":23901,"featured":6,"template":736},"dotscience-mlops-integration","content:en-us:blog:dotscience-mlops-integration.yml","Dotscience Mlops Integration","en-us/blog/dotscience-mlops-integration.yml","en-us/blog/dotscience-mlops-integration",{"_path":23907,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23908,"content":23913,"config":23917,"_id":23919,"_type":16,"title":23920,"_source":17,"_file":23921,"_stem":23922,"_extension":20},"/en-us/blog/athlinks-cuts-runtime-in-half-with-giltab",{"title":23909,"description":23910,"ogTitle":23909,"ogDescription":23910,"noIndex":6,"ogImage":10939,"ogUrl":23911,"ogSiteName":995,"ogType":996,"canonicalUrls":23911,"schema":23912},"Athlinks cuts runtime in half with GitLab","Athlinks, a time management solution platform, shares how moving from Jenkins to GitLab cut CI runtimes in half.","https://about.gitlab.com/blog/athlinks-cuts-runtime-in-half-with-giltab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Athlinks cuts runtime in half with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2019-12-17\",\n      }",{"title":23909,"description":23910,"authors":23914,"heroImage":10939,"date":23915,"category":1388,"tags":23916},[22783],"2019-12-17",[110,2815,729],{"slug":23918,"featured":6,"template":736},"athlinks-cuts-runtime-in-half-with-giltab","content:en-us:blog:athlinks-cuts-runtime-in-half-with-giltab.yml","Athlinks Cuts Runtime In Half With Giltab","en-us/blog/athlinks-cuts-runtime-in-half-with-giltab.yml","en-us/blog/athlinks-cuts-runtime-in-half-with-giltab",{"_path":23924,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23925,"content":23931,"config":23935,"_id":23937,"_type":16,"title":23938,"_source":17,"_file":23939,"_stem":23940,"_extension":20},"/en-us/blog/funny-gitlab-remote-meetings",{"title":23926,"description":23927,"ogTitle":23926,"ogDescription":23927,"noIndex":6,"ogImage":23928,"ogUrl":23929,"ogSiteName":995,"ogType":996,"canonicalUrls":23929,"schema":23930},"Wild and crazy things that only happen to all-remote teams","Working remotely may make for a calmer commute but plenty of adventure awaits.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680938/Blog/Hero%20Images/joshua-tree-leap.jpg","https://about.gitlab.com/blog/funny-gitlab-remote-meetings","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Wild and crazy things that only happen to all-remote teams\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Murph\"}],\n        \"datePublished\": \"2019-12-16\",\n      }",{"title":23926,"description":23927,"authors":23932,"heroImage":23928,"date":23933,"category":6121,"tags":23934},[18277],"2019-12-16",[6980,1569,3914],{"slug":23936,"featured":6,"template":736},"funny-gitlab-remote-meetings","content:en-us:blog:funny-gitlab-remote-meetings.yml","Funny Gitlab Remote Meetings","en-us/blog/funny-gitlab-remote-meetings.yml","en-us/blog/funny-gitlab-remote-meetings",{"_path":23942,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23943,"content":23948,"config":23951,"_id":23953,"_type":16,"title":23954,"_source":17,"_file":23955,"_stem":23956,"_extension":20},"/en-us/blog/observability",{"title":23944,"description":23945,"ogTitle":23944,"ogDescription":23945,"noIndex":6,"ogImage":23731,"ogUrl":23946,"ogSiteName":995,"ogType":996,"canonicalUrls":23946,"schema":23947},"We're moving our observability suite to Core","Our gift to you for 2020: Metrics, logging, and tracing and alerting are coming soon to Core!","https://about.gitlab.com/blog/observability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're moving our observability suite to Core\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-12-16\",\n      }",{"title":23944,"description":23945,"authors":23949,"heroImage":23731,"date":23933,"category":1388,"tags":23950},[16023],[1265,1569],{"slug":23952,"featured":6,"template":736},"observability","content:en-us:blog:observability.yml","Observability","en-us/blog/observability.yml","en-us/blog/observability",{"_path":23958,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23959,"content":23965,"config":23969,"_id":23971,"_type":16,"title":23972,"_source":17,"_file":23973,"_stem":23974,"_extension":20},"/en-us/blog/optimizing-the-value-exchange-a-gentle-introduction",{"title":23960,"description":23961,"ogTitle":23960,"ogDescription":23961,"noIndex":6,"ogImage":23962,"ogUrl":23963,"ogSiteName":995,"ogType":996,"canonicalUrls":23963,"schema":23964},"How to optimize your value exchange system","Part one of a pragmatic, business-driven guide to help teams transition from fixating on output to optimizing the value exchange with their customers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672701/Blog/Hero%20Images/post-1-cover.jpg","https://about.gitlab.com/blog/optimizing-the-value-exchange-a-gentle-introduction","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to optimize your value exchange system\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabe Weaver\"}],\n        \"datePublished\": \"2019-12-16\",\n      }",{"title":23960,"description":23961,"authors":23966,"heroImage":23962,"date":23933,"category":17170,"tags":23968},[23967],"Gabe Weaver",[729,10011,1335],{"slug":23970,"featured":6,"template":736},"optimizing-the-value-exchange-a-gentle-introduction","content:en-us:blog:optimizing-the-value-exchange-a-gentle-introduction.yml","Optimizing The Value Exchange A Gentle Introduction","en-us/blog/optimizing-the-value-exchange-a-gentle-introduction.yml","en-us/blog/optimizing-the-value-exchange-a-gentle-introduction",{"_path":23976,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23977,"content":23983,"config":23986,"_id":23988,"_type":16,"title":23989,"_source":17,"_file":23990,"_stem":23991,"_extension":20},"/en-us/blog/optimizing-the-value-exchange-reduce-waste-to-increase-flow",{"title":23978,"description":23979,"ogTitle":23978,"ogDescription":23979,"noIndex":6,"ogImage":23980,"ogUrl":23981,"ogSiteName":995,"ogType":996,"canonicalUrls":23981,"schema":23982},"Optimizing The Value Exchange: Reduce Waste To Increase Flow","Part two of a pragmatic, business-driven guide to help teams transition from fixating on output to optimizing the value exchange with their customers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672713/Blog/Hero%20Images/post-2-cover.jpg","https://about.gitlab.com/blog/optimizing-the-value-exchange-reduce-waste-to-increase-flow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Optimizing The Value Exchange: Reduce Waste To Increase Flow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabe Weaver\"}],\n        \"datePublished\": \"2019-12-16\",\n      }",{"title":23978,"description":23979,"authors":23984,"heroImage":23980,"date":23933,"category":17170,"tags":23985},[23967],[729,10011,1335],{"slug":23987,"featured":6,"template":736},"optimizing-the-value-exchange-reduce-waste-to-increase-flow","content:en-us:blog:optimizing-the-value-exchange-reduce-waste-to-increase-flow.yml","Optimizing The Value Exchange Reduce Waste To Increase Flow","en-us/blog/optimizing-the-value-exchange-reduce-waste-to-increase-flow.yml","en-us/blog/optimizing-the-value-exchange-reduce-waste-to-increase-flow",{"_path":23993,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":23994,"content":24000,"config":24004,"_id":24006,"_type":16,"title":24007,"_source":17,"_file":24008,"_stem":24009,"_extension":20},"/en-us/blog/optimizing-the-value-exchange-the-compounding-value-of-shorter-feedback-loops",{"title":23995,"description":23996,"ogTitle":23995,"ogDescription":23996,"noIndex":6,"ogImage":23997,"ogUrl":23998,"ogSiteName":995,"ogType":996,"canonicalUrls":23998,"schema":23999},"Shorter feedback loops compound value in development","Part three of a pragmatic, business-driven guide to help teams transition from fixating on output to optimizing the value exchange with their customers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672726/Blog/Hero%20Images/post-3-cover.jpg","https://about.gitlab.com/blog/optimizing-the-value-exchange-the-compounding-value-of-shorter-feedback-loops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Optimizing The Value Exchange: The Compounding Value Of Shorter Feedback Loops\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabe Weaver\"}],\n        \"datePublished\": \"2019-12-16\",\n      }",{"title":24001,"description":23996,"authors":24002,"heroImage":23997,"date":23933,"category":17170,"tags":24003},"Optimizing The Value Exchange: The Compounding Value Of Shorter Feedback Loops",[23967],[729,10011,1335],{"slug":24005,"featured":6,"template":736},"optimizing-the-value-exchange-the-compounding-value-of-shorter-feedback-loops","content:en-us:blog:optimizing-the-value-exchange-the-compounding-value-of-shorter-feedback-loops.yml","Optimizing The Value Exchange The Compounding Value Of Shorter Feedback Loops","en-us/blog/optimizing-the-value-exchange-the-compounding-value-of-shorter-feedback-loops.yml","en-us/blog/optimizing-the-value-exchange-the-compounding-value-of-shorter-feedback-loops",{"_path":24011,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24012,"content":24017,"config":24021,"_id":24023,"_type":16,"title":24024,"_source":17,"_file":24025,"_stem":24026,"_extension":20},"/en-us/blog/sre-shadow",{"title":24013,"description":24014,"ogTitle":24013,"ogDescription":24014,"noIndex":6,"ogImage":22414,"ogUrl":24015,"ogSiteName":995,"ogType":996,"canonicalUrls":24015,"schema":24016},"My week shadowing a GitLab Site Reliability Engineer","On-call through the eyes of a software engineer. Read Tristan's week shadowing a GitLab Site Reliability Engineer","https://about.gitlab.com/blog/sre-shadow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"My week shadowing a GitLab Site Reliability Engineer\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tristan Read\"}],\n        \"datePublished\": \"2019-12-16\",\n      }",{"title":24013,"description":24014,"authors":24018,"heroImage":22414,"date":23933,"category":17170,"tags":24020},[24019],"Tristan Read",[564,6376],{"slug":24022,"featured":6,"template":736},"sre-shadow","content:en-us:blog:sre-shadow.yml","Sre Shadow","en-us/blog/sre-shadow.yml","en-us/blog/sre-shadow",{"_path":24028,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24029,"content":24035,"config":24039,"_id":24041,"_type":16,"title":24042,"_source":17,"_file":24043,"_stem":24044,"_extension":20},"/en-us/blog/how-to-strengthen-agile-teams-with-tuckmans-model",{"title":24030,"description":24031,"ogTitle":24030,"ogDescription":24031,"noIndex":6,"ogImage":24032,"ogUrl":24033,"ogSiteName":995,"ogType":996,"canonicalUrls":24033,"schema":24034},"Strengthen your Agile teams with Tuckman's stages of group development","Learn how to build up your agile teams  teams after breaking down silos for further group development","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680924/Blog/Hero%20Images/tuckmansstages.jpg","https://about.gitlab.com/blog/how-to-strengthen-agile-teams-with-tuckmans-model","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Strengthen your Agile teams with Tuckman's stages of group development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-12-13\",\n      }",{"title":24030,"description":24031,"authors":24036,"heroImage":24032,"date":24037,"category":301,"tags":24038},[19332],"2019-12-13",[729,2815,1335],{"slug":24040,"featured":6,"template":736},"how-to-strengthen-agile-teams-with-tuckmans-model","content:en-us:blog:how-to-strengthen-agile-teams-with-tuckmans-model.yml","How To Strengthen Agile Teams With Tuckmans Model","en-us/blog/how-to-strengthen-agile-teams-with-tuckmans-model.yml","en-us/blog/how-to-strengthen-agile-teams-with-tuckmans-model",{"_path":24046,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24047,"content":24052,"config":24056,"_id":24058,"_type":16,"title":24059,"_source":17,"_file":24060,"_stem":24061,"_extension":20},"/en-us/blog/updates-from-aws-reinvent",{"title":24048,"description":24049,"ogTitle":24048,"ogDescription":24049,"noIndex":6,"ogImage":16110,"ogUrl":24050,"ogSiteName":995,"ogType":996,"canonicalUrls":24050,"schema":24051},"Highlights from AWS re:Invent 2019","DevOps dining, selecting jukebox tunes, learning ‘Dog’Ops from Wag!, supporting Graviton, and more from AWS re:Invent 2019.","https://about.gitlab.com/blog/updates-from-aws-reinvent","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Highlights from AWS re:Invent 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tina Sturgis\"}],\n        \"datePublished\": \"2019-12-13\",\n      }",{"title":24048,"description":24049,"authors":24053,"heroImage":16110,"date":24037,"category":301,"tags":24055},[24054],"Tina Sturgis",[269,3074,2815,279,1049],{"slug":24057,"featured":6,"template":736},"updates-from-aws-reinvent","content:en-us:blog:updates-from-aws-reinvent.yml","Updates From Aws Reinvent","en-us/blog/updates-from-aws-reinvent.yml","en-us/blog/updates-from-aws-reinvent",{"_path":24063,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24064,"content":24069,"config":24074,"_id":24076,"_type":16,"title":24077,"_source":17,"_file":24078,"_stem":24079,"_extension":20},"/en-us/blog/bugs-bounties-and-cherry-browns",{"title":24065,"description":24066,"ogTitle":24065,"ogDescription":24066,"noIndex":6,"ogImage":19011,"ogUrl":24067,"ogSiteName":995,"ogType":996,"canonicalUrls":24067,"schema":24068},"Bugs, bounties, and cherry browns","Cheers, our bug bounty program is celebrating one year!","https://about.gitlab.com/blog/bugs-bounties-and-cherry-browns","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Bugs, bounties, and cherry browns\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Juan Broullon\"}],\n        \"datePublished\": \"2019-12-12\",\n      }",{"title":24065,"description":24066,"authors":24070,"heroImage":19011,"date":24072,"category":790,"tags":24073},[24071],"Juan Broullon","2019-12-12",[790,2483],{"slug":24075,"featured":6,"template":736},"bugs-bounties-and-cherry-browns","content:en-us:blog:bugs-bounties-and-cherry-browns.yml","Bugs Bounties And Cherry Browns","en-us/blog/bugs-bounties-and-cherry-browns.yml","en-us/blog/bugs-bounties-and-cherry-browns",{"_path":24081,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24082,"content":24087,"config":24090,"_id":24092,"_type":16,"title":24093,"_source":17,"_file":24094,"_stem":24095,"_extension":20},"/en-us/blog/q4-hackathon-recap",{"title":24083,"description":24084,"ogTitle":24083,"ogDescription":24084,"noIndex":6,"ogImage":18395,"ogUrl":24085,"ogSiteName":995,"ogType":996,"canonicalUrls":24085,"schema":24086},"What went down at the Q4'2019 GitLab Hackathon","A recap of GitLab community's accomplishments during annother record-setting Hackathon on November 13-14.","https://about.gitlab.com/blog/q4-hackathon-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What went down at the Q4'2019 GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-12-12\",\n      }",{"title":24083,"description":24084,"authors":24088,"heroImage":18395,"date":24072,"category":17170,"tags":24089},[20126],[269,2815,1265],{"slug":24091,"featured":6,"template":736},"q4-hackathon-recap","content:en-us:blog:q4-hackathon-recap.yml","Q4 Hackathon Recap","en-us/blog/q4-hackathon-recap.yml","en-us/blog/q4-hackathon-recap",{"_path":24097,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24098,"content":24104,"config":24108,"_id":24110,"_type":16,"title":24111,"_source":17,"_file":24112,"_stem":24113,"_extension":20},"/en-us/blog/gl-for-pm-prt-2",{"title":24099,"description":24100,"ogTitle":24099,"ogDescription":24100,"noIndex":6,"ogImage":24101,"ogUrl":24102,"ogSiteName":995,"ogType":996,"canonicalUrls":24102,"schema":24103},"2 Examples of how marketing uses GitLab to manage complex projects","How GitLab technology powers integrated marketing campaigns and product marketing projects.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680908/Blog/Hero%20Images/stickynotes.jpg","https://about.gitlab.com/blog/gl-for-pm-prt-2","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2 Examples of how marketing uses GitLab to manage complex projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-12-11\",\n      }",{"title":24099,"description":24100,"authors":24105,"heroImage":24101,"date":24106,"category":858,"tags":24107},[16023],"2019-12-11",[564,1335,2815],{"slug":24109,"featured":6,"template":736},"gl-for-pm-prt-2","content:en-us:blog:gl-for-pm-prt-2.yml","Gl For Pm Prt 2","en-us/blog/gl-for-pm-prt-2.yml","en-us/blog/gl-for-pm-prt-2",{"_path":24115,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24116,"content":24122,"config":24125,"_id":24127,"_type":16,"title":24128,"_source":17,"_file":24129,"_stem":24130,"_extension":20},"/en-us/blog/how-to-build-a-more-productive-remote-team",{"title":24117,"description":24118,"ogTitle":24117,"ogDescription":24118,"noIndex":6,"ogImage":24119,"ogUrl":24120,"ogSiteName":995,"ogType":996,"canonicalUrls":24120,"schema":24121},"5 Ways to build a more productive remote team","Hacker Noon named GitLab the world's most productive remote team – here's how we make it work.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682933/Blog/Hero%20Images/getting-things-done.jpg","https://about.gitlab.com/blog/how-to-build-a-more-productive-remote-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Ways to build a more productive remote team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Murph\"}],\n        \"datePublished\": \"2019-12-10\",\n      }",{"title":24117,"description":24118,"authors":24123,"heroImage":24119,"date":24124,"category":6121},[18277],"2019-12-10",{"slug":24126,"featured":6,"template":736},"how-to-build-a-more-productive-remote-team","content:en-us:blog:how-to-build-a-more-productive-remote-team.yml","How To Build A More Productive Remote Team","en-us/blog/how-to-build-a-more-productive-remote-team.yml","en-us/blog/how-to-build-a-more-productive-remote-team",{"_path":24132,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24133,"content":24138,"config":24142,"_id":24144,"_type":16,"title":24145,"_source":17,"_file":24146,"_stem":24147,"_extension":20},"/en-us/blog/gitlab-for-project-management-one",{"title":24134,"description":24135,"ogTitle":24134,"ogDescription":24135,"noIndex":6,"ogImage":24101,"ogUrl":24136,"ogSiteName":995,"ogType":996,"canonicalUrls":24136,"schema":24137},"How our tool fosters collaborative project management","Our marketing team explains how we use GitLab to manage complex projects. Read how GitLab can improve your collaboration on projects.","https://about.gitlab.com/blog/gitlab-for-project-management-one","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How our tool fosters collaborative project management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-12-06\",\n      }",{"title":24134,"description":24135,"authors":24139,"heroImage":24101,"date":24140,"category":858,"tags":24141},[16023],"2019-12-06",[564,1335,2815],{"slug":24143,"featured":6,"template":736},"gitlab-for-project-management-one","content:en-us:blog:gitlab-for-project-management-one.yml","Gitlab For Project Management One","en-us/blog/gitlab-for-project-management-one.yml","en-us/blog/gitlab-for-project-management-one",{"_path":24149,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24150,"content":24155,"config":24159,"_id":24161,"_type":16,"title":24162,"_source":17,"_file":24163,"_stem":24164,"_extension":20},"/en-us/blog/how-a-remote-internship-at-gitlab-shaped-my-career",{"title":24151,"description":24152,"ogTitle":24151,"ogDescription":24152,"noIndex":6,"ogImage":23397,"ogUrl":24153,"ogSiteName":995,"ogType":996,"canonicalUrls":24153,"schema":24154},"My experience as a recruiting intern at GitLab","Why interning for an asynchronous and all-remote company is the best way to go.","https://about.gitlab.com/blog/how-a-remote-internship-at-gitlab-shaped-my-career","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"My experience as a recruiting intern at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Trevor Knudsen\"}],\n        \"datePublished\": \"2019-12-06\",\n      }",{"title":24151,"description":24152,"authors":24156,"heroImage":23397,"date":24140,"category":6121,"tags":24158},[24157],"Trevor Knudsen",[2815,1569,3914],{"slug":24160,"featured":6,"template":736},"how-a-remote-internship-at-gitlab-shaped-my-career","content:en-us:blog:how-a-remote-internship-at-gitlab-shaped-my-career.yml","How A Remote Internship At Gitlab Shaped My Career","en-us/blog/how-a-remote-internship-at-gitlab-shaped-my-career.yml","en-us/blog/how-a-remote-internship-at-gitlab-shaped-my-career",{"_path":24166,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24167,"content":24173,"config":24176,"_id":24178,"_type":16,"title":24179,"_source":17,"_file":24180,"_stem":24181,"_extension":20},"/en-us/blog/how-all-remote-supports-inclusion-and-bolsters-communities",{"title":24168,"description":24169,"ogTitle":24168,"ogDescription":24169,"noIndex":6,"ogImage":24170,"ogUrl":24171,"ogSiteName":995,"ogType":996,"canonicalUrls":24171,"schema":24172},"How all-remote supports inclusion and bolsters communities","When your hiring pipeline is more inclusive, your team becomes more inclusive.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679679/Blog/Hero%20Images/kuala-lumpur-dm.jpg","https://about.gitlab.com/blog/how-all-remote-supports-inclusion-and-bolsters-communities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How all-remote supports inclusion and bolsters communities\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Murph\"}],\n        \"datePublished\": \"2019-12-06\",\n      }",{"title":24168,"description":24169,"authors":24174,"heroImage":24170,"date":24140,"category":6121,"tags":24175},[18277],[730,1569,3914],{"slug":24177,"featured":6,"template":736},"how-all-remote-supports-inclusion-and-bolsters-communities","content:en-us:blog:how-all-remote-supports-inclusion-and-bolsters-communities.yml","How All Remote Supports Inclusion And Bolsters Communities","en-us/blog/how-all-remote-supports-inclusion-and-bolsters-communities.yml","en-us/blog/how-all-remote-supports-inclusion-and-bolsters-communities",{"_path":24183,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24184,"content":24189,"config":24193,"_id":24195,"_type":16,"title":24196,"_source":17,"_file":24197,"_stem":24198,"_extension":20},"/en-us/blog/cloud-adoption-roadmap",{"title":24185,"description":24186,"ogTitle":24185,"ogDescription":24186,"noIndex":6,"ogImage":21752,"ogUrl":24187,"ogSiteName":995,"ogType":996,"canonicalUrls":24187,"schema":24188},"Cloud strategy and adoption roadmap for businesses","Everything you need to know for transforming your business to the cloud and how to plan out the perfect strategy for it.","https://about.gitlab.com/blog/cloud-adoption-roadmap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Cloud strategy and adoption roadmap for businesses\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-12-05\",\n      }",{"title":24185,"description":24186,"authors":24190,"heroImage":21752,"date":24191,"category":8140,"tags":24192},[17150],"2019-12-05",[564,582],{"slug":24194,"featured":6,"template":736},"cloud-adoption-roadmap","content:en-us:blog:cloud-adoption-roadmap.yml","Cloud Adoption Roadmap","en-us/blog/cloud-adoption-roadmap.yml","en-us/blog/cloud-adoption-roadmap",{"_path":24200,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24201,"content":24207,"config":24211,"_id":24213,"_type":16,"title":24214,"_source":17,"_file":24215,"_stem":24216,"_extension":20},"/en-us/blog/gitlab-december-2019-meetups",{"title":24202,"description":24203,"ogTitle":24202,"ogDescription":24203,"noIndex":6,"ogImage":24204,"ogUrl":24205,"ogSiteName":995,"ogType":996,"canonicalUrls":24205,"schema":24206},"GitLab meetups this December: Global locations & events","Don't miss your last chance to attend a GitLab meetup in 2019!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679712/Blog/Hero%20Images/0919meetups.png","https://about.gitlab.com/blog/gitlab-december-2019-meetups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Where to find a GitLab Meetup in December: México City, Wellington, Nigeria, São Paolo, MSP, Chicago, Geneva\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2019-12-05\",\n      }",{"title":24208,"description":24203,"authors":24209,"heroImage":24204,"date":24191,"category":17170,"tags":24210},"Where to find a GitLab Meetup in December: México City, Wellington, Nigeria, São Paolo, MSP, Chicago, Geneva",[6119],[729,729,729],{"slug":24212,"featured":6,"template":736},"gitlab-december-2019-meetups","content:en-us:blog:gitlab-december-2019-meetups.yml","Gitlab December 2019 Meetups","en-us/blog/gitlab-december-2019-meetups.yml","en-us/blog/gitlab-december-2019-meetups",{"_path":24218,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24219,"content":24225,"config":24228,"_id":24230,"_type":16,"title":24231,"_source":17,"_file":24232,"_stem":24233,"_extension":20},"/en-us/blog/how-to-setup-gitlab-for-multiple-product-teams",{"title":24220,"description":24221,"ogTitle":24220,"ogDescription":24221,"noIndex":6,"ogImage":24222,"ogUrl":24223,"ogSiteName":995,"ogType":996,"canonicalUrls":24223,"schema":24224},"Managing multiple product categories in GitLab","Exploring issue mangement options for product teams that are all contributing to a single repository.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680898/Blog/Hero%20Images/filing-cabinet.jpg","https://about.gitlab.com/blog/how-to-setup-gitlab-for-multiple-product-teams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Managing multiple product categories in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabe Weaver\"}],\n        \"datePublished\": \"2019-12-05\",\n      }",{"title":24220,"description":24221,"authors":24226,"heroImage":24222,"date":24191,"category":301,"tags":24227},[23967],[4182,1335],{"slug":24229,"featured":6,"template":736},"how-to-setup-gitlab-for-multiple-product-teams","content:en-us:blog:how-to-setup-gitlab-for-multiple-product-teams.yml","How To Setup Gitlab For Multiple Product Teams","en-us/blog/how-to-setup-gitlab-for-multiple-product-teams.yml","en-us/blog/how-to-setup-gitlab-for-multiple-product-teams",{"_path":24235,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24236,"content":24241,"config":24246,"_id":24248,"_type":16,"title":24249,"_source":17,"_file":24250,"_stem":24251,"_extension":20},"/en-us/blog/dev-strategy-review",{"title":24237,"description":24238,"ogTitle":24237,"ogDescription":24238,"noIndex":6,"ogImage":13126,"ogUrl":24239,"ogSiteName":995,"ogType":996,"canonicalUrls":24239,"schema":24240},"Tell us what you think about our Dev strategy","Take a look at how we're going to help you better manage, plan, and create.","https://about.gitlab.com/blog/dev-strategy-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tell us what you think about our Dev strategy\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Pundsack\"}],\n        \"datePublished\": \"2019-12-04\",\n      }",{"title":24237,"description":24238,"authors":24242,"heroImage":13126,"date":24244,"category":301,"tags":24245},[24243],"Mark Pundsack","2019-12-04",[1569,730],{"slug":24247,"featured":6,"template":736},"dev-strategy-review","content:en-us:blog:dev-strategy-review.yml","Dev Strategy Review","en-us/blog/dev-strategy-review.yml","en-us/blog/dev-strategy-review",{"_path":24253,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24254,"content":24260,"config":24266,"_id":24268,"_type":16,"title":24269,"_source":17,"_file":24270,"_stem":24271,"_extension":20},"/en-us/blog/welcoming-opencores-to-gitlab",{"title":24255,"description":24256,"ogTitle":24255,"ogDescription":24256,"noIndex":6,"ogImage":24257,"ogUrl":24258,"ogSiteName":995,"ogType":996,"canonicalUrls":24258,"schema":24259},"OpenCores come to GitLab","OpenCores moves to GitLab to accelerate digital design flow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669768/Blog/Hero%20Images/gitlab-opencores-oliscience.jpg","https://about.gitlab.com/blog/welcoming-opencores-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"OpenCores come to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrea Borga\"},{\"@type\":\"Person\",\"name\":\"David Planella\"}],\n        \"datePublished\": \"2019-12-03\",\n      }",{"title":24255,"description":24256,"authors":24261,"heroImage":24257,"date":24264,"category":301,"tags":24265},[24262,24263],"Andrea Borga","David Planella","2019-12-03",[564,110,1265,1049,269],{"slug":24267,"featured":6,"template":736},"welcoming-opencores-to-gitlab","content:en-us:blog:welcoming-opencores-to-gitlab.yml","Welcoming Opencores To Gitlab","en-us/blog/welcoming-opencores-to-gitlab.yml","en-us/blog/welcoming-opencores-to-gitlab",{"_path":24273,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24274,"content":24280,"config":24284,"_id":24286,"_type":16,"title":24287,"_source":17,"_file":24288,"_stem":24289,"_extension":20},"/en-us/blog/gitlab-iconography-where-mvc-meets-visual-design",{"title":24275,"description":24276,"ogTitle":24275,"ogDescription":24276,"noIndex":6,"ogImage":24277,"ogUrl":24278,"ogSiteName":995,"ogType":996,"canonicalUrls":24278,"schema":24279},"GitLab Iconography: MVC meets visual design","A minimum viable change approach for a key UI element","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680884/Blog/Hero%20Images/mvc-icon-banner.png","https://about.gitlab.com/blog/gitlab-iconography-where-mvc-meets-visual-design","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Iconography: MVC meets visual design\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeremy Elder\"}],\n        \"datePublished\": \"2019-12-02\",\n      }",{"title":24275,"description":24276,"authors":24281,"heroImage":24277,"date":24282,"category":301,"tags":24283},[4219],"2019-12-02",[2702,2704,2703],{"slug":24285,"featured":6,"template":736},"gitlab-iconography-where-mvc-meets-visual-design","content:en-us:blog:gitlab-iconography-where-mvc-meets-visual-design.yml","Gitlab Iconography Where Mvc Meets Visual Design","en-us/blog/gitlab-iconography-where-mvc-meets-visual-design.yml","en-us/blog/gitlab-iconography-where-mvc-meets-visual-design",{"_path":24291,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24292,"content":24297,"config":24301,"_id":24303,"_type":16,"title":24304,"_source":17,"_file":24305,"_stem":24306,"_extension":20},"/en-us/blog/shopping-for-an-admin-account",{"title":24293,"description":24294,"ogTitle":24293,"ogDescription":24294,"noIndex":6,"ogImage":10311,"ogUrl":24295,"ogSiteName":995,"ogType":996,"canonicalUrls":24295,"schema":24296},"Shopping for an admin account via path traversal","How to exploit a path traversal issue to gain an admin account","https://about.gitlab.com/blog/shopping-for-an-admin-account","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Shopping for an admin account via path traversal\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joern Schneeweisz\"}],\n        \"datePublished\": \"2019-11-29\",\n      }",{"title":24293,"description":24294,"authors":24298,"heroImage":10311,"date":24299,"category":790,"tags":24300},[10316],"2019-11-29",[790,3292],{"slug":24302,"featured":6,"template":736},"shopping-for-an-admin-account","content:en-us:blog:shopping-for-an-admin-account.yml","Shopping For An Admin Account","en-us/blog/shopping-for-an-admin-account.yml","en-us/blog/shopping-for-an-admin-account",{"_path":24308,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24309,"content":24314,"config":24318,"_id":24320,"_type":16,"title":24321,"_source":17,"_file":24322,"_stem":24323,"_extension":20},"/en-us/blog/aws-lambda-usage-stats",{"title":24310,"description":24311,"ogTitle":24310,"ogDescription":24311,"noIndex":6,"ogImage":17164,"ogUrl":24312,"ogSiteName":995,"ogType":996,"canonicalUrls":24312,"schema":24313},"AWS Lambda usage survey results","The results of our quick AWS Lambda usage survey","https://about.gitlab.com/blog/aws-lambda-usage-stats","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AWS Lambda usage survey results\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2019-11-27\",\n      }",{"title":24310,"description":24311,"authors":24315,"heroImage":17164,"date":24316,"category":1388,"tags":24317},[2942],"2019-11-27",[269,1265,233],{"slug":24319,"featured":6,"template":736},"aws-lambda-usage-stats","content:en-us:blog:aws-lambda-usage-stats.yml","Aws Lambda Usage Stats","en-us/blog/aws-lambda-usage-stats.yml","en-us/blog/aws-lambda-usage-stats",{"_path":24325,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24326,"content":24332,"config":24335,"_id":24337,"_type":16,"title":24338,"_source":17,"_file":24339,"_stem":24340,"_extension":20},"/en-us/blog/creationline-post",{"title":24327,"description":24328,"ogTitle":24327,"ogDescription":24328,"noIndex":6,"ogImage":24329,"ogUrl":24330,"ogSiteName":995,"ogType":996,"canonicalUrls":24330,"schema":24331},"Meet Creationline team members who contribute to GitLab","Creationline contributes to GitLab as a reseller. Three team members explain how it works.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673096/Blog/Hero%20Images/contributors-cover.png","https://about.gitlab.com/blog/creationline-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet Creationline team members who contribute to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-11-27\",\n      }",{"title":24327,"description":24328,"authors":24333,"heroImage":24329,"date":24316,"category":1388,"tags":24334},[20126],[269,1265,3074,892],{"slug":24336,"featured":6,"template":736},"creationline-post","content:en-us:blog:creationline-post.yml","Creationline Post","en-us/blog/creationline-post.yml","en-us/blog/creationline-post",{"_path":24342,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24343,"content":24348,"config":24352,"_id":24354,"_type":16,"title":24355,"_source":17,"_file":24356,"_stem":24357,"_extension":20},"/en-us/blog/kubecon-eu-cfp-support",{"title":24344,"description":24345,"ogTitle":24344,"ogDescription":24345,"noIndex":6,"ogImage":17164,"ogUrl":24346,"ogSiteName":995,"ogType":996,"canonicalUrls":24346,"schema":24347},"KubeCon EU CFP Support","GitLab's Tech Evangelism team wants to help you get on stage at KubeCon EU!","https://about.gitlab.com/blog/kubecon-eu-cfp-support","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"KubeCon EU CFP Support\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Chin\"}],\n        \"datePublished\": \"2019-11-27\",\n      }",{"title":24344,"description":24345,"authors":24349,"heroImage":17164,"date":24316,"category":17170,"tags":24351},[24350],"Emily Chin",[729,729,729],{"slug":24353,"featured":6,"template":736},"kubecon-eu-cfp-support","content:en-us:blog:kubecon-eu-cfp-support.yml","Kubecon Eu Cfp Support","en-us/blog/kubecon-eu-cfp-support.yml","en-us/blog/kubecon-eu-cfp-support",{"_path":24359,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24360,"content":24366,"config":24370,"_id":24372,"_type":16,"title":24373,"_source":17,"_file":24374,"_stem":24375,"_extension":20},"/en-us/blog/e-factor-productivity",{"title":24361,"description":24362,"ogTitle":24361,"ogDescription":24362,"noIndex":6,"ogImage":24363,"ogUrl":24364,"ogSiteName":995,"ogType":996,"canonicalUrls":24364,"schema":24365},"Improve your productivity by tracking your time and measuring your E-factor","Sharing my personal experience of how tracking my time while working remotely helped me be more productive.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673115/Blog/Hero%20Images/e-factor.jpg","https://about.gitlab.com/blog/e-factor-productivity","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improve your productivity by tracking your time and measuring your E-factor\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2019-11-26\",\n      }",{"title":24361,"description":24362,"authors":24367,"heroImage":24363,"date":24368,"category":858,"tags":24369},[17415],"2019-11-26",[1569,2703,2702],{"slug":24371,"featured":6,"template":736},"e-factor-productivity","content:en-us:blog:e-factor-productivity.yml","E Factor Productivity","en-us/blog/e-factor-productivity.yml","en-us/blog/e-factor-productivity",{"_path":24377,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24378,"content":24383,"config":24386,"_id":24388,"_type":16,"title":24389,"_source":17,"_file":24390,"_stem":24391,"_extension":20},"/en-us/blog/gitlab-daily-tools",{"title":24379,"description":24380,"ogTitle":24379,"ogDescription":24380,"noIndex":6,"ogImage":17164,"ogUrl":24381,"ogSiteName":995,"ogType":996,"canonicalUrls":24381,"schema":24382},"How to improve your daily GitLab experience","Personal tools and tips for a more productive GitLab experience","https://about.gitlab.com/blog/gitlab-daily-tools","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to improve your daily GitLab experience\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Viktor Nagy\"}],\n        \"datePublished\": \"2019-11-26\",\n      }",{"title":24379,"description":24380,"authors":24384,"heroImage":17164,"date":24368,"category":17170,"tags":24385},[2942],[1569,1335],{"slug":24387,"featured":6,"template":736},"gitlab-daily-tools","content:en-us:blog:gitlab-daily-tools.yml","Gitlab Daily Tools","en-us/blog/gitlab-daily-tools.yml","en-us/blog/gitlab-daily-tools",{"_path":24393,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24394,"content":24399,"config":24402,"_id":24404,"_type":16,"title":24405,"_source":17,"_file":24406,"_stem":24407,"_extension":20},"/en-us/blog/migrating-from-jenkins",{"title":24395,"description":24396,"ogTitle":24395,"ogDescription":24396,"noIndex":6,"ogImage":12390,"ogUrl":24397,"ogSiteName":995,"ogType":996,"canonicalUrls":24397,"schema":24398},"Migrating from Jenkins","Best practices for making the switch to GitLab CI/CD.","https://about.gitlab.com/blog/migrating-from-jenkins","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migrating from Jenkins\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-11-26\",\n      }",{"title":24395,"description":24396,"authors":24400,"heroImage":12390,"date":24368,"category":8140,"tags":24401},[17150],[110,564],{"slug":24403,"featured":6,"template":736},"migrating-from-jenkins","content:en-us:blog:migrating-from-jenkins.yml","Migrating From Jenkins","en-us/blog/migrating-from-jenkins.yml","en-us/blog/migrating-from-jenkins",{"_path":24409,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24410,"content":24416,"config":24421,"_id":24423,"_type":16,"title":24424,"_source":17,"_file":24425,"_stem":24426,"_extension":20},"/en-us/blog/the-single-application-to-accelerate-your-startup",{"title":24411,"description":24412,"ogTitle":24411,"ogDescription":24412,"noIndex":6,"ogImage":24413,"ogUrl":24414,"ogSiteName":995,"ogType":996,"canonicalUrls":24414,"schema":24415},"The single application to accelerate your startup","GitLab Ultimate and Gold now free for select YC Startups.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679046/Blog/Hero%20Images/startup.jpg","https://about.gitlab.com/blog/the-single-application-to-accelerate-your-startup","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The single application to accelerate your startup\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Borivoje Tasovac\"}],\n        \"datePublished\": \"2019-11-25\",\n      }",{"title":24411,"description":24412,"authors":24417,"heroImage":24413,"date":24419,"category":301,"tags":24420},[24418],"Borivoje Tasovac","2019-11-25",[269,1049,10011],{"slug":24422,"featured":6,"template":736},"the-single-application-to-accelerate-your-startup","content:en-us:blog:the-single-application-to-accelerate-your-startup.yml","The Single Application To Accelerate Your Startup","en-us/blog/the-single-application-to-accelerate-your-startup.yml","en-us/blog/the-single-application-to-accelerate-your-startup",{"_path":24428,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24429,"content":24434,"config":24439,"_id":24441,"_type":16,"title":24442,"_source":17,"_file":24443,"_stem":24444,"_extension":20},"/en-us/blog/open-sourcing-the-gitter-mobile-apps",{"title":24430,"description":24431,"ogTitle":24430,"ogDescription":24431,"noIndex":6,"ogImage":18220,"ogUrl":24432,"ogSiteName":995,"ogType":996,"canonicalUrls":24432,"schema":24433},"Open-sourcing the Gitter mobile apps","Learn how we open sourced the Android and iOS Gitter apps.","https://about.gitlab.com/blog/open-sourcing-the-gitter-mobile-apps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Open-sourcing the Gitter mobile apps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Eastwood\"}],\n        \"datePublished\": \"2019-11-22\",\n      }",{"title":24430,"description":24431,"authors":24435,"heroImage":18220,"date":24437,"category":858,"tags":24438},[24436],"Eric Eastwood","2019-11-22",[1265,2815,3074,110],{"slug":24440,"featured":6,"template":736},"open-sourcing-the-gitter-mobile-apps","content:en-us:blog:open-sourcing-the-gitter-mobile-apps.yml","Open Sourcing The Gitter Mobile Apps","en-us/blog/open-sourcing-the-gitter-mobile-apps.yml","en-us/blog/open-sourcing-the-gitter-mobile-apps",{"_path":24446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24447,"content":24453,"config":24457,"_id":24459,"_type":16,"title":24460,"_source":17,"_file":24461,"_stem":24462,"_extension":20},"/en-us/blog/multi-cloud-security",{"title":24448,"description":24449,"ogTitle":24448,"ogDescription":24449,"noIndex":6,"ogImage":24450,"ogUrl":24451,"ogSiteName":995,"ogType":996,"canonicalUrls":24451,"schema":24452},"A brief guide to multicloud security","Five challenges and seven best practices to consider for your multicloud strategy.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679136/Blog/Hero%20Images/multi-cloud-security.jpg","https://about.gitlab.com/blog/multi-cloud-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A brief guide to multicloud security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-11-21\",\n      }",{"title":24448,"description":24449,"authors":24454,"heroImage":24450,"date":24455,"category":8140,"tags":24456},[21105],"2019-11-21",[790,5733,582],{"slug":24458,"featured":6,"template":736},"multi-cloud-security","content:en-us:blog:multi-cloud-security.yml","Multi Cloud Security","en-us/blog/multi-cloud-security.yml","en-us/blog/multi-cloud-security",{"_path":24464,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24465,"content":24471,"config":24476,"_id":24478,"_type":16,"title":24479,"_source":17,"_file":24480,"_stem":24481,"_extension":20},"/en-us/blog/from-idea-to-production-on-thousands-of-clouds",{"title":24466,"description":24467,"ogTitle":24466,"ogDescription":24467,"noIndex":6,"ogImage":24468,"ogUrl":24469,"ogSiteName":995,"ogType":996,"canonicalUrls":24469,"schema":24470},"From idea to production on thousands of clouds","Deliver cloud native applications in more places consistently at scale with GitLab and Gravity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679266/Blog/Hero%20Images/blue-lights.jpg","https://about.gitlab.com/blog/from-idea-to-production-on-thousands-of-clouds","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"From idea to production on thousands of clouds\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ev Kontsevoy\"}],\n        \"datePublished\": \"2019-11-20\",\n      }",{"title":24466,"description":24467,"authors":24472,"heroImage":24468,"date":24474,"category":301,"tags":24475},[24473],"Ev Kontsevoy","2019-11-20",[582,564,233,2908,110,10011],{"slug":24477,"featured":6,"template":736},"from-idea-to-production-on-thousands-of-clouds","content:en-us:blog:from-idea-to-production-on-thousands-of-clouds.yml","From Idea To Production On Thousands Of Clouds","en-us/blog/from-idea-to-production-on-thousands-of-clouds.yml","en-us/blog/from-idea-to-production-on-thousands-of-clouds",{"_path":24483,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24484,"content":24490,"config":24493,"_id":24495,"_type":16,"title":24496,"_source":17,"_file":24497,"_stem":24498,"_extension":20},"/en-us/blog/toolchain-security-with-gitlab",{"title":24485,"description":24486,"ogTitle":24485,"ogDescription":24486,"noIndex":6,"ogImage":24487,"ogUrl":24488,"ogSiteName":995,"ogType":996,"canonicalUrls":24488,"schema":24489},"How to overcome toolchain security challenges with GitLab","Use GitLab to control your toolchain sprawl, improve team communication and productivity, and secure your DevOps lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673158/Blog/Hero%20Images/toolchain-security-gitlab-cover.jpg","https://about.gitlab.com/blog/toolchain-security-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to overcome toolchain security challenges with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-11-20\",\n      }",{"title":24485,"description":24486,"authors":24491,"heroImage":24487,"date":24474,"category":790,"tags":24492},[21105],[564,2815,790],{"slug":24494,"featured":6,"template":736},"toolchain-security-with-gitlab","content:en-us:blog:toolchain-security-with-gitlab.yml","Toolchain Security With Gitlab","en-us/blog/toolchain-security-with-gitlab.yml","en-us/blog/toolchain-security-with-gitlab",{"_path":24500,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24501,"content":24507,"config":24511,"_id":24513,"_type":16,"title":24514,"_source":17,"_file":24515,"_stem":24516,"_extension":20},"/en-us/blog/defend-cicd-security",{"title":24502,"description":24503,"ogTitle":24502,"ogDescription":24503,"noIndex":6,"ogImage":24504,"ogUrl":24505,"ogSiteName":995,"ogType":996,"canonicalUrls":24505,"schema":24506},"Defending the CI/CD pipeline","Speed to launch often comes at the cost of security – but it doesn’t have to. Here are four ways to achieve both by using a CI/CD pipeline","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678499/Blog/Hero%20Images/defend-cicd-security.jpg","https://about.gitlab.com/blog/defend-cicd-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Defending the CI/CD pipeline\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-11-19\",\n      }",{"title":24502,"description":24503,"authors":24508,"heroImage":24504,"date":24509,"category":8140,"tags":24510},[21105],"2019-11-19",[110,564,790],{"slug":24512,"featured":6,"template":736},"defend-cicd-security","content:en-us:blog:defend-cicd-security.yml","Defend Cicd Security","en-us/blog/defend-cicd-security.yml","en-us/blog/defend-cicd-security",{"_path":24518,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24519,"content":24525,"config":24529,"_id":24531,"_type":16,"title":24532,"_source":17,"_file":24533,"_stem":24534,"_extension":20},"/en-us/blog/gitlab-serverless-with-cloudrun-for-anthos",{"title":24520,"description":24521,"ogTitle":24520,"ogDescription":24521,"noIndex":6,"ogImage":24522,"ogUrl":24523,"ogSiteName":995,"ogType":996,"canonicalUrls":24523,"schema":24524},"Announcing GitLab Serverless deploying to Cloud Run for Anthos","Discover how we're making it easier to deploy serverless workloads on-premise with Anthos.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666851/Blog/Hero%20Images/gitlab-serverless-blog.png","https://about.gitlab.com/blog/gitlab-serverless-with-cloudrun-for-anthos","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing GitLab Serverless deploying to Cloud Run for Anthos\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mayank Tahilramani\"}],\n        \"datePublished\": \"2019-11-19\",\n      }",{"title":24520,"description":24521,"authors":24526,"heroImage":24522,"date":24509,"category":1388,"tags":24528},[24527],"Mayank Tahilramani",[110,582,564,233,6980],{"slug":24530,"featured":6,"template":736},"gitlab-serverless-with-cloudrun-for-anthos","content:en-us:blog:gitlab-serverless-with-cloudrun-for-anthos.yml","Gitlab Serverless With Cloudrun For Anthos","en-us/blog/gitlab-serverless-with-cloudrun-for-anthos.yml","en-us/blog/gitlab-serverless-with-cloudrun-for-anthos",{"_path":24536,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24537,"content":24543,"config":24547,"_id":24549,"_type":16,"title":24550,"_source":17,"_file":24551,"_stem":24552,"_extension":20},"/en-us/blog/were-increasing-bounties-in-our-bug-bounty-program",{"title":24538,"description":24539,"ogTitle":24538,"ogDescription":24539,"noIndex":6,"ogImage":24540,"ogUrl":24541,"ogSiteName":995,"ogType":996,"canonicalUrls":24541,"schema":24542},"We are increasing bounties in our bug bounty program","We're now offering higher bounties for critical and high severity reports.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672689/Blog/Hero%20Images/banter-snaps-REyoFHP9pw8-unsplash.jpg","https://about.gitlab.com/blog/were-increasing-bounties-in-our-bug-bounty-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We are increasing bounties in our bug bounty program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-11-18\",\n      }",{"title":24538,"description":24539,"authors":24544,"heroImage":24540,"date":24545,"category":790,"tags":24546},[11324],"2019-11-18",[790,2483],{"slug":24548,"featured":6,"template":736},"were-increasing-bounties-in-our-bug-bounty-program","content:en-us:blog:were-increasing-bounties-in-our-bug-bounty-program.yml","Were Increasing Bounties In Our Bug Bounty Program","en-us/blog/were-increasing-bounties-in-our-bug-bounty-program.yml","en-us/blog/were-increasing-bounties-in-our-bug-bounty-program",{"_path":24554,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24555,"content":24561,"config":24566,"_id":24568,"_type":16,"title":24569,"_source":17,"_file":24570,"_stem":24571,"_extension":20},"/en-us/blog/python-rust-and-gitlab-ci",{"title":24556,"description":24557,"ogTitle":24556,"ogDescription":24557,"noIndex":6,"ogImage":24558,"ogUrl":24559,"ogSiteName":995,"ogType":996,"canonicalUrls":24559,"schema":24560},"From idea to production with Python, Rust and GitLab CI","GitLab hero Mario Garcia demos the intricate process at GitLab Commit London.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678507/Blog/Hero%20Images/lightbulb.jpg","https://about.gitlab.com/blog/python-rust-and-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Bringing your application from idea to production using Python, Rust, and GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-11-15\",\n      }",{"title":24562,"description":24557,"authors":24563,"heroImage":24558,"date":24564,"category":301,"tags":24565},"Bringing your application from idea to production using Python, Rust, and GitLab CI",[16023],"2019-11-15",[110,269,4665],{"slug":24567,"featured":6,"template":736},"python-rust-and-gitlab-ci","content:en-us:blog:python-rust-and-gitlab-ci.yml","Python Rust And Gitlab Ci","en-us/blog/python-rust-and-gitlab-ci.yml","en-us/blog/python-rust-and-gitlab-ci",{"_path":24573,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24574,"content":24580,"config":24584,"_id":24586,"_type":16,"title":24587,"_source":17,"_file":24588,"_stem":24589,"_extension":20},"/en-us/blog/tracking-down-missing-tcp-keepalives",{"title":24575,"description":24576,"ogTitle":24575,"ogDescription":24576,"noIndex":6,"ogImage":24577,"ogUrl":24578,"ogSiteName":995,"ogType":996,"canonicalUrls":24578,"schema":24579},"Tracking TCP Keepalives: Lessons in Docker, Golang & GitLab","An in-depth recap of debugging a bug in the Docker client library.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680874/Blog/Hero%20Images/network.jpg","https://about.gitlab.com/blog/tracking-down-missing-tcp-keepalives","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What tracking down missing TCP Keepalives taught me about Docker, Golang, and GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stan Hu\"}],\n        \"datePublished\": \"2019-11-15\",\n      }",{"title":24581,"description":24576,"authors":24582,"heroImage":24577,"date":24564,"category":858,"tags":24583},"What tracking down missing TCP Keepalives taught me about Docker, Golang, and GitLab",[1598],[269,1195,559,2097,1730,2097,771,964,730],{"slug":24585,"featured":6,"template":736},"tracking-down-missing-tcp-keepalives","content:en-us:blog:tracking-down-missing-tcp-keepalives.yml","Tracking Down Missing Tcp Keepalives","en-us/blog/tracking-down-missing-tcp-keepalives.yml","en-us/blog/tracking-down-missing-tcp-keepalives",{"_path":24591,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24592,"content":24597,"config":24601,"_id":24603,"_type":16,"title":24604,"_source":17,"_file":24605,"_stem":24606,"_extension":20},"/en-us/blog/how-you-can-help-shape-the-future-of-securing-applications-at-gitlab",{"title":24593,"description":24594,"ogTitle":24593,"ogDescription":24594,"noIndex":6,"ogImage":10992,"ogUrl":24595,"ogSiteName":995,"ogType":996,"canonicalUrls":24595,"schema":24596},"How you can help shape the future of securing applications with GitLab","We want to provide the best experience in keeping your application safe after your code is in production.","https://about.gitlab.com/blog/how-you-can-help-shape-the-future-of-securing-applications-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How you can help shape the future of securing applications with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2019-11-14\",\n      }",{"title":24593,"description":24594,"authors":24598,"heroImage":10992,"date":24599,"category":301,"tags":24600},[20500],"2019-11-14",[2703,1569],{"slug":24602,"featured":6,"template":736},"how-you-can-help-shape-the-future-of-securing-applications-at-gitlab","content:en-us:blog:how-you-can-help-shape-the-future-of-securing-applications-at-gitlab.yml","How You Can Help Shape The Future Of Securing Applications At Gitlab","en-us/blog/how-you-can-help-shape-the-future-of-securing-applications-at-gitlab.yml","en-us/blog/how-you-can-help-shape-the-future-of-securing-applications-at-gitlab",{"_path":24608,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24609,"content":24615,"config":24619,"_id":24621,"_type":16,"title":24622,"_source":17,"_file":24623,"_stem":24624,"_extension":20},"/en-us/blog/cloud-native-architectures-made-easy",{"title":24610,"description":24611,"ogTitle":24610,"ogDescription":24611,"noIndex":6,"ogImage":24612,"ogUrl":24613,"ogSiteName":995,"ogType":996,"canonicalUrls":24613,"schema":24614},"Simplifying and optimizing cloud native architectures","Learn what cloud native architectures are, how to optimize them using GitLab's cohesive approach and what features you can use to help be more efficient.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671263/Blog/Hero%20Images/cloudarchitecture.jpg","https://about.gitlab.com/blog/cloud-native-architectures-made-easy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Simplifying and optimizing cloud native architectures\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-11-13\",\n      }",{"title":24610,"description":24611,"authors":24616,"heroImage":24612,"date":24617,"category":301,"tags":24618},[19332],"2019-11-13",[110,582],{"slug":24620,"featured":6,"template":736},"cloud-native-architectures-made-easy","content:en-us:blog:cloud-native-architectures-made-easy.yml","Cloud Native Architectures Made Easy","en-us/blog/cloud-native-architectures-made-easy.yml","en-us/blog/cloud-native-architectures-made-easy",{"_path":24626,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24627,"content":24633,"config":24637,"_id":24639,"_type":16,"title":24640,"_source":17,"_file":24641,"_stem":24642,"_extension":20},"/en-us/blog/sourcegraph-code-intelligence-integration-for-gitlab",{"title":24628,"description":24629,"ogTitle":24628,"ogDescription":24629,"noIndex":6,"ogImage":24630,"ogUrl":24631,"ogSiteName":995,"ogType":996,"canonicalUrls":24631,"schema":24632},"Native code intelligence is coming to GitLab","We're enhancing code review with Sourcegraph – no extra plugins required.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673090/Blog/Hero%20Images/random_code.jpg","https://about.gitlab.com/blog/sourcegraph-code-intelligence-integration-for-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Native code intelligence is coming to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mayank Tahilramani\"}],\n        \"datePublished\": \"2019-11-12\",\n      }",{"title":24628,"description":24629,"authors":24634,"heroImage":24630,"date":24635,"category":1388,"tags":24636},[24527],"2019-11-12",[110,582,233],{"slug":24638,"featured":6,"template":736},"sourcegraph-code-intelligence-integration-for-gitlab","content:en-us:blog:sourcegraph-code-intelligence-integration-for-gitlab.yml","Sourcegraph Code Intelligence Integration For Gitlab","en-us/blog/sourcegraph-code-intelligence-integration-for-gitlab.yml","en-us/blog/sourcegraph-code-intelligence-integration-for-gitlab",{"_path":24644,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24645,"content":24650,"config":24653,"_id":24655,"_type":16,"title":24656,"_source":17,"_file":24657,"_stem":24658,"_extension":20},"/en-us/blog/update-on-hiring",{"title":24646,"description":24647,"ogTitle":24646,"ogDescription":24647,"noIndex":6,"ogImage":11046,"ogUrl":24648,"ogSiteName":995,"ogType":996,"canonicalUrls":24648,"schema":24649},"Update on hiring discussions for specific GitLab.com roles","Clarifying GitLab's position on a proposal concerning specific new roles located in China and Russia.","https://about.gitlab.com/blog/update-on-hiring","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update on hiring discussions for specific GitLab.com roles\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-11-12\",\n      }",{"title":24646,"description":24647,"authors":24651,"heroImage":11046,"date":24635,"category":301,"tags":24652},[1000],[1049],{"slug":24654,"featured":6,"template":736},"update-on-hiring","content:en-us:blog:update-on-hiring.yml","Update On Hiring","en-us/blog/update-on-hiring.yml","en-us/blog/update-on-hiring",{"_path":24660,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24661,"content":24667,"config":24672,"_id":24674,"_type":16,"title":24675,"_source":17,"_file":24676,"_stem":24677,"_extension":20},"/en-us/blog/the-consul-outage-that-never-happened",{"title":24662,"description":24663,"ogTitle":24662,"ogDescription":24663,"noIndex":6,"ogImage":24664,"ogUrl":24665,"ogSiteName":995,"ogType":996,"canonicalUrls":24665,"schema":24666},"The Consul outage that never happened","Sometimes a good plan is the best tool for the job.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679092/Blog/Hero%20Images/consul-outage-image.jpg","https://about.gitlab.com/blog/the-consul-outage-that-never-happened","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Consul outage that never happened\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Devin Sylva\"}],\n        \"datePublished\": \"2019-11-08\",\n      }",{"title":24662,"description":24663,"authors":24668,"heroImage":24664,"date":24670,"category":858,"tags":24671},[24669],"Devin Sylva","2019-11-08",[6376],{"slug":24673,"featured":6,"template":736},"the-consul-outage-that-never-happened","content:en-us:blog:the-consul-outage-that-never-happened.yml","The Consul Outage That Never Happened","en-us/blog/the-consul-outage-that-never-happened.yml","en-us/blog/the-consul-outage-that-never-happened",{"_path":24679,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24680,"content":24686,"config":24689,"_id":24691,"_type":16,"title":24692,"_source":17,"_file":24693,"_stem":24694,"_extension":20},"/en-us/blog/how-gitlab-pages-made-our-sketch-design-handoffs-easier-and-faster",{"title":24681,"description":24682,"ogTitle":24681,"ogDescription":24682,"noIndex":6,"ogImage":24683,"ogUrl":24684,"ogSiteName":995,"ogType":996,"canonicalUrls":24684,"schema":24685},"How GitLab Pages made our Sketch design handoffs easier and faster","From designer to developer hands, here is our workflow for sharing Sketch design specs using GitLab Pages.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684206/Blog/Hero%20Images/cover.jpg","https://about.gitlab.com/blog/how-gitlab-pages-made-our-sketch-design-handoffs-easier-and-faster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab Pages made our Sketch design handoffs easier and faster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pedro Moreira da Silva\"}],\n        \"datePublished\": \"2019-11-07\",\n      }",{"title":24681,"description":24682,"authors":24687,"heroImage":24683,"date":24688,"category":858},[18751],"2019-11-07",{"slug":24690,"featured":6,"template":736},"how-gitlab-pages-made-our-sketch-design-handoffs-easier-and-faster","content:en-us:blog:how-gitlab-pages-made-our-sketch-design-handoffs-easier-and-faster.yml","How Gitlab Pages Made Our Sketch Design Handoffs Easier And Faster","en-us/blog/how-gitlab-pages-made-our-sketch-design-handoffs-easier-and-faster.yml","en-us/blog/how-gitlab-pages-made-our-sketch-design-handoffs-easier-and-faster",{"_path":24696,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24697,"content":24703,"config":24706,"_id":24708,"_type":16,"title":24709,"_source":17,"_file":24710,"_stem":24711,"_extension":20},"/en-us/blog/the-security-tightrope",{"title":24698,"description":24699,"ogTitle":24698,"ogDescription":24699,"noIndex":6,"ogImage":24700,"ogUrl":24701,"ogSiteName":995,"ogType":996,"canonicalUrls":24701,"schema":24702},"The security tightrope: balancing security with ease-of-use","How do you balance user experience with the friction that’s introduced when trying to keep something secure?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680866/Blog/Hero%20Images/architecture-boulder-city-cityscape-220759.jpg","https://about.gitlab.com/blog/the-security-tightrope","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The security tightrope: balancing security with ease-of-use\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-11-07\",\n      }",{"title":24698,"description":24699,"authors":24704,"heroImage":24700,"date":24688,"category":17170,"tags":24705},[11324],[790,1569,790],{"slug":24707,"featured":6,"template":736},"the-security-tightrope","content:en-us:blog:the-security-tightrope.yml","The Security Tightrope","en-us/blog/the-security-tightrope.yml","en-us/blog/the-security-tightrope",{"_path":24713,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24714,"content":24720,"config":24724,"_id":24726,"_type":16,"title":24727,"_source":17,"_file":24728,"_stem":24729,"_extension":20},"/en-us/blog/gitlab-ci-cd-is-for-multi-cloud",{"title":24715,"description":24716,"ogTitle":24715,"ogDescription":24716,"noIndex":6,"ogImage":24717,"ogUrl":24718,"ogSiteName":995,"ogType":996,"canonicalUrls":24718,"schema":24719},"GitLab CI/CD is for multi-cloud","Can cloud providers (and their tools) ever be cloud agnostic? We discuss GitHub Actions and GitLab CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678401/Blog/Hero%20Images/gitlab-for-multicloud.jpg","https://about.gitlab.com/blog/gitlab-ci-cd-is-for-multi-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab CI/CD is for multi-cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-11-06\",\n      }",{"title":24715,"description":24716,"authors":24721,"heroImage":24717,"date":24722,"category":8140,"tags":24723},[17150],"2019-11-06",[110,1335,564],{"slug":24725,"featured":6,"template":736},"gitlab-ci-cd-is-for-multi-cloud","content:en-us:blog:gitlab-ci-cd-is-for-multi-cloud.yml","Gitlab Ci Cd Is For Multi Cloud","en-us/blog/gitlab-ci-cd-is-for-multi-cloud.yml","en-us/blog/gitlab-ci-cd-is-for-multi-cloud",{"_path":24731,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24732,"content":24738,"config":24742,"_id":24744,"_type":16,"title":24733,"_source":17,"_file":24745,"_stem":24746,"_extension":20},"/en-us/blog/how-to-stay-productive-in-your-home-office",{"title":24733,"description":24734,"ogTitle":24733,"ogDescription":24734,"noIndex":6,"ogImage":24735,"ogUrl":24736,"ogSiteName":995,"ogType":996,"canonicalUrls":24736,"schema":24737},"How To Stay Productive In Your Home Office","GitLab Developer Brandon Lyon shares his tips on setting up home offices for remote work.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679685/Blog/Hero%20Images/blog-bl-desk.jpg","https://about.gitlab.com/blog/how-to-stay-productive-in-your-home-office","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How To Stay Productive In Your Home Office\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brandon Lyon\"}],\n        \"datePublished\": \"2019-11-06\",\n      }",{"title":24733,"description":24734,"authors":24739,"heroImage":24735,"date":24722,"category":17170,"tags":24741},[24740],"Brandon Lyon",[3914],{"slug":24743,"featured":6,"template":736},"how-to-stay-productive-in-your-home-office","content:en-us:blog:how-to-stay-productive-in-your-home-office.yml","en-us/blog/how-to-stay-productive-in-your-home-office.yml","en-us/blog/how-to-stay-productive-in-your-home-office",{"_path":24748,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24749,"content":24755,"config":24759,"_id":24761,"_type":16,"title":24762,"_source":17,"_file":24763,"_stem":24764,"_extension":20},"/en-us/blog/adsoul-devops-transition-to-gitlab-ci",{"title":24750,"description":24751,"ogTitle":24750,"ogDescription":24751,"noIndex":6,"ogImage":24752,"ogUrl":24753,"ogSiteName":995,"ogType":996,"canonicalUrls":24753,"schema":24754},"How adSoul transitioned to GitLab CI from Jenkins","adSoul, a marketing automation company, outlines a successful three-phase migration plan for moving to GitLab CI from Jenkins.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678442/Blog/Hero%20Images/londoncommit.png","https://about.gitlab.com/blog/adsoul-devops-transition-to-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How adSoul transitioned to GitLab CI from Jenkins\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2019-11-05\",\n      }",{"title":24750,"description":24751,"authors":24756,"heroImage":24752,"date":24757,"category":858,"tags":24758},[22783],"2019-11-05",[110,564,1265,1988,10011,582],{"slug":24760,"featured":6,"template":736},"adsoul-devops-transition-to-gitlab-ci","content:en-us:blog:adsoul-devops-transition-to-gitlab-ci.yml","Adsoul Devops Transition To Gitlab Ci","en-us/blog/adsoul-devops-transition-to-gitlab-ci.yml","en-us/blog/adsoul-devops-transition-to-gitlab-ci",{"_path":24766,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24767,"content":24772,"config":24777,"_id":24779,"_type":16,"title":24780,"_source":17,"_file":24781,"_stem":24782,"_extension":20},"/en-us/blog/three-levels-data-analysis",{"title":24768,"description":24769,"ogTitle":24768,"ogDescription":24769,"noIndex":6,"ogImage":22066,"ogUrl":24770,"ogSiteName":995,"ogType":996,"canonicalUrls":24770,"schema":24771},"A framework for sssessing data organization maturity","GitLab Data Engineer Emilie Schario lays out a framework for data analysis that can help an organization understand the maturity of their data team.","https://about.gitlab.com/blog/three-levels-data-analysis","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The 3 Levels of Data Analysis- A Framework for Assessing Data Organization Maturity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilie Schario\"}],\n        \"datePublished\": \"2019-11-04\",\n      }",{"title":24773,"description":24769,"authors":24774,"heroImage":22066,"date":24775,"category":17170,"tags":24776},"The 3 Levels of Data Analysis- A Framework for Assessing Data Organization Maturity",[22367],"2019-11-04",[4182,730],{"slug":24778,"featured":6,"template":736},"three-levels-data-analysis","content:en-us:blog:three-levels-data-analysis.yml","Three Levels Data Analysis","en-us/blog/three-levels-data-analysis.yml","en-us/blog/three-levels-data-analysis",{"_path":24784,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24785,"content":24791,"config":24796,"_id":24798,"_type":16,"title":24799,"_source":17,"_file":24800,"_stem":24801,"_extension":20},"/en-us/blog/devops-tool-landscape",{"title":24786,"description":24787,"ogTitle":24786,"ogDescription":24787,"noIndex":6,"ogImage":24788,"ogUrl":24789,"ogSiteName":995,"ogType":996,"canonicalUrls":24789,"schema":24790},"The DevOps tool landscape","Competitive intelligence manager Mahesh Kumar describes the criteria we use when comparing GitLab to other DevOps tools.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670008/Blog/Hero%20Images/devops-tool-landscape.jpg","https://about.gitlab.com/blog/devops-tool-landscape","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The DevOps tool landscape\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mahesh Kumar\"},{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-11-01\",\n      }",{"title":24786,"description":24787,"authors":24792,"heroImage":24788,"date":24794,"category":8140,"tags":24795},[24793,17150],"Mahesh Kumar","2019-11-01",[110,564,1569],{"slug":24797,"featured":6,"template":736},"devops-tool-landscape","content:en-us:blog:devops-tool-landscape.yml","Devops Tool Landscape","en-us/blog/devops-tool-landscape.yml","en-us/blog/devops-tool-landscape",{"_path":24803,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24804,"content":24810,"config":24813,"_id":24815,"_type":16,"title":24816,"_source":17,"_file":24817,"_stem":24818,"_extension":20},"/en-us/blog/sids-top-advice-for-startups",{"title":24805,"description":24806,"ogTitle":24805,"ogDescription":24806,"noIndex":6,"ogImage":24807,"ogUrl":24808,"ogSiteName":995,"ogType":996,"canonicalUrls":24808,"schema":24809},"Sid’s top advice for startup CEOs","Learn more about the advice Sid gives to other startup CEOs","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680855/Blog/Hero%20Images/sid-top-advice-startup.jpg","https://about.gitlab.com/blog/sids-top-advice-for-startups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Sid’s top advice for startup CEOs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Clement Ho\"}],\n        \"datePublished\": \"2019-11-01\",\n      }",{"title":24805,"description":24806,"authors":24811,"heroImage":24807,"date":24794,"category":17170,"tags":24812},[20589],[10011],{"slug":24814,"featured":6,"template":736},"sids-top-advice-for-startups","content:en-us:blog:sids-top-advice-for-startups.yml","Sids Top Advice For Startups","en-us/blog/sids-top-advice-for-startups.yml","en-us/blog/sids-top-advice-for-startups",{"_path":24820,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24821,"content":24826,"config":24830,"_id":24832,"_type":16,"title":24833,"_source":17,"_file":24834,"_stem":24835,"_extension":20},"/en-us/blog/speed-security-devops",{"title":24822,"description":24823,"ogTitle":24822,"ogDescription":24823,"noIndex":6,"ogImage":10184,"ogUrl":24824,"ogSiteName":995,"ogType":996,"canonicalUrls":24824,"schema":24825},"How to ensure security at the speed of DevOps","Read here on how to speed up your secure DevOps for faster delivery on your safe and secure applications.","https://about.gitlab.com/blog/speed-security-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to ensure security at the speed of DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-10-31\",\n      }",{"title":24822,"description":24823,"authors":24827,"heroImage":10184,"date":24828,"category":8140,"tags":24829},[21105],"2019-10-31",[790,564,574],{"slug":24831,"featured":6,"template":736},"speed-security-devops","content:en-us:blog:speed-security-devops.yml","Speed Security Devops","en-us/blog/speed-security-devops.yml","en-us/blog/speed-security-devops",{"_path":24837,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24838,"content":24843,"config":24847,"_id":24849,"_type":16,"title":24850,"_source":17,"_file":24851,"_stem":24852,"_extension":20},"/en-us/blog/secure-journey-continuous-delivery",{"title":24839,"description":24840,"ogTitle":24839,"ogDescription":24840,"noIndex":6,"ogImage":24752,"ogUrl":24841,"ogSiteName":995,"ogType":996,"canonicalUrls":24841,"schema":24842},"Securing the journey to continuous delivery","The UK Dept for Work and Pensions bring security best practices to the forefront of a massive transition to continuous delivery.","https://about.gitlab.com/blog/secure-journey-continuous-delivery","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Securing the journey to continuous delivery\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-10-30\",\n      }",{"title":24839,"description":24840,"authors":24844,"heroImage":24752,"date":24845,"category":8140,"tags":24846},[21105],"2019-10-30",[790,564,729,2098,269],{"slug":24848,"featured":6,"template":736},"secure-journey-continuous-delivery","content:en-us:blog:secure-journey-continuous-delivery.yml","Secure Journey Continuous Delivery","en-us/blog/secure-journey-continuous-delivery.yml","en-us/blog/secure-journey-continuous-delivery",{"_path":24854,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24855,"content":24861,"config":24866,"_id":24868,"_type":16,"title":24869,"_source":17,"_file":24870,"_stem":24871,"_extension":20},"/en-us/blog/parallels-between-all-remote-and-cloud-computing",{"title":24856,"description":24857,"ogTitle":24856,"ogDescription":24857,"noIndex":6,"ogImage":24858,"ogUrl":24859,"ogSiteName":995,"ogType":996,"canonicalUrls":24859,"schema":24860},"The parallels between all-remote and cloud computing","The rise of the remote workplace has many parallels with the rise of cloud computing.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673019/Blog/Hero%20Images/vintage-keyboards.jpg","https://about.gitlab.com/blog/parallels-between-all-remote-and-cloud-computing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The parallels between all-remote and cloud computing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joyce Tompsett\"}],\n        \"datePublished\": \"2019-10-29\",\n      }",{"title":24856,"description":24857,"authors":24862,"heroImage":24858,"date":24864,"category":6121,"tags":24865},[24863],"Joyce Tompsett","2019-10-29",[730,1569,3914],{"slug":24867,"featured":6,"template":736},"parallels-between-all-remote-and-cloud-computing","content:en-us:blog:parallels-between-all-remote-and-cloud-computing.yml","Parallels Between All Remote And Cloud Computing","en-us/blog/parallels-between-all-remote-and-cloud-computing.yml","en-us/blog/parallels-between-all-remote-and-cloud-computing",{"_path":24873,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24874,"content":24880,"config":24884,"_id":24886,"_type":16,"title":24887,"_source":17,"_file":24888,"_stem":24889,"_extension":20},"/en-us/blog/optimize-gitops-workflow",{"title":24875,"description":24876,"ogTitle":24875,"ogDescription":24876,"noIndex":6,"ogImage":24877,"ogUrl":24878,"ogSiteName":995,"ogType":996,"canonicalUrls":24878,"schema":24879},"Optimize GitOps workflow with version control from GitLab","A GitOps workflow improves development, operations and business processes and GitLab’s CI plays a vital role.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673081/Blog/Hero%20Images/gitops-image-unsplash.jpg","https://about.gitlab.com/blog/optimize-gitops-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Optimize GitOps workflow with version control from GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2019-10-28\",\n      }",{"title":24875,"description":24876,"authors":24881,"heroImage":24877,"date":24882,"category":1388,"tags":24883},[22783],"2019-10-28",[1195,1988,233,4665],{"slug":24885,"featured":6,"template":736},"optimize-gitops-workflow","content:en-us:blog:optimize-gitops-workflow.yml","Optimize Gitops Workflow","en-us/blog/optimize-gitops-workflow.yml","en-us/blog/optimize-gitops-workflow",{"_path":24891,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24892,"content":24898,"config":24902,"_id":24904,"_type":16,"title":24905,"_source":17,"_file":24906,"_stem":24907,"_extension":20},"/en-us/blog/kubernetes-101",{"title":24893,"description":24894,"ogTitle":24893,"ogDescription":24894,"noIndex":6,"ogImage":24895,"ogUrl":24896,"ogSiteName":995,"ogType":996,"canonicalUrls":24896,"schema":24897},"Getting Started with Kubernetes","Pods, nodes, clusters – oh my! Get the lowdown on Kubernetes from Brendan O'Leary's talk at Contribute 2019.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678474/Blog/Hero%20Images/clouds_kubernetes101.jpg","https://about.gitlab.com/blog/kubernetes-101","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting Started with Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-10-24\",\n      }",{"title":24893,"description":24894,"authors":24899,"heroImage":24895,"date":24900,"category":1388,"tags":24901},[16023],"2019-10-24",[582,2908],{"slug":24903,"featured":6,"template":736},"kubernetes-101","content:en-us:blog:kubernetes-101.yml","Kubernetes 101","en-us/blog/kubernetes-101.yml","en-us/blog/kubernetes-101",{"_path":24909,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24910,"content":24916,"config":24921,"_id":24923,"_type":16,"title":24924,"_source":17,"_file":24925,"_stem":24926,"_extension":20},"/en-us/blog/reviewer-roulette-one-year-on",{"title":24911,"description":24912,"ogTitle":24911,"ogDescription":24912,"noIndex":6,"ogImage":24913,"ogUrl":24914,"ogSiteName":995,"ogType":996,"canonicalUrls":24914,"schema":24915},"Reviewer Roulette: (Just about) one year on","Learn how Reviewer Roulette has evolved at GitLab over the last year.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672195/Blog/Hero%20Images/play-reviewer-roulette.jpg","https://about.gitlab.com/blog/reviewer-roulette-one-year-on","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Reviewer Roulette: (Just about) one year on\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nick Thomas\"}],\n        \"datePublished\": \"2019-10-23\",\n      }",{"title":24911,"description":24912,"authors":24917,"heroImage":24913,"date":24919,"category":858,"tags":24920},[24918],"Nick Thomas","2019-10-23",[1932,1335,564],{"slug":24922,"featured":6,"template":736},"reviewer-roulette-one-year-on","content:en-us:blog:reviewer-roulette-one-year-on.yml","Reviewer Roulette One Year On","en-us/blog/reviewer-roulette-one-year-on.yml","en-us/blog/reviewer-roulette-one-year-on",{"_path":24928,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24929,"content":24934,"config":24938,"_id":24940,"_type":16,"title":24941,"_source":17,"_file":24942,"_stem":24943,"_extension":20},"/en-us/blog/advanced-devsecops-practices",{"title":24930,"description":24931,"ogTitle":24930,"ogDescription":24931,"noIndex":6,"ogImage":17144,"ogUrl":24932,"ogSiteName":995,"ogType":996,"canonicalUrls":24932,"schema":24933},"How advanced are your DevSecOps practices?","Read here what the three levels of DevSecOps practices are and what they include and how to improve your own","https://about.gitlab.com/blog/advanced-devsecops-practices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How advanced are your DevSecOps practices?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-10-21\",\n      }",{"title":24930,"description":24931,"authors":24935,"heroImage":17144,"date":24936,"category":8140,"tags":24937},[21105],"2019-10-21",[564,790],{"slug":24939,"featured":6,"template":736},"advanced-devsecops-practices","content:en-us:blog:advanced-devsecops-practices.yml","Advanced Devsecops Practices","en-us/blog/advanced-devsecops-practices.yml","en-us/blog/advanced-devsecops-practices",{"_path":24945,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24946,"content":24952,"config":24955,"_id":24957,"_type":16,"title":24958,"_source":17,"_file":24959,"_stem":24960,"_extension":20},"/en-us/blog/five-things-we-learned-from-you-in-recent-ux-research",{"title":24947,"description":24948,"ogTitle":24947,"ogDescription":24948,"noIndex":6,"ogImage":24949,"ogUrl":24950,"ogSiteName":995,"ogType":996,"canonicalUrls":24950,"schema":24951},"5 Things we learned from you in recent UX research","How you use Snippets, whether to rename Auto DevOps, how to improve our billing process, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680847/Blog/Hero%20Images/seven-things-we-learned-from-you-in-recent-ux-research.jpg","https://about.gitlab.com/blog/five-things-we-learned-from-you-in-recent-ux-research","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Things we learned from you in recent UX research\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2019-10-21\",\n      }",{"title":24947,"description":24948,"authors":24953,"heroImage":24949,"date":24936,"category":17170,"tags":24954},[20500],[2703],{"slug":24956,"featured":6,"template":736},"five-things-we-learned-from-you-in-recent-ux-research","content:en-us:blog:five-things-we-learned-from-you-in-recent-ux-research.yml","Five Things We Learned From You In Recent Ux Research","en-us/blog/five-things-we-learned-from-you-in-recent-ux-research.yml","en-us/blog/five-things-we-learned-from-you-in-recent-ux-research",{"_path":24962,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24963,"content":24969,"config":24973,"_id":24975,"_type":16,"title":24976,"_source":17,"_file":24977,"_stem":24978,"_extension":20},"/en-us/blog/better-devops-with-gitlab-ci-cd",{"title":24964,"description":24965,"ogTitle":24964,"ogDescription":24965,"noIndex":6,"ogImage":24966,"ogUrl":24967,"ogSiteName":995,"ogType":996,"canonicalUrls":24967,"schema":24968},"Unlock better DevOps with GitLab CI/CD","Why a single application helps to eliminate silos and knowledge gaps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670652/Blog/Hero%20Images/dev-to-devops-cover.png","https://about.gitlab.com/blog/better-devops-with-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unlock better DevOps with GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-10-18\",\n      }",{"title":24964,"description":24965,"authors":24970,"heroImage":24966,"date":24971,"category":8140,"tags":24972},[17150],"2019-10-18",[110,1335,564],{"slug":24974,"featured":6,"template":736},"better-devops-with-gitlab-ci-cd","content:en-us:blog:better-devops-with-gitlab-ci-cd.yml","Better Devops With Gitlab Ci Cd","en-us/blog/better-devops-with-gitlab-ci-cd.yml","en-us/blog/better-devops-with-gitlab-ci-cd",{"_path":24980,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24981,"content":24987,"config":24991,"_id":24993,"_type":16,"title":24994,"_source":17,"_file":24995,"_stem":24996,"_extension":20},"/en-us/blog/delta-cloud-native",{"title":24982,"description":24983,"ogTitle":24982,"ogDescription":24983,"noIndex":6,"ogImage":24984,"ogUrl":24985,"ogSiteName":995,"ogType":996,"canonicalUrls":24985,"schema":24986},"How Delta made the journey to cloud native","Delta tossed aside the rule book to go cloud native and achieve workflow portability. Here's how it's done.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678376/Blog/Hero%20Images/deltacommit.jpg","https://about.gitlab.com/blog/delta-cloud-native","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Delta made the journey to cloud native\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-10-17\",\n      }",{"title":24982,"description":24983,"authors":24988,"heroImage":24984,"date":24989,"category":1388,"tags":24990},[10672],"2019-10-17",[582,2908,4665,582],{"slug":24992,"featured":6,"template":736},"delta-cloud-native","content:en-us:blog:delta-cloud-native.yml","Delta Cloud Native","en-us/blog/delta-cloud-native.yml","en-us/blog/delta-cloud-native",{"_path":24998,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":24999,"content":25005,"config":25008,"_id":25010,"_type":16,"title":25011,"_source":17,"_file":25012,"_stem":25013,"_extension":20},"/en-us/blog/the-sky-is-not-falling",{"title":25000,"description":25001,"ogTitle":25000,"ogDescription":25001,"noIndex":6,"ogImage":25002,"ogUrl":25003,"ogSiteName":995,"ogType":996,"canonicalUrls":25003,"schema":25004},"The sky is not falling","Tips to avoid the FUD and protect yourself online.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679692/Blog/Hero%20Images/dawn-idyllic-ocean-464344.jpg","https://about.gitlab.com/blog/the-sky-is-not-falling","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The sky is not falling\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-10-17\",\n      }",{"title":25000,"description":25001,"authors":25006,"heroImage":25002,"date":24989,"category":17170,"tags":25007},[11324],[1569,790],{"slug":25009,"featured":6,"template":736},"the-sky-is-not-falling","content:en-us:blog:the-sky-is-not-falling.yml","The Sky Is Not Falling","en-us/blog/the-sky-is-not-falling.yml","en-us/blog/the-sky-is-not-falling",{"_path":25015,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25016,"content":25022,"config":25026,"_id":25028,"_type":16,"title":25029,"_source":17,"_file":25030,"_stem":25031,"_extension":20},"/en-us/blog/zero-trust-at-gitlab-where-do-we-go-from-here",{"title":25017,"description":25018,"ogTitle":25017,"ogDescription":25018,"noIndex":6,"ogImage":25019,"ogUrl":25020,"ogSiteName":995,"ogType":996,"canonicalUrls":25020,"schema":25021},"Zero Trust at GitLab: Where do we go from here?","We take a look back at how far we've come in our ZTN implementation, and at the progress we still need to make.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679704/Blog/Hero%20Images/puria-berenji-Dyi1K2atCRw-unsplash.jpg","https://about.gitlab.com/blog/zero-trust-at-gitlab-where-do-we-go-from-here","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Zero Trust at GitLab: Where do we go from here?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2019-10-15\",\n      }",{"title":25017,"description":25018,"authors":25023,"heroImage":25019,"date":25024,"category":790,"tags":25025},[5108],"2019-10-15",[1569,790,5733],{"slug":25027,"featured":6,"template":736},"zero-trust-at-gitlab-where-do-we-go-from-here","content:en-us:blog:zero-trust-at-gitlab-where-do-we-go-from-here.yml","Zero Trust At Gitlab Where Do We Go From Here","en-us/blog/zero-trust-at-gitlab-where-do-we-go-from-here.yml","en-us/blog/zero-trust-at-gitlab-where-do-we-go-from-here",{"_path":25033,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25034,"content":25039,"config":25044,"_id":25046,"_type":16,"title":25047,"_source":17,"_file":25048,"_stem":25049,"_extension":20},"/en-us/blog/database-case-study-store-and-update-namespace-statistics",{"title":25035,"description":25036,"ogTitle":25035,"ogDescription":25036,"noIndex":6,"ogImage":14742,"ogUrl":25037,"ogSiteName":995,"ogType":996,"canonicalUrls":25037,"schema":25038},"Store and update namespace statistics in a performant manner","Explore all the different engineering approaches to store and update the namespace statistics in a performant manner.","https://about.gitlab.com/blog/database-case-study-store-and-update-namespace-statistics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Store and update namespace statistics in a performant manner\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mayra Cabrera\"}],\n        \"datePublished\": \"2019-10-14\",\n      }",{"title":25035,"description":25036,"authors":25040,"heroImage":14742,"date":25042,"category":858,"tags":25043},[25041],"Mayra Cabrera","2019-10-14",[1569],{"slug":25045,"featured":6,"template":736},"database-case-study-store-and-update-namespace-statistics","content:en-us:blog:database-case-study-store-and-update-namespace-statistics.yml","Database Case Study Store And Update Namespace Statistics","en-us/blog/database-case-study-store-and-update-namespace-statistics.yml","en-us/blog/database-case-study-store-and-update-namespace-statistics",{"_path":25051,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25052,"content":25058,"config":25064,"_id":25066,"_type":16,"title":25067,"_source":17,"_file":25068,"_stem":25069,"_extension":20},"/en-us/blog/gitlab-on-vmware-cloud-marketplace",{"title":25053,"description":25054,"ogTitle":25053,"ogDescription":25054,"noIndex":6,"ogImage":25055,"ogUrl":25056,"ogSiteName":995,"ogType":996,"canonicalUrls":25056,"schema":25057},"GitLab for Cloud Native Transformation on VMware Marketplace","Guest authors from VMware share how to accelerate your software delivery process in just a few clicks with Bitnami and GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680841/Blog/Hero%20Images/bitnami-gitlab.png","https://about.gitlab.com/blog/gitlab-on-vmware-cloud-marketplace","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Enterprise Edition now available for VMware Cloud Marketplace users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Raquel Campuzano\"}],\n        \"datePublished\": \"2019-10-11\",\n      }",{"title":25059,"description":25054,"authors":25060,"heroImage":25055,"date":25062,"category":301,"tags":25063},"GitLab Enterprise Edition now available for VMware Cloud Marketplace users",[25061],"Raquel Campuzano","2019-10-11",[110,582,564,233],{"slug":25065,"featured":6,"template":736},"gitlab-on-vmware-cloud-marketplace","content:en-us:blog:gitlab-on-vmware-cloud-marketplace.yml","Gitlab On Vmware Cloud Marketplace","en-us/blog/gitlab-on-vmware-cloud-marketplace.yml","en-us/blog/gitlab-on-vmware-cloud-marketplace",{"_path":25071,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25072,"content":25077,"config":25082,"_id":25084,"_type":16,"title":25085,"_source":17,"_file":25086,"_stem":25087,"_extension":20},"/en-us/blog/how-we-uxd-our-secure-ux-team",{"title":25073,"description":25074,"ogTitle":25073,"ogDescription":25074,"noIndex":6,"ogImage":17164,"ogUrl":25075,"ogSiteName":995,"ogType":996,"canonicalUrls":25075,"schema":25076},"How we UX'd our Secure UX team structure","The Secure UX team's approach toward collaboration, authorship, information discovery and team structure.","https://about.gitlab.com/blog/how-we-uxd-our-secure-ux-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we UX'd our Secure UX team structure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kyle Mann\"},{\"@type\":\"Person\",\"name\":\"Andy Volpe\"}],\n        \"datePublished\": \"2019-10-11\",\n      }",{"title":25073,"description":25074,"authors":25078,"heroImage":17164,"date":25062,"category":301,"tags":25081},[25079,25080],"Kyle Mann","Andy Volpe",[2703,2815],{"slug":25083,"featured":6,"template":736},"how-we-uxd-our-secure-ux-team","content:en-us:blog:how-we-uxd-our-secure-ux-team.yml","How We Uxd Our Secure Ux Team","en-us/blog/how-we-uxd-our-secure-ux-team.yml","en-us/blog/how-we-uxd-our-secure-ux-team",{"_path":25089,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25090,"content":25095,"config":25100,"_id":25102,"_type":16,"title":25103,"_source":17,"_file":25104,"_stem":25105,"_extension":20},"/en-us/blog/update-free-software-and-telemetry",{"title":25091,"description":25092,"ogTitle":25091,"ogDescription":25092,"noIndex":6,"ogImage":11046,"ogUrl":25093,"ogSiteName":995,"ogType":996,"canonicalUrls":25093,"schema":25094},"Update on free software and telemetry (Updated October 29th, 2019)","Telemetry services and GitLab. (GitLab CE will continue to be free software)","https://about.gitlab.com/blog/update-free-software-and-telemetry","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update on free software and telemetry (Updated October 29th, 2019)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Scott Williamson\"}],\n        \"datePublished\": \"2019-10-10\",\n      }",{"title":25091,"description":25092,"authors":25096,"heroImage":11046,"date":25098,"category":301,"tags":25099},[25097],"Scott Williamson","2019-10-10",[1049,1569],{"slug":25101,"featured":6,"template":736},"update-free-software-and-telemetry","content:en-us:blog:update-free-software-and-telemetry.yml","Update Free Software And Telemetry","en-us/blog/update-free-software-and-telemetry.yml","en-us/blog/update-free-software-and-telemetry",{"_path":25107,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25108,"content":25114,"config":25117,"_id":25119,"_type":16,"title":25120,"_source":17,"_file":25121,"_stem":25122,"_extension":20},"/en-us/blog/whats-in-your-backpack",{"title":25109,"description":25110,"ogTitle":25109,"ogDescription":25110,"noIndex":6,"ogImage":25111,"ogUrl":25112,"ogSiteName":995,"ogType":996,"canonicalUrls":25112,"schema":25113},"GitLab's top tools for remote workers","GitLab team members open their backpacks to share their top tools for remote work.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678459/Blog/Hero%20Images/darren_backpack_iceland.jpg","https://about.gitlab.com/blog/whats-in-your-backpack","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's top tools for remote workers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-10-10\",\n      }",{"title":25109,"description":25110,"authors":25115,"heroImage":25111,"date":25098,"category":6121,"tags":25116},[16023],[3914,1569],{"slug":25118,"featured":6,"template":736},"whats-in-your-backpack","content:en-us:blog:whats-in-your-backpack.yml","Whats In Your Backpack","en-us/blog/whats-in-your-backpack.yml","en-us/blog/whats-in-your-backpack",{"_path":25124,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25125,"content":25130,"config":25134,"_id":25136,"_type":16,"title":25137,"_source":17,"_file":25138,"_stem":25139,"_extension":20},"/en-us/blog/live-from-commit-london",{"title":25126,"description":25127,"ogTitle":25126,"ogDescription":25127,"noIndex":6,"ogImage":24752,"ogUrl":25128,"ogSiteName":995,"ogType":996,"canonicalUrls":25128,"schema":25129},"Live from Commit London","We're having a packed day at our first European user conference. Watch this space for the latest news.","https://about.gitlab.com/blog/live-from-commit-london","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Live from Commit London\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-10-09\",\n      }",{"title":25126,"description":25127,"authors":25131,"heroImage":24752,"date":25132,"category":301,"tags":25133},[10672],"2019-10-09",[269,279,1569,1049,4665,582],{"slug":25135,"featured":6,"template":736},"live-from-commit-london","content:en-us:blog:live-from-commit-london.yml","Live From Commit London","en-us/blog/live-from-commit-london.yml","en-us/blog/live-from-commit-london",{"_path":25141,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25142,"content":25148,"config":25153,"_id":25155,"_type":16,"title":25156,"_source":17,"_file":25157,"_stem":25158,"_extension":20},"/en-us/blog/devops-on-the-edge-a-conversation-about-gitlab-and-arm",{"title":25143,"description":25144,"ogTitle":25143,"ogDescription":25144,"noIndex":6,"ogImage":25145,"ogUrl":25146,"ogSiteName":995,"ogType":996,"canonicalUrls":25146,"schema":25147},"DevOps on the edge: Upcoming collaborations between GitLab and Arm","Check out the latest news from the technical evangelist team about upcoming initiatives from GitLab and Arm.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682923/Blog/Hero%20Images/gitlab-arm-collaboration.jpg","https://about.gitlab.com/blog/devops-on-the-edge-a-conversation-about-gitlab-and-arm","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"DevOps on the edge: Upcoming collaborations between GitLab and Arm\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Priyanka Sharma\"}],\n        \"datePublished\": \"2019-10-08\",\n      }",{"title":25143,"description":25144,"authors":25149,"heroImage":25145,"date":25151,"category":1388,"tags":25152},[25150],"Priyanka Sharma","2019-10-08",[110,582,233,269],{"slug":25154,"featured":6,"template":736},"devops-on-the-edge-a-conversation-about-gitlab-and-arm","content:en-us:blog:devops-on-the-edge-a-conversation-about-gitlab-and-arm.yml","Devops On The Edge A Conversation About Gitlab And Arm","en-us/blog/devops-on-the-edge-a-conversation-about-gitlab-and-arm.yml","en-us/blog/devops-on-the-edge-a-conversation-about-gitlab-and-arm",{"_path":25160,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25161,"content":25166,"config":25170,"_id":25172,"_type":16,"title":25173,"_source":17,"_file":25174,"_stem":25175,"_extension":20},"/en-us/blog/auto-devops-explained",{"title":25162,"description":25163,"ogTitle":25162,"ogDescription":25163,"noIndex":6,"ogImage":10059,"ogUrl":25164,"ogSiteName":995,"ogType":996,"canonicalUrls":25164,"schema":25165},"Auto DevOps 101: How we’re making CI/CD easier","VP of product strategy Mark Pundsack shares everything you need to know about Auto DevOps.","https://about.gitlab.com/blog/auto-devops-explained","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Auto DevOps 101: How we’re making CI/CD easier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-10-07\",\n      }",{"title":25162,"description":25163,"authors":25167,"heroImage":10059,"date":25168,"category":8140,"tags":25169},[10672],"2019-10-07",[110,564,964,6376],{"slug":25171,"featured":6,"template":736},"auto-devops-explained","content:en-us:blog:auto-devops-explained.yml","Auto Devops Explained","en-us/blog/auto-devops-explained.yml","en-us/blog/auto-devops-explained",{"_path":25177,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25178,"content":25183,"config":25187,"_id":25189,"_type":16,"title":25190,"_source":17,"_file":25191,"_stem":25192,"_extension":20},"/en-us/blog/what-i-learned-about-our-ceo-s-job-from-participating-in-the-ceo-shadow-program",{"title":25179,"description":25180,"ogTitle":25179,"ogDescription":25180,"noIndex":6,"ogImage":22066,"ogUrl":25181,"ogSiteName":995,"ogType":996,"canonicalUrls":25181,"schema":25182},"Lessons from my time in GitLab's CEO Shadow program","GitLab's CEO Shadow program gives team members insight into what the CEO does","https://about.gitlab.com/blog/what-i-learned-about-our-ceo-s-job-from-participating-in-the-ceo-shadow-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What I Learned about the CEO's Job from Participating in GitLab's CEO Shadow Program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilie Schario\"}],\n        \"datePublished\": \"2019-10-07\",\n      }",{"title":25184,"description":25180,"authors":25185,"heroImage":22066,"date":25168,"category":17170,"tags":25186},"What I Learned about the CEO's Job from Participating in GitLab's CEO Shadow Program",[22367],[6980,1569,10011],{"slug":25188,"featured":6,"template":736},"what-i-learned-about-our-ceo-s-job-from-participating-in-the-ceo-shadow-program","content:en-us:blog:what-i-learned-about-our-ceo-s-job-from-participating-in-the-ceo-shadow-program.yml","What I Learned About Our Ceo S Job From Participating In The Ceo Shadow Program","en-us/blog/what-i-learned-about-our-ceo-s-job-from-participating-in-the-ceo-shadow-program.yml","en-us/blog/what-i-learned-about-our-ceo-s-job-from-participating-in-the-ceo-shadow-program",{"_path":25194,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25195,"content":25201,"config":25205,"_id":25207,"_type":16,"title":25208,"_source":17,"_file":25209,"_stem":25210,"_extension":20},"/en-us/blog/gitlab-journey-to-cicd",{"title":25196,"description":25197,"ogTitle":25196,"ogDescription":25197,"noIndex":6,"ogImage":25198,"ogUrl":25199,"ogSiteName":995,"ogType":996,"canonicalUrls":25199,"schema":25200},"GitLab's unconventional journey to CI/CD and Kubernetes","How the Delivery team at GitLab used our existing resources to overhaul our system to make way for CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678397/Blog/Hero%20Images/raphael-biscaldi-cicd.jpg","https://about.gitlab.com/blog/gitlab-journey-to-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's unconventional journey to CI/CD and Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-10-03\",\n      }",{"title":25196,"description":25197,"authors":25202,"heroImage":25198,"date":25203,"category":858,"tags":25204},[16023],"2019-10-03",[110,1569],{"slug":25206,"featured":6,"template":736},"gitlab-journey-to-cicd","content:en-us:blog:gitlab-journey-to-cicd.yml","Gitlab Journey To Cicd","en-us/blog/gitlab-journey-to-cicd.yml","en-us/blog/gitlab-journey-to-cicd",{"_path":25212,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25213,"content":25218,"config":25222,"_id":25224,"_type":16,"title":25225,"_source":17,"_file":25226,"_stem":25227,"_extension":20},"/en-us/blog/contributor-after-single-code-base",{"title":25214,"description":25215,"ogTitle":25214,"ogDescription":25215,"noIndex":6,"ogImage":18395,"ogUrl":25216,"ogSiteName":995,"ogType":996,"canonicalUrls":25216,"schema":25217},"Contributing to GitLab after move to a single codebase","How contributors can benefit from the move to a single codebase for GitLab Community and Enterprise Editions.","https://about.gitlab.com/blog/contributor-after-single-code-base","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Contributing to GitLab after move to a single codebase\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-10-02\",\n      }",{"title":25214,"description":25215,"authors":25219,"heroImage":18395,"date":25220,"category":17170,"tags":25221},[20126],"2019-10-02",[269,2815,1265],{"slug":25223,"featured":6,"template":736},"contributor-after-single-code-base","content:en-us:blog:contributor-after-single-code-base.yml","Contributor After Single Code Base","en-us/blog/contributor-after-single-code-base.yml","en-us/blog/contributor-after-single-code-base",{"_path":25229,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25230,"content":25235,"config":25238,"_id":25240,"_type":16,"title":25241,"_source":17,"_file":25242,"_stem":25243,"_extension":20},"/en-us/blog/gitlab-october-2019-meetups",{"title":25231,"description":25232,"ogTitle":25231,"ogDescription":25232,"noIndex":6,"ogImage":24204,"ogUrl":25233,"ogSiteName":995,"ogType":996,"canonicalUrls":25233,"schema":25234},"GitLab Meetups: October 2019","See where the GitLab community will be gathering this month","https://about.gitlab.com/blog/gitlab-october-2019-meetups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Meetups: October 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2019-10-02\",\n      }",{"title":25231,"description":25232,"authors":25236,"heroImage":24204,"date":25220,"category":17170,"tags":25237},[6119],[269,279],{"slug":25239,"featured":6,"template":736},"gitlab-october-2019-meetups","content:en-us:blog:gitlab-october-2019-meetups.yml","Gitlab October 2019 Meetups","en-us/blog/gitlab-october-2019-meetups.yml","en-us/blog/gitlab-october-2019-meetups",{"_path":25245,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25246,"content":25252,"config":25256,"_id":25258,"_type":16,"title":25259,"_source":17,"_file":25260,"_stem":25261,"_extension":20},"/en-us/blog/support-virtual-pizza-party",{"title":25247,"description":25248,"ogTitle":25247,"ogDescription":25248,"noIndex":6,"ogImage":25249,"ogUrl":25250,"ogSiteName":995,"ogType":996,"canonicalUrls":25250,"schema":25251},"GitLab Support Virtual Pizza Party","Come learn about the GitLab Support Virtual Pizza Party","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670544/Blog/Hero%20Images/alan-hardman-SU1LFoeEUkk-unsplash.jpg","https://about.gitlab.com/blog/support-virtual-pizza-party","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Support Virtual Pizza Party\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Colyer\"}],\n        \"datePublished\": \"2019-10-02\",\n      }",{"title":25247,"description":25248,"authors":25253,"heroImage":25249,"date":25220,"category":17170,"tags":25255},[25254],"Jason Colyer",[3914],{"slug":25257,"featured":6,"template":736},"support-virtual-pizza-party","content:en-us:blog:support-virtual-pizza-party.yml","Support Virtual Pizza Party","en-us/blog/support-virtual-pizza-party.yml","en-us/blog/support-virtual-pizza-party",{"_path":25263,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25264,"content":25269,"config":25272,"_id":25274,"_type":16,"title":25275,"_source":17,"_file":25276,"_stem":25277,"_extension":20},"/en-us/blog/zero-trust-at-gitlab-implementation-challenges",{"title":25265,"description":25266,"ogTitle":25265,"ogDescription":25266,"noIndex":6,"ogImage":14206,"ogUrl":25267,"ogSiteName":995,"ogType":996,"canonicalUrls":25267,"schema":25268},"Zero Trust at GitLab: Implementation challenges (and a few solutions)","Implementing change in an already working environment always brings its fair share of growing pains. What happens when that change is Zero Trust?","https://about.gitlab.com/blog/zero-trust-at-gitlab-implementation-challenges","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Zero Trust at GitLab: Implementation challenges (and a few solutions)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2019-10-02\",\n      }",{"title":25265,"description":25266,"authors":25270,"heroImage":14206,"date":25220,"category":790,"tags":25271},[5108],[1569,790,5733],{"slug":25273,"featured":6,"template":736},"zero-trust-at-gitlab-implementation-challenges","content:en-us:blog:zero-trust-at-gitlab-implementation-challenges.yml","Zero Trust At Gitlab Implementation Challenges","en-us/blog/zero-trust-at-gitlab-implementation-challenges.yml","en-us/blog/zero-trust-at-gitlab-implementation-challenges",{"_path":25279,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25280,"content":25286,"config":25290,"_id":25292,"_type":16,"title":25293,"_source":17,"_file":25294,"_stem":25295,"_extension":20},"/en-us/blog/redbox-on-demand-delivers-with-gitlab",{"title":25281,"description":25282,"ogTitle":25281,"ogDescription":25282,"noIndex":6,"ogImage":25283,"ogUrl":25284,"ogSiteName":995,"ogType":996,"canonicalUrls":25284,"schema":25285},"Redbox delivers On Demand with GitLab","Redbox's Joel Vasallo and Nicholas Konieczko explain how they ‘deliver software like a fox’ with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673064/Blog/Hero%20Images/redbox-blog-jannes-glas-unsplash.jpg","https://about.gitlab.com/blog/redbox-on-demand-delivers-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Redbox delivers On Demand with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2019-10-01\",\n      }",{"title":25281,"description":25282,"authors":25287,"heroImage":25283,"date":25288,"category":1388,"tags":25289},[22783],"2019-10-01",[4665,1988,1195,233],{"slug":25291,"featured":6,"template":736},"redbox-on-demand-delivers-with-gitlab","content:en-us:blog:redbox-on-demand-delivers-with-gitlab.yml","Redbox On Demand Delivers With Gitlab","en-us/blog/redbox-on-demand-delivers-with-gitlab.yml","en-us/blog/redbox-on-demand-delivers-with-gitlab",{"_path":25297,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25298,"content":25304,"config":25308,"_id":25310,"_type":16,"title":25311,"_source":17,"_file":25312,"_stem":25313,"_extension":20},"/en-us/blog/why-we-chose-echarts",{"title":25299,"description":25300,"ogTitle":25299,"ogDescription":25300,"noIndex":6,"ogImage":25301,"ogUrl":25302,"ogSiteName":995,"ogType":996,"canonicalUrls":25302,"schema":25303},"Why we chose ECharts for data visualizations","Learn why GitLab switched from D3.js to ECharts as our library of choice for rendering data visualizations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666699/Blog/Hero%20Images/banner.jpg","https://about.gitlab.com/blog/why-we-chose-echarts","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we chose ECharts for data visualizations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Clement Ho\"}],\n        \"datePublished\": \"2019-09-30\",\n      }",{"title":25299,"description":25300,"authors":25305,"heroImage":25301,"date":25306,"category":858,"tags":25307},[20589],"2019-09-30",[1569,2704,10121],{"slug":25309,"featured":6,"template":736},"why-we-chose-echarts","content:en-us:blog:why-we-chose-echarts.yml","Why We Chose Echarts","en-us/blog/why-we-chose-echarts.yml","en-us/blog/why-we-chose-echarts",{"_path":25315,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25316,"content":25322,"config":25326,"_id":25328,"_type":16,"title":25329,"_source":17,"_file":25330,"_stem":25331,"_extension":20},"/en-us/blog/plugin-instability",{"title":25317,"description":25318,"ogTitle":25317,"ogDescription":25318,"noIndex":6,"ogImage":25319,"ogUrl":25320,"ogSiteName":995,"ogType":996,"canonicalUrls":25320,"schema":25321},"The problem with plugins","For all of the customization, plugins sometimes come at a high price.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673012/Blog/Hero%20Images/plugin-instability.jpg","https://about.gitlab.com/blog/plugin-instability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The problem with plugins\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-09-27\",\n      }",{"title":25317,"description":25318,"authors":25323,"heroImage":25319,"date":25324,"category":8140,"tags":25325},[17150],"2019-09-27",[110,564],{"slug":25327,"featured":6,"template":736},"plugin-instability","content:en-us:blog:plugin-instability.yml","Plugin Instability","en-us/blog/plugin-instability.yml","en-us/blog/plugin-instability",{"_path":25333,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25334,"content":25340,"config":25344,"_id":25346,"_type":16,"title":25347,"_source":17,"_file":25348,"_stem":25349,"_extension":20},"/en-us/blog/building-a-cicd-pipeline-in-20-mins",{"title":25335,"description":25336,"ogTitle":25335,"ogDescription":25336,"noIndex":6,"ogImage":25337,"ogUrl":25338,"ogSiteName":995,"ogType":996,"canonicalUrls":25338,"schema":25339},"How to build a CI/CD pipeline in 20 minutes or less","Deploying your pipeline to Kubernetes is just a 'git push' away using GitLab's Auto DevOps feature.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666903/Blog/Hero%20Images/pipeline.jpg","https://about.gitlab.com/blog/building-a-cicd-pipeline-in-20-mins","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to build a CI/CD pipeline in 20 minutes or less\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-09-26\",\n      }",{"title":25335,"description":25336,"authors":25341,"heroImage":25337,"date":25342,"category":858,"tags":25343},[16023],"2019-09-26",[2908,582],{"slug":25345,"featured":6,"template":736},"building-a-cicd-pipeline-in-20-mins","content:en-us:blog:building-a-cicd-pipeline-in-20-mins.yml","Building A Cicd Pipeline In 20 Mins","en-us/blog/building-a-cicd-pipeline-in-20-mins.yml","en-us/blog/building-a-cicd-pipeline-in-20-mins",{"_path":25351,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25352,"content":25358,"config":25363,"_id":25365,"_type":16,"title":25366,"_source":17,"_file":25367,"_stem":25368,"_extension":20},"/en-us/blog/reducing-time-to-payout-and-launching-a-bug-bounty-anniversary-contest",{"title":25353,"description":25354,"ogTitle":25353,"ogDescription":25354,"noIndex":6,"ogImage":25355,"ogUrl":25356,"ogSiteName":995,"ogType":996,"canonicalUrls":25356,"schema":25357},"GitLab speeds up bug bounty payouts, launches new contest","You talked. We listened. Quicker bug bounty payouts and we're holding a contest for our hackers!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678574/Blog/Hero%20Images/art-backlight-blur-249203.jpg","https://about.gitlab.com/blog/reducing-time-to-payout-and-launching-a-bug-bounty-anniversary-contest","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we're reducing the time to payout and launching a bug bounty anniversary contest\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dennis Appelt\"}],\n        \"datePublished\": \"2019-09-24\",\n      }",{"title":25359,"description":25354,"authors":25360,"heroImage":25355,"date":25361,"category":790,"tags":25362},"Why we're reducing the time to payout and launching a bug bounty anniversary contest",[6210],"2019-09-24",[269,790,1569,2483],{"slug":25364,"featured":6,"template":736},"reducing-time-to-payout-and-launching-a-bug-bounty-anniversary-contest","content:en-us:blog:reducing-time-to-payout-and-launching-a-bug-bounty-anniversary-contest.yml","Reducing Time To Payout And Launching A Bug Bounty Anniversary Contest","en-us/blog/reducing-time-to-payout-and-launching-a-bug-bounty-anniversary-contest.yml","en-us/blog/reducing-time-to-payout-and-launching-a-bug-bounty-anniversary-contest",{"_path":25370,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25371,"content":25377,"config":25381,"_id":25383,"_type":16,"title":25384,"_source":17,"_file":25385,"_stem":25386,"_extension":20},"/en-us/blog/how-to-push-code-from-a-hammock",{"title":25372,"description":25373,"ogTitle":25372,"ogDescription":25373,"noIndex":6,"ogImage":25374,"ogUrl":25375,"ogSiteName":995,"ogType":996,"canonicalUrls":25375,"schema":25376},"How to push code from a hammock","Our remote work dream team balances globetrotting with career advancement at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678958/Blog/Hero%20Images/hammock.jpg","https://about.gitlab.com/blog/how-to-push-code-from-a-hammock","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to push code from a hammock\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-09-23\",\n      }",{"title":25372,"description":25373,"authors":25378,"heroImage":25374,"date":25379,"category":6121,"tags":25380},[16023],"2019-09-23",[3914,1569],{"slug":25382,"featured":6,"template":736},"how-to-push-code-from-a-hammock","content:en-us:blog:how-to-push-code-from-a-hammock.yml","How To Push Code From A Hammock","en-us/blog/how-to-push-code-from-a-hammock.yml","en-us/blog/how-to-push-code-from-a-hammock",{"_path":25388,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25389,"content":25394,"config":25398,"_id":25400,"_type":16,"title":25401,"_source":17,"_file":25402,"_stem":25403,"_extension":20},"/en-us/blog/jenkins-one-year-later",{"title":25390,"description":25391,"ogTitle":25390,"ogDescription":25391,"noIndex":6,"ogImage":16110,"ogUrl":25392,"ogSiteName":995,"ogType":996,"canonicalUrls":25392,"schema":25393},"Jenkins: One year later","With new acquisitions and the launch of CloudBees SDM, is Jenkins trying to become another all-in-one?","https://about.gitlab.com/blog/jenkins-one-year-later","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Jenkins: One year later\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-09-20\",\n      }",{"title":25390,"description":25391,"authors":25395,"heroImage":16110,"date":25396,"category":8140,"tags":25397},[17150],"2019-09-20",[110,564],{"slug":25399,"featured":6,"template":736},"jenkins-one-year-later","content:en-us:blog:jenkins-one-year-later.yml","Jenkins One Year Later","en-us/blog/jenkins-one-year-later.yml","en-us/blog/jenkins-one-year-later",{"_path":25405,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25406,"content":25412,"config":25416,"_id":25418,"_type":16,"title":25419,"_source":17,"_file":25420,"_stem":25421,"_extension":20},"/en-us/blog/wrapping-up-commit",{"title":25407,"description":25408,"ogTitle":25407,"ogDescription":25408,"noIndex":6,"ogImage":25409,"ogUrl":25410,"ogSiteName":995,"ogType":996,"canonicalUrls":25410,"schema":25411},"Wrapping up GitLab Commit","From bagels to bowling with a healthy dose of DevSecOps and CI/CD in between, it was an epic day of learning and sharing at GitLab Commit Brooklyn.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680823/Blog/Hero%20Images/commit-brooklyn-graffiti-cover.jpg","https://about.gitlab.com/blog/wrapping-up-commit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Wrapping up GitLab Commit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-09-18\",\n      }",{"title":25407,"description":25408,"authors":25413,"heroImage":25409,"date":25414,"category":301,"tags":25415},[10672],"2019-09-18",[110,3074,279,4665,10121],{"slug":25417,"featured":6,"template":736},"wrapping-up-commit","content:en-us:blog:wrapping-up-commit.yml","Wrapping Up Commit","en-us/blog/wrapping-up-commit.yml","en-us/blog/wrapping-up-commit",{"_path":25423,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25424,"content":25430,"config":25437,"_id":25439,"_type":16,"title":25440,"_source":17,"_file":25441,"_stem":25442,"_extension":20},"/en-us/blog/gitlab-hashicorp-terraform-vault-pt-1",{"title":25425,"description":25426,"ogTitle":25425,"ogDescription":25426,"noIndex":6,"ogImage":25427,"ogUrl":25428,"ogSiteName":995,"ogType":996,"canonicalUrls":25428,"schema":25429},"GitLab and HashiCorp streamline delivery workflows","Discover how to leverage CI/CD for your infrastructure scripts with Terraform and GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670238/Blog/Hero%20Images/gitlab-terraform-pipelines.jpg","https://about.gitlab.com/blog/gitlab-hashicorp-terraform-vault-pt-1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and HashiCorp: Providing application and infrastructure delivery workflows\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kelly Hair\"},{\"@type\":\"Person\",\"name\":\"Anthony Davanzo\"}],\n        \"datePublished\": \"2019-09-17\",\n      }",{"title":25431,"description":25426,"authors":25432,"heroImage":25427,"date":25435,"category":8140,"tags":25436},"GitLab and HashiCorp: Providing application and infrastructure delivery workflows",[25433,25434],"Kelly Hair","Anthony Davanzo","2019-09-17",[110,582,564,233,10121],{"slug":25438,"featured":6,"template":736},"gitlab-hashicorp-terraform-vault-pt-1","content:en-us:blog:gitlab-hashicorp-terraform-vault-pt-1.yml","Gitlab Hashicorp Terraform Vault Pt 1","en-us/blog/gitlab-hashicorp-terraform-vault-pt-1.yml","en-us/blog/gitlab-hashicorp-terraform-vault-pt-1",{"_path":25444,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25445,"content":25451,"config":25454,"_id":25456,"_type":16,"title":25457,"_source":17,"_file":25458,"_stem":25459,"_extension":20},"/en-us/blog/gitlab-series-e-funding",{"title":25446,"description":25447,"ogTitle":25446,"ogDescription":25447,"noIndex":6,"ogImage":25448,"ogUrl":25449,"ogSiteName":995,"ogType":996,"canonicalUrls":25449,"schema":25450},"Announcing $268 million in Series E funding","New funding and our $2.75 billion valuation will allow us to enhance monitoring and security capabilities.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664134/Blog/Hero%20Images/gitlabcommitbrooklyn.png","https://about.gitlab.com/blog/gitlab-series-e-funding","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing $268 million in Series E funding\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-09-17\",\n      }",{"title":25446,"description":25447,"authors":25452,"heroImage":25448,"date":25435,"category":301,"tags":25453},[1000],[1049,269,279,730,10121],{"slug":25455,"featured":6,"template":736},"gitlab-series-e-funding","content:en-us:blog:gitlab-series-e-funding.yml","Gitlab Series E Funding","en-us/blog/gitlab-series-e-funding.yml","en-us/blog/gitlab-series-e-funding",{"_path":25461,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25462,"content":25467,"config":25470,"_id":25472,"_type":16,"title":25473,"_source":17,"_file":25474,"_stem":25475,"_extension":20},"/en-us/blog/live-from-commit-news",{"title":25463,"description":25464,"ogTitle":25463,"ogDescription":25464,"noIndex":6,"ogImage":25448,"ogUrl":25465,"ogSiteName":995,"ogType":996,"canonicalUrls":25465,"schema":25466},"At GitLab Commit, our product roadmap, new partners, and a new milestone","Live from GitLab Commit: what’s next for our product strategy, expanded partnerships, and more.","https://about.gitlab.com/blog/live-from-commit-news","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"At GitLab Commit, our product roadmap, new partners, and a new milestone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-09-17\",\n      }",{"title":25463,"description":25464,"authors":25468,"heroImage":25448,"date":25435,"category":301,"tags":25469},[10672],[269,279,1265,892,10121],{"slug":25471,"featured":6,"template":736},"live-from-commit-news","content:en-us:blog:live-from-commit-news.yml","Live From Commit News","en-us/blog/live-from-commit-news.yml","en-us/blog/live-from-commit-news",{"_path":25477,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25478,"content":25484,"config":25488,"_id":25490,"_type":16,"title":25491,"_source":17,"_file":25492,"_stem":25493,"_extension":20},"/en-us/blog/open-source-nasa-gl",{"title":25479,"description":25480,"ogTitle":25479,"ogDescription":25480,"noIndex":6,"ogImage":25481,"ogUrl":25482,"ogSiteName":995,"ogType":996,"canonicalUrls":25482,"schema":25483},"MRI Technologies used GitLab for unified toolchains to NASA","Live from GitLab Commit: NASA will be flying Kubernetes clusters to the moon and GitLab is helping.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678434/Blog/Hero%20Images/nasagitlab.jpg","https://about.gitlab.com/blog/open-source-nasa-gl","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Commit: How MRI Technologies used GitLab to bring unified toolchains to NASA\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-09-17\",\n      }",{"title":25485,"description":25480,"authors":25486,"heroImage":25481,"date":25435,"category":1388,"tags":25487},"GitLab Commit: How MRI Technologies used GitLab to bring unified toolchains to NASA",[10672],[3346,2908,4665,1265,10121],{"slug":25489,"featured":6,"template":736},"open-source-nasa-gl","content:en-us:blog:open-source-nasa-gl.yml","Open Source Nasa Gl","en-us/blog/open-source-nasa-gl.yml","en-us/blog/open-source-nasa-gl",{"_path":25495,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25496,"content":25501,"config":25505,"_id":25507,"_type":16,"title":25508,"_source":17,"_file":25509,"_stem":25510,"_extension":20},"/en-us/blog/security-testing-principles-developer",{"title":25497,"description":25498,"ogTitle":25497,"ogDescription":25498,"noIndex":6,"ogImage":14986,"ogUrl":25499,"ogSiteName":995,"ogType":996,"canonicalUrls":25499,"schema":25500},"5 Security testing principles every developer should know","Developers are looking for guidance and standard practices as they take on more security testing responsibilities.","https://about.gitlab.com/blog/security-testing-principles-developer","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Security testing principles every developer should know\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"},{\"@type\":\"Person\",\"name\":\"Seth Berger\"}],\n        \"datePublished\": \"2019-09-16\",\n      }",{"title":25497,"description":25498,"authors":25502,"heroImage":14986,"date":25503,"category":8140,"tags":25504},[21105,15255],"2019-09-16",[564,790],{"slug":25506,"featured":6,"template":736},"security-testing-principles-developer","content:en-us:blog:security-testing-principles-developer.yml","Security Testing Principles Developer","en-us/blog/security-testing-principles-developer.yml","en-us/blog/security-testing-principles-developer",{"_path":25512,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25513,"content":25518,"config":25523,"_id":25525,"_type":16,"title":25526,"_source":17,"_file":25527,"_stem":25528,"_extension":20},"/en-us/blog/get-ready-for-commit",{"title":25514,"description":25515,"ogTitle":25514,"ogDescription":25515,"noIndex":6,"ogImage":25448,"ogUrl":25516,"ogSiteName":995,"ogType":996,"canonicalUrls":25516,"schema":25517},"How to get the most out of GitLab Commit","We’re taking over the Williamsburg neighborhood of Brooklyn and opening up our world to you. Here’s everything you need to know.","https://about.gitlab.com/blog/get-ready-for-commit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to get the most out of GitLab Commit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2019-09-13\",\n      }",{"title":25514,"description":25515,"authors":25519,"heroImage":25448,"date":25521,"category":301,"tags":25522},[25520],"Emily Kyle","2019-09-13",[269,3074,279,564,10121],{"slug":25524,"featured":6,"template":736},"get-ready-for-commit","content:en-us:blog:get-ready-for-commit.yml","Get Ready For Commit","en-us/blog/get-ready-for-commit.yml","en-us/blog/get-ready-for-commit",{"_path":25530,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25531,"content":25536,"config":25539,"_id":25541,"_type":16,"title":25542,"_source":17,"_file":25543,"_stem":25544,"_extension":20},"/en-us/blog/the-cloud-native-all-remote-security-challenge",{"title":25532,"description":25533,"ogTitle":25532,"ogDescription":25533,"noIndex":6,"ogImage":10580,"ogUrl":25534,"ogSiteName":995,"ogType":996,"canonicalUrls":25534,"schema":25535},"The cloud-native, all-remote security challenge","What are the challenges and rewards of working in security at a cloud-native, all-remote company like GitLab?","https://about.gitlab.com/blog/the-cloud-native-all-remote-security-challenge","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The cloud-native, all-remote security challenge\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-09-13\",\n      }",{"title":25532,"description":25533,"authors":25537,"heroImage":10580,"date":25521,"category":17170,"tags":25538},[11324],[6980,1569,790,790],{"slug":25540,"featured":6,"template":736},"the-cloud-native-all-remote-security-challenge","content:en-us:blog:the-cloud-native-all-remote-security-challenge.yml","The Cloud Native All Remote Security Challenge","en-us/blog/the-cloud-native-all-remote-security-challenge.yml","en-us/blog/the-cloud-native-all-remote-security-challenge",{"_path":25546,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25547,"content":25553,"config":25556,"_id":25558,"_type":16,"title":25559,"_source":17,"_file":25560,"_stem":25561,"_extension":20},"/en-us/blog/why-we-created-the-gitlab-memory-team",{"title":25548,"description":25549,"ogTitle":25548,"ogDescription":25549,"noIndex":6,"ogImage":25550,"ogUrl":25551,"ogSiteName":995,"ogType":996,"canonicalUrls":25551,"schema":25552},"Why we created a Memory team at GitLab","GitLab has a memory problem, so we created a specialized team to fix it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678549/Blog/Hero%20Images/memory_team_arie-wubben.jpg","https://about.gitlab.com/blog/why-we-created-the-gitlab-memory-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we created a Memory team at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-09-13\",\n      }",{"title":25548,"description":25549,"authors":25554,"heroImage":25550,"date":25521,"category":858,"tags":25555},[16023],[1569,1988,6376],{"slug":25557,"featured":6,"template":736},"why-we-created-the-gitlab-memory-team","content:en-us:blog:why-we-created-the-gitlab-memory-team.yml","Why We Created The Gitlab Memory Team","en-us/blog/why-we-created-the-gitlab-memory-team.yml","en-us/blog/why-we-created-the-gitlab-memory-team",{"_path":25563,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25564,"content":25569,"config":25573,"_id":25575,"_type":16,"title":25576,"_source":17,"_file":25577,"_stem":25578,"_extension":20},"/en-us/blog/is-serverless-the-end-of-ops",{"title":25565,"description":25566,"ogTitle":25565,"ogDescription":25566,"noIndex":6,"ogImage":23467,"ogUrl":25567,"ogSiteName":995,"ogType":996,"canonicalUrls":25567,"schema":25568},"Is serverless the end of ops?","What is Serverless architecture, what are the pros and cons of using it and where will it go in the future?","https://about.gitlab.com/blog/is-serverless-the-end-of-ops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Is serverless the end of ops?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-09-12\",\n      }",{"title":25565,"description":25566,"authors":25570,"heroImage":23467,"date":25571,"category":8140,"tags":25572},[17150],"2019-09-12",[2908,730,4182],{"slug":25574,"featured":6,"template":736},"is-serverless-the-end-of-ops","content:en-us:blog:is-serverless-the-end-of-ops.yml","Is Serverless The End Of Ops","en-us/blog/is-serverless-the-end-of-ops.yml","en-us/blog/is-serverless-the-end-of-ops",{"_path":25580,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25581,"content":25587,"config":25590,"_id":25592,"_type":16,"title":25593,"_source":17,"_file":25594,"_stem":25595,"_extension":20},"/en-us/blog/not-everyone-has-a-home-office",{"title":25582,"description":25583,"ogTitle":25582,"ogDescription":25583,"noIndex":6,"ogImage":25584,"ogUrl":25585,"ogSiteName":995,"ogType":996,"canonicalUrls":25585,"schema":25586},"Coworking home offices, working on the go - GitLab on remote work","GitLab team members share how they make their unique workspaces work for them, and see how they could work for you too!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680818/Blog/Hero%20Images/homeofficecover2.jpg","https://about.gitlab.com/blog/not-everyone-has-a-home-office","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Coworking home offices, working on the go - GitLab on remote work\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-09-12\",\n      }",{"title":25582,"description":25583,"authors":25588,"heroImage":25584,"date":25571,"category":6121,"tags":25589},[16023],[1569,3914],{"slug":25591,"featured":6,"template":736},"not-everyone-has-a-home-office","content:en-us:blog:not-everyone-has-a-home-office.yml","Not Everyone Has A Home Office","en-us/blog/not-everyone-has-a-home-office.yml","en-us/blog/not-everyone-has-a-home-office",{"_path":25597,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25598,"content":25604,"config":25610,"_id":25612,"_type":16,"title":25613,"_source":17,"_file":25614,"_stem":25615,"_extension":20},"/en-us/blog/how-to-avoid-broken-master-with-pipelines-for-merge-requests",{"title":25599,"description":25600,"ogTitle":25599,"ogDescription":25600,"noIndex":6,"ogImage":25601,"ogUrl":25602,"ogSiteName":995,"ogType":996,"canonicalUrls":25602,"schema":25603},"How to prevent broken master with merge trains & pipelines","Do you still run pipelines on source branches? Let's start running them on merge commits!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678366/Blog/Hero%20Images/merge-train.jpg","https://about.gitlab.com/blog/how-to-avoid-broken-master-with-pipelines-for-merge-requests","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to avoid broken master with Pipelines for Merged Results and Merge Trains\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Shinya Maeda\"}],\n        \"datePublished\": \"2019-09-11\",\n      }",{"title":25605,"description":25600,"authors":25606,"heroImage":25601,"date":25608,"category":858,"tags":25609},"How to avoid broken master with Pipelines for Merged Results and Merge Trains",[25607],"Shinya Maeda","2019-09-11",[110,4182,1335,730],{"slug":25611,"featured":6,"template":736},"how-to-avoid-broken-master-with-pipelines-for-merge-requests","content:en-us:blog:how-to-avoid-broken-master-with-pipelines-for-merge-requests.yml","How To Avoid Broken Master With Pipelines For Merge Requests","en-us/blog/how-to-avoid-broken-master-with-pipelines-for-merge-requests.yml","en-us/blog/how-to-avoid-broken-master-with-pipelines-for-merge-requests",{"_path":25617,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25618,"content":25623,"config":25627,"_id":25629,"_type":16,"title":25630,"_source":17,"_file":25631,"_stem":25632,"_extension":20},"/en-us/blog/ci-cd-github-extended-again",{"title":25619,"description":25620,"ogTitle":25619,"ogDescription":25620,"noIndex":6,"ogImage":16110,"ogUrl":25621,"ogSiteName":995,"ogType":996,"canonicalUrls":25621,"schema":25622},"We're extending free usage of CI/CD for GitHub for another six months!","Get another six months' use of CI/CD for GitHub on GitLab.com, free of charge.","https://about.gitlab.com/blog/ci-cd-github-extended-again","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're extending free usage of CI/CD for GitHub for another six months!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2019-09-09\",\n      }",{"title":25619,"description":25620,"authors":25624,"heroImage":16110,"date":25625,"category":301,"tags":25626},[15730],"2019-09-09",[110,564,269,1265],{"slug":25628,"featured":6,"template":736},"ci-cd-github-extended-again","content:en-us:blog:ci-cd-github-extended-again.yml","Ci Cd Github Extended Again","en-us/blog/ci-cd-github-extended-again.yml","en-us/blog/ci-cd-github-extended-again",{"_path":25634,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25635,"content":25641,"config":25644,"_id":25646,"_type":16,"title":25647,"_source":17,"_file":25648,"_stem":25649,"_extension":20},"/en-us/blog/software-dependencies-tech-debt",{"title":25636,"description":25637,"ogTitle":25636,"ogDescription":25637,"noIndex":6,"ogImage":25638,"ogUrl":25639,"ogSiteName":995,"ogType":996,"canonicalUrls":25639,"schema":25640},"Don’t let your dependency-laden software become the next monolith","Keep your software development fast and efficient with dependency scanning and auto-remediation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678488/Blog/Hero%20Images/software-dependencies-monolith.jpg","https://about.gitlab.com/blog/software-dependencies-tech-debt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Don’t let your dependency-laden software become the next monolith\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-09-09\",\n      }",{"title":25636,"description":25637,"authors":25642,"heroImage":25638,"date":25625,"category":8140,"tags":25643},[21105],[1265,790],{"slug":25645,"featured":6,"template":736},"software-dependencies-tech-debt","content:en-us:blog:software-dependencies-tech-debt.yml","Software Dependencies Tech Debt","en-us/blog/software-dependencies-tech-debt.yml","en-us/blog/software-dependencies-tech-debt",{"_path":25651,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25652,"content":25658,"config":25663,"_id":25665,"_type":16,"title":25666,"_source":17,"_file":25667,"_stem":25668,"_extension":20},"/en-us/blog/zero-trust-at-gitlab-data-zones-and-authentication-scoring",{"title":25653,"description":25654,"ogTitle":25653,"ogDescription":25654,"noIndex":6,"ogImage":25655,"ogUrl":25656,"ogSiteName":995,"ogType":996,"canonicalUrls":25656,"schema":25657},"Zero Trust at GitLab: Data zones & authentication scoring","How we're defining and aligning data zones in our Zero Trust implementation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680808/Blog/Hero%20Images/fabio-oyXis2kALVg-unsplash.png","https://about.gitlab.com/blog/zero-trust-at-gitlab-data-zones-and-authentication-scoring","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Zero Trust at GitLab: Mitigating challenges with data zones and authentication scoring\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2019-09-06\",\n      }",{"title":25659,"description":25654,"authors":25660,"heroImage":25655,"date":25661,"category":790,"tags":25662},"Zero Trust at GitLab: Mitigating challenges with data zones and authentication scoring",[5108],"2019-09-06",[1569,790,5733],{"slug":25664,"featured":6,"template":736},"zero-trust-at-gitlab-data-zones-and-authentication-scoring","content:en-us:blog:zero-trust-at-gitlab-data-zones-and-authentication-scoring.yml","Zero Trust At Gitlab Data Zones And Authentication Scoring","en-us/blog/zero-trust-at-gitlab-data-zones-and-authentication-scoring.yml","en-us/blog/zero-trust-at-gitlab-data-zones-and-authentication-scoring",{"_path":25670,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25671,"content":25677,"config":25681,"_id":25683,"_type":16,"title":25684,"_source":17,"_file":25685,"_stem":25686,"_extension":20},"/en-us/blog/refining-gitlab-product-experience",{"title":25672,"description":25673,"ogTitle":25672,"ogDescription":25673,"noIndex":6,"ogImage":25674,"ogUrl":25675,"ogSiteName":995,"ogType":996,"canonicalUrls":25675,"schema":25676},"What we're doing to refine GitLab's product experience","How we're using UX Scorecards to improve GitLab's UX.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673002/Blog/Hero%20Images/blog-experience-baselines.jpg","https://about.gitlab.com/blog/refining-gitlab-product-experience","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we're doing to refine GitLab's product experience\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christie Lenneville\"}],\n        \"datePublished\": \"2019-09-05\",\n      }",{"title":25672,"description":25673,"authors":25678,"heroImage":25674,"date":25679,"category":301,"tags":25680},[18313],"2019-09-05",[2703,2704],{"slug":25682,"featured":6,"template":736},"refining-gitlab-product-experience","content:en-us:blog:refining-gitlab-product-experience.yml","Refining Gitlab Product Experience","en-us/blog/refining-gitlab-product-experience.yml","en-us/blog/refining-gitlab-product-experience",{"_path":25688,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25689,"content":25695,"config":25698,"_id":25700,"_type":16,"title":25701,"_source":17,"_file":25702,"_stem":25703,"_extension":20},"/en-us/blog/the-difference-transparency-makes-in-security",{"title":25690,"description":25691,"ogTitle":25690,"ogDescription":25691,"noIndex":6,"ogImage":25692,"ogUrl":25693,"ogSiteName":995,"ogType":996,"canonicalUrls":25693,"schema":25694},"The difference transparency makes in security","What happens when you lift the veil around security?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670826/Blog/Hero%20Images/orlova-maria-EF6z_6R94zQ-unsplash.jpg","https://about.gitlab.com/blog/the-difference-transparency-makes-in-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The difference transparency makes in security\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-09-05\",\n      }",{"title":25690,"description":25691,"authors":25696,"heroImage":25692,"date":25679,"category":17170,"tags":25697},[11324],[6980,1569,790,790],{"slug":25699,"featured":6,"template":736},"the-difference-transparency-makes-in-security","content:en-us:blog:the-difference-transparency-makes-in-security.yml","The Difference Transparency Makes In Security","en-us/blog/the-difference-transparency-makes-in-security.yml","en-us/blog/the-difference-transparency-makes-in-security",{"_path":25705,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25706,"content":25712,"config":25716,"_id":25718,"_type":16,"title":25719,"_source":17,"_file":25720,"_stem":25721,"_extension":20},"/en-us/blog/not-all-remote-is-created-equal",{"title":25707,"description":25708,"ogTitle":25707,"ogDescription":25708,"noIndex":6,"ogImage":25709,"ogUrl":25710,"ogSiteName":995,"ogType":996,"canonicalUrls":25710,"schema":25711},"Not all remote is created equal","How GitLab's all-remote culture is allowing me to travel the world for four months.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679071/Blog/Hero%20Images/padang_padang_beach_bali.jpg","https://about.gitlab.com/blog/not-all-remote-is-created-equal","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Not all remote is created equal\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erich Wegscheider\"}],\n        \"datePublished\": \"2019-09-04\",\n      }",{"title":25707,"description":25708,"authors":25713,"heroImage":25709,"date":25714,"category":6121,"tags":25715},[23771],"2019-09-04",[3914],{"slug":25717,"featured":6,"template":736},"not-all-remote-is-created-equal","content:en-us:blog:not-all-remote-is-created-equal.yml","Not All Remote Is Created Equal","en-us/blog/not-all-remote-is-created-equal.yml","en-us/blog/not-all-remote-is-created-equal",{"_path":25723,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25724,"content":25730,"config":25734,"_id":25736,"_type":16,"title":25737,"_source":17,"_file":25738,"_stem":25739,"_extension":20},"/en-us/blog/developers-write-secure-code-gitlab",{"title":25725,"description":25726,"ogTitle":25725,"ogDescription":25726,"noIndex":6,"ogImage":25727,"ogUrl":25728,"ogSiteName":995,"ogType":996,"canonicalUrls":25728,"schema":25729},"4 Ways developers can write secure code with GitLab","GitLab Secure is not just for your security team – it’s for developers too. Learn four ways to write secure code with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666895/Blog/Hero%20Images/developers-write-secure.jpg","https://about.gitlab.com/blog/developers-write-secure-code-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 Ways developers can write secure code with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-09-03\",\n      }",{"title":25725,"description":25726,"authors":25731,"heroImage":25727,"date":25732,"category":8140,"tags":25733},[21105],"2019-09-03",[790,564,110,1932,964],{"slug":25735,"featured":6,"template":736},"developers-write-secure-code-gitlab","content:en-us:blog:developers-write-secure-code-gitlab.yml","Developers Write Secure Code Gitlab","en-us/blog/developers-write-secure-code-gitlab.yml","en-us/blog/developers-write-secure-code-gitlab",{"_path":25741,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25742,"content":25747,"config":25752,"_id":25754,"_type":16,"title":25755,"_source":17,"_file":25756,"_stem":25757,"_extension":20},"/en-us/blog/creating-a-transparent-digital-democracy",{"title":25743,"description":25744,"ogTitle":25743,"ogDescription":25744,"noIndex":6,"ogImage":20369,"ogUrl":25745,"ogSiteName":995,"ogType":996,"canonicalUrls":25745,"schema":25746},"Government agency builds transparent democracy using GitLab","The Cook County Assessor’s office explains how they're using GitLab to help create a new level of government transparency.","https://about.gitlab.com/blog/creating-a-transparent-digital-democracy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How one government agency is creating a transparent digital democracy with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2019-09-02\",\n      }",{"title":25748,"description":25744,"authors":25749,"heroImage":20369,"date":25750,"category":1388,"tags":25751},"How one government agency is creating a transparent digital democracy with GitLab",[22783],"2019-09-02",[4665,269,1265],{"slug":25753,"featured":6,"template":736},"creating-a-transparent-digital-democracy","content:en-us:blog:creating-a-transparent-digital-democracy.yml","Creating A Transparent Digital Democracy","en-us/blog/creating-a-transparent-digital-democracy.yml","en-us/blog/creating-a-transparent-digital-democracy",{"_path":25759,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25760,"content":25765,"config":25768,"_id":25770,"_type":16,"title":25771,"_source":17,"_file":25772,"_stem":25773,"_extension":20},"/en-us/blog/gitlab-meetups-september-2019",{"title":25761,"description":25762,"ogTitle":25761,"ogDescription":25762,"noIndex":6,"ogImage":24204,"ogUrl":25763,"ogSiteName":995,"ogType":996,"canonicalUrls":25763,"schema":25764},"GitLab Meetups: September 2019","Here’s a list of upcoming GitLab meetups in Mexico, Nigeria, France, and beyond!","https://about.gitlab.com/blog/gitlab-meetups-september-2019","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Meetups: September 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2019-09-02\",\n      }",{"title":25761,"description":25762,"authors":25766,"heroImage":24204,"date":25750,"category":17170,"tags":25767},[6119],[269,279],{"slug":25769,"featured":6,"template":736},"gitlab-meetups-september-2019","content:en-us:blog:gitlab-meetups-september-2019.yml","Gitlab Meetups September 2019","en-us/blog/gitlab-meetups-september-2019.yml","en-us/blog/gitlab-meetups-september-2019",{"_path":25775,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25776,"content":25782,"config":25785,"_id":25787,"_type":16,"title":25788,"_source":17,"_file":25789,"_stem":25790,"_extension":20},"/en-us/blog/how-we-scaled-our-summits",{"title":25777,"description":25778,"ogTitle":25777,"ogDescription":25778,"noIndex":6,"ogImage":25779,"ogUrl":25780,"ogSiteName":995,"ogType":996,"canonicalUrls":25780,"schema":25781},"How we double the GitLab summit every year","Take a deep dive into the evolution of our summit, GitLab Contribute, keeping pace with a company that practically doubles in size annually.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673134/Blog/Hero%20Images/scale-our-summits.jpg","https://about.gitlab.com/blog/how-we-scaled-our-summits","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we double the GitLab summit every year\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-09-02\",\n      }",{"title":25777,"description":25778,"authors":25783,"heroImage":25779,"date":25750,"category":6121,"tags":25784},[16023],[1569,3914],{"slug":25786,"featured":6,"template":736},"how-we-scaled-our-summits","content:en-us:blog:how-we-scaled-our-summits.yml","How We Scaled Our Summits","en-us/blog/how-we-scaled-our-summits.yml","en-us/blog/how-we-scaled-our-summits",{"_path":25792,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25793,"content":25799,"config":25801,"_id":25803,"_type":16,"title":25804,"_source":17,"_file":25805,"_stem":25806,"_extension":20},"/en-us/blog/why-i-am-excited-about-gitlab-commit",{"title":25794,"description":25795,"ogTitle":25794,"ogDescription":25795,"noIndex":6,"ogImage":25796,"ogUrl":25797,"ogSiteName":995,"ogType":996,"canonicalUrls":25797,"schema":25798},"Why I'm so excited to go to GitLab Commit","Spoiler alert: It's that I'm going to get to see GitLabbers who I don't work with","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683818/Blog/Hero%20Images/in-new-york.jpg","https://about.gitlab.com/blog/why-i-am-excited-about-gitlab-commit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why I'm so excited to go to GitLab Commit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2019-09-02\",\n      }",{"title":25794,"description":25795,"authors":25800,"heroImage":25796,"date":25750,"category":301},[10835],{"slug":25802,"featured":6,"template":736},"why-i-am-excited-about-gitlab-commit","content:en-us:blog:why-i-am-excited-about-gitlab-commit.yml","Why I Am Excited About Gitlab Commit","en-us/blog/why-i-am-excited-about-gitlab-commit.yml","en-us/blog/why-i-am-excited-about-gitlab-commit",{"_path":25808,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25809,"content":25815,"config":25819,"_id":25821,"_type":16,"title":25822,"_source":17,"_file":25823,"_stem":25824,"_extension":20},"/en-us/blog/software-test-at-gitlab",{"title":25810,"description":25811,"ogTitle":25810,"ogDescription":25811,"noIndex":6,"ogImage":25812,"ogUrl":25813,"ogSiteName":995,"ogType":996,"canonicalUrls":25813,"schema":25814},"An inside look at software testing at GitLab","Director of quality engineering Mek Stittri talks test technology and the future of automation at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680800/Blog/Hero%20Images/softwaretestlaunch.jpg","https://about.gitlab.com/blog/software-test-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"An inside look at software testing at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-08-30\",\n      }",{"title":25810,"description":25811,"authors":25816,"heroImage":25812,"date":25817,"category":8140,"tags":25818},[10672],"2019-08-30",[1569,964,564,1335],{"slug":25820,"featured":6,"template":736},"software-test-at-gitlab","content:en-us:blog:software-test-at-gitlab.yml","Software Test At Gitlab","en-us/blog/software-test-at-gitlab.yml","en-us/blog/software-test-at-gitlab",{"_path":25826,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25827,"content":25833,"config":25837,"_id":25839,"_type":16,"title":25840,"_source":17,"_file":25841,"_stem":25842,"_extension":20},"/en-us/blog/gitlab-commit-london-speakers",{"title":25828,"description":25829,"ogTitle":25828,"ogDescription":25829,"noIndex":6,"ogImage":25830,"ogUrl":25831,"ogSiteName":995,"ogType":996,"canonicalUrls":25831,"schema":25832},"Get a first look at the lineup for GitLab Commit London!","Meet the speakers – and get the schedule – for the upcoming GitLab Commit conference in London.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678515/Blog/Hero%20Images/gitlab-commit-header.png","https://about.gitlab.com/blog/gitlab-commit-london-speakers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get a first look at the lineup for GitLab Commit London!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-08-29\",\n      }",{"title":25828,"description":25829,"authors":25834,"heroImage":25830,"date":25835,"category":301,"tags":25836},[1000],"2019-08-29",[279,269,582],{"slug":25838,"featured":6,"template":736},"gitlab-commit-london-speakers","content:en-us:blog:gitlab-commit-london-speakers.yml","Gitlab Commit London Speakers","en-us/blog/gitlab-commit-london-speakers.yml","en-us/blog/gitlab-commit-london-speakers",{"_path":25844,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25845,"content":25850,"config":25853,"_id":25855,"_type":16,"title":25856,"_source":17,"_file":25857,"_stem":25858,"_extension":20},"/en-us/blog/monitoring-team-update",{"title":25846,"description":25847,"ogTitle":25846,"ogDescription":25847,"noIndex":6,"ogImage":12657,"ogUrl":25848,"ogSiteName":995,"ogType":996,"canonicalUrls":25848,"schema":25849},"How we plan to build more observability tools on GitLab monitoring","Get the scoop on our plan to close the DevOps loop.","https://about.gitlab.com/blog/monitoring-team-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we plan to build more observability tools on GitLab monitoring\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-08-29\",\n      }",{"title":25846,"description":25847,"authors":25851,"heroImage":12657,"date":25835,"category":301,"tags":25852},[16023],[582,1988],{"slug":25854,"featured":6,"template":736},"monitoring-team-update","content:en-us:blog:monitoring-team-update.yml","Monitoring Team Update","en-us/blog/monitoring-team-update.yml","en-us/blog/monitoring-team-update",{"_path":25860,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25861,"content":25867,"config":25871,"_id":25873,"_type":16,"title":25874,"_source":17,"_file":25875,"_stem":25876,"_extension":20},"/en-us/blog/building-build-images",{"title":25862,"description":25863,"ogTitle":25862,"ogDescription":25863,"noIndex":6,"ogImage":25864,"ogUrl":25865,"ogSiteName":995,"ogType":996,"canonicalUrls":25865,"schema":25866},"Getting [meta] with GitLab CI/CD: Building build images","Let's talk about building build images with GitLab CI/CD. The power of Docker as a build platform is unleashed when you get meta.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678567/Blog/Hero%20Images/building-blocks.jpg","https://about.gitlab.com/blog/building-build-images","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting [meta] with GitLab CI/CD: Building build images\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2019-08-28\",\n      }",{"title":25862,"description":25863,"authors":25868,"heroImage":25864,"date":25869,"category":858,"tags":25870},[10835],"2019-08-28",[110,2908,772],{"slug":25872,"featured":6,"template":736},"building-build-images","content:en-us:blog:building-build-images.yml","Building Build Images","en-us/blog/building-build-images.yml","en-us/blog/building-build-images",{"_path":25878,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25879,"content":25885,"config":25889,"_id":25891,"_type":16,"title":25892,"_source":17,"_file":25893,"_stem":25894,"_extension":20},"/en-us/blog/avoiding-the-vendor-lock-with-delta-at-commit",{"title":25880,"description":25881,"ogTitle":25880,"ogDescription":25881,"noIndex":6,"ogImage":25882,"ogUrl":25883,"ogSiteName":995,"ogType":996,"canonicalUrls":25883,"schema":25884},"GitLab Commit: Hear how Delta Air Lines became truly cloud native","Join us in Brooklyn on September 17 to hear how Delta Air Lines achieved workflow portability.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680793/Blog/Hero%20Images/portable.jpg","https://about.gitlab.com/blog/avoiding-the-vendor-lock-with-delta-at-commit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Commit: Hear how Delta Air Lines became truly cloud native\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Priyanka Sharma\"}],\n        \"datePublished\": \"2019-08-27\",\n      }",{"title":25880,"description":25881,"authors":25886,"heroImage":25882,"date":25887,"category":301,"tags":25888},[25150],"2019-08-27",[279],{"slug":25890,"featured":6,"template":736},"avoiding-the-vendor-lock-with-delta-at-commit","content:en-us:blog:avoiding-the-vendor-lock-with-delta-at-commit.yml","Avoiding The Vendor Lock With Delta At Commit","en-us/blog/avoiding-the-vendor-lock-with-delta-at-commit.yml","en-us/blog/avoiding-the-vendor-lock-with-delta-at-commit",{"_path":25896,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25897,"content":25902,"config":25905,"_id":25907,"_type":16,"title":25908,"_source":17,"_file":25909,"_stem":25910,"_extension":20},"/en-us/blog/tyranny-of-the-clock",{"title":25898,"description":25899,"ogTitle":25898,"ogDescription":25899,"noIndex":6,"ogImage":6369,"ogUrl":25900,"ogSiteName":995,"ogType":996,"canonicalUrls":25900,"schema":25901},"6 Lessons we learned when debugging a scaling problem on GitLab.com","Get a closer look at how we investigated errors originating from scheduled jobs, and how we stumbled upon \"the tyranny of the clock.\"","https://about.gitlab.com/blog/tyranny-of-the-clock","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"6 Lessons we learned when debugging a scaling problem on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Craig Miskell\"}],\n        \"datePublished\": \"2019-08-27\",\n      }",{"title":25898,"description":25899,"authors":25903,"heroImage":6369,"date":25887,"category":858,"tags":25904},[8243],[1195,1988,6376],{"slug":25906,"featured":6,"template":736},"tyranny-of-the-clock","content:en-us:blog:tyranny-of-the-clock.yml","Tyranny Of The Clock","en-us/blog/tyranny-of-the-clock.yml","en-us/blog/tyranny-of-the-clock",{"_path":25912,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25913,"content":25919,"config":25925,"_id":25927,"_type":16,"title":25928,"_source":17,"_file":25929,"_stem":25930,"_extension":20},"/en-us/blog/cloudhealth-and-gitlab-reducing-overruns",{"title":25914,"description":25915,"ogTitle":25914,"ogDescription":25915,"noIndex":6,"ogImage":25916,"ogUrl":25917,"ogSiteName":995,"ogType":996,"canonicalUrls":25917,"schema":25918},"How to prevent deployments from overrunning your budget","Guest authors from VMware share how to include budget and resource checking into your continuous deployment with Cloudhealth and GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670389/Blog/Hero%20Images/gitlab-cloud-journey.png","https://about.gitlab.com/blog/cloudhealth-and-gitlab-reducing-overruns","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to prevent deployments from overrunning your budget\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Davis\"},{\"@type\":\"Person\",\"name\":\"Bahubali (Bill) Shetti\"}],\n        \"datePublished\": \"2019-08-26\",\n      }",{"title":25914,"description":25915,"authors":25920,"heroImage":25916,"date":25923,"category":8140,"tags":25924},[25921,25922],"Tim Davis","Bahubali (Bill) Shetti","2019-08-26",[110,582,564,233],{"slug":25926,"featured":6,"template":736},"cloudhealth-and-gitlab-reducing-overruns","content:en-us:blog:cloudhealth-and-gitlab-reducing-overruns.yml","Cloudhealth And Gitlab Reducing Overruns","en-us/blog/cloudhealth-and-gitlab-reducing-overruns.yml","en-us/blog/cloudhealth-and-gitlab-reducing-overruns",{"_path":25932,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25933,"content":25939,"config":25942,"_id":25944,"_type":16,"title":25945,"_source":17,"_file":25946,"_stem":25947,"_extension":20},"/en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt",{"title":25934,"description":25935,"ogTitle":25934,"ogDescription":25935,"noIndex":6,"ogImage":25936,"ogUrl":25937,"ogSiteName":995,"ogType":996,"canonicalUrls":25937,"schema":25938},"How to manage your Snowflake spend with Periscope and dbt","The GitLab data team is open sourcing the dbt package they use to manage their Snowflake spend.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670255/Blog/Hero%20Images/data-servers.jpg","https://about.gitlab.com/blog/managing-your-snowflake-spend-with-periscope-and-dbt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to manage your Snowflake spend with Periscope and dbt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor Murphy\"},{\"@type\":\"Person\",\"name\":\"Emilie Schario\"}],\n        \"datePublished\": \"2019-08-26\",\n      }",{"title":25934,"description":25935,"authors":25940,"heroImage":25936,"date":25923,"category":1388,"tags":25941},[22470,22367],[2815,269,1265,892],{"slug":25943,"featured":6,"template":736},"managing-your-snowflake-spend-with-periscope-and-dbt","content:en-us:blog:managing-your-snowflake-spend-with-periscope-and-dbt.yml","Managing Your Snowflake Spend With Periscope And Dbt","en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt.yml","en-us/blog/managing-your-snowflake-spend-with-periscope-and-dbt",{"_path":25949,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25950,"content":25956,"config":25962,"_id":25964,"_type":16,"title":25965,"_source":17,"_file":25966,"_stem":25967,"_extension":20},"/en-us/blog/a-single-codebase-for-gitlab-community-and-enterprise-edition",{"title":25951,"description":25952,"ogTitle":25951,"ogDescription":25952,"noIndex":6,"ogImage":25953,"ogUrl":25954,"ogSiteName":995,"ogType":996,"canonicalUrls":25954,"schema":25955},"Why GitLab uses one codebase for Community & Enterprise","Dive into our decision to switch GitLab over to a single codebase as we review some of the benefits and challenges. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671631/Blog/Hero%20Images/merge-ce-ee-codebases.jpg","https://about.gitlab.com/blog/a-single-codebase-for-gitlab-community-and-enterprise-edition","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update: Why GitLab uses a single codebase for Community and Enterprise editions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yorick Peterse\"}],\n        \"datePublished\": \"2019-08-23\",\n      }",{"title":25957,"description":25952,"authors":25958,"heroImage":25953,"date":25960,"category":858,"tags":25961},"Update: Why GitLab uses a single codebase for Community and Enterprise editions",[25959],"Yorick Peterse","2019-08-23",[1569,1265],{"slug":25963,"featured":6,"template":736},"a-single-codebase-for-gitlab-community-and-enterprise-edition","content:en-us:blog:a-single-codebase-for-gitlab-community-and-enterprise-edition.yml","A Single Codebase For Gitlab Community And Enterprise Edition","en-us/blog/a-single-codebase-for-gitlab-community-and-enterprise-edition.yml","en-us/blog/a-single-codebase-for-gitlab-community-and-enterprise-edition",{"_path":25969,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25970,"content":25975,"config":25978,"_id":25980,"_type":16,"title":25981,"_source":17,"_file":25982,"_stem":25983,"_extension":20},"/en-us/blog/manage-agile-teams-with-microservices",{"title":25971,"description":25972,"ogTitle":25971,"ogDescription":25972,"noIndex":6,"ogImage":17253,"ogUrl":25973,"ogSiteName":995,"ogType":996,"canonicalUrls":25973,"schema":25974},"How to manage Agile teams with microservices","GitLab Groups and Projects can help teams divide work by product or system.","https://about.gitlab.com/blog/manage-agile-teams-with-microservices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to manage Agile teams with microservices\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-08-23\",\n      }",{"title":25971,"description":25972,"authors":25976,"heroImage":17253,"date":25960,"category":8140,"tags":25977},[19332],[729,2815,564,1335],{"slug":25979,"featured":6,"template":736},"manage-agile-teams-with-microservices","content:en-us:blog:manage-agile-teams-with-microservices.yml","Manage Agile Teams With Microservices","en-us/blog/manage-agile-teams-with-microservices.yml","en-us/blog/manage-agile-teams-with-microservices",{"_path":25985,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":25986,"content":25991,"config":25996,"_id":25998,"_type":16,"title":25999,"_source":17,"_file":26000,"_stem":26001,"_extension":20},"/en-us/blog/5-things-i-learned-during-my-30-day-internship-with-gitlab-s-data-team",{"title":25987,"description":25988,"ogTitle":25987,"ogDescription":25988,"noIndex":6,"ogImage":16110,"ogUrl":25989,"ogSiteName":995,"ogType":996,"canonicalUrls":25989,"schema":25990},"5 Things I Learned During My Summer Internship with GitLab's Data Team","Key lessons learned during my summer internship","https://about.gitlab.com/blog/5-things-i-learned-during-my-30-day-internship-with-gitlab-s-data-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Things I Learned During My Summer Internship with GitLab's Data Team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eugenia Hannon\"}],\n        \"datePublished\": \"2019-08-22\",\n      }",{"title":25987,"description":25988,"authors":25992,"heroImage":16110,"date":25994,"category":17170,"tags":25995},[25993],"Eugenia Hannon","2019-08-22",[2815,269],{"slug":25997,"featured":6,"template":736},"5-things-i-learned-during-my-30-day-internship-with-gitlab-s-data-team","content:en-us:blog:5-things-i-learned-during-my-30-day-internship-with-gitlab-s-data-team.yml","5 Things I Learned During My 30 Day Internship With Gitlab S Data Team","en-us/blog/5-things-i-learned-during-my-30-day-internship-with-gitlab-s-data-team.yml","en-us/blog/5-things-i-learned-during-my-30-day-internship-with-gitlab-s-data-team",{"_path":26003,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26004,"content":26010,"config":26014,"_id":26016,"_type":16,"title":26017,"_source":17,"_file":26018,"_stem":26019,"_extension":20},"/en-us/blog/making-builds-faster-autoscaling-runners",{"title":26005,"description":26006,"ogTitle":26005,"ogDescription":26006,"noIndex":6,"ogImage":26007,"ogUrl":26008,"ogSiteName":995,"ogType":996,"canonicalUrls":26008,"schema":26009},"How to make builds faster","How GitLab uses autoscaling to reduce build times and make developers happy.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673173/Blog/Hero%20Images/autoscaling-balance.jpg","https://about.gitlab.com/blog/making-builds-faster-autoscaling-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to make builds faster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-08-21\",\n      }",{"title":26005,"description":26006,"authors":26011,"heroImage":26007,"date":26012,"category":8140,"tags":26013},[17150],"2019-08-21",[110,730,564],{"slug":26015,"featured":6,"template":736},"making-builds-faster-autoscaling-runners","content:en-us:blog:making-builds-faster-autoscaling-runners.yml","Making Builds Faster Autoscaling Runners","en-us/blog/making-builds-faster-autoscaling-runners.yml","en-us/blog/making-builds-faster-autoscaling-runners",{"_path":26021,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26022,"content":26028,"config":26031,"_id":26033,"_type":16,"title":26034,"_source":17,"_file":26035,"_stem":26036,"_extension":20},"/en-us/blog/zero-trust-at-gitlab-the-data-classification-and-infrastructure-challenge",{"title":26023,"description":26024,"ogTitle":26023,"ogDescription":26024,"noIndex":6,"ogImage":26025,"ogUrl":26026,"ogSiteName":995,"ogType":996,"canonicalUrls":26026,"schema":26027},"Zero Trust at GitLab: The data classification and infrastructure challenge","The classification of data is a huge step in the right direction when it comes to handling Zero Trust, but it comes with its own set of challenges.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679055/Blog/Hero%20Images/close-up-colorful-colors-40799.jpg","https://about.gitlab.com/blog/zero-trust-at-gitlab-the-data-classification-and-infrastructure-challenge","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Zero Trust at GitLab: The data classification and infrastructure challenge\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2019-08-21\",\n      }",{"title":26023,"description":26024,"authors":26029,"heroImage":26025,"date":26012,"category":790,"tags":26030},[5108],[1569,790,5733],{"slug":26032,"featured":6,"template":736},"zero-trust-at-gitlab-the-data-classification-and-infrastructure-challenge","content:en-us:blog:zero-trust-at-gitlab-the-data-classification-and-infrastructure-challenge.yml","Zero Trust At Gitlab The Data Classification And Infrastructure Challenge","en-us/blog/zero-trust-at-gitlab-the-data-classification-and-infrastructure-challenge.yml","en-us/blog/zero-trust-at-gitlab-the-data-classification-and-infrastructure-challenge",{"_path":26038,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26039,"content":26045,"config":26049,"_id":26051,"_type":16,"title":26052,"_source":17,"_file":26053,"_stem":26054,"_extension":20},"/en-us/blog/agile-pairing-sessions",{"title":26040,"description":26041,"ogTitle":26040,"ogDescription":26041,"noIndex":6,"ogImage":26042,"ogUrl":26043,"ogSiteName":995,"ogType":996,"canonicalUrls":26043,"schema":26044},"Improving pair programming with pairing sessions","Pairing with a teammate can increase delivery. Here we look at what pairing sessions are, what they involve and what they're good for.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665897/Blog/Hero%20Images/incrementalcodedevelopment.jpg","https://about.gitlab.com/blog/agile-pairing-sessions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improving pair programming with pairing sessions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-08-20\",\n      }",{"title":26040,"description":26041,"authors":26046,"heroImage":26042,"date":26047,"category":8140,"tags":26048},[19332],"2019-08-20",[729,2815,564,1335],{"slug":26050,"featured":6,"template":736},"agile-pairing-sessions","content:en-us:blog:agile-pairing-sessions.yml","Agile Pairing Sessions","en-us/blog/agile-pairing-sessions.yml","en-us/blog/agile-pairing-sessions",{"_path":26056,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26057,"content":26062,"config":26065,"_id":26067,"_type":16,"title":26068,"_source":17,"_file":26069,"_stem":26070,"_extension":20},"/en-us/blog/welcome-to-gitlab-unfiltered",{"title":26058,"description":26059,"ogTitle":26058,"ogDescription":26059,"noIndex":6,"ogImage":17164,"ogUrl":26060,"ogSiteName":995,"ogType":996,"canonicalUrls":26060,"schema":26061},"Welcome to the home of GitLab Unfiltered","The GitLab Unfiltered blog is user-generated content by the GitLab team.","https://about.gitlab.com/blog/welcome-to-gitlab-unfiltered","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Welcome to the home of GitLab Unfiltered\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2019-08-20\",\n      }",{"title":26058,"description":26059,"authors":26063,"heroImage":17164,"date":26047,"category":6121,"tags":26064},[17684],[1569],{"slug":26066,"featured":6,"template":736},"welcome-to-gitlab-unfiltered","content:en-us:blog:welcome-to-gitlab-unfiltered.yml","Welcome To Gitlab Unfiltered","en-us/blog/welcome-to-gitlab-unfiltered.yml","en-us/blog/welcome-to-gitlab-unfiltered",{"_path":26072,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26073,"content":26079,"config":26083,"_id":26085,"_type":16,"title":26086,"_source":17,"_file":26087,"_stem":26088,"_extension":20},"/en-us/blog/get-started-compliance-as-code",{"title":26074,"description":26075,"ogTitle":26074,"ogDescription":26075,"noIndex":6,"ogImage":26076,"ogUrl":26077,"ogSiteName":995,"ogType":996,"canonicalUrls":26077,"schema":26078},"Why building compliance as code in DevOps will benefit your entire company","Read here on how to integrate compliance as code into your DevOps cycle and why it's important to have in your business","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680734/Blog/Hero%20Images/compliance-as-code-header.jpg","https://about.gitlab.com/blog/get-started-compliance-as-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why building compliance as code in DevOps will benefit your entire company\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-08-19\",\n      }",{"title":26074,"description":26075,"authors":26080,"heroImage":26076,"date":26081,"category":8140,"tags":26082},[21105],"2019-08-19",[2815,1932,564,790,964,1335],{"slug":26084,"featured":6,"template":736},"get-started-compliance-as-code","content:en-us:blog:get-started-compliance-as-code.yml","Get Started Compliance As Code","en-us/blog/get-started-compliance-as-code.yml","en-us/blog/get-started-compliance-as-code",{"_path":26090,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26091,"content":26097,"config":26101,"_id":26103,"_type":16,"title":26104,"_source":17,"_file":26105,"_stem":26106,"_extension":20},"/en-us/blog/all-remote-fundraising",{"title":26092,"description":26093,"ogTitle":26092,"ogDescription":26093,"noIndex":6,"ogImage":26094,"ogUrl":26095,"ogSiteName":995,"ogType":996,"canonicalUrls":26095,"schema":26096},"How to raise funds as an all-remote startup","GitLab CEO Sid Sijbrandij and podcast host Maren Kate unpack why venture firms struggle to fund all-remote startups.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673152/Blog/Hero%20Images/remotefundraisinghurdle.jpg","https://about.gitlab.com/blog/all-remote-fundraising","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to raise funds as an all-remote startup\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-08-16\",\n      }",{"title":26092,"description":26093,"authors":26098,"heroImage":26094,"date":26099,"category":8140,"tags":26100},[10672],"2019-08-16",[1569,3914,10011],{"slug":26102,"featured":6,"template":736},"all-remote-fundraising","content:en-us:blog:all-remote-fundraising.yml","All Remote Fundraising","en-us/blog/all-remote-fundraising.yml","en-us/blog/all-remote-fundraising",{"_path":26108,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26109,"content":26115,"config":26119,"_id":26121,"_type":16,"title":26122,"_source":17,"_file":26123,"_stem":26124,"_extension":20},"/en-us/blog/all-remote-is-for-everyone",{"title":26110,"description":26111,"ogTitle":26110,"ogDescription":26111,"noIndex":6,"ogImage":26112,"ogUrl":26113,"ogSiteName":995,"ogType":996,"canonicalUrls":26113,"schema":26114},"Why we believe all-remote is for everyone","Darren Murph, leading GitLab's all-remote initiatives, shares why the future of work can be embraced today.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680729/Blog/Hero%20Images/dm-globe.jpg","https://about.gitlab.com/blog/all-remote-is-for-everyone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we believe all-remote is for everyone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Darren Murph\"}],\n        \"datePublished\": \"2019-08-15\",\n      }",{"title":26110,"description":26111,"authors":26116,"heroImage":26112,"date":26117,"category":6121,"tags":26118},[18277],"2019-08-15",[730,1569,3914,6980],{"slug":26120,"featured":6,"template":736},"all-remote-is-for-everyone","content:en-us:blog:all-remote-is-for-everyone.yml","All Remote Is For Everyone","en-us/blog/all-remote-is-for-everyone.yml","en-us/blog/all-remote-is-for-everyone",{"_path":26126,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26127,"content":26133,"config":26139,"_id":26141,"_type":16,"title":26142,"_source":17,"_file":26143,"_stem":26144,"_extension":20},"/en-us/blog/american-fuzzy-lop-on-gitlab",{"title":26128,"description":26129,"ogTitle":26128,"ogDescription":26129,"noIndex":6,"ogImage":26130,"ogUrl":26131,"ogSiteName":995,"ogType":996,"canonicalUrls":26131,"schema":26132},"GitLab automates instrumented fuzzing via American Fuzzy Lop","An example of how to automate instrumented fuzzing with American Fuzzy Lop using pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680723/Blog/Hero%20Images/aerial-shot-birds-eye-view.jpg","https://about.gitlab.com/blog/american-fuzzy-lop-on-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"American Fuzzy Lop on GitLab: Automating instrumented fuzzing using pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Luka Trbojevic\"}],\n        \"datePublished\": \"2019-08-14\",\n      }",{"title":26134,"description":26129,"authors":26135,"heroImage":26130,"date":26137,"category":790,"tags":26138},"American Fuzzy Lop on GitLab: Automating instrumented fuzzing using pipelines",[26136],"Luka Trbojevic","2019-08-14",[1569,790],{"slug":26140,"featured":6,"template":736},"american-fuzzy-lop-on-gitlab","content:en-us:blog:american-fuzzy-lop-on-gitlab.yml","American Fuzzy Lop On Gitlab","en-us/blog/american-fuzzy-lop-on-gitlab.yml","en-us/blog/american-fuzzy-lop-on-gitlab",{"_path":26146,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26147,"content":26153,"config":26157,"_id":26159,"_type":16,"title":26160,"_source":17,"_file":26161,"_stem":26162,"_extension":20},"/en-us/blog/agile-best-practices",{"title":26148,"description":26149,"ogTitle":26148,"ogDescription":26149,"noIndex":6,"ogImage":26150,"ogUrl":26151,"ogSiteName":995,"ogType":996,"canonicalUrls":26151,"schema":26152},"5 Agile best practices","Make the most out of Agile development with these technical best practices.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678597/Blog/Hero%20Images/run-agile-in-gitlab.jpg","https://about.gitlab.com/blog/agile-best-practices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Agile best practices\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-08-13\",\n      }",{"title":26148,"description":26149,"authors":26154,"heroImage":26150,"date":26155,"category":8140,"tags":26156},[19332],"2019-08-13",[729,2815,564,1335],{"slug":26158,"featured":6,"template":736},"agile-best-practices","content:en-us:blog:agile-best-practices.yml","Agile Best Practices","en-us/blog/agile-best-practices.yml","en-us/blog/agile-best-practices",{"_path":26164,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26165,"content":26171,"config":26176,"_id":26178,"_type":16,"title":26179,"_source":17,"_file":26180,"_stem":26181,"_extension":20},"/en-us/blog/developer-intro-sast-dast",{"title":26166,"description":26167,"ogTitle":26166,"ogDescription":26167,"noIndex":6,"ogImage":26168,"ogUrl":26169,"ogSiteName":995,"ogType":996,"canonicalUrls":26169,"schema":26170},"SAST & DAST: Key security tests for development workflows","Bolster your code quality with static and dynamic application security testing. Learn why you need SAST and DAST for your projects.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680714/Blog/Hero%20Images/intro-developer-sast-dast.jpg","https://about.gitlab.com/blog/developer-intro-sast-dast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why you need static and dynamic application security testing in your development workflows\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-08-12\",\n      }",{"title":26172,"description":26167,"authors":26173,"heroImage":26168,"date":26174,"category":8140,"tags":26175},"Why you need static and dynamic application security testing in your development workflows",[21105],"2019-08-12",[964,790,110],{"slug":26177,"featured":6,"template":736},"developer-intro-sast-dast","content:en-us:blog:developer-intro-sast-dast.yml","Developer Intro Sast Dast","en-us/blog/developer-intro-sast-dast.yml","en-us/blog/developer-intro-sast-dast",{"_path":26183,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26184,"content":26190,"config":26194,"_id":26196,"_type":16,"title":26197,"_source":17,"_file":26198,"_stem":26199,"_extension":20},"/en-us/blog/zero-trust-at-gitlab-problems-goals-challenges",{"title":26185,"description":26186,"ogTitle":26185,"ogDescription":26186,"noIndex":6,"ogImage":26187,"ogUrl":26188,"ogSiteName":995,"ogType":996,"canonicalUrls":26188,"schema":26189},"Zero Trust at GitLab: Problems, goals, and coming challenges","We map out our Zero Trust goals, the challenges we expect to encounter along the way, and how we plan to address them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680704/Blog/Hero%20Images/beasty-ztblog-unsplash.jpg","https://about.gitlab.com/blog/zero-trust-at-gitlab-problems-goals-challenges","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Zero Trust at GitLab: Problems, goals, and coming challenges\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2019-08-09\",\n      }",{"title":26185,"description":26186,"authors":26191,"heroImage":26187,"date":26192,"category":790,"tags":26193},[5108],"2019-08-09",[1569,790,5733],{"slug":26195,"featured":6,"template":736},"zero-trust-at-gitlab-problems-goals-challenges","content:en-us:blog:zero-trust-at-gitlab-problems-goals-challenges.yml","Zero Trust At Gitlab Problems Goals Challenges","en-us/blog/zero-trust-at-gitlab-problems-goals-challenges.yml","en-us/blog/zero-trust-at-gitlab-problems-goals-challenges",{"_path":26201,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26202,"content":26208,"config":26212,"_id":26214,"_type":16,"title":26215,"_source":17,"_file":26216,"_stem":26217,"_extension":20},"/en-us/blog/built-in-ci-cd-version-control-secret",{"title":26203,"description":26204,"ogTitle":26203,"ogDescription":26204,"noIndex":6,"ogImage":26205,"ogUrl":26206,"ogSiteName":995,"ogType":996,"canonicalUrls":26206,"schema":26207},"The market figured out GitLab’s secret","Why we decided to combine version control with CI, and the rise of the single application.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663648/Blog/Hero%20Images/gitlab-joins-cd-foundation.jpg","https://about.gitlab.com/blog/built-in-ci-cd-version-control-secret","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The market figured out GitLab’s secret\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2019-08-08\",\n      }",{"title":26203,"description":26204,"authors":26209,"heroImage":26205,"date":26210,"category":8140,"tags":26211},[3701],"2019-08-08",[110,564],{"slug":26213,"featured":6,"template":736},"built-in-ci-cd-version-control-secret","content:en-us:blog:built-in-ci-cd-version-control-secret.yml","Built In Ci Cd Version Control Secret","en-us/blog/built-in-ci-cd-version-control-secret.yml","en-us/blog/built-in-ci-cd-version-control-secret",{"_path":26219,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26220,"content":26226,"config":26229,"_id":26231,"_type":16,"title":26232,"_source":17,"_file":26233,"_stem":26234,"_extension":20},"/en-us/blog/remote-kids-part-four",{"title":26221,"description":26222,"ogTitle":26221,"ogDescription":26222,"noIndex":6,"ogImage":26223,"ogUrl":26224,"ogSiteName":995,"ogType":996,"canonicalUrls":26224,"schema":26225},"5 Things to keep in mind while working remotely with kids","A flex schedule, realistic expectations, and a positive attitude will make it easier to work with kids around.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680690/Blog/Hero%20Images/working-at-home-with-kids.jpg","https://about.gitlab.com/blog/remote-kids-part-four","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Things to keep in mind while working remotely with kids\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean McGivern\"}],\n        \"datePublished\": \"2019-08-08\",\n      }",{"title":26221,"description":26222,"authors":26227,"heroImage":26223,"date":26210,"category":6121,"tags":26228},[18858],[3914,6980,1569],{"slug":26230,"featured":6,"template":736},"remote-kids-part-four","content:en-us:blog:remote-kids-part-four.yml","Remote Kids Part Four","en-us/blog/remote-kids-part-four.yml","en-us/blog/remote-kids-part-four",{"_path":26236,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26237,"content":26243,"config":26247,"_id":26249,"_type":16,"title":26250,"_source":17,"_file":26251,"_stem":26252,"_extension":20},"/en-us/blog/a-look-ahead-for-gitlab-cicd",{"title":26238,"description":26239,"ogTitle":26238,"ogDescription":26239,"noIndex":6,"ogImage":26240,"ogUrl":26241,"ogSiteName":995,"ogType":996,"canonicalUrls":26241,"schema":26242},"New up and coming GitLab CI/CD Features","DAG, Multi-project Pipelines, Runner Setup for Kubernetes and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666889/Blog/Hero%20Images/photo-cicd12xlookahead.jpg","https://about.gitlab.com/blog/a-look-ahead-for-gitlab-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New up and coming GitLab CI/CD Features\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-08-07\",\n      }",{"title":26238,"description":26239,"authors":26244,"heroImage":26240,"date":26245,"category":858,"tags":26246},[20535],"2019-08-07",[564,110,730],{"slug":26248,"featured":6,"template":736},"a-look-ahead-for-gitlab-cicd","content:en-us:blog:a-look-ahead-for-gitlab-cicd.yml","A Look Ahead For Gitlab Cicd","en-us/blog/a-look-ahead-for-gitlab-cicd.yml","en-us/blog/a-look-ahead-for-gitlab-cicd",{"_path":26254,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26255,"content":26260,"config":26263,"_id":26265,"_type":16,"title":26266,"_source":17,"_file":26267,"_stem":26268,"_extension":20},"/en-us/blog/gitlab-commit-speaker-announcement",{"title":26256,"description":26257,"ogTitle":26256,"ogDescription":26257,"noIndex":6,"ogImage":25830,"ogUrl":26258,"ogSiteName":995,"ogType":996,"canonicalUrls":26258,"schema":26259},"See who will be speaking at GitLab Commit!","Announcing the speakers for our inaugural GitLab Commit conference in Brooklyn.","https://about.gitlab.com/blog/gitlab-commit-speaker-announcement","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"See who will be speaking at GitLab Commit!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gitlab\"}],\n        \"datePublished\": \"2019-08-07\",\n      }",{"title":26256,"description":26257,"authors":26261,"heroImage":25830,"date":26245,"category":301,"tags":26262},[1000],[279,269],{"slug":26264,"featured":6,"template":736},"gitlab-commit-speaker-announcement","content:en-us:blog:gitlab-commit-speaker-announcement.yml","Gitlab Commit Speaker Announcement","en-us/blog/gitlab-commit-speaker-announcement.yml","en-us/blog/gitlab-commit-speaker-announcement",{"_path":26270,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26271,"content":26277,"config":26281,"_id":26283,"_type":16,"title":26284,"_source":17,"_file":26285,"_stem":26286,"_extension":20},"/en-us/blog/feature-flags-continuous-delivery",{"title":26272,"description":26273,"ogTitle":26272,"ogDescription":26273,"noIndex":6,"ogImage":26274,"ogUrl":26275,"ogSiteName":995,"ogType":996,"canonicalUrls":26275,"schema":26276},"Learn more about Feature Flags: The next step in Progressive Delivery","How Feature Flags are continuing the next evolution of continuous delivery.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670020/Blog/Hero%20Images/feature-flags.jpg","https://about.gitlab.com/blog/feature-flags-continuous-delivery","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Learn more about Feature Flags: The next step in Progressive Delivery\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-08-06\",\n      }",{"title":26272,"description":26273,"authors":26278,"heroImage":26274,"date":26279,"category":858,"tags":26280},[17150],"2019-08-06",[110,730],{"slug":26282,"featured":6,"template":736},"feature-flags-continuous-delivery","content:en-us:blog:feature-flags-continuous-delivery.yml","Feature Flags Continuous Delivery","en-us/blog/feature-flags-continuous-delivery.yml","en-us/blog/feature-flags-continuous-delivery",{"_path":26288,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26289,"content":26295,"config":26300,"_id":26302,"_type":16,"title":26303,"_source":17,"_file":26304,"_stem":26305,"_extension":20},"/en-us/blog/tips-for-mastering-video-calls",{"title":26290,"description":26291,"ogTitle":26290,"ogDescription":26291,"noIndex":6,"ogImage":26292,"ogUrl":26293,"ogSiteName":995,"ogType":996,"canonicalUrls":26293,"schema":26294},"5 Tips for mastering video calls","All-remote work wouldn't be possible without communication tools like video conferencing. Here are a few tips we use at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670134/Blog/Hero%20Images/remote-life-cover.png","https://about.gitlab.com/blog/tips-for-mastering-video-calls","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Tips for mastering video calls\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Betsy Church\"}],\n        \"datePublished\": \"2019-08-05\",\n      }",{"title":26290,"description":26291,"authors":26296,"heroImage":26292,"date":26298,"category":6121,"tags":26299},[26297],"Betsy Church","2019-08-05",[3914,1569,2815],{"slug":26301,"featured":6,"template":736},"tips-for-mastering-video-calls","content:en-us:blog:tips-for-mastering-video-calls.yml","Tips For Mastering Video Calls","en-us/blog/tips-for-mastering-video-calls.yml","en-us/blog/tips-for-mastering-video-calls",{"_path":26307,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26308,"content":26314,"config":26318,"_id":26320,"_type":16,"title":26321,"_source":17,"_file":26322,"_stem":26323,"_extension":20},"/en-us/blog/gitlab-for-the-non-technical",{"title":26309,"description":26310,"ogTitle":26309,"ogDescription":26310,"noIndex":6,"ogImage":26311,"ogUrl":26312,"ogSiteName":995,"ogType":996,"canonicalUrls":26312,"schema":26313},"GitLab 101 – a primer for the non-technical","If a set-in-her-ways English major can conquer the GitLab product and culture, you can too. Here’s what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678544/Blog/Hero%20Images/gitlab101.jpg","https://about.gitlab.com/blog/gitlab-for-the-non-technical","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 101 – a primer for the non-technical\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-08-02\",\n      }",{"title":26309,"description":26310,"authors":26315,"heroImage":26311,"date":26316,"category":6121,"tags":26317},[10672],"2019-08-02",[1569,1195,3914],{"slug":26319,"featured":6,"template":736},"gitlab-for-the-non-technical","content:en-us:blog:gitlab-for-the-non-technical.yml","Gitlab For The Non Technical","en-us/blog/gitlab-for-the-non-technical.yml","en-us/blog/gitlab-for-the-non-technical",{"_path":26325,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26326,"content":26331,"config":26335,"_id":26337,"_type":16,"title":26338,"_source":17,"_file":26339,"_stem":26340,"_extension":20},"/en-us/blog/working-remotely-with-children-at-home",{"title":26327,"description":26328,"ogTitle":26327,"ogDescription":26328,"noIndex":6,"ogImage":26223,"ogUrl":26329,"ogSiteName":995,"ogType":996,"canonicalUrls":26329,"schema":26330},"How to make your home a space that works with kids","Here's our best advice on making your home/work space work for you and your kids.","https://about.gitlab.com/blog/working-remotely-with-children-at-home","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to make your home a space that works with kids\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean McGivern\"}],\n        \"datePublished\": \"2019-08-01\",\n      }",{"title":26327,"description":26328,"authors":26332,"heroImage":26223,"date":26333,"category":6121,"tags":26334},[18858],"2019-08-01",[3914,6980,1569],{"slug":26336,"featured":6,"template":736},"working-remotely-with-children-at-home","content:en-us:blog:working-remotely-with-children-at-home.yml","Working Remotely With Children At Home","en-us/blog/working-remotely-with-children-at-home.yml","en-us/blog/working-remotely-with-children-at-home",{"_path":26342,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26343,"content":26348,"config":26352,"_id":26354,"_type":16,"title":26355,"_source":17,"_file":26356,"_stem":26357,"_extension":20},"/en-us/blog/docker-in-docker-with-docker-19-dot-03",{"title":26344,"description":26345,"ogTitle":26344,"ogDescription":26345,"noIndex":6,"ogImage":11046,"ogUrl":26346,"ogSiteName":995,"ogType":996,"canonicalUrls":26346,"schema":26347},"Update: Changes to GitLab CI/CD and Docker in Docker with Docker 19.03","If you are using the Docker in Docker workflow you may need to enable TLS or explicitly turn it off.","https://about.gitlab.com/blog/docker-in-docker-with-docker-19-dot-03","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update: Changes to GitLab CI/CD and Docker in Docker with Docker 19.03\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Azzopardi\"}],\n        \"datePublished\": \"2019-07-31\",\n      }",{"title":26344,"description":26345,"authors":26349,"heroImage":11046,"date":26350,"category":1049,"tags":26351},[12322],"2019-07-31",[892,110],{"slug":26353,"featured":6,"template":736},"docker-in-docker-with-docker-19-dot-03","content:en-us:blog:docker-in-docker-with-docker-19-dot-03.yml","Docker In Docker With Docker 19 Dot 03","en-us/blog/docker-in-docker-with-docker-19-dot-03.yml","en-us/blog/docker-in-docker-with-docker-19-dot-03",{"_path":26359,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26360,"content":26366,"config":26370,"_id":26372,"_type":16,"title":26373,"_source":17,"_file":26374,"_stem":26375,"_extension":20},"/en-us/blog/navigation-state-of-play",{"title":26361,"description":26362,"ogTitle":26361,"ogDescription":26362,"noIndex":6,"ogImage":26363,"ogUrl":26364,"ogSiteName":995,"ogType":996,"canonicalUrls":26364,"schema":26365},"Explore the past, present, and future of GitLab's Navigation design","Dive into the history of GitLab's navigation design and learn how GitLab's UX department is making incremental improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678236/Blog/Hero%20Images/navigation.jpg","https://about.gitlab.com/blog/navigation-state-of-play","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Explore the past, present, and future of GitLab's Navigation design\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Katherine Okpara\"}],\n        \"datePublished\": \"2019-07-31\",\n      }",{"title":26361,"description":26362,"authors":26367,"heroImage":26363,"date":26350,"category":8140,"tags":26369},[26368],"Katherine Okpara",[1569,2703,2702],{"slug":26371,"featured":6,"template":736},"navigation-state-of-play","content:en-us:blog:navigation-state-of-play.yml","Navigation State Of Play","en-us/blog/navigation-state-of-play.yml","en-us/blog/navigation-state-of-play",{"_path":26377,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26378,"content":26384,"config":26387,"_id":26389,"_type":16,"title":26390,"_source":17,"_file":26391,"_stem":26392,"_extension":20},"/en-us/blog/pyb-all-remote-mark-frein",{"title":26379,"description":26380,"ogTitle":26379,"ogDescription":26380,"noIndex":6,"ogImage":26381,"ogUrl":26382,"ogSiteName":995,"ogType":996,"canonicalUrls":26382,"schema":26383},"How being all-remote helps us practice our values at GitLab","GitLab CEO Sid Sijbrandij and Mark Frein of InVision talk about why all-remote is the future, and moving beyond 'But how do you know they're working?'","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680686/Blog/Hero%20Images/webcast-cover.png","https://about.gitlab.com/blog/pyb-all-remote-mark-frein","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How being all-remote helps us practice our values at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-07-31\",\n      }",{"title":26379,"description":26380,"authors":26385,"heroImage":26381,"date":26350,"category":6121,"tags":26386},[16023],[582,1569,3914],{"slug":26388,"featured":6,"template":736},"pyb-all-remote-mark-frein","content:en-us:blog:pyb-all-remote-mark-frein.yml","Pyb All Remote Mark Frein","en-us/blog/pyb-all-remote-mark-frein.yml","en-us/blog/pyb-all-remote-mark-frein",{"_path":26394,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26395,"content":26401,"config":26405,"_id":26407,"_type":16,"title":26408,"_source":17,"_file":26409,"_stem":26410,"_extension":20},"/en-us/blog/quantifying-ux-positioning-of-the-clone-button",{"title":26396,"description":26397,"ogTitle":26396,"ogDescription":26397,"noIndex":6,"ogImage":26398,"ogUrl":26399,"ogSiteName":995,"ogType":996,"canonicalUrls":26399,"schema":26400},"Quantifying UX: Positioning the clone button","We wanted to move the clone button on the project overview page. Here's how user testing helped us make the right choices.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672622/Blog/Hero%20Images/positioning-clone-button.jpg","https://about.gitlab.com/blog/quantifying-ux-positioning-of-the-clone-button","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Quantifying UX: Positioning the clone button\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2019-07-26\",\n      }",{"title":26396,"description":26397,"authors":26402,"heroImage":26398,"date":26403,"category":858,"tags":26404},[17415],"2019-07-26",[1569,2703,2702],{"slug":26406,"featured":6,"template":736},"quantifying-ux-positioning-of-the-clone-button","content:en-us:blog:quantifying-ux-positioning-of-the-clone-button.yml","Quantifying Ux Positioning Of The Clone Button","en-us/blog/quantifying-ux-positioning-of-the-clone-button.yml","en-us/blog/quantifying-ux-positioning-of-the-clone-button",{"_path":26412,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26413,"content":26419,"config":26425,"_id":26427,"_type":16,"title":26428,"_source":17,"_file":26429,"_stem":26430,"_extension":20},"/en-us/blog/balancing-career-and-baby",{"title":26414,"description":26415,"ogTitle":26414,"ogDescription":26415,"noIndex":6,"ogImage":26416,"ogUrl":26417,"ogSiteName":995,"ogType":996,"canonicalUrls":26417,"schema":26418},"Balancing motherhood, career and cultural expectations","One team member shares her experience as a new working mother at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673071/Blog/Hero%20Images/parental-leave-global.jpg","https://about.gitlab.com/blog/balancing-career-and-baby","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How I balance a baby, a career at GitLab, and cultural expectations of motherhood\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jarka Košanová et al\"}],\n        \"datePublished\": \"2019-07-25\",\n      }",{"title":26420,"description":26415,"authors":26421,"heroImage":26416,"date":26423,"category":6121,"tags":26424},"How I balance a baby, a career at GitLab, and cultural expectations of motherhood",[26422],"Jarka Košanová et al","2019-07-25",[3914,6980,1569],{"slug":26426,"featured":6,"template":736},"balancing-career-and-baby","content:en-us:blog:balancing-career-and-baby.yml","Balancing Career And Baby","en-us/blog/balancing-career-and-baby.yml","en-us/blog/balancing-career-and-baby",{"_path":26432,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26433,"content":26439,"config":26442,"_id":26444,"_type":16,"title":26445,"_source":17,"_file":26446,"_stem":26447,"_extension":20},"/en-us/blog/moving-workflows-to-gitlab-the-case-of-the-hipaa-audit-protocol",{"title":26434,"description":26435,"ogTitle":26434,"ogDescription":26435,"noIndex":6,"ogImage":26436,"ogUrl":26437,"ogSiteName":995,"ogType":996,"canonicalUrls":26437,"schema":26438},"Moving workflows to GitLab: The case of the HIPAA Audit Protocol","With the GitLab API, you can easily move workflows into GitLab. Here’s how we did it for the HIPAA Audit Protocol.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679716/Blog/Hero%20Images/bright-cardiac-cardiology.jpg","https://about.gitlab.com/blog/moving-workflows-to-gitlab-the-case-of-the-hipaa-audit-protocol","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Moving workflows to GitLab: The case of the HIPAA Audit Protocol\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Luka Trbojevic\"}],\n        \"datePublished\": \"2019-07-25\",\n      }",{"title":26434,"description":26435,"authors":26440,"heroImage":26436,"date":26423,"category":858,"tags":26441},[26136],[1569,1265,790],{"slug":26443,"featured":6,"template":736},"moving-workflows-to-gitlab-the-case-of-the-hipaa-audit-protocol","content:en-us:blog:moving-workflows-to-gitlab-the-case-of-the-hipaa-audit-protocol.yml","Moving Workflows To Gitlab The Case Of The Hipaa Audit Protocol","en-us/blog/moving-workflows-to-gitlab-the-case-of-the-hipaa-audit-protocol.yml","en-us/blog/moving-workflows-to-gitlab-the-case-of-the-hipaa-audit-protocol",{"_path":26449,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26450,"content":26455,"config":26459,"_id":26461,"_type":16,"title":26462,"_source":17,"_file":26463,"_stem":26464,"_extension":20},"/en-us/blog/cross-project-pipeline",{"title":26451,"description":26452,"ogTitle":26451,"ogDescription":26452,"noIndex":6,"ogImage":25337,"ogUrl":26453,"ogSiteName":995,"ogType":996,"canonicalUrls":26453,"schema":26454},"How to trigger multiple pipelines using GitLab CI/CD","Discover how to trigger and visualize pipelines when you set up GitLab CI/CD across multiple projects.","https://about.gitlab.com/blog/cross-project-pipeline","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to trigger multiple pipelines using GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2019-07-24\",\n      }",{"title":26451,"description":26452,"authors":26456,"heroImage":25337,"date":26457,"category":858,"tags":26458},[1016],"2019-07-24",[110,564,730,964,1335],{"slug":26460,"featured":6,"template":736},"cross-project-pipeline","content:en-us:blog:cross-project-pipeline.yml","Cross Project Pipeline","en-us/blog/cross-project-pipeline.yml","en-us/blog/cross-project-pipeline",{"_path":26466,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26467,"content":26473,"config":26477,"_id":26479,"_type":16,"title":26480,"_source":17,"_file":26481,"_stem":26482,"_extension":20},"/en-us/blog/three-new-support-tools",{"title":26468,"description":26469,"ogTitle":26468,"ogDescription":26469,"noIndex":6,"ogImage":26470,"ogUrl":26471,"ogSiteName":995,"ogType":996,"canonicalUrls":26471,"schema":26472},"We've open sourced 3 tools to help troubleshoot system performance","Say hello to the open source tools our Support team is using to better summarize customer performance data – and find out how they can help you.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670405/Blog/Hero%20Images/open_source_tools.jpg","https://about.gitlab.com/blog/three-new-support-tools","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We've open sourced 3 tools to help troubleshoot system performance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Will Chandler\"},{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-07-24\",\n      }",{"title":26468,"description":26469,"authors":26474,"heroImage":26470,"date":26457,"category":858,"tags":26476},[26475,16023],"Will Chandler",[1265,730,1569],{"slug":26478,"featured":6,"template":736},"three-new-support-tools","content:en-us:blog:three-new-support-tools.yml","Three New Support Tools","en-us/blog/three-new-support-tools.yml","en-us/blog/three-new-support-tools",{"_path":26484,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26485,"content":26490,"config":26494,"_id":26496,"_type":16,"title":26497,"_source":17,"_file":26498,"_stem":26499,"_extension":20},"/en-us/blog/anomaly-detection-using-prometheus",{"title":26486,"description":26487,"ogTitle":26486,"ogDescription":26487,"noIndex":6,"ogImage":16180,"ogUrl":26488,"ogSiteName":995,"ogType":996,"canonicalUrls":26488,"schema":26489},"How to use Prometheus for anomaly detection in GitLab","Explore how Prometheus query language can be used to help you diagnose incidents, detect performance regressions, tackle abuse, and more.","https://about.gitlab.com/blog/anomaly-detection-using-prometheus","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use Prometheus for anomaly detection in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-07-23\",\n      }",{"title":26486,"description":26487,"authors":26491,"heroImage":16180,"date":26492,"category":858,"tags":26493},[16023],"2019-07-23",[1569],{"slug":26495,"featured":6,"template":736},"anomaly-detection-using-prometheus","content:en-us:blog:anomaly-detection-using-prometheus.yml","Anomaly Detection Using Prometheus","en-us/blog/anomaly-detection-using-prometheus.yml","en-us/blog/anomaly-detection-using-prometheus",{"_path":26501,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26502,"content":26508,"config":26511,"_id":26513,"_type":16,"title":26514,"_source":17,"_file":26515,"_stem":26516,"_extension":20},"/en-us/blog/three-teams-left-jenkins-heres-why",{"title":26503,"description":26504,"ogTitle":26503,"ogDescription":26504,"noIndex":6,"ogImage":26505,"ogUrl":26506,"ogSiteName":995,"ogType":996,"canonicalUrls":26506,"schema":26507},"3 Teams left Jenkins: Here’s why","How three different teams – Alteryx, ANWB, and EAB – shifted away from Jenkins for smoother sailing with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671932/Blog/Hero%20Images/jenkins-to-gitlab-sailboat.jpg","https://about.gitlab.com/blog/three-teams-left-jenkins-heres-why","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Teams left Jenkins: Here’s why\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brein Matturro\"}],\n        \"datePublished\": \"2019-07-23\",\n      }",{"title":26503,"description":26504,"authors":26509,"heroImage":26505,"date":26492,"category":8140,"tags":26510},[22783],[4665,1988,110],{"slug":26512,"featured":6,"template":736},"three-teams-left-jenkins-heres-why","content:en-us:blog:three-teams-left-jenkins-heres-why.yml","Three Teams Left Jenkins Heres Why","en-us/blog/three-teams-left-jenkins-heres-why.yml","en-us/blog/three-teams-left-jenkins-heres-why",{"_path":26518,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26519,"content":26524,"config":26529,"_id":26531,"_type":16,"title":26532,"_source":17,"_file":26533,"_stem":26534,"_extension":20},"/en-us/blog/python-3-defailt-for-license-compliance",{"title":26520,"description":26521,"ogTitle":26520,"ogDescription":26521,"noIndex":6,"ogImage":11046,"ogUrl":26522,"ogSiteName":995,"ogType":996,"canonicalUrls":26522,"schema":26523},"Python 3 becomes default for license compliance scanning","Python 3 will soon become the default version used by the Secure stage License Compliance feature.","https://about.gitlab.com/blog/python-3-defailt-for-license-compliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Upcoming breaking change: Python 3 will be the default version used in License Compliance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nicole Schwartz\"}],\n        \"datePublished\": \"2019-07-19\",\n      }",{"title":26525,"description":26521,"authors":26526,"heroImage":11046,"date":26527,"category":1049,"tags":26528},"Upcoming breaking change: Python 3 will be the default version used in License Compliance",[13825],"2019-07-19",[892,1049,233],{"slug":26530,"featured":6,"template":736},"python-3-defailt-for-license-compliance","content:en-us:blog:python-3-defailt-for-license-compliance.yml","Python 3 Defailt For License Compliance","en-us/blog/python-3-defailt-for-license-compliance.yml","en-us/blog/python-3-defailt-for-license-compliance",{"_path":26536,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26537,"content":26542,"config":26546,"_id":26548,"_type":16,"title":26549,"_source":17,"_file":26550,"_stem":26551,"_extension":20},"/en-us/blog/what-we-learned-by-taking-our-bug-bounty-program-public",{"title":26538,"description":26539,"ogTitle":26538,"ogDescription":26539,"noIndex":6,"ogImage":10384,"ogUrl":26540,"ogSiteName":995,"ogType":996,"canonicalUrls":26540,"schema":26541},"What we learned by taking our bug bounty program public","Six months into our public bug bounty program, we're taking stock of what's working and where we can make improvements.","https://about.gitlab.com/blog/what-we-learned-by-taking-our-bug-bounty-program-public","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we learned by taking our bug bounty program public\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ethan Strike\"}],\n        \"datePublished\": \"2019-07-19\",\n      }",{"title":26538,"description":26539,"authors":26543,"heroImage":10384,"date":26527,"category":790,"tags":26545},[26544],"Ethan Strike",[269,790,1569,2483],{"slug":26547,"featured":6,"template":736},"what-we-learned-by-taking-our-bug-bounty-program-public","content:en-us:blog:what-we-learned-by-taking-our-bug-bounty-program-public.yml","What We Learned By Taking Our Bug Bounty Program Public","en-us/blog/what-we-learned-by-taking-our-bug-bounty-program-public.yml","en-us/blog/what-we-learned-by-taking-our-bug-bounty-program-public",{"_path":26553,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26554,"content":26559,"config":26563,"_id":26565,"_type":16,"title":26566,"_source":17,"_file":26567,"_stem":26568,"_extension":20},"/en-us/blog/how-is-it-being-a-new-mom-working-for-gitlab",{"title":26555,"description":26556,"ogTitle":26555,"ogDescription":26556,"noIndex":6,"ogImage":26416,"ogUrl":26557,"ogSiteName":995,"ogType":996,"canonicalUrls":26557,"schema":26558},"Parental/maternity leave around the world – how does your country stack up?","A new mother at GitLab takes a look at how different countries approach time off for new parents.","https://about.gitlab.com/blog/how-is-it-being-a-new-mom-working-for-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Parental/maternity leave around the world – how does your country stack up?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jarka Košanová et al\"}],\n        \"datePublished\": \"2019-07-18\",\n      }",{"title":26555,"description":26556,"authors":26560,"heroImage":26416,"date":26561,"category":6121,"tags":26562},[26422],"2019-07-18",[3914,6980,269],{"slug":26564,"featured":6,"template":736},"how-is-it-being-a-new-mom-working-for-gitlab","content:en-us:blog:how-is-it-being-a-new-mom-working-for-gitlab.yml","How Is It Being A New Mom Working For Gitlab","en-us/blog/how-is-it-being-a-new-mom-working-for-gitlab.yml","en-us/blog/how-is-it-being-a-new-mom-working-for-gitlab",{"_path":26570,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26571,"content":26576,"config":26580,"_id":26582,"_type":16,"title":26583,"_source":17,"_file":26584,"_stem":26585,"_extension":20},"/en-us/blog/concurrent-devops",{"title":26572,"description":26573,"ogTitle":26572,"ogDescription":26573,"noIndex":6,"ogImage":26205,"ogUrl":26574,"ogSiteName":995,"ogType":996,"canonicalUrls":26574,"schema":26575},"Making the case for \"concurrent DevOps\"","DevOps goes by a lot of different names, but we’ve settled on concurrent DevOps for now at least.","https://about.gitlab.com/blog/concurrent-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Making the case for \"concurrent DevOps\"\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-07-17\",\n      }",{"title":26572,"description":26573,"authors":26577,"heroImage":26205,"date":26578,"category":8140,"tags":26579},[10672],"2019-07-17",[564,1569],{"slug":26581,"featured":6,"template":736},"concurrent-devops","content:en-us:blog:concurrent-devops.yml","Concurrent Devops","en-us/blog/concurrent-devops.yml","en-us/blog/concurrent-devops",{"_path":26587,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26588,"content":26593,"config":26596,"_id":26598,"_type":16,"title":26599,"_source":17,"_file":26600,"_stem":26601,"_extension":20},"/en-us/blog/katrin-contributor-post",{"title":26589,"description":26590,"ogTitle":26589,"ogDescription":26590,"noIndex":6,"ogImage":24329,"ogUrl":26591,"ogSiteName":995,"ogType":996,"canonicalUrls":26591,"schema":26592},"Meet GitLab Contributor Katrin Leinweber","Katrin Leinweber shares her experience contributing to GitLab documentation and translations.","https://about.gitlab.com/blog/katrin-contributor-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet GitLab Contributor Katrin Leinweber\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-07-17\",\n      }",{"title":26589,"description":26590,"authors":26594,"heroImage":24329,"date":26578,"category":1388,"tags":26595},[20126],[269,1265,3074],{"slug":26597,"featured":6,"template":736},"katrin-contributor-post","content:en-us:blog:katrin-contributor-post.yml","Katrin Contributor Post","en-us/blog/katrin-contributor-post.yml","en-us/blog/katrin-contributor-post",{"_path":26603,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26604,"content":26610,"config":26614,"_id":26616,"_type":16,"title":26617,"_source":17,"_file":26618,"_stem":26619,"_extension":20},"/en-us/blog/elasticsearch-update",{"title":26605,"description":26606,"ogTitle":26605,"ogDescription":26606,"noIndex":6,"ogImage":26607,"ogUrl":26608,"ogSiteName":995,"ogType":996,"canonicalUrls":26608,"schema":26609},"Update: The challenge of enabling Elasticsearch on GitLab.com","How we got started with enabling Elasticsearch on the largest GitLab instance, GitLab.com.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666832/Blog/Hero%20Images/enable-global-search-elasticsearch.jpg","https://about.gitlab.com/blog/elasticsearch-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update: The challenge of enabling Elasticsearch on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nick Thomas\"}],\n        \"datePublished\": \"2019-07-16\",\n      }",{"title":26605,"description":26606,"authors":26611,"heroImage":26607,"date":26612,"category":858,"tags":26613},[24918],"2019-07-16",[730,233,1569],{"slug":26615,"featured":6,"template":736},"elasticsearch-update","content:en-us:blog:elasticsearch-update.yml","Elasticsearch Update","en-us/blog/elasticsearch-update.yml","en-us/blog/elasticsearch-update",{"_path":26621,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26622,"content":26628,"config":26631,"_id":26633,"_type":16,"title":26634,"_source":17,"_file":26635,"_stem":26636,"_extension":20},"/en-us/blog/third-party-code-risks",{"title":26623,"description":26624,"ogTitle":26623,"ogDescription":26624,"noIndex":6,"ogImage":26625,"ogUrl":26626,"ogSiteName":995,"ogType":996,"canonicalUrls":26626,"schema":26627},"4 Risks to consider when implementing third-party code","Third-party code is a great resource for businesses, but comes with a number of risks. Explore four ways developers can keep their code secure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680662/Blog/Hero%20Images/third-party-code-risks.jpg","https://about.gitlab.com/blog/third-party-code-risks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 Risks to consider when implementing third-party code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-07-16\",\n      }",{"title":26623,"description":26624,"authors":26629,"heroImage":26625,"date":26612,"category":8140,"tags":26630},[21105],[1265,790],{"slug":26632,"featured":6,"template":736},"third-party-code-risks","content:en-us:blog:third-party-code-risks.yml","Third Party Code Risks","en-us/blog/third-party-code-risks.yml","en-us/blog/third-party-code-risks",{"_path":26638,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26639,"content":26644,"config":26648,"_id":26650,"_type":16,"title":26651,"_source":17,"_file":26652,"_stem":26653,"_extension":20},"/en-us/blog/gitlab-commit-cfp-closing-soon",{"title":26640,"description":26641,"ogTitle":26640,"ogDescription":26641,"noIndex":6,"ogImage":25830,"ogUrl":26642,"ogSiteName":995,"ogType":996,"canonicalUrls":26642,"schema":26643},"Apply to speak at GitLab Commit!","Share your story with the wider GitLab community.","https://about.gitlab.com/blog/gitlab-commit-cfp-closing-soon","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Apply to speak at GitLab Commit!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Priyanka Sharma\"}],\n        \"datePublished\": \"2019-07-15\",\n      }",{"title":26640,"description":26641,"authors":26645,"heroImage":25830,"date":26646,"category":301,"tags":26647},[25150],"2019-07-15",[279,269],{"slug":26649,"featured":6,"template":736},"gitlab-commit-cfp-closing-soon","content:en-us:blog:gitlab-commit-cfp-closing-soon.yml","Gitlab Commit Cfp Closing Soon","en-us/blog/gitlab-commit-cfp-closing-soon.yml","en-us/blog/gitlab-commit-cfp-closing-soon",{"_path":26655,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26656,"content":26662,"config":26666,"_id":26668,"_type":16,"title":26669,"_source":17,"_file":26670,"_stem":26671,"_extension":20},"/en-us/blog/global-developer-report",{"title":26657,"description":26658,"ogTitle":26657,"ogDescription":26658,"noIndex":6,"ogImage":26659,"ogUrl":26660,"ogSiteName":995,"ogType":996,"canonicalUrls":26660,"schema":26661},"2019 Global Developer Report: security roadblocks hit teams","Over 4,000 software professionals shared their DevOps experiences, helping us uncover what they require in order to innovate rapidly.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672611/Blog/Hero%20Images/2019-global-developer-report-blog.png","https://about.gitlab.com/blog/global-developer-report","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2019 Global Developer Report: DevSecOps finds security roadblocks divide teams\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-07-15\",\n      }",{"title":26663,"description":26658,"authors":26664,"heroImage":26659,"date":26646,"category":8140,"tags":26665},"2019 Global Developer Report: DevSecOps finds security roadblocks divide teams",[19332],[7788,564,1049],{"slug":26667,"featured":6,"template":736},"global-developer-report","content:en-us:blog:global-developer-report.yml","Global Developer Report","en-us/blog/global-developer-report.yml","en-us/blog/global-developer-report",{"_path":26673,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26674,"content":26679,"config":26683,"_id":26685,"_type":16,"title":26686,"_source":17,"_file":26687,"_stem":26688,"_extension":20},"/en-us/blog/guide-to-ci-cd-pipelines",{"title":26675,"description":26676,"ogTitle":26675,"ogDescription":26676,"noIndex":6,"ogImage":11046,"ogUrl":26677,"ogSiteName":995,"ogType":996,"canonicalUrls":26677,"schema":26678},"A quick guide to GitLab CI/CD pipelines","How GitLab is making a better pipeline with Auto DevOps.","https://about.gitlab.com/blog/guide-to-ci-cd-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A quick guide to GitLab CI/CD pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-07-12\",\n      }",{"title":26675,"description":26676,"authors":26680,"heroImage":11046,"date":26681,"category":8140,"tags":26682},[17150],"2019-07-12",[564,1335,110],{"slug":26684,"featured":92,"template":736},"guide-to-ci-cd-pipelines","content:en-us:blog:guide-to-ci-cd-pipelines.yml","Guide To Ci Cd Pipelines","en-us/blog/guide-to-ci-cd-pipelines.yml","en-us/blog/guide-to-ci-cd-pipelines",{"_path":26690,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26691,"content":26697,"config":26701,"_id":26703,"_type":16,"title":26704,"_source":17,"_file":26705,"_stem":26706,"_extension":20},"/en-us/blog/without-a-shadow-of-a-doubt",{"title":26692,"description":26693,"ogTitle":26692,"ogDescription":26693,"noIndex":6,"ogImage":26694,"ogUrl":26695,"ogSiteName":995,"ogType":996,"canonicalUrls":26695,"schema":26696},"Without a shadow of a doubt: Inside GitLab's CEO shadow program","Technical marketing manager Tye Davis did everything from joining investor meetings to battling with the flight simulator at GitLab Mission Control.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680653/Blog/Hero%20Images/sfbaybridge.jpg","https://about.gitlab.com/blog/without-a-shadow-of-a-doubt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Without a shadow of a doubt: Inside GitLab's CEO shadow program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tye Davis\"}],\n        \"datePublished\": \"2019-07-11\",\n      }",{"title":26692,"description":26693,"authors":26698,"heroImage":26694,"date":26699,"category":301,"tags":26700},[17078],"2019-07-11",[1569,10011,3914],{"slug":26702,"featured":6,"template":736},"without-a-shadow-of-a-doubt","content:en-us:blog:without-a-shadow-of-a-doubt.yml","Without A Shadow Of A Doubt","en-us/blog/without-a-shadow-of-a-doubt.yml","en-us/blog/without-a-shadow-of-a-doubt",{"_path":26708,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26709,"content":26715,"config":26720,"_id":26722,"_type":16,"title":26723,"_source":17,"_file":26724,"_stem":26725,"_extension":20},"/en-us/blog/building-a-ux-research-insights-repository",{"title":26710,"description":26711,"ogTitle":26710,"ogDescription":26711,"noIndex":6,"ogImage":26712,"ogUrl":26713,"ogSiteName":995,"ogType":996,"canonicalUrls":26713,"schema":26714},"Why we built a UX Research Insights repository","One of the biggest challenges faced by UX researchers is organizing and storing user research effectively, so that anyone can find and use insights.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678561/Blog/Hero%20Images/open-course-environment.jpg","https://about.gitlab.com/blog/building-a-ux-research-insights-repository","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we built a UX Research Insights repository\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah O’Donnell\"}],\n        \"datePublished\": \"2019-07-10\",\n      }",{"title":26710,"description":26711,"authors":26716,"heroImage":26712,"date":26718,"category":858,"tags":26719},[26717],"Sarah O’Donnell","2019-07-10",[2703,2702],{"slug":26721,"featured":6,"template":736},"building-a-ux-research-insights-repository","content:en-us:blog:building-a-ux-research-insights-repository.yml","Building A Ux Research Insights Repository","en-us/blog/building-a-ux-research-insights-repository.yml","en-us/blog/building-a-ux-research-insights-repository",{"_path":26727,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26728,"content":26734,"config":26739,"_id":26741,"_type":16,"title":26742,"_source":17,"_file":26743,"_stem":26744,"_extension":20},"/en-us/blog/creating-the-gitlab-controls-framework",{"title":26729,"description":26730,"ogTitle":26729,"ogDescription":26730,"noIndex":6,"ogImage":26731,"ogUrl":26732,"ogSiteName":995,"ogType":996,"canonicalUrls":26732,"schema":26733},"Adobe CCF becomes GitLab's open source control framework","We've implemented and adapted an open source compliance framework. Now we're sharing our process and tools so you can adapt and customize it too.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683200/Blog/Hero%20Images/geraldo-stanislas-unsplash.jpg","https://about.gitlab.com/blog/creating-the-gitlab-controls-framework","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Turning the Adobe CCF into the GitLab Control Framework (it's all open source!)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeff Burrows\"}],\n        \"datePublished\": \"2019-07-10\",\n      }",{"title":26735,"description":26730,"authors":26736,"heroImage":26731,"date":26718,"category":790,"tags":26738},"Turning the Adobe CCF into the GitLab Control Framework (it's all open source!)",[26737],"Jeff Burrows",[1265,790],{"slug":26740,"featured":6,"template":736},"creating-the-gitlab-controls-framework","content:en-us:blog:creating-the-gitlab-controls-framework.yml","Creating The Gitlab Controls Framework","en-us/blog/creating-the-gitlab-controls-framework.yml","en-us/blog/creating-the-gitlab-controls-framework",{"_path":26746,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26747,"content":26752,"config":26756,"_id":26758,"_type":16,"title":26759,"_source":17,"_file":26760,"_stem":26761,"_extension":20},"/en-us/blog/tips-for-working-from-home-remote-work",{"title":26748,"description":26749,"ogTitle":26748,"ogDescription":26749,"noIndex":6,"ogImage":26292,"ogUrl":26750,"ogSiteName":995,"ogType":996,"canonicalUrls":26750,"schema":26751},"How to live your best remote life","GitLab team members offer their best advice on working from home (and it might surprise you).","https://about.gitlab.com/blog/tips-for-working-from-home-remote-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to live your best remote life\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jarka Košanová et al\"}],\n        \"datePublished\": \"2019-07-09\",\n      }",{"title":26748,"description":26749,"authors":26753,"heroImage":26292,"date":26754,"category":6121,"tags":26755},[26422],"2019-07-09",[730,1569,3914],{"slug":26757,"featured":6,"template":736},"tips-for-working-from-home-remote-work","content:en-us:blog:tips-for-working-from-home-remote-work.yml","Tips For Working From Home Remote Work","en-us/blog/tips-for-working-from-home-remote-work.yml","en-us/blog/tips-for-working-from-home-remote-work",{"_path":26763,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26764,"content":26770,"config":26774,"_id":26776,"_type":16,"title":26777,"_source":17,"_file":26778,"_stem":26779,"_extension":20},"/en-us/blog/git-performance-on-nfs",{"title":26765,"description":26766,"ogTitle":26765,"ogDescription":26766,"noIndex":6,"ogImage":26767,"ogUrl":26768,"ogSiteName":995,"ogType":996,"canonicalUrls":26768,"schema":26769},"What we're doing to fix Gitaly NFS performance regressions","How we're improving our Git IO patterns to fix performance regressions when running Gitaly on NFS.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670065/Blog/Hero%20Images/git-performance-nfs.jpg","https://about.gitlab.com/blog/git-performance-on-nfs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we're doing to fix Gitaly NFS performance regressions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Ramsay\"},{\"@type\":\"Person\",\"name\":\"Zeger-Jan van de Weg\"}],\n        \"datePublished\": \"2019-07-08\",\n      }",{"title":26765,"description":26766,"authors":26771,"heroImage":26767,"date":26772,"category":858,"tags":26773},[22890,18575],"2019-07-08",[1195,1988],{"slug":26775,"featured":6,"template":736},"git-performance-on-nfs","content:en-us:blog:git-performance-on-nfs.yml","Git Performance On Nfs","en-us/blog/git-performance-on-nfs.yml","en-us/blog/git-performance-on-nfs",{"_path":26781,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26782,"content":26788,"config":26792,"_id":26794,"_type":16,"title":26795,"_source":17,"_file":26796,"_stem":26797,"_extension":20},"/en-us/blog/thoughts-on-open-source",{"title":26783,"description":26784,"ogTitle":26783,"ogDescription":26784,"noIndex":6,"ogImage":26785,"ogUrl":26786,"ogSiteName":995,"ogType":996,"canonicalUrls":26786,"schema":26787},"What to consider with an open source business model","CEO Sid Sijbrandij discusses the role of transparency and contribution in an open source business model.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682919/Blog/Hero%20Images/opensourcecover.jpg","https://about.gitlab.com/blog/thoughts-on-open-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What to consider with an open source business model\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"}],\n        \"datePublished\": \"2019-07-05\",\n      }",{"title":26783,"description":26784,"authors":26789,"heroImage":26785,"date":26790,"category":1388,"tags":26791},[10672],"2019-07-05",[269,2815,1265,1265],{"slug":26793,"featured":6,"template":736},"thoughts-on-open-source","content:en-us:blog:thoughts-on-open-source.yml","Thoughts On Open Source","en-us/blog/thoughts-on-open-source.yml","en-us/blog/thoughts-on-open-source",{"_path":26799,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26800,"content":26806,"config":26810,"_id":26812,"_type":16,"title":26813,"_source":17,"_file":26814,"_stem":26815,"_extension":20},"/en-us/blog/group-conversation-podcast",{"title":26801,"description":26802,"ogTitle":26801,"ogDescription":26802,"noIndex":6,"ogImage":26803,"ogUrl":26804,"ogSiteName":995,"ogType":996,"canonicalUrls":26804,"schema":26805},"How we turn our group conversations into a podcast with GitLab CI/CD","Want to listen to meetings on the go? Senior SRE John Jarvis explains how he turned his favorite remote meetings at GitLab into podcast format.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678626/Blog/Hero%20Images/group-conversation-podcast.jpg","https://about.gitlab.com/blog/group-conversation-podcast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we turn our group conversations into a podcast with GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jarvis\"}],\n        \"datePublished\": \"2019-07-03\",\n      }",{"title":26801,"description":26802,"authors":26807,"heroImage":26803,"date":26808,"category":858,"tags":26809},[20285],"2019-07-03",[1569,3914,110],{"slug":26811,"featured":6,"template":736},"group-conversation-podcast","content:en-us:blog:group-conversation-podcast.yml","Group Conversation Podcast","en-us/blog/group-conversation-podcast.yml","en-us/blog/group-conversation-podcast",{"_path":26817,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26818,"content":26824,"config":26828,"_id":26830,"_type":16,"title":26831,"_source":17,"_file":26832,"_stem":26833,"_extension":20},"/en-us/blog/beautifying-our-ui",{"title":26819,"description":26820,"ogTitle":26819,"ogDescription":26820,"noIndex":6,"ogImage":26821,"ogUrl":26822,"ogSiteName":995,"ogType":996,"canonicalUrls":26822,"schema":26823},"What we're doing to beautify our UI","We’re actively working to make our UI more aesthetically pleasing. Learn how we started with a UX spike and where we’re going next.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680648/Blog/Hero%20Images/UXpost.jpg","https://about.gitlab.com/blog/beautifying-our-ui","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we're doing to beautify our UI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christie Lenneville\"}],\n        \"datePublished\": \"2019-07-02\",\n      }",{"title":26819,"description":26820,"authors":26825,"heroImage":26821,"date":26826,"category":301,"tags":26827},[18313],"2019-07-02",[2703,2704,2702],{"slug":26829,"featured":6,"template":736},"beautifying-our-ui","content:en-us:blog:beautifying-our-ui.yml","Beautifying Our Ui","en-us/blog/beautifying-our-ui.yml","en-us/blog/beautifying-our-ui",{"_path":26835,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26836,"content":26842,"config":26848,"_id":26850,"_type":16,"title":26851,"_source":17,"_file":26852,"_stem":26853,"_extension":20},"/en-us/blog/using-ansible-and-gitlab-as-infrastructure-for-code",{"ogTitle":26837,"schema":26838,"ogImage":26839,"ogDescription":26840,"ogSiteName":995,"noIndex":6,"ogType":996,"ogUrl":26841,"title":26837,"canonicalUrls":26841,"description":26840},"Build enterprise-grade IaC pipelines with GitLab DevSecOps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab and Ansible to create infrastructure as code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brad Downey\"},{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-07-01\",\n      }","https://res.cloudinary.com/about-gitlab-com/image/upload/v1746211002/zlet4rmfg2z0j6lg16mc.png","Learn how to transform infrastructure automation into scalable, secure pipelines using GitLab, Terraform/OpenTofu, and Ansible with integrated security scanning and CI/CD.","https://about.gitlab.com/blog/using-ansible-and-gitlab-as-infrastructure-for-code",{"heroImage":26839,"authors":26843,"updatedDate":26845,"date":26846,"title":26837,"tags":26847,"description":26840,"category":858},[1405,26844],"Salahddine Aberkan","2025-04-24","2019-07-01",[4182,110],{"slug":26849,"featured":6,"template":736},"using-ansible-and-gitlab-as-infrastructure-for-code","content:en-us:blog:using-ansible-and-gitlab-as-infrastructure-for-code.yml","Using Ansible And Gitlab As Infrastructure For Code","en-us/blog/using-ansible-and-gitlab-as-infrastructure-for-code.yml","en-us/blog/using-ansible-and-gitlab-as-infrastructure-for-code",{"_path":26855,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26856,"content":26862,"config":26866,"_id":26868,"_type":16,"title":26869,"_source":17,"_file":26870,"_stem":26871,"_extension":20},"/en-us/blog/five-things-you-hear-from-gitlab-ceo",{"title":26857,"description":26858,"ogTitle":26857,"ogDescription":26858,"noIndex":6,"ogImage":26859,"ogUrl":26860,"ogSiteName":995,"ogType":996,"canonicalUrls":26860,"schema":26861},"5 Things you might hear when meeting with GitLab's CEO","After two weeks shadowing our CEO, I can share the hottest topics on his mind right now.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670738/Blog/Hero%20Images/coghlanshadow.jpg","https://about.gitlab.com/blog/five-things-you-hear-from-gitlab-ceo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Things you might hear when meeting with GitLab's CEO\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Coghlan\"}],\n        \"datePublished\": \"2019-06-28\",\n      }",{"title":26857,"description":26858,"authors":26863,"heroImage":26859,"date":26864,"category":6121,"tags":26865},[6119],"2019-06-28",[3914,2815,1569],{"slug":26867,"featured":6,"template":736},"five-things-you-hear-from-gitlab-ceo","content:en-us:blog:five-things-you-hear-from-gitlab-ceo.yml","Five Things You Hear From Gitlab Ceo","en-us/blog/five-things-you-hear-from-gitlab-ceo.yml","en-us/blog/five-things-you-hear-from-gitlab-ceo",{"_path":26873,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26874,"content":26880,"config":26884,"_id":26886,"_type":16,"title":26887,"_source":17,"_file":26888,"_stem":26889,"_extension":20},"/en-us/blog/positive-outcomes-ci-cd",{"title":26875,"description":26876,"ogTitle":26875,"ogDescription":26876,"noIndex":6,"ogImage":26877,"ogUrl":26878,"ogSiteName":995,"ogType":996,"canonicalUrls":26878,"schema":26879},"4 Benefits of CI/CD","Learn how to implement and measure a successful CI/CD pipeline strategy and help your DevOps team deliver higher quality software, faster!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670016/Blog/Hero%20Images/modernize-cicd.jpg","https://about.gitlab.com/blog/positive-outcomes-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 Benefits of CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-06-27\",\n      }",{"title":26875,"description":26876,"authors":26881,"heroImage":26877,"date":26882,"category":8140,"tags":26883},[17150],"2019-06-27",[564,110,1335],{"slug":26885,"featured":6,"template":736},"positive-outcomes-ci-cd","content:en-us:blog:positive-outcomes-ci-cd.yml","Positive Outcomes Ci Cd","en-us/blog/positive-outcomes-ci-cd.yml","en-us/blog/positive-outcomes-ci-cd",{"_path":26891,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26892,"content":26897,"config":26900,"_id":26902,"_type":16,"title":26903,"_source":17,"_file":26904,"_stem":26905,"_extension":20},"/en-us/blog/removing-mysql-support",{"title":26893,"description":26894,"ogTitle":26893,"ogDescription":26894,"noIndex":6,"ogImage":11046,"ogUrl":26895,"ogSiteName":995,"ogType":996,"canonicalUrls":26895,"schema":26896},"Why we're ending support for MySQL in 12.1","GitLab will be ending support for MySQL starting with our 12.1 release – here's why.","https://about.gitlab.com/blog/removing-mysql-support","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we're ending support for MySQL in 12.1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kenny Johnston\"}],\n        \"datePublished\": \"2019-06-27\",\n      }",{"title":26893,"description":26894,"authors":26898,"heroImage":11046,"date":26882,"category":301,"tags":26899},[18610],[892],{"slug":26901,"featured":6,"template":736},"removing-mysql-support","content:en-us:blog:removing-mysql-support.yml","Removing Mysql Support","en-us/blog/removing-mysql-support.yml","en-us/blog/removing-mysql-support",{"_path":26907,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26908,"content":26914,"config":26918,"_id":26920,"_type":16,"title":26921,"_source":17,"_file":26922,"_stem":26923,"_extension":20},"/en-us/blog/ask-gitlab-security-alexander-dietrich",{"title":26909,"description":26910,"ogTitle":26909,"ogDescription":26910,"noIndex":6,"ogImage":26911,"ogUrl":26912,"ogSiteName":995,"ogType":996,"canonicalUrls":26912,"schema":26913},"Ask GitLab Security: Alexander Dietrich","What are the challenges and rewards of working security for a growing, cloud native company? We grill one of our senior security engineers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679726/Blog/Hero%20Images/ask-security-cover.png","https://about.gitlab.com/blog/ask-gitlab-security-alexander-dietrich","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ask GitLab Security: Alexander Dietrich\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-06-26\",\n      }",{"title":26909,"description":26910,"authors":26915,"heroImage":26911,"date":26916,"category":790,"tags":26917},[11324],"2019-06-26",[6980,1569,790,790],{"slug":26919,"featured":6,"template":736},"ask-gitlab-security-alexander-dietrich","content:en-us:blog:ask-gitlab-security-alexander-dietrich.yml","Ask Gitlab Security Alexander Dietrich","en-us/blog/ask-gitlab-security-alexander-dietrich.yml","en-us/blog/ask-gitlab-security-alexander-dietrich",{"_path":26925,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26926,"content":26931,"config":26936,"_id":26938,"_type":16,"title":26939,"_source":17,"_file":26940,"_stem":26941,"_extension":20},"/en-us/blog/how-remote-work-at-gitlab-enables-location-independence",{"title":26927,"description":26928,"ogTitle":26927,"ogDescription":26928,"noIndex":6,"ogImage":26292,"ogUrl":26929,"ogSiteName":995,"ogType":996,"canonicalUrls":26929,"schema":26930},"How I work from anywhere (with good internet)","Sarah Daily, digital marketing programs manager and remote work advocate, shares how all-remote work at GitLab has enabled her life on the road.","https://about.gitlab.com/blog/how-remote-work-at-gitlab-enables-location-independence","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How I work from anywhere (with good internet)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah Daily\"},{\"@type\":\"Person\",\"name\":\"Betsy Church\"}],\n        \"datePublished\": \"2019-06-25\",\n      }",{"title":26927,"description":26928,"authors":26932,"heroImage":26292,"date":26934,"category":6121,"tags":26935},[26933,26297],"Sarah Daily","2019-06-25",[730,1569,3914],{"slug":26937,"featured":6,"template":736},"how-remote-work-at-gitlab-enables-location-independence","content:en-us:blog:how-remote-work-at-gitlab-enables-location-independence.yml","How Remote Work At Gitlab Enables Location Independence","en-us/blog/how-remote-work-at-gitlab-enables-location-independence.yml","en-us/blog/how-remote-work-at-gitlab-enables-location-independence",{"_path":26943,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26944,"content":26949,"config":26953,"_id":26955,"_type":16,"title":26956,"_source":17,"_file":26957,"_stem":26958,"_extension":20},"/en-us/blog/q2-hackathon-recap",{"title":26945,"description":26946,"ogTitle":26945,"ogDescription":26946,"noIndex":6,"ogImage":18395,"ogUrl":26947,"ogSiteName":995,"ogType":996,"canonicalUrls":26947,"schema":26948},"What went down at the Q2'2019 GitLab Hackathon","Here's a recap of GitLab community accomplishments during the Hackathon on May 29-30.","https://about.gitlab.com/blog/q2-hackathon-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What went down at the Q2'2019 GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-06-24\",\n      }",{"title":26945,"description":26946,"authors":26950,"heroImage":18395,"date":26951,"category":1388,"tags":26952},[20126],"2019-06-24",[269,2815,1265],{"slug":26954,"featured":6,"template":736},"q2-hackathon-recap","content:en-us:blog:q2-hackathon-recap.yml","Q2 Hackathon Recap","en-us/blog/q2-hackathon-recap.yml","en-us/blog/q2-hackathon-recap",{"_path":26960,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26961,"content":26966,"config":26970,"_id":26972,"_type":16,"title":26973,"_source":17,"_file":26974,"_stem":26975,"_extension":20},"/en-us/blog/business-impact-ci-cd",{"title":26962,"description":26963,"ogTitle":26962,"ogDescription":26963,"noIndex":6,"ogImage":26877,"ogUrl":26964,"ogSiteName":995,"ogType":996,"canonicalUrls":26964,"schema":26965},"The business impact of CI/CD","How a good CI/CD strategy generates revenue and keeps developers happy.","https://about.gitlab.com/blog/business-impact-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The business impact of CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"},{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2019-06-21\",\n      }",{"title":26962,"description":26963,"authors":26967,"heroImage":26877,"date":26968,"category":8140,"tags":26969},[17150,15730],"2019-06-21",[564,110,1335],{"slug":26971,"featured":6,"template":736},"business-impact-ci-cd","content:en-us:blog:business-impact-ci-cd.yml","Business Impact Ci Cd","en-us/blog/business-impact-ci-cd.yml","en-us/blog/business-impact-ci-cd",{"_path":26977,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26978,"content":26984,"config":26988,"_id":26990,"_type":16,"title":26991,"_source":17,"_file":26992,"_stem":26993,"_extension":20},"/en-us/blog/cofounder-relations",{"title":26979,"description":26980,"ogTitle":26979,"ogDescription":26980,"noIndex":6,"ogImage":26981,"ogUrl":26982,"ogSiteName":995,"ogType":996,"canonicalUrls":26982,"schema":26983},"Co-founders: Key conversations build lasting relationships","Our CEO sits down with leadership psychologist Banu Hantal to discuss his relationship with GitLab co-founder Dmitriy Zaporozhets.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680642/Blog/Hero%20Images/cofounders_phone.jpg","https://about.gitlab.com/blog/cofounder-relations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The secret to an enduring co-founder relationship? Have those crucial conversations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-06-21\",\n      }",{"title":26985,"description":26980,"authors":26986,"heroImage":26981,"date":26968,"category":301,"tags":26987},"The secret to an enduring co-founder relationship? Have those crucial conversations",[16023],[1569,1265,2815],{"slug":26989,"featured":6,"template":736},"cofounder-relations","content:en-us:blog:cofounder-relations.yml","Cofounder Relations","en-us/blog/cofounder-relations.yml","en-us/blog/cofounder-relations",{"_path":26995,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":26996,"content":27002,"config":27007,"_id":27009,"_type":16,"title":27010,"_source":17,"_file":27011,"_stem":27012,"_extension":20},"/en-us/blog/announcing-gitlab-devsecops",{"title":26997,"description":26998,"ogTitle":26997,"ogDescription":26998,"noIndex":6,"ogImage":26999,"ogUrl":27000,"ogSiteName":995,"ogType":996,"canonicalUrls":27000,"schema":27001},"Announcing GitLab for DevSecOps","GitLab brings development, security, and operations into a single application.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671668/Blog/Hero%20Images/integrated.jpg","https://about.gitlab.com/blog/announcing-gitlab-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing GitLab for DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2019-06-20\",\n      }",{"title":26997,"description":26998,"authors":27003,"heroImage":26999,"date":27005,"category":301,"tags":27006},[27004],"Erica Lindberg","2019-06-20",[559,574],{"slug":27008,"featured":6,"template":736},"announcing-gitlab-devsecops","content:en-us:blog:announcing-gitlab-devsecops.yml","Announcing Gitlab Devsecops","en-us/blog/announcing-gitlab-devsecops.yml","en-us/blog/announcing-gitlab-devsecops",{"_path":27014,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27015,"content":27021,"config":27024,"_id":27026,"_type":16,"title":27027,"_source":17,"_file":27028,"_stem":27029,"_extension":20},"/en-us/blog/issue-labels-can-now-be-scoped",{"title":27016,"description":27017,"ogTitle":27016,"ogDescription":27017,"noIndex":6,"ogImage":27018,"ogUrl":27019,"ogSiteName":995,"ogType":996,"canonicalUrls":27019,"schema":27020},"Issue labels can now be scoped!","A small change with a huge impact: Scoped Labels can help teams customize their workflow and speed up delivery.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679729/Blog/Hero%20Images/scopedlabels.jpg","https://about.gitlab.com/blog/issue-labels-can-now-be-scoped","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Issue labels can now be scoped!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-06-20\",\n      }",{"title":27016,"description":27017,"authors":27022,"heroImage":27018,"date":27005,"category":8140,"tags":27023},[19332],[730,1335,729],{"slug":27025,"featured":6,"template":736},"issue-labels-can-now-be-scoped","content:en-us:blog:issue-labels-can-now-be-scoped.yml","Issue Labels Can Now Be Scoped","en-us/blog/issue-labels-can-now-be-scoped.yml","en-us/blog/issue-labels-can-now-be-scoped",{"_path":27031,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27032,"content":27037,"config":27041,"_id":27043,"_type":16,"title":27044,"_source":17,"_file":27045,"_stem":27046,"_extension":20},"/en-us/blog/cern-contributor-post",{"title":27033,"description":27034,"ogTitle":27033,"ogDescription":27034,"noIndex":6,"ogImage":24329,"ogUrl":27035,"ogSiteName":995,"ogType":996,"canonicalUrls":27035,"schema":27036},"GitLab Code Contributor: Daniel Juarez","Daniel Juarez shares his experience contributing to GitLab from CERN.","https://about.gitlab.com/blog/cern-contributor-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Daniel Juarez\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-06-19\",\n      }",{"title":27033,"description":27034,"authors":27038,"heroImage":24329,"date":27039,"category":1388,"tags":27040},[20126],"2019-06-19",[269,2815,1265,3074],{"slug":27042,"featured":6,"template":736},"cern-contributor-post","content:en-us:blog:cern-contributor-post.yml","Cern Contributor Post","en-us/blog/cern-contributor-post.yml","en-us/blog/cern-contributor-post",{"_path":27048,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27049,"content":27055,"config":27058,"_id":27060,"_type":16,"title":27061,"_source":17,"_file":27062,"_stem":27063,"_extension":20},"/en-us/blog/look-back-on-11-11-cicd",{"title":27050,"description":27051,"ogTitle":27050,"ogDescription":27051,"noIndex":6,"ogImage":27052,"ogUrl":27053,"ogSiteName":995,"ogType":996,"canonicalUrls":27053,"schema":27054},"Looking back on the 11.x releases for GitLab CI/CD","With GitLab 12.0 coming soon, it's a great time to reflect on all the features we've launched since 11.0.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666857/Blog/Hero%20Images/photo-cicdlookback.jpg","https://about.gitlab.com/blog/look-back-on-11-11-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Looking back on the 11.x releases for GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-06-19\",\n      }",{"title":27050,"description":27051,"authors":27056,"heroImage":27052,"date":27039,"category":858,"tags":27057},[20535],[564,110,730],{"slug":27059,"featured":6,"template":736},"look-back-on-11-11-cicd","content:en-us:blog:look-back-on-11-11-cicd.yml","Look Back On 11 11 Cicd","en-us/blog/look-back-on-11-11-cicd.yml","en-us/blog/look-back-on-11-11-cicd",{"_path":27065,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27066,"content":27071,"config":27075,"_id":27077,"_type":16,"title":27078,"_source":17,"_file":27079,"_stem":27080,"_extension":20},"/en-us/blog/day-in-the-life-remote-worker",{"title":27067,"description":27068,"ogTitle":27067,"ogDescription":27068,"noIndex":6,"ogImage":26292,"ogUrl":27069,"ogSiteName":995,"ogType":996,"canonicalUrls":27069,"schema":27070},"A day in the life of the \"average\" remote worker","Go on, you know you're curious! Explore a day in the life of GitLab team members from around the world.","https://about.gitlab.com/blog/day-in-the-life-remote-worker","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A day in the life of the \"average\" remote worker\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"},{\"@type\":\"Person\",\"name\":\"Charlie Ablett\"}],\n        \"datePublished\": \"2019-06-18\",\n      }",{"title":27067,"description":27068,"authors":27072,"heroImage":26292,"date":27073,"category":6121,"tags":27074},[16023,23191],"2019-06-18",[730,3914,2815,1569],{"slug":27076,"featured":6,"template":736},"day-in-the-life-remote-worker","content:en-us:blog:day-in-the-life-remote-worker.yml","Day In The Life Remote Worker","en-us/blog/day-in-the-life-remote-worker.yml","en-us/blog/day-in-the-life-remote-worker",{"_path":27082,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27083,"content":27088,"config":27092,"_id":27094,"_type":16,"title":27095,"_source":17,"_file":27096,"_stem":27097,"_extension":20},"/en-us/blog/strategies-microservices-architecture",{"title":27084,"description":27085,"ogTitle":27084,"ogDescription":27085,"noIndex":6,"ogImage":11408,"ogUrl":27086,"ogSiteName":995,"ogType":996,"canonicalUrls":27086,"schema":27087},"Implementing microservices architectures and deployment strategies","Want to dump the monolith and get into microservices? Consider these three methods.","https://about.gitlab.com/blog/strategies-microservices-architecture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Implementing microservices architectures and deployment strategies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-06-17\",\n      }",{"title":27084,"description":27085,"authors":27089,"heroImage":11408,"date":27090,"category":8140,"tags":27091},[17150],"2019-06-17",[564,110],{"slug":27093,"featured":6,"template":736},"strategies-microservices-architecture","content:en-us:blog:strategies-microservices-architecture.yml","Strategies Microservices Architecture","en-us/blog/strategies-microservices-architecture.yml","en-us/blog/strategies-microservices-architecture",{"_path":27099,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27100,"content":27105,"config":27109,"_id":27111,"_type":16,"title":27112,"_source":17,"_file":27113,"_stem":27114,"_extension":20},"/en-us/blog/ask-gitlab-security-roger-ostrander",{"title":27101,"description":27102,"ogTitle":27101,"ogDescription":27102,"noIndex":6,"ogImage":26911,"ogUrl":27103,"ogSiteName":995,"ogType":996,"canonicalUrls":27103,"schema":27104},"Ask GitLab Security: Roger Ostrander","What’s it like working day and night to kill spam, Bitcoin mining, malware and more? Meet our security team.","https://about.gitlab.com/blog/ask-gitlab-security-roger-ostrander","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ask GitLab Security: Roger Ostrander\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-06-14\",\n      }",{"title":27101,"description":27102,"authors":27106,"heroImage":26911,"date":27107,"category":790,"tags":27108},[11324],"2019-06-14",[6980,1569,790,790],{"slug":27110,"featured":6,"template":736},"ask-gitlab-security-roger-ostrander","content:en-us:blog:ask-gitlab-security-roger-ostrander.yml","Ask Gitlab Security Roger Ostrander","en-us/blog/ask-gitlab-security-roger-ostrander.yml","en-us/blog/ask-gitlab-security-roger-ostrander",{"_path":27116,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27117,"content":27123,"config":27127,"_id":27129,"_type":16,"title":27130,"_source":17,"_file":27131,"_stem":27132,"_extension":20},"/en-us/blog/agile-mindset",{"title":27118,"description":27119,"ogTitle":27118,"ogDescription":27119,"noIndex":6,"ogImage":27120,"ogUrl":27121,"ogSiteName":995,"ogType":996,"canonicalUrls":27121,"schema":27122},"What is an Agile mindset?","Learn how embracing change can help you speed up software delivery.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680634/Blog/Hero%20Images/agilemind.jpg","https://about.gitlab.com/blog/agile-mindset","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What is an Agile mindset?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-06-13\",\n      }",{"title":27118,"description":27119,"authors":27124,"heroImage":27120,"date":27125,"category":8140,"tags":27126},[19332],"2019-06-13",[729,2815,564,1335],{"slug":27128,"featured":6,"template":736},"agile-mindset","content:en-us:blog:agile-mindset.yml","Agile Mindset","en-us/blog/agile-mindset.yml","en-us/blog/agile-mindset",{"_path":27134,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27135,"content":27140,"config":27144,"_id":27146,"_type":16,"title":27147,"_source":17,"_file":27148,"_stem":27149,"_extension":20},"/en-us/blog/google-gitlab-serverless-webinar",{"title":27136,"description":27137,"ogTitle":27136,"ogDescription":27137,"noIndex":6,"ogImage":24522,"ogUrl":27138,"ogSiteName":995,"ogType":996,"canonicalUrls":27138,"schema":27139},"Container apps on serverless: Write once, deploy anywhere","Containers, serverless, and microservices, oh my! Cut to the chase and learn how to write apps once and deploy anywhere with emerging technologies.","https://about.gitlab.com/blog/google-gitlab-serverless-webinar","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Write once, deploy anywhere: Containerized applications on modern serverless platforms\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tina Sturgis\"}],\n        \"datePublished\": \"2019-06-13\",\n      }",{"title":27141,"description":27137,"authors":27142,"heroImage":24522,"date":27125,"category":301,"tags":27143},"Write once, deploy anywhere: Containerized applications on modern serverless platforms",[24054],[1730,564,233,110,2908],{"slug":27145,"featured":6,"template":736},"google-gitlab-serverless-webinar","content:en-us:blog:google-gitlab-serverless-webinar.yml","Google Gitlab Serverless Webinar","en-us/blog/google-gitlab-serverless-webinar.yml","en-us/blog/google-gitlab-serverless-webinar",{"_path":27151,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27152,"content":27158,"config":27162,"_id":27164,"_type":16,"title":27165,"_source":17,"_file":27166,"_stem":27167,"_extension":20},"/en-us/blog/how-we-migrated-our-markdown-processing-to-commonmark",{"title":27153,"description":27154,"ogTitle":27153,"ogDescription":27154,"noIndex":6,"ogImage":27155,"ogUrl":27156,"ogSiteName":995,"ogType":996,"canonicalUrls":27156,"schema":27157},"How we migrated to CommonMark","A senior backend engineer shares how (and why) we migrated our Markdown processing from RedCarpet to CommonMark.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671172/Blog/Hero%20Images/markdown-tutorial-cover.png","https://about.gitlab.com/blog/how-we-migrated-our-markdown-processing-to-commonmark","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we migrated to CommonMark\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brett Walker\"}],\n        \"datePublished\": \"2019-06-13\",\n      }",{"title":27153,"description":27154,"authors":27159,"heroImage":27155,"date":27125,"category":858,"tags":27161},[27160],"Brett Walker",[2815],{"slug":27163,"featured":6,"template":736},"how-we-migrated-our-markdown-processing-to-commonmark","content:en-us:blog:how-we-migrated-our-markdown-processing-to-commonmark.yml","How We Migrated Our Markdown Processing To Commonmark","en-us/blog/how-we-migrated-our-markdown-processing-to-commonmark.yml","en-us/blog/how-we-migrated-our-markdown-processing-to-commonmark",{"_path":27169,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27170,"content":27175,"config":27180,"_id":27182,"_type":16,"title":27183,"_source":17,"_file":27184,"_stem":27185,"_extension":20},"/en-us/blog/manage-conversation-staying-agile",{"title":27171,"description":27172,"ogTitle":27171,"ogDescription":27172,"noIndex":6,"ogImage":26150,"ogUrl":27173,"ogSiteName":995,"ogType":996,"canonicalUrls":27173,"schema":27174},"5 Ways to stay agile in a growing organization","Some of the GitLab Manage team have a conversation about staying agile as a company grows.","https://about.gitlab.com/blog/manage-conversation-staying-agile","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Ways to stay agile in a growing organization\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeremy Watson\"}],\n        \"datePublished\": \"2019-06-10\",\n      }",{"title":27171,"description":27172,"authors":27176,"heroImage":26150,"date":27178,"category":8140,"tags":27179},[27177],"Jeremy Watson","2019-06-10",[729,2815,1569],{"slug":27181,"featured":6,"template":736},"manage-conversation-staying-agile","content:en-us:blog:manage-conversation-staying-agile.yml","Manage Conversation Staying Agile","en-us/blog/manage-conversation-staying-agile.yml","en-us/blog/manage-conversation-staying-agile",{"_path":27187,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27188,"content":27194,"config":27197,"_id":27199,"_type":16,"title":27200,"_source":17,"_file":27201,"_stem":27202,"_extension":20},"/en-us/blog/when-technology-outpaces-security-compliance",{"title":27189,"description":27190,"ogTitle":27189,"ogDescription":27190,"noIndex":6,"ogImage":27191,"ogUrl":27192,"ogSiteName":995,"ogType":996,"canonicalUrls":27192,"schema":27193},"When technology outpaces security compliance","Where does today's tech transformation leave tomorrow's security compliance? A senior security analyst tackles the question.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678968/Blog/Hero%20Images/signpost-sunset.jpg","https://about.gitlab.com/blog/when-technology-outpaces-security-compliance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"When technology outpaces security compliance\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Luka Trbojevic\"}],\n        \"datePublished\": \"2019-06-10\",\n      }",{"title":27189,"description":27190,"authors":27195,"heroImage":27191,"date":27178,"category":790,"tags":27196},[26136],[790],{"slug":27198,"featured":6,"template":736},"when-technology-outpaces-security-compliance","content:en-us:blog:when-technology-outpaces-security-compliance.yml","When Technology Outpaces Security Compliance","en-us/blog/when-technology-outpaces-security-compliance.yml","en-us/blog/when-technology-outpaces-security-compliance",{"_path":27204,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27205,"content":27211,"config":27216,"_id":27218,"_type":16,"title":27219,"_source":17,"_file":27220,"_stem":27221,"_extension":20},"/en-us/blog/proximus-customer-story-clearcase-to-gitlab",{"title":27206,"description":27207,"ogTitle":27206,"ogDescription":27207,"noIndex":6,"ogImage":27208,"ogUrl":27209,"ogSiteName":995,"ogType":996,"canonicalUrls":27209,"schema":27210},"Proximus shares its #movingtoGitLab story","Moving to GitLab resulted in an 80 percent drop in support tickets and an increase in developer productivity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678603/Blog/Hero%20Images/traffic-at-sunset.jpg","https://about.gitlab.com/blog/proximus-customer-story-clearcase-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Proximus shares its #movingtoGitLab story\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Bert Van Eyck\"}],\n        \"datePublished\": \"2019-06-07\",\n      }",{"title":27206,"description":27207,"authors":27212,"heroImage":27208,"date":27214,"category":8140,"tags":27215},[27213],"Bert Van Eyck","2019-06-07",[269,1195,233,4665,1265],{"slug":27217,"featured":6,"template":736},"proximus-customer-story-clearcase-to-gitlab","content:en-us:blog:proximus-customer-story-clearcase-to-gitlab.yml","Proximus Customer Story Clearcase To Gitlab","en-us/blog/proximus-customer-story-clearcase-to-gitlab.yml","en-us/blog/proximus-customer-story-clearcase-to-gitlab",{"_path":27223,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27224,"content":27230,"config":27234,"_id":27236,"_type":16,"title":27237,"_source":17,"_file":27238,"_stem":27239,"_extension":20},"/en-us/blog/1-mil-merge-requests",{"title":27225,"description":27226,"ogTitle":27225,"ogDescription":27226,"noIndex":6,"ogImage":27227,"ogUrl":27228,"ogSiteName":995,"ogType":996,"canonicalUrls":27228,"schema":27229},"You contributed 1 million merge requests in a month!","GitLab.com surpassed 1 million merge requests in March 2019, hitting a new record for monthly engagement.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680631/Blog/Hero%20Images/1m-merge-requests-cover.png","https://about.gitlab.com/blog/1-mil-merge-requests","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"You contributed 1 million merge requests in a month!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-06-06\",\n      }",{"title":27225,"description":27226,"authors":27231,"heroImage":27227,"date":27232,"category":1388,"tags":27233},[16023],"2019-06-06",[269,1265],{"slug":27235,"featured":6,"template":736},"1-mil-merge-requests","content:en-us:blog:1-mil-merge-requests.yml","1 Mil Merge Requests","en-us/blog/1-mil-merge-requests.yml","en-us/blog/1-mil-merge-requests",{"_path":27241,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27242,"content":27247,"config":27251,"_id":27253,"_type":16,"title":27254,"_source":17,"_file":27255,"_stem":27256,"_extension":20},"/en-us/blog/modernize-your-ci-cd",{"title":27243,"description":27244,"ogTitle":27243,"ogDescription":27244,"noIndex":6,"ogImage":26877,"ogUrl":27245,"ogSiteName":995,"ogType":996,"canonicalUrls":27245,"schema":27246},"3 CI/CD challenges to consider","If these DevOps challenges hit close to home, the right CI/CD could be the answer.","https://about.gitlab.com/blog/modernize-your-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 CI/CD challenges to consider\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-06-05\",\n      }",{"title":27243,"description":27244,"authors":27248,"heroImage":26877,"date":27249,"category":8140,"tags":27250},[17150],"2019-06-05",[564,110,1335],{"slug":27252,"featured":6,"template":736},"modernize-your-ci-cd","content:en-us:blog:modernize-your-ci-cd.yml","Modernize Your Ci Cd","en-us/blog/modernize-your-ci-cd.yml","en-us/blog/modernize-your-ci-cd",{"_path":27258,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27259,"content":27265,"config":27269,"_id":27271,"_type":16,"title":27272,"_source":17,"_file":27273,"_stem":27274,"_extension":20},"/en-us/blog/contribute-wrap-up",{"title":27260,"description":27261,"ogTitle":27260,"ogDescription":27261,"noIndex":6,"ogImage":27262,"ogUrl":27263,"ogSiteName":995,"ogType":996,"canonicalUrls":27263,"schema":27264},"What we learned at Contribute 2019","Community is everything, all remote makes contribution possible, CMO Todd Barr plays a mean trumpet, and more takeaways from Contribute 2019.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670139/Blog/Hero%20Images/gitlab-contribute-team-photo.png","https://about.gitlab.com/blog/contribute-wrap-up","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we learned at Contribute 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Valerie Silverthorne\"},{\"@type\":\"Person\",\"name\":\"Sara Kassabian\"}],\n        \"datePublished\": \"2019-06-04\",\n      }",{"title":27260,"description":27261,"authors":27266,"heroImage":27262,"date":27267,"category":6121,"tags":27268},[10672,16023],"2019-06-04",[269,730,1569,3914],{"slug":27270,"featured":6,"template":736},"contribute-wrap-up","content:en-us:blog:contribute-wrap-up.yml","Contribute Wrap Up","en-us/blog/contribute-wrap-up.yml","en-us/blog/contribute-wrap-up",{"_path":27276,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27277,"content":27283,"config":27287,"_id":27289,"_type":16,"title":27290,"_source":17,"_file":27291,"_stem":27292,"_extension":20},"/en-us/blog/how-we-turned-40-person-meeting-into-a-podcast",{"title":27278,"description":27279,"ogTitle":27278,"ogDescription":27279,"noIndex":6,"ogImage":27280,"ogUrl":27281,"ogSiteName":995,"ogType":996,"canonicalUrls":27281,"schema":27282},"How we turned a dull weekly all-hands into a podcast","We love asynchronous communication so much that we turned a uninspiring department-wide meeting into an engaging podcast – here's why and how.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671055/Blog/Hero%20Images/headphones-colorful-background.jpg","https://about.gitlab.com/blog/how-we-turned-40-person-meeting-into-a-podcast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we turned a dull weekly all-hands into a podcast\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lyle Kozloff\"}],\n        \"datePublished\": \"2019-06-03\",\n      }",{"title":27278,"description":27279,"authors":27284,"heroImage":27280,"date":27285,"category":6121,"tags":27286},[5378],"2019-06-03",[2815,730,1569,3914],{"slug":27288,"featured":6,"template":736},"how-we-turned-40-person-meeting-into-a-podcast","content:en-us:blog:how-we-turned-40-person-meeting-into-a-podcast.yml","How We Turned 40 Person Meeting Into A Podcast","en-us/blog/how-we-turned-40-person-meeting-into-a-podcast.yml","en-us/blog/how-we-turned-40-person-meeting-into-a-podcast",{"_path":27294,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27295,"content":27300,"config":27304,"_id":27306,"_type":16,"title":27307,"_source":17,"_file":27308,"_stem":27309,"_extension":20},"/en-us/blog/ask-gitlab-security-paul-harrison",{"title":27296,"description":27297,"ogTitle":27296,"ogDescription":27297,"noIndex":6,"ogImage":26911,"ogUrl":27298,"ogSiteName":995,"ogType":996,"canonicalUrls":27298,"schema":27299},"Ask GitLab Security: Paul Harrison","What’s it like working to secure one of the most transparent organizations in the world? Meet our security team.","https://about.gitlab.com/blog/ask-gitlab-security-paul-harrison","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Ask GitLab Security: Paul Harrison\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather Simpson\"}],\n        \"datePublished\": \"2019-05-31\",\n      }",{"title":27296,"description":27297,"authors":27301,"heroImage":26911,"date":27302,"category":790,"tags":27303},[11324],"2019-05-31",[6980,1569,790,790],{"slug":27305,"featured":6,"template":736},"ask-gitlab-security-paul-harrison","content:en-us:blog:ask-gitlab-security-paul-harrison.yml","Ask Gitlab Security Paul Harrison","en-us/blog/ask-gitlab-security-paul-harrison.yml","en-us/blog/ask-gitlab-security-paul-harrison",{"_path":27311,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27312,"content":27318,"config":27322,"_id":27324,"_type":16,"title":27325,"_source":17,"_file":27326,"_stem":27327,"_extension":20},"/en-us/blog/it-automation-developer-productivity",{"title":27313,"description":27314,"ogTitle":27313,"ogDescription":27314,"noIndex":6,"ogImage":27315,"ogUrl":27316,"ogSiteName":995,"ogType":996,"canonicalUrls":27316,"schema":27317},"How IT automation impacts developer productivity","See how IT automation promotes a healthier IT culture and unlocks next-level DevOps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670529/Blog/Hero%20Images/automate-retrospectives.jpg","https://about.gitlab.com/blog/it-automation-developer-productivity","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How IT automation impacts developer productivity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-05-30\",\n      }",{"title":27313,"description":27314,"authors":27319,"heroImage":27315,"date":27320,"category":858,"tags":27321},[17150],"2019-05-30",[564,729,110],{"slug":27323,"featured":6,"template":736},"it-automation-developer-productivity","content:en-us:blog:it-automation-developer-productivity.yml","It Automation Developer Productivity","en-us/blog/it-automation-developer-productivity.yml","en-us/blog/it-automation-developer-productivity",{"_path":27329,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27330,"content":27336,"config":27341,"_id":27343,"_type":16,"title":27344,"_source":17,"_file":27345,"_stem":27346,"_extension":20},"/en-us/blog/sfdx-promo-trailhead-blog",{"title":27331,"description":27332,"ogTitle":27331,"ogDescription":27332,"noIndex":6,"ogImage":27333,"ogUrl":27334,"ogSiteName":995,"ogType":996,"canonicalUrls":27334,"schema":27335},"Salesforce developers can now use GitLab for complete DevOps","Learn what’s possible with GitLab and Salesforce, whether you’re looking to reduce cycle time or increase collaboration across cross-functional teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680624/Blog/Hero%20Images/gitlab-salesforce.png","https://about.gitlab.com/blog/sfdx-promo-trailhead-blog","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Salesforce developers can now use GitLab's single application for the DevOps lifecycle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mayank Tahilramani\"}],\n        \"datePublished\": \"2019-05-29\",\n      }",{"title":27337,"description":27332,"authors":27338,"heroImage":27333,"date":27339,"category":301,"tags":27340},"Salesforce developers can now use GitLab's single application for the DevOps lifecycle",[24527],"2019-05-29",[564,233,1049],{"slug":27342,"featured":6,"template":736},"sfdx-promo-trailhead-blog","content:en-us:blog:sfdx-promo-trailhead-blog.yml","Sfdx Promo Trailhead Blog","en-us/blog/sfdx-promo-trailhead-blog.yml","en-us/blog/sfdx-promo-trailhead-blog",{"_path":27348,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27349,"content":27355,"config":27360,"_id":27362,"_type":16,"title":27363,"_source":17,"_file":27364,"_stem":27365,"_extension":20},"/en-us/blog/upgrade-to-rails5",{"title":27350,"description":27351,"ogTitle":27350,"ogDescription":27351,"noIndex":6,"ogImage":27352,"ogUrl":27353,"ogSiteName":995,"ogType":996,"canonicalUrls":27353,"schema":27354},"The road to Rails 5","Senior Backend Engineer Jan Provaznik shares some of the challenges we encountered when upgrading GitLab to Rails 5 – and how we overcame them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683399/Blog/Hero%20Images/road-to-rails-5.jpg","https://about.gitlab.com/blog/upgrade-to-rails5","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The road to Rails 5\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jan Provaznik\"}],\n        \"datePublished\": \"2019-05-28\",\n      }",{"title":27350,"description":27351,"authors":27356,"heroImage":27352,"date":27358,"category":858,"tags":27359},[27357],"Jan Provaznik","2019-05-28",[2815,6376,1265,269],{"slug":27361,"featured":6,"template":736},"upgrade-to-rails5","content:en-us:blog:upgrade-to-rails5.yml","Upgrade To Rails5","en-us/blog/upgrade-to-rails5.yml","en-us/blog/upgrade-to-rails5",{"_path":27367,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27368,"content":27373,"config":27379,"_id":27381,"_type":16,"title":27382,"_source":17,"_file":27383,"_stem":27384,"_extension":20},"/en-us/blog/gitlab-identified-by-gartner-as-eapt-visionary",{"title":27369,"description":27370,"ogTitle":27369,"ogDescription":27370,"noIndex":6,"ogImage":15826,"ogUrl":27371,"ogSiteName":995,"ogType":996,"canonicalUrls":27371,"schema":27372},"GitLab earns visionary status in Gartner agile planning","We're happy to announce GitLab has been named a 'Visionary' in Gartner's EAPT Magic Quadrant.","https://about.gitlab.com/blog/gitlab-identified-by-gartner-as-eapt-visionary","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named a 'Visionary' in 2019 Gartner Enterprise Agile Planning Tool Magic Quadrant\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jeremiah\"}],\n        \"datePublished\": \"2019-05-22\",\n      }",{"title":27374,"description":27370,"authors":27375,"heroImage":15826,"date":27377,"category":301,"tags":27378},"GitLab named a 'Visionary' in 2019 Gartner Enterprise Agile Planning Tool Magic Quadrant",[27376],"John Jeremiah","2019-05-22",[729,564,1569,1049],{"slug":27380,"featured":6,"template":736},"gitlab-identified-by-gartner-as-eapt-visionary","content:en-us:blog:gitlab-identified-by-gartner-as-eapt-visionary.yml","Gitlab Identified By Gartner As Eapt Visionary","en-us/blog/gitlab-identified-by-gartner-as-eapt-visionary.yml","en-us/blog/gitlab-identified-by-gartner-as-eapt-visionary",{"_path":27386,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27387,"content":27393,"config":27397,"_id":27399,"_type":16,"title":27400,"_source":17,"_file":27401,"_stem":27402,"_extension":20},"/en-us/blog/fluentd-using-gitlab-ci-cd",{"title":27388,"description":27389,"ogTitle":27388,"ogDescription":27389,"noIndex":6,"ogImage":27390,"ogUrl":27391,"ogSiteName":995,"ogType":996,"canonicalUrls":27391,"schema":27392},"Thanks Fluentd for betting on GitLab CI/CD!","We're happy to support fresh CNCF graduate Fluentd with GitLab CI/CD, and excited about their latest innovation offering stream processing on the edge.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678614/Blog/Hero%20Images/gitlab-fluentd.png","https://about.gitlab.com/blog/fluentd-using-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Thanks Fluentd for betting on GitLab CI/CD!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Priyanka Sharma\"}],\n        \"datePublished\": \"2019-05-21\",\n      }",{"title":27388,"description":27389,"authors":27394,"heroImage":27390,"date":27395,"category":1388,"tags":27396},[25150],"2019-05-21",[110,1265,4182,582,279,2908],{"slug":27398,"featured":6,"template":736},"fluentd-using-gitlab-ci-cd","content:en-us:blog:fluentd-using-gitlab-ci-cd.yml","Fluentd Using Gitlab Ci Cd","en-us/blog/fluentd-using-gitlab-ci-cd.yml","en-us/blog/fluentd-using-gitlab-ci-cd",{"_path":27404,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27405,"content":27411,"config":27416,"_id":27418,"_type":16,"title":27419,"_source":17,"_file":27420,"_stem":27421,"_extension":20},"/en-us/blog/monkton-moves-to-gitlab-customer-story",{"title":27406,"description":27407,"ogTitle":27406,"ogDescription":27407,"noIndex":6,"ogImage":27408,"ogUrl":27409,"ogSiteName":995,"ogType":996,"canonicalUrls":27409,"schema":27410},"Monkton's journey to GitLab: Focusing on automation","Monkton is migrating from a suite of disparate tools to GitLab, enabling them to better help their customers build safe, secure mobile apps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670123/Blog/Hero%20Images/moving-to-gitlab-cover.png","https://about.gitlab.com/blog/monkton-moves-to-gitlab-customer-story","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Monkton's #movingtogitlab story: Going all in on automation and repeatability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"},{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2019-05-21\",\n      }",{"title":27412,"description":27407,"authors":27413,"heroImage":27408,"date":27395,"category":8140,"tags":27415},"Monkton's #movingtogitlab story: Going all in on automation and repeatability",[17684,27414],"Aricka Flowers",[269,233,1265,4665],{"slug":27417,"featured":6,"template":736},"monkton-moves-to-gitlab-customer-story","content:en-us:blog:monkton-moves-to-gitlab-customer-story.yml","Monkton Moves To Gitlab Customer Story","en-us/blog/monkton-moves-to-gitlab-customer-story.yml","en-us/blog/monkton-moves-to-gitlab-customer-story",{"_path":27423,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27424,"content":27430,"config":27434,"_id":27436,"_type":16,"title":27437,"_source":17,"_file":27438,"_stem":27439,"_extension":20},"/en-us/blog/gitlab-first-deployed-kubernetes-api-to-multiple-clouds",{"title":27425,"description":27426,"ogTitle":27425,"ogDescription":27426,"noIndex":6,"ogImage":27427,"ogUrl":27428,"ogSiteName":995,"ogType":996,"canonicalUrls":27428,"schema":27429},"GitLab deploys into multiple clouds from kubectl using Crossplane","We're proud to be advancing our commitment to multicloud DevOps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680612/Blog/Hero%20Images/crossplane.png","https://about.gitlab.com/blog/gitlab-first-deployed-kubernetes-api-to-multiple-clouds","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab deploys into multiple clouds from kubectl using Crossplane\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-05-20\",\n      }",{"title":27425,"description":27426,"authors":27431,"heroImage":27427,"date":27432,"category":301,"tags":27433},[1000],"2019-05-20",[1049,4182],{"slug":27435,"featured":6,"template":736},"gitlab-first-deployed-kubernetes-api-to-multiple-clouds","content:en-us:blog:gitlab-first-deployed-kubernetes-api-to-multiple-clouds.yml","Gitlab First Deployed Kubernetes Api To Multiple Clouds","en-us/blog/gitlab-first-deployed-kubernetes-api-to-multiple-clouds.yml","en-us/blog/gitlab-first-deployed-kubernetes-api-to-multiple-clouds",{"_path":27441,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27442,"content":27448,"config":27451,"_id":27453,"_type":16,"title":27454,"_source":17,"_file":27455,"_stem":27456,"_extension":20},"/en-us/blog/kubernetes-chat-with-joe-beda",{"title":27443,"description":27444,"ogTitle":27443,"ogDescription":27444,"noIndex":6,"ogImage":27445,"ogUrl":27446,"ogSiteName":995,"ogType":996,"canonicalUrls":27446,"schema":27447},"Kubernetes and the open source community: We chat with Joe Beda","Our CEO sits down with Kubernetes co-creator Joe Beda to talk about the future of open source.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680604/Blog/Hero%20Images/tech-explorers-cover.png","https://about.gitlab.com/blog/kubernetes-chat-with-joe-beda","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Kubernetes and the open source community: We chat with Joe Beda\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-05-20\",\n      }",{"title":27443,"description":27444,"authors":27449,"heroImage":27445,"date":27432,"category":1388,"tags":27450},[17150],[564,582,2908],{"slug":27452,"featured":6,"template":736},"kubernetes-chat-with-joe-beda","content:en-us:blog:kubernetes-chat-with-joe-beda.yml","Kubernetes Chat With Joe Beda","en-us/blog/kubernetes-chat-with-joe-beda.yml","en-us/blog/kubernetes-chat-with-joe-beda",{"_path":27458,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27459,"content":27465,"config":27469,"_id":27471,"_type":16,"title":27472,"_source":17,"_file":27473,"_stem":27474,"_extension":20},"/en-us/blog/kubernetes-kubecon-barcelona",{"title":27460,"description":27461,"ogTitle":27460,"ogDescription":27461,"noIndex":6,"ogImage":27462,"ogUrl":27463,"ogSiteName":995,"ogType":996,"canonicalUrls":27463,"schema":27464},"See you at KubeCon Barcelona!","We're excited to see you all in Barcelona! Visit us at booth S21.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664107/Blog/Hero%20Images/tanuki-adventure.png","https://about.gitlab.com/blog/kubernetes-kubecon-barcelona","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"See you at KubeCon Barcelona!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Priyanka Sharma\"}],\n        \"datePublished\": \"2019-05-17\",\n      }",{"title":27460,"description":27461,"authors":27466,"heroImage":27462,"date":27467,"category":1388,"tags":27468},[25150],"2019-05-17",[729,582,279,2908,1265],{"slug":27470,"featured":6,"template":736},"kubernetes-kubecon-barcelona","content:en-us:blog:kubernetes-kubecon-barcelona.yml","Kubernetes Kubecon Barcelona","en-us/blog/kubernetes-kubecon-barcelona.yml","en-us/blog/kubernetes-kubecon-barcelona",{"_path":27476,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27477,"content":27482,"config":27486,"_id":27488,"_type":16,"title":27489,"_source":17,"_file":27490,"_stem":27491,"_extension":20},"/en-us/blog/building-an-award-winning-culture-at-gitlab",{"title":27478,"description":27479,"ogTitle":27478,"ogDescription":27479,"noIndex":6,"ogImage":27262,"ogUrl":27480,"ogSiteName":995,"ogType":996,"canonicalUrls":27480,"schema":27481},"How we're building an award-winning culture at GitLab","We're proud to see GitLab recognized as one of Inc. Magazine's Best Workplaces in 2019!","https://about.gitlab.com/blog/building-an-award-winning-culture-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we're building an award-winning culture at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Betsy Church\"}],\n        \"datePublished\": \"2019-05-16\",\n      }",{"title":27478,"description":27479,"authors":27483,"heroImage":27262,"date":27484,"category":301,"tags":27485},[26297],"2019-05-16",[3914,2815,1049,1569],{"slug":27487,"featured":6,"template":736},"building-an-award-winning-culture-at-gitlab","content:en-us:blog:building-an-award-winning-culture-at-gitlab.yml","Building An Award Winning Culture At Gitlab","en-us/blog/building-an-award-winning-culture-at-gitlab.yml","en-us/blog/building-an-award-winning-culture-at-gitlab",{"_path":27493,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27494,"content":27499,"config":27504,"_id":27506,"_type":16,"title":27507,"_source":17,"_file":27508,"_stem":27509,"_extension":20},"/en-us/blog/git-ransom-campaign-incident-report-atlassian-bitbucket-github-gitlab",{"title":27495,"description":27496,"ogTitle":27495,"ogDescription":27496,"noIndex":6,"ogImage":11046,"ogUrl":27497,"ogSiteName":995,"ogType":996,"canonicalUrls":27497,"schema":27498},"Git ransom campaign incident report","This is a coordinated effort to help educate and inform users on secure best practices relating to the recent Git ransomware incident.","https://about.gitlab.com/blog/git-ransom-campaign-incident-report-atlassian-bitbucket-github-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git ransom campaign incident report\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Atlassian Bitbucket, GitHub, GitLab\"}],\n        \"datePublished\": \"2019-05-14\",\n      }",{"title":27495,"description":27496,"authors":27500,"heroImage":11046,"date":27502,"category":301,"tags":27503},[27501],"Atlassian Bitbucket, GitHub, GitLab","2019-05-14",[1195,1049,790],{"slug":27505,"featured":6,"template":736},"git-ransom-campaign-incident-report-atlassian-bitbucket-github-gitlab","content:en-us:blog:git-ransom-campaign-incident-report-atlassian-bitbucket-github-gitlab.yml","Git Ransom Campaign Incident Report Atlassian Bitbucket Github Gitlab","en-us/blog/git-ransom-campaign-incident-report-atlassian-bitbucket-github-gitlab.yml","en-us/blog/git-ransom-campaign-incident-report-atlassian-bitbucket-github-gitlab",{"_path":27511,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27512,"content":27517,"config":27521,"_id":27523,"_type":16,"title":27524,"_source":17,"_file":27525,"_stem":27526,"_extension":20},"/en-us/blog/kubernetes-chat-with-kelsey-hightower",{"title":27513,"description":27514,"ogTitle":27513,"ogDescription":27514,"noIndex":6,"ogImage":27445,"ogUrl":27515,"ogSiteName":995,"ogType":996,"canonicalUrls":27515,"schema":27516},"Kubernetes and the future of cloud native: We chat with Kelsey Hightower","Our CEO sits down with Google Staff Developer Advocate Kelsey Hightower to talk fundamentals, the future of cloud native, and Kubernetes.","https://about.gitlab.com/blog/kubernetes-chat-with-kelsey-hightower","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Kubernetes and the future of cloud native: We chat with Kelsey Hightower\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-05-13\",\n      }",{"title":27513,"description":27514,"authors":27518,"heroImage":27445,"date":27519,"category":1388,"tags":27520},[17150],"2019-05-13",[564,582,2908],{"slug":27522,"featured":6,"template":736},"kubernetes-chat-with-kelsey-hightower","content:en-us:blog:kubernetes-chat-with-kelsey-hightower.yml","Kubernetes Chat With Kelsey Hightower","en-us/blog/kubernetes-chat-with-kelsey-hightower.yml","en-us/blog/kubernetes-chat-with-kelsey-hightower",{"_path":27528,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27529,"content":27535,"config":27539,"_id":27541,"_type":16,"title":27542,"_source":17,"_file":27543,"_stem":27544,"_extension":20},"/en-us/blog/github-adds-package-registry",{"title":27530,"description":27531,"ogTitle":27530,"ogDescription":27531,"noIndex":6,"ogImage":27532,"ogUrl":27533,"ogSiteName":995,"ogType":996,"canonicalUrls":27533,"schema":27534},"Packaging now standard, dependency proxy next?","GitHub follows GitLab by adding a package registry.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680578/Blog/Hero%20Images/package-registry.jpg","https://about.gitlab.com/blog/github-adds-package-registry","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Packaging now standard, dependency proxy next?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-05-10\",\n      }",{"title":27530,"description":27531,"authors":27536,"heroImage":27532,"date":27537,"category":301,"tags":27538},[1000],"2019-05-10",[1049],{"slug":27540,"featured":6,"template":736},"github-adds-package-registry","content:en-us:blog:github-adds-package-registry.yml","Github Adds Package Registry","en-us/blog/github-adds-package-registry.yml","en-us/blog/github-adds-package-registry",{"_path":27546,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27547,"content":27553,"config":27557,"_id":27559,"_type":16,"title":27560,"_source":17,"_file":27561,"_stem":27562,"_extension":20},"/en-us/blog/choosing-a-compliance-framework",{"title":27548,"description":27549,"ogTitle":27548,"ogDescription":27549,"noIndex":6,"ogImage":27550,"ogUrl":27551,"ogSiteName":995,"ogType":996,"canonicalUrls":27551,"schema":27552},"How GitLab went about choosing the right compliance framework","Independent vs aggregate? Determining the most effective security controls approach for any organization has many considerations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680591/Blog/Hero%20Images/compliance-frameworks.jpg","https://about.gitlab.com/blog/choosing-a-compliance-framework","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab went about choosing the right compliance framework\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeff Burrows\"}],\n        \"datePublished\": \"2019-05-07\",\n      }",{"title":27548,"description":27549,"authors":27554,"heroImage":27550,"date":27555,"category":790,"tags":27556},[26737],"2019-05-07",[730,1569,790],{"slug":27558,"featured":6,"template":736},"choosing-a-compliance-framework","content:en-us:blog:choosing-a-compliance-framework.yml","Choosing A Compliance Framework","en-us/blog/choosing-a-compliance-framework.yml","en-us/blog/choosing-a-compliance-framework",{"_path":27564,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27565,"content":27571,"config":27574,"_id":27576,"_type":16,"title":27577,"_source":17,"_file":27578,"_stem":27579,"_extension":20},"/en-us/blog/how-do-you-contribute",{"title":27566,"description":27567,"ogTitle":27566,"ogDescription":27567,"noIndex":6,"ogImage":27568,"ogUrl":27569,"ogSiteName":995,"ogType":996,"canonicalUrls":27569,"schema":27570},"How do you contribute?","Your contribution graph captures a moment in time like few things can, and we want to celebrate it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679742/Blog/Hero%20Images/contribute-social-cover.png","https://about.gitlab.com/blog/how-do-you-contribute","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How do you contribute?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2019-05-07\",\n      }",{"title":27566,"description":27567,"authors":27572,"heroImage":27568,"date":27555,"category":1388,"tags":27573},[20500],[269],{"slug":27575,"featured":6,"template":736},"how-do-you-contribute","content:en-us:blog:how-do-you-contribute.yml","How Do You Contribute","en-us/blog/how-do-you-contribute.yml","en-us/blog/how-do-you-contribute",{"_path":27581,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27582,"content":27588,"config":27592,"_id":27594,"_type":16,"title":27595,"_source":17,"_file":27596,"_stem":27597,"_extension":20},"/en-us/blog/secure-containers-devops",{"title":27583,"description":27584,"ogTitle":27583,"ogDescription":27584,"noIndex":6,"ogImage":27585,"ogUrl":27586,"ogSiteName":995,"ogType":996,"canonicalUrls":27586,"schema":27587},"A shift left strategy for the cloud","Protect your software in the cloud by bringing vulnerability testing closer to remediation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670146/Blog/Hero%20Images/containers-for-five-things-kubernetes-blog-post.jpg","https://about.gitlab.com/blog/secure-containers-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A shift left strategy for the cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"},{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-05-03\",\n      }",{"title":27583,"description":27584,"authors":27589,"heroImage":27585,"date":27590,"category":8140,"tags":27591},[11487,21105],"2019-05-03",[582,564,2908,790],{"slug":27593,"featured":6,"template":736},"secure-containers-devops","content:en-us:blog:secure-containers-devops.yml","Secure Containers Devops","en-us/blog/secure-containers-devops.yml","en-us/blog/secure-containers-devops",{"_path":27599,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27600,"content":27605,"config":27608,"_id":27610,"_type":16,"title":27611,"_source":17,"_file":27612,"_stem":27613,"_extension":20},"/en-us/blog/suspicious-git-activity-security-update",{"title":27601,"description":27602,"ogTitle":27601,"ogDescription":27602,"noIndex":6,"ogImage":16110,"ogUrl":27603,"ogSiteName":995,"ogType":996,"canonicalUrls":27603,"schema":27604},"Repositories held for ransom by using valid credentials","We’ve learned of suspicious Git activity on GitLab. Affected users have been notified.","https://about.gitlab.com/blog/suspicious-git-activity-security-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Repositories held for ransom by using valid credentials\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-05-03\",\n      }",{"title":27601,"description":27602,"authors":27606,"heroImage":16110,"date":27590,"category":301,"tags":27607},[1000],[790],{"slug":27609,"featured":6,"template":736},"suspicious-git-activity-security-update","content:en-us:blog:suspicious-git-activity-security-update.yml","Suspicious Git Activity Security Update","en-us/blog/suspicious-git-activity-security-update.yml","en-us/blog/suspicious-git-activity-security-update",{"_path":27615,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27616,"content":27622,"config":27626,"_id":27628,"_type":16,"title":27629,"_source":17,"_file":27630,"_stem":27631,"_extension":20},"/en-us/blog/gitlab-journey-from-azure-to-gcp",{"title":27617,"description":27618,"ogTitle":27617,"ogDescription":27618,"noIndex":6,"ogImage":27619,"ogUrl":27620,"ogSiteName":995,"ogType":996,"canonicalUrls":27620,"schema":27621},"GitLab’s journey from Azure to GCP","GitLab Staff Engineer Andrew Newdigate shares how we completed our migration to Google Cloud Platform, and how we overcame challenges along the way.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671280/Blog/Hero%20Images/gitlab-gke-integration-cover.png","https://about.gitlab.com/blog/gitlab-journey-from-azure-to-gcp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s journey from Azure to GCP\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-05-02\",\n      }",{"title":27617,"description":27618,"authors":27623,"heroImage":27619,"date":27624,"category":301,"tags":27625},[17150],"2019-05-02",[1730,582,3346,2908],{"slug":27627,"featured":6,"template":736},"gitlab-journey-from-azure-to-gcp","content:en-us:blog:gitlab-journey-from-azure-to-gcp.yml","Gitlab Journey From Azure To Gcp","en-us/blog/gitlab-journey-from-azure-to-gcp.yml","en-us/blog/gitlab-journey-from-azure-to-gcp",{"_path":27633,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27634,"content":27639,"config":27642,"_id":27644,"_type":16,"title":27645,"_source":17,"_file":27646,"_stem":27647,"_extension":20},"/en-us/blog/running-a-consistent-serverless-platform",{"title":27635,"description":27636,"ogTitle":27635,"ogDescription":27636,"noIndex":6,"ogImage":24522,"ogUrl":27637,"ogSiteName":995,"ogType":996,"canonicalUrls":27637,"schema":27638},"Run a consistent serverless platform with GitLab and Knative","Portability of your serverless platform is now easy with GitLab and Knative.","https://about.gitlab.com/blog/running-a-consistent-serverless-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Run a consistent serverless platform with GitLab and Knative\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Gruesso\"}],\n        \"datePublished\": \"2019-05-02\",\n      }",{"title":27635,"description":27636,"authors":27640,"heroImage":24522,"date":27624,"category":301,"tags":27641},[17929],[582,279,3346,1730,2908],{"slug":27643,"featured":6,"template":736},"running-a-consistent-serverless-platform","content:en-us:blog:running-a-consistent-serverless-platform.yml","Running A Consistent Serverless Platform","en-us/blog/running-a-consistent-serverless-platform.yml","en-us/blog/running-a-consistent-serverless-platform",{"_path":27649,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27650,"content":27656,"config":27660,"_id":27662,"_type":16,"title":27663,"_source":17,"_file":27664,"_stem":27665,"_extension":20},"/en-us/blog/trends-in-test-automation",{"title":27651,"description":27652,"ogTitle":27651,"ogDescription":27652,"noIndex":6,"ogImage":27653,"ogUrl":27654,"ogSiteName":995,"ogType":996,"canonicalUrls":27654,"schema":27655},"3 Trends in test automation","Faster deployments, fewer bugs, better user experiences – see the latest trends in test automation and what they're bringing to the table.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663662/Blog/Hero%20Images/trends-in-test-automation.jpg","https://about.gitlab.com/blog/trends-in-test-automation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Trends in test automation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-05-01\",\n      }",{"title":27651,"description":27652,"authors":27657,"heroImage":27653,"date":27658,"category":8140,"tags":27659},[17150],"2019-05-01",[564,110,1335],{"slug":27661,"featured":6,"template":736},"trends-in-test-automation","content:en-us:blog:trends-in-test-automation.yml","Trends In Test Automation","en-us/blog/trends-in-test-automation.yml","en-us/blog/trends-in-test-automation",{"_path":27667,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27668,"content":27674,"config":27678,"_id":27680,"_type":16,"title":27681,"_source":17,"_file":27682,"_stem":27683,"_extension":20},"/en-us/blog/gemnasium-our-gitlab-journey",{"title":27669,"description":27670,"ogTitle":27669,"ogDescription":27670,"noIndex":6,"ogImage":27671,"ogUrl":27672,"ogSiteName":995,"ogType":996,"canonicalUrls":27672,"schema":27673},"Gemnasium: Our GitLab journey","We joined GitLab as a small startup and quickly became an integral part of the company. We want to share our success story with the startup community.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679751/Blog/Hero%20Images/gemnasium-gitlab-cover.png","https://about.gitlab.com/blog/gemnasium-our-gitlab-journey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Gemnasium: Our GitLab journey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Philippe Lafoucrière\"}],\n        \"datePublished\": \"2019-04-30\",\n      }",{"title":27669,"description":27670,"authors":27675,"heroImage":27671,"date":27676,"category":301,"tags":27677},[17204],"2019-04-30",[1569,790,10011],{"slug":27679,"featured":6,"template":736},"gemnasium-our-gitlab-journey","content:en-us:blog:gemnasium-our-gitlab-journey.yml","Gemnasium Our Gitlab Journey","en-us/blog/gemnasium-our-gitlab-journey.yml","en-us/blog/gemnasium-our-gitlab-journey",{"_path":27685,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27686,"content":27692,"config":27695,"_id":27697,"_type":16,"title":27698,"_source":17,"_file":27699,"_stem":27700,"_extension":20},"/en-us/blog/speed-secure-software-delivery-devsecops",{"title":27687,"description":27688,"ogTitle":27687,"ogDescription":27688,"noIndex":6,"ogImage":27689,"ogUrl":27690,"ogSiteName":995,"ogType":996,"canonicalUrls":27690,"schema":27691},"Speed up secure software delivery with DevSecOps","It’s time to shift left: Embed security into your DevOps workflow to increase speed, quality, and efficiency in the SDLC.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671258/Blog/Hero%20Images/just-commit-blog-cover.png","https://about.gitlab.com/blog/speed-secure-software-delivery-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Speed up secure software delivery with DevSecOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-04-30\",\n      }",{"title":27687,"description":27688,"authors":27693,"heroImage":27689,"date":27676,"category":8140,"tags":27694},[21105],[110,564,790],{"slug":27696,"featured":6,"template":736},"speed-secure-software-delivery-devsecops","content:en-us:blog:speed-secure-software-delivery-devsecops.yml","Speed Secure Software Delivery Devsecops","en-us/blog/speed-secure-software-delivery-devsecops.yml","en-us/blog/speed-secure-software-delivery-devsecops",{"_path":27702,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27703,"content":27708,"config":27712,"_id":27714,"_type":16,"title":27715,"_source":17,"_file":27716,"_stem":27717,"_extension":20},"/en-us/blog/avoiding-foreclosure-on-your-technical-debt",{"title":27704,"description":27705,"ogTitle":27704,"ogDescription":27705,"noIndex":6,"ogImage":27689,"ogUrl":27706,"ogSiteName":995,"ogType":996,"canonicalUrls":27706,"schema":27707},"How to avoid foreclosure on your technical debt","There’s no need to be embarrassed — we all have technical debt. Here’s how you pay it off.","https://about.gitlab.com/blog/avoiding-foreclosure-on-your-technical-debt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to avoid foreclosure on your technical debt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jeremiah\"}],\n        \"datePublished\": \"2019-04-29\",\n      }",{"title":27704,"description":27705,"authors":27709,"heroImage":27689,"date":27710,"category":8140,"tags":27711},[27376],"2019-04-29",[564,1335],{"slug":27713,"featured":6,"template":736},"avoiding-foreclosure-on-your-technical-debt","content:en-us:blog:avoiding-foreclosure-on-your-technical-debt.yml","Avoiding Foreclosure On Your Technical Debt","en-us/blog/avoiding-foreclosure-on-your-technical-debt.yml","en-us/blog/avoiding-foreclosure-on-your-technical-debt",{"_path":27719,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27720,"content":27725,"config":27729,"_id":27731,"_type":16,"title":27732,"_source":17,"_file":27733,"_stem":27734,"_extension":20},"/en-us/blog/inside-the-gitlab-public-bug-bounty-program",{"title":27721,"description":27722,"ogTitle":27721,"ogDescription":27722,"noIndex":6,"ogImage":10384,"ogUrl":27723,"ogSiteName":995,"ogType":996,"canonicalUrls":27723,"schema":27724},"Inside the GitLab public bug bounty program","Four months since going public with our bug bounty program, we dive into where we’re at, what success looks like, and what to expect down the road.","https://about.gitlab.com/blog/inside-the-gitlab-public-bug-bounty-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside the GitLab public bug bounty program\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kathy Wang\"}],\n        \"datePublished\": \"2019-04-29\",\n      }",{"title":27721,"description":27722,"authors":27726,"heroImage":10384,"date":27710,"category":790,"tags":27728},[27727],"Kathy Wang",[269,790,1265,2483],{"slug":27730,"featured":6,"template":736},"inside-the-gitlab-public-bug-bounty-program","content:en-us:blog:inside-the-gitlab-public-bug-bounty-program.yml","Inside The Gitlab Public Bug Bounty Program","en-us/blog/inside-the-gitlab-public-bug-bounty-program.yml","en-us/blog/inside-the-gitlab-public-bug-bounty-program",{"_path":27736,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27737,"content":27742,"config":27747,"_id":27749,"_type":16,"title":27750,"_source":17,"_file":27751,"_stem":27752,"_extension":20},"/en-us/blog/agile-iteration-unique-onboarding-experience",{"title":27738,"description":27739,"ogTitle":27738,"ogDescription":27739,"noIndex":6,"ogImage":5461,"ogUrl":27740,"ogSiteName":995,"ogType":996,"canonicalUrls":27740,"schema":27741},"Agile iteration: My unique onboarding experience at GitLab","How I learned to iterate quickly during my first week at GitLab.","https://about.gitlab.com/blog/agile-iteration-unique-onboarding-experience","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Agile iteration: My unique onboarding experience at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Fahey\"}],\n        \"datePublished\": \"2019-04-26\",\n      }",{"title":27738,"description":27739,"authors":27743,"heroImage":5461,"date":27745,"category":790,"tags":27746},[27744],"Michael Fahey","2019-04-26",[1569,790],{"slug":27748,"featured":6,"template":736},"agile-iteration-unique-onboarding-experience","content:en-us:blog:agile-iteration-unique-onboarding-experience.yml","Agile Iteration Unique Onboarding Experience","en-us/blog/agile-iteration-unique-onboarding-experience.yml","en-us/blog/agile-iteration-unique-onboarding-experience",{"_path":27754,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27755,"content":27761,"config":27765,"_id":27767,"_type":16,"title":27768,"_source":17,"_file":27769,"_stem":27770,"_extension":20},"/en-us/blog/5-teams-that-made-the-switch-to-gitlab-ci-cd",{"title":27756,"description":27757,"ogTitle":27756,"ogDescription":27757,"noIndex":6,"ogImage":27758,"ogUrl":27759,"ogSiteName":995,"ogType":996,"canonicalUrls":27759,"schema":27760},"5 Teams that made the switch to GitLab CI/CD","See what happened when these five teams moved on from old continuous integration and delivery solutions and switched to GitLab CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678657/Blog/Hero%20Images/ci-cd-competitive-campaign-blog-cover.png","https://about.gitlab.com/blog/5-teams-that-made-the-switch-to-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Teams that made the switch to GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-04-25\",\n      }",{"title":27756,"description":27757,"authors":27762,"heroImage":27758,"date":27763,"category":858,"tags":27764},[17150],"2019-04-25",[3075,564,110],{"slug":27766,"featured":6,"template":736},"5-teams-that-made-the-switch-to-gitlab-ci-cd","content:en-us:blog:5-teams-that-made-the-switch-to-gitlab-ci-cd.yml","5 Teams That Made The Switch To Gitlab Ci Cd","en-us/blog/5-teams-that-made-the-switch-to-gitlab-ci-cd.yml","en-us/blog/5-teams-that-made-the-switch-to-gitlab-ci-cd",{"_path":27772,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27773,"content":27779,"config":27784,"_id":27786,"_type":16,"title":27787,"_source":17,"_file":27788,"_stem":27789,"_extension":20},"/en-us/blog/the-gitlab-handbook-by-numbers",{"title":27774,"description":27775,"ogTitle":27774,"ogDescription":27775,"noIndex":6,"ogImage":27776,"ogUrl":27777,"ogSiteName":995,"ogType":996,"canonicalUrls":27777,"schema":27778},"The GitLab handbook by numbers","Two GitLab team-members take a fresh look at GitLab's open source team handbook, charting its evolution over the years to the weighty tome it is today.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670434/Blog/Hero%20Images/handbook-cover.jpg","https://about.gitlab.com/blog/the-gitlab-handbook-by-numbers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The GitLab handbook by numbers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lukas Eipert\"},{\"@type\":\"Person\",\"name\":\"Lee Matos\"}],\n        \"datePublished\": \"2019-04-24\",\n      }",{"title":27774,"description":27775,"authors":27780,"heroImage":27776,"date":27782,"category":301,"tags":27783},[27781,18259],"Lukas Eipert","2019-04-24",[2815,730,1569,1265],{"slug":27785,"featured":6,"template":736},"the-gitlab-handbook-by-numbers","content:en-us:blog:the-gitlab-handbook-by-numbers.yml","The Gitlab Handbook By Numbers","en-us/blog/the-gitlab-handbook-by-numbers.yml","en-us/blog/the-gitlab-handbook-by-numbers",{"_path":27791,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27792,"content":27797,"config":27801,"_id":27803,"_type":16,"title":27804,"_source":17,"_file":27805,"_stem":27806,"_extension":20},"/en-us/blog/align-business-strategy-and-app-delivery",{"title":27793,"description":27794,"ogTitle":27793,"ogDescription":27794,"noIndex":6,"ogImage":27689,"ogUrl":27795,"ogSiteName":995,"ogType":996,"canonicalUrls":27795,"schema":27796},"Deliver business value at the speed of business","Read here on how DevOps helps delivering business value with faster cycle times","https://about.gitlab.com/blog/align-business-strategy-and-app-delivery","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Deliver business value at the speed of business\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jeremiah\"}],\n        \"datePublished\": \"2019-04-23\",\n      }",{"title":27793,"description":27794,"authors":27798,"heroImage":27689,"date":27799,"category":8140,"tags":27800},[27376],"2019-04-23",[564,1335],{"slug":27802,"featured":6,"template":736},"align-business-strategy-and-app-delivery","content:en-us:blog:align-business-strategy-and-app-delivery.yml","Align Business Strategy And App Delivery","en-us/blog/align-business-strategy-and-app-delivery.yml","en-us/blog/align-business-strategy-and-app-delivery",{"_path":27808,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27809,"content":27815,"config":27819,"_id":27821,"_type":16,"title":27822,"_source":17,"_file":27823,"_stem":27824,"_extension":20},"/en-us/blog/progressive-delivery-using-review-apps",{"title":27810,"description":27811,"ogTitle":27810,"ogDescription":27811,"noIndex":6,"ogImage":27812,"ogUrl":27813,"ogSiteName":995,"ogType":996,"canonicalUrls":27813,"schema":27814},"Progressive Delivery: How to get started with Review Apps","Progressive Delivery is the next evolution of continuous delivery, and Review Apps are a key enabler.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666841/Blog/Hero%20Images/progressive-delivery-review-apps.jpg","https://about.gitlab.com/blog/progressive-delivery-using-review-apps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Progressive Delivery: How to get started with Review Apps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-04-19\",\n      }",{"title":27810,"description":27811,"authors":27816,"heroImage":27812,"date":27817,"category":858,"tags":27818},[20535],"2019-04-19",[110,730,2097],{"slug":27820,"featured":6,"template":736},"progressive-delivery-using-review-apps","content:en-us:blog:progressive-delivery-using-review-apps.yml","Progressive Delivery Using Review Apps","en-us/blog/progressive-delivery-using-review-apps.yml","en-us/blog/progressive-delivery-using-review-apps",{"_path":27826,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27827,"content":27832,"config":27837,"_id":27839,"_type":16,"title":27840,"_source":17,"_file":27841,"_stem":27842,"_extension":20},"/en-us/blog/industry-moving-to-single-application-for-devops",{"title":27828,"description":27829,"ogTitle":27828,"ogDescription":27829,"noIndex":6,"ogImage":26205,"ogUrl":27830,"ogSiteName":995,"ogType":996,"canonicalUrls":27830,"schema":27831},"The industry moves toward single DevOps lifecycle applications","Today's acquisition of ElectricCloud is further validation of a shift towards DevOps consolidation.","https://about.gitlab.com/blog/industry-moving-to-single-application-for-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The industry is moving towards a single application for the DevOps lifecycle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-04-18\",\n      }",{"title":27833,"description":27829,"authors":27834,"heroImage":26205,"date":27835,"category":301,"tags":27836},"The industry is moving towards a single application for the DevOps lifecycle",[1000],"2019-04-18",[564,1049],{"slug":27838,"featured":6,"template":736},"industry-moving-to-single-application-for-devops","content:en-us:blog:industry-moving-to-single-application-for-devops.yml","Industry Moving To Single Application For Devops","en-us/blog/industry-moving-to-single-application-for-devops.yml","en-us/blog/industry-moving-to-single-application-for-devops",{"_path":27844,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27845,"content":27851,"config":27855,"_id":27857,"_type":16,"title":27858,"_source":17,"_file":27859,"_stem":27860,"_extension":20},"/en-us/blog/lessons-on-building-a-distributed-company",{"title":27846,"description":27847,"ogTitle":27846,"ogDescription":27847,"noIndex":6,"ogImage":27848,"ogUrl":27849,"ogSiteName":995,"ogType":996,"canonicalUrls":27849,"schema":27850},"9 Lessons on building a distributed company","GitLab CEO Sid Sijbrandij and Outklip Founder Sunil Kowlgi talk about remote hiring, management, customer support, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678641/Blog/Hero%20Images/lessons-building-distributed-company.jpg","https://about.gitlab.com/blog/lessons-on-building-a-distributed-company","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"9 Lessons on building a distributed company\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sunil Kowlgi\"}],\n        \"datePublished\": \"2019-04-18\",\n      }",{"title":27846,"description":27847,"authors":27852,"heroImage":27848,"date":27835,"category":6121,"tags":27854},[27853],"Sunil Kowlgi",[1569,1265,3914,10011],{"slug":27856,"featured":6,"template":736},"lessons-on-building-a-distributed-company","content:en-us:blog:lessons-on-building-a-distributed-company.yml","Lessons On Building A Distributed Company","en-us/blog/lessons-on-building-a-distributed-company.yml","en-us/blog/lessons-on-building-a-distributed-company",{"_path":27862,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27863,"content":27868,"config":27872,"_id":27874,"_type":16,"title":27875,"_source":17,"_file":27876,"_stem":27877,"_extension":20},"/en-us/blog/contributor-program-update",{"title":27864,"description":27865,"ogTitle":27864,"ogDescription":27865,"noIndex":6,"ogImage":18395,"ogUrl":27866,"ogSiteName":995,"ogType":996,"canonicalUrls":27866,"schema":27867},"Updates from the GitLab contributor community","Here's what's happening with the wider contributor community.","https://about.gitlab.com/blog/contributor-program-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Updates from the GitLab contributor community\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-04-17\",\n      }",{"title":27864,"description":27865,"authors":27869,"heroImage":18395,"date":27870,"category":1388,"tags":27871},[20126],"2019-04-17",[269,2815,1265],{"slug":27873,"featured":6,"template":736},"contributor-program-update","content:en-us:blog:contributor-program-update.yml","Contributor Program Update","en-us/blog/contributor-program-update.yml","en-us/blog/contributor-program-update",{"_path":27879,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27880,"content":27885,"config":27890,"_id":27892,"_type":16,"title":27893,"_source":17,"_file":27894,"_stem":27895,"_extension":20},"/en-us/blog/google-cloud-next-anthos-kubernetes",{"title":27881,"description":27882,"ogTitle":27881,"ogDescription":27882,"noIndex":6,"ogImage":11098,"ogUrl":27883,"ogSiteName":995,"ogType":996,"canonicalUrls":27883,"schema":27884},"Google Cloud Next: Doubling down on Kubernetes and multi-cloud","Everything you need to know from last week’s big event.","https://about.gitlab.com/blog/google-cloud-next-anthos-kubernetes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Google Cloud Next: Doubling down on Kubernetes and multi-cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Smolensky\"}],\n        \"datePublished\": \"2019-04-16\",\n      }",{"title":27881,"description":27882,"authors":27886,"heroImage":11098,"date":27888,"category":301,"tags":27889},[27887],"Melissa Smolensky","2019-04-16",[582,279,3346,1730,2908],{"slug":27891,"featured":6,"template":736},"google-cloud-next-anthos-kubernetes","content:en-us:blog:google-cloud-next-anthos-kubernetes.yml","Google Cloud Next Anthos Kubernetes","en-us/blog/google-cloud-next-anthos-kubernetes.yml","en-us/blog/google-cloud-next-anthos-kubernetes",{"_path":27897,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27898,"content":27903,"config":27907,"_id":27909,"_type":16,"title":27910,"_source":17,"_file":27911,"_stem":27912,"_extension":20},"/en-us/blog/upgrade-runners-for-mr-pipelines",{"title":27899,"description":27900,"ogTitle":27899,"ogDescription":27900,"noIndex":6,"ogImage":11046,"ogUrl":27901,"ogSiteName":995,"ogType":996,"canonicalUrls":27901,"schema":27902},"Private Runner upgrade required for GitLab 11.10 MR pipelines","All users of Merge Request Pipelines must ensure they are using GitLab Runners > version 11.8.","https://about.gitlab.com/blog/upgrade-runners-for-mr-pipelines","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Private Runner upgrade required for users of Merge Request Pipelines in GitLab 11.10\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-04-16\",\n      }",{"title":27904,"description":27900,"authors":27905,"heroImage":11046,"date":27888,"category":1049,"tags":27906},"Private Runner upgrade required for users of Merge Request Pipelines in GitLab 11.10",[20535],[751,892],{"slug":27908,"featured":6,"template":736},"upgrade-runners-for-mr-pipelines","content:en-us:blog:upgrade-runners-for-mr-pipelines.yml","Upgrade Runners For Mr Pipelines","en-us/blog/upgrade-runners-for-mr-pipelines.yml","en-us/blog/upgrade-runners-for-mr-pipelines",{"_path":27914,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27915,"content":27921,"config":27925,"_id":27927,"_type":16,"title":27928,"_source":17,"_file":27929,"_stem":27930,"_extension":20},"/en-us/blog/open-source-analytics",{"title":27916,"description":27917,"ogTitle":27916,"ogDescription":27917,"noIndex":6,"ogImage":27918,"ogUrl":27919,"ogSiteName":995,"ogType":996,"canonicalUrls":27919,"schema":27920},"4 Examples of the power of open source analytics","Our Data and Analytics team manager reflects on how open source and radical transparency has benefited analytics work at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670464/Blog/Hero%20Images/gitlab-loves-open-source.jpg","https://about.gitlab.com/blog/open-source-analytics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 Examples of the power of open source analytics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taylor Murphy\"}],\n        \"datePublished\": \"2019-04-15\",\n      }",{"title":27916,"description":27917,"authors":27922,"heroImage":27918,"date":27923,"category":1388,"tags":27924},[22470],"2019-04-15",[269,1569,1265],{"slug":27926,"featured":6,"template":736},"open-source-analytics","content:en-us:blog:open-source-analytics.yml","Open Source Analytics","en-us/blog/open-source-analytics.yml","en-us/blog/open-source-analytics",{"_path":27932,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27933,"content":27938,"config":27943,"_id":27945,"_type":16,"title":27946,"_source":17,"_file":27947,"_stem":27948,"_extension":20},"/en-us/blog/gitlab-is-an-sca-contender",{"title":27934,"description":27935,"ogTitle":27934,"ogDescription":27935,"noIndex":6,"ogImage":14897,"ogUrl":27936,"ogSiteName":995,"ogType":996,"canonicalUrls":27936,"schema":27937},"Forrester names GitLab challenger in software composition","GitLab has been recognized by analysts as a challenger in Software Composition Analysis.","https://about.gitlab.com/blog/gitlab-is-an-sca-contender","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is named a Challenger in The Forrester Wave™: Software Composition Analysis, Q2 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2019-04-12\",\n      }",{"title":27939,"description":27935,"authors":27940,"heroImage":14897,"date":27941,"category":301,"tags":27942},"GitLab is named a Challenger in The Forrester Wave™: Software Composition Analysis, Q2 2019",[11487],"2019-04-12",[582,1569,1265,1049,790,964],{"slug":27944,"featured":6,"template":736},"gitlab-is-an-sca-contender","content:en-us:blog:gitlab-is-an-sca-contender.yml","Gitlab Is An Sca Contender","en-us/blog/gitlab-is-an-sca-contender.yml","en-us/blog/gitlab-is-an-sca-contender",{"_path":27950,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27951,"content":27956,"config":27959,"_id":27961,"_type":16,"title":27962,"_source":17,"_file":27963,"_stem":27964,"_extension":20},"/en-us/blog/marcel-amirault-contributor-post",{"title":27952,"description":27953,"ogTitle":27952,"ogDescription":27953,"noIndex":6,"ogImage":24329,"ogUrl":27954,"ogSiteName":995,"ogType":996,"canonicalUrls":27954,"schema":27955},"GitLab Code Contributor: Marcel Amirault","Recent MVP Marcel Amirault shares why he started contributing to GitLab.","https://about.gitlab.com/blog/marcel-amirault-contributor-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Marcel Amirault\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-04-12\",\n      }",{"title":27952,"description":27953,"authors":27957,"heroImage":24329,"date":27941,"category":1388,"tags":27958},[20126],[269,2815,1265,3074],{"slug":27960,"featured":6,"template":736},"marcel-amirault-contributor-post","content:en-us:blog:marcel-amirault-contributor-post.yml","Marcel Amirault Contributor Post","en-us/blog/marcel-amirault-contributor-post.yml","en-us/blog/marcel-amirault-contributor-post",{"_path":27966,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27967,"content":27973,"config":27977,"_id":27979,"_type":16,"title":27980,"_source":17,"_file":27981,"_stem":27982,"_extension":20},"/en-us/blog/reduce-it-costs",{"title":27968,"description":27969,"ogTitle":27968,"ogDescription":27969,"noIndex":6,"ogImage":27970,"ogUrl":27971,"ogSiteName":995,"ogType":996,"canonicalUrls":27971,"schema":27972},"How to reduce IT costs","Four ways organizations can spend less on IT and more on innovation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680558/Blog/Hero%20Images/reduce-it-costs.jpg","https://about.gitlab.com/blog/reduce-it-costs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to reduce IT costs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-04-11\",\n      }",{"title":27968,"description":27969,"authors":27974,"heroImage":27970,"date":27975,"category":8140,"tags":27976},[17150],"2019-04-11",[582,564],{"slug":27978,"featured":6,"template":736},"reduce-it-costs","content:en-us:blog:reduce-it-costs.yml","Reduce It Costs","en-us/blog/reduce-it-costs.yml","en-us/blog/reduce-it-costs",{"_path":27984,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":27985,"content":27991,"config":27995,"_id":27997,"_type":16,"title":27998,"_source":17,"_file":27999,"_stem":28000,"_extension":20},"/en-us/blog/gitlab-security-tools-and-the-hipaa-risk-analysis",{"title":27986,"description":27987,"ogTitle":27986,"ogDescription":27987,"noIndex":6,"ogImage":27988,"ogUrl":27989,"ogSiteName":995,"ogType":996,"canonicalUrls":27989,"schema":27990},"GitLab's security tools and the HIPAA risk analysis","A closer look at GitLab’s security scanning tools and the HIPAA risk analysis.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680548/Blog/Hero%20Images/gitlab-security-and-hipaa-risk-analysis.jpg","https://about.gitlab.com/blog/gitlab-security-tools-and-the-hipaa-risk-analysis","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's security tools and the HIPAA risk analysis\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Luka Trbojevic\"}],\n        \"datePublished\": \"2019-04-10\",\n      }",{"title":27986,"description":27987,"authors":27992,"heroImage":27988,"date":27993,"category":790,"tags":27994},[26136],"2019-04-10",[790,892,1335],{"slug":27996,"featured":6,"template":736},"gitlab-security-tools-and-the-hipaa-risk-analysis","content:en-us:blog:gitlab-security-tools-and-the-hipaa-risk-analysis.yml","Gitlab Security Tools And The Hipaa Risk Analysis","en-us/blog/gitlab-security-tools-and-the-hipaa-risk-analysis.yml","en-us/blog/gitlab-security-tools-and-the-hipaa-risk-analysis",{"_path":28002,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28003,"content":28008,"config":28011,"_id":28013,"_type":16,"title":28004,"_source":17,"_file":28014,"_stem":28015,"_extension":20},"/en-us/blog/group-runner-registration-token-vulnerability",{"title":28004,"description":28005,"ogTitle":28004,"ogDescription":28005,"noIndex":6,"ogImage":5461,"ogUrl":28006,"ogSiteName":995,"ogType":996,"canonicalUrls":28006,"schema":28007},"Group Runner Registration Token Vulnerability","How we responded to a vulnerability in group runner registration tokens.","https://about.gitlab.com/blog/group-runner-registration-token-vulnerability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Group Runner Registration Token Vulnerability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kathy Wang\"}],\n        \"datePublished\": \"2019-04-10\",\n      }",{"title":28004,"description":28005,"authors":28009,"heroImage":5461,"date":27993,"category":790,"tags":28010},[27727],[790],{"slug":28012,"featured":6,"template":736},"group-runner-registration-token-vulnerability","content:en-us:blog:group-runner-registration-token-vulnerability.yml","en-us/blog/group-runner-registration-token-vulnerability.yml","en-us/blog/group-runner-registration-token-vulnerability",{"_path":28017,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28018,"content":28023,"config":28027,"_id":28029,"_type":16,"title":28030,"_source":17,"_file":28031,"_stem":28032,"_extension":20},"/en-us/blog/why-improving-continuously-speeds-up-delivery",{"title":28019,"description":28020,"ogTitle":28019,"ogDescription":28020,"noIndex":6,"ogImage":27689,"ogUrl":28021,"ogSiteName":995,"ogType":996,"canonicalUrls":28021,"schema":28022},"Why improving continuously speeds up delivery","How do you keep pace with rapid changes in technology? The answer is continuous improvement.","https://about.gitlab.com/blog/why-improving-continuously-speeds-up-delivery","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why improving continuously speeds up delivery\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jeremiah\"}],\n        \"datePublished\": \"2019-04-09\",\n      }",{"title":28019,"description":28020,"authors":28024,"heroImage":27689,"date":28025,"category":8140,"tags":28026},[27376],"2019-04-09",[564,1335],{"slug":28028,"featured":6,"template":736},"why-improving-continuously-speeds-up-delivery","content:en-us:blog:why-improving-continuously-speeds-up-delivery.yml","Why Improving Continuously Speeds Up Delivery","en-us/blog/why-improving-continuously-speeds-up-delivery.yml","en-us/blog/why-improving-continuously-speeds-up-delivery",{"_path":28034,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28035,"content":28041,"config":28045,"_id":28047,"_type":16,"title":28048,"_source":17,"_file":28049,"_stem":28050,"_extension":20},"/en-us/blog/khosla-ventures-gitlab-meeting",{"title":28036,"description":28037,"ogTitle":28036,"ogDescription":28037,"noIndex":6,"ogImage":28038,"ogUrl":28039,"ogSiteName":995,"ogType":996,"canonicalUrls":28039,"schema":28040},"Acquisitions, growth curves, and IPO strategies: A day at Khosla Ventures","A CEO Shadow’s take on GitLab’s annual investor meeting with Khosla Ventures.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671620/Blog/Hero%20Images/khosla-ventures-meeting.jpg","https://about.gitlab.com/blog/khosla-ventures-gitlab-meeting","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Acquisitions, growth curves, and IPO strategies: A day at Khosla Ventures\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2019-04-08\",\n      }",{"title":28036,"description":28037,"authors":28042,"heroImage":28038,"date":28043,"category":301,"tags":28044},[27004],"2019-04-08",[1569,10011,3914],{"slug":28046,"featured":6,"template":736},"khosla-ventures-gitlab-meeting","content:en-us:blog:khosla-ventures-gitlab-meeting.yml","Khosla Ventures Gitlab Meeting","en-us/blog/khosla-ventures-gitlab-meeting.yml","en-us/blog/khosla-ventures-gitlab-meeting",{"_path":28052,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28053,"content":28058,"config":28063,"_id":28065,"_type":16,"title":28066,"_source":17,"_file":28067,"_stem":28068,"_extension":20},"/en-us/blog/more-performant-and-robust-task-lists-in-gitlab",{"title":28054,"description":28055,"ogTitle":28054,"ogDescription":28055,"noIndex":6,"ogImage":11837,"ogUrl":28056,"ogSiteName":995,"ogType":996,"canonicalUrls":28056,"schema":28057},"How we delivered more performant and robust task lists in GitLab","How simple checkboxes became a challenging engineering problem – and how we fixed it.","https://about.gitlab.com/blog/more-performant-and-robust-task-lists-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we delivered more performant and robust task lists in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatih Acet\"},{\"@type\":\"Person\",\"name\":\"Brett Walker\"}],\n        \"datePublished\": \"2019-04-05\",\n      }",{"title":28054,"description":28055,"authors":28059,"heroImage":11837,"date":28061,"category":858,"tags":28062},[28060,27160],"Fatih Acet","2019-04-05",[10121,1569],{"slug":28064,"featured":6,"template":736},"more-performant-and-robust-task-lists-in-gitlab","content:en-us:blog:more-performant-and-robust-task-lists-in-gitlab.yml","More Performant And Robust Task Lists In Gitlab","en-us/blog/more-performant-and-robust-task-lists-in-gitlab.yml","en-us/blog/more-performant-and-robust-task-lists-in-gitlab",{"_path":28070,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28071,"content":28076,"config":28080,"_id":28082,"_type":16,"title":28083,"_source":17,"_file":28084,"_stem":28085,"_extension":20},"/en-us/blog/google-next-post",{"title":28072,"description":28073,"ogTitle":28072,"ogDescription":28073,"noIndex":6,"ogImage":23606,"ogUrl":28074,"ogSiteName":995,"ogType":996,"canonicalUrls":28074,"schema":28075},"What to check out at Google Cloud Next 2019","Support women who code by stopping by our booth, learn from a host of GitLab experts, and more.","https://about.gitlab.com/blog/google-next-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What to check out at Google Cloud Next 2019\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mayank Tahilramani\"}],\n        \"datePublished\": \"2019-04-04\",\n      }",{"title":28072,"description":28073,"authors":28077,"heroImage":23606,"date":28078,"category":301,"tags":28079},[24527],"2019-04-04",[729,2908,110,564,233,1265,790,964],{"slug":28081,"featured":6,"template":736},"google-next-post","content:en-us:blog:google-next-post.yml","Google Next Post","en-us/blog/google-next-post.yml","en-us/blog/google-next-post",{"_path":28087,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28088,"content":28094,"config":28098,"_id":28100,"_type":16,"title":28101,"_source":17,"_file":28102,"_stem":28103,"_extension":20},"/en-us/blog/five-ways-resist-service-wrapping-buyer-based-open-core",{"title":28089,"description":28090,"ogTitle":28089,"ogDescription":28090,"noIndex":6,"ogImage":28091,"ogUrl":28092,"ogSiteName":995,"ogType":996,"canonicalUrls":28092,"schema":28093},"5 Ways to resist the threat of service-wrapping with buyer-based open core","Commercial open source businesses are at risk of commoditization by hypercloud providers – here are some ways to avoid the trap.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680537/Blog/Hero%20Images/osls-buyer-based-open-source.jpg","https://about.gitlab.com/blog/five-ways-resist-service-wrapping-buyer-based-open-core","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 Ways to resist the threat of service-wrapping with buyer-based open core\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vanessa Wegner\"}],\n        \"datePublished\": \"2019-04-03\",\n      }",{"title":28089,"description":28090,"authors":28095,"heroImage":28091,"date":28096,"category":1388,"tags":28097},[21105],"2019-04-03",[269,1265,1569],{"slug":28099,"featured":6,"template":736},"five-ways-resist-service-wrapping-buyer-based-open-core","content:en-us:blog:five-ways-resist-service-wrapping-buyer-based-open-core.yml","Five Ways Resist Service Wrapping Buyer Based Open Core","en-us/blog/five-ways-resist-service-wrapping-buyer-based-open-core.yml","en-us/blog/five-ways-resist-service-wrapping-buyer-based-open-core",{"_path":28105,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28106,"content":28111,"config":28115,"_id":28117,"_type":16,"title":28118,"_source":17,"_file":28119,"_stem":28120,"_extension":20},"/en-us/blog/why-gitlab-ci-cd",{"title":28107,"description":28108,"ogTitle":28107,"ogDescription":28108,"noIndex":6,"ogImage":27758,"ogUrl":28109,"ogSiteName":995,"ogType":996,"canonicalUrls":28109,"schema":28110},"Why GitLab CI/CD?","With GitLab’s out-of-the-box CI/CD, you can spend less time maintaining and more time creating.","https://about.gitlab.com/blog/why-gitlab-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab CI/CD?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-04-02\",\n      }",{"title":28107,"description":28108,"authors":28112,"heroImage":27758,"date":28113,"category":301,"tags":28114},[17150],"2019-04-02",[110,564,1335],{"slug":28116,"featured":6,"template":736},"why-gitlab-ci-cd","content:en-us:blog:why-gitlab-ci-cd.yml","Why Gitlab Ci Cd","en-us/blog/why-gitlab-ci-cd.yml","en-us/blog/why-gitlab-ci-cd",{"_path":28122,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28123,"content":28129,"config":28133,"_id":28135,"_type":16,"title":28136,"_source":17,"_file":28137,"_stem":28138,"_extension":20},"/en-us/blog/evolution-of-zero-trust",{"title":28124,"description":28125,"ogTitle":28124,"ogDescription":28125,"noIndex":6,"ogImage":28126,"ogUrl":28127,"ogSiteName":995,"ogType":996,"canonicalUrls":28127,"schema":28128},"The evolution of Zero Trust","Zero Trust may be one of the hottest topics in security today, but it's not exactly new. Here's a history.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664096/Blog/Hero%20Images/evolution-of-zero-trust.jpg","https://about.gitlab.com/blog/evolution-of-zero-trust","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The evolution of Zero Trust\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Loveless\"}],\n        \"datePublished\": \"2019-04-01\",\n      }",{"title":28124,"description":28125,"authors":28130,"heroImage":28126,"date":28131,"category":790,"tags":28132},[5108],"2019-04-01",[1569,790,5733],{"slug":28134,"featured":6,"template":736},"evolution-of-zero-trust","content:en-us:blog:evolution-of-zero-trust.yml","Evolution Of Zero Trust","en-us/blog/evolution-of-zero-trust.yml","en-us/blog/evolution-of-zero-trust",{"_path":28140,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28141,"content":28147,"config":28152,"_id":28154,"_type":16,"title":28155,"_source":17,"_file":28156,"_stem":28157,"_extension":20},"/en-us/blog/zeit-launches-now-for-gitlab",{"title":28142,"description":28143,"ogTitle":28142,"ogDescription":28143,"noIndex":6,"ogImage":28144,"ogUrl":28145,"ogSiteName":995,"ogType":996,"canonicalUrls":28145,"schema":28146},"ZEIT launches Now for GitLab","This first-class integration can automatically deploy any GitLab project containing a static or dynamic website to ZEIT's global CDN.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670498/Blog/Hero%20Images/gitlab-zeit-cover.png","https://about.gitlab.com/blog/zeit-launches-now-for-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ZEIT launches Now for GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarup Banskota\"},{\"@type\":\"Person\",\"name\":\"Arunoda Susiripala\"}],\n        \"datePublished\": \"2019-04-01\",\n      }",{"title":28142,"description":28143,"authors":28148,"heroImage":28144,"date":28131,"category":301,"tags":28151},[28149,28150],"Sarup Banskota","Arunoda Susiripala",[110,233],{"slug":28153,"featured":6,"template":736},"zeit-launches-now-for-gitlab","content:en-us:blog:zeit-launches-now-for-gitlab.yml","Zeit Launches Now For Gitlab","en-us/blog/zeit-launches-now-for-gitlab.yml","en-us/blog/zeit-launches-now-for-gitlab",{"_path":28159,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28160,"content":28166,"config":28172,"_id":28174,"_type":16,"title":28175,"_source":17,"_file":28176,"_stem":28177,"_extension":20},"/en-us/blog/what-its-like-to-interview-at-gitlab",{"title":28161,"description":28162,"ogTitle":28161,"ogDescription":28162,"noIndex":6,"ogImage":28163,"ogUrl":28164,"ogSiteName":995,"ogType":996,"canonicalUrls":28164,"schema":28165},"A peek inside GitLab's recruitment process: What to expect","A new GitLab team-member shares her experience of being recruited to GitLab, as well as some advice for potential candidates.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680526/Blog/Hero%20Images/interviewing-at-gitlab.jpg","https://about.gitlab.com/blog/what-its-like-to-interview-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What it's like to interview at GitLab: A peek inside the recruitment process\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gosia Ksionek\"}],\n        \"datePublished\": \"2019-03-28\",\n      }",{"title":28167,"description":28162,"authors":28168,"heroImage":28163,"date":28170,"category":6121,"tags":28171},"What it's like to interview at GitLab: A peek inside the recruitment process",[28169],"Gosia Ksionek","2019-03-28",[6980,1569],{"slug":28173,"featured":6,"template":736},"what-its-like-to-interview-at-gitlab","content:en-us:blog:what-its-like-to-interview-at-gitlab.yml","What Its Like To Interview At Gitlab","en-us/blog/what-its-like-to-interview-at-gitlab.yml","en-us/blog/what-its-like-to-interview-at-gitlab",{"_path":28179,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28180,"content":28185,"config":28189,"_id":28191,"_type":16,"title":28192,"_source":17,"_file":28193,"_stem":28194,"_extension":20},"/en-us/blog/application-modernization-best-practices",{"title":28181,"description":28182,"ogTitle":28181,"ogDescription":28182,"noIndex":6,"ogImage":27689,"ogUrl":28183,"ogSiteName":995,"ogType":996,"canonicalUrls":28183,"schema":28184},"7 Best practices for application modernization","Use these best practices to avoid common pitfalls on the application modernization journey.","https://about.gitlab.com/blog/application-modernization-best-practices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"7 Best practices for application modernization\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-03-27\",\n      }",{"title":28181,"description":28182,"authors":28186,"heroImage":27689,"date":28187,"category":858,"tags":28188},[17150],"2019-03-27",[2097,564],{"slug":28190,"featured":6,"template":736},"application-modernization-best-practices","content:en-us:blog:application-modernization-best-practices.yml","Application Modernization Best Practices","en-us/blog/application-modernization-best-practices.yml","en-us/blog/application-modernization-best-practices",{"_path":28196,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28197,"content":28203,"config":28209,"_id":28211,"_type":16,"title":28212,"_source":17,"_file":28213,"_stem":28214,"_extension":20},"/en-us/blog/connecting-gitlab-and-pantheon-streamline-wordpress-drupal-workflows",{"title":28198,"description":28199,"ogTitle":28198,"ogDescription":28199,"noIndex":6,"ogImage":28200,"ogUrl":28201,"ogSiteName":995,"ogType":996,"canonicalUrls":28201,"schema":28202},"Streamlining Drupal and WordPress with GitLab and Pantheon","Our guest author, a Developer Programs Engineer at Pantheon, shares how to automate WordPress deployments using GitLab CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680516/Blog/Hero%20Images/gitlab-pantheon.png","https://about.gitlab.com/blog/connecting-gitlab-and-pantheon-streamline-wordpress-drupal-workflows","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to connect GitLab and Pantheon to streamline Drupal and WordPress workflows\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Taylor\"}],\n        \"datePublished\": \"2019-03-26\",\n      }",{"title":28204,"description":28199,"authors":28205,"heroImage":28200,"date":28207,"category":858,"tags":28208},"How to connect GitLab and Pantheon to streamline Drupal and WordPress workflows",[28206],"Andrew Taylor","2019-03-26",[564,233,269,1335],{"slug":28210,"featured":6,"template":736},"connecting-gitlab-and-pantheon-streamline-wordpress-drupal-workflows","content:en-us:blog:connecting-gitlab-and-pantheon-streamline-wordpress-drupal-workflows.yml","Connecting Gitlab And Pantheon Streamline Wordpress Drupal Workflows","en-us/blog/connecting-gitlab-and-pantheon-streamline-wordpress-drupal-workflows.yml","en-us/blog/connecting-gitlab-and-pantheon-streamline-wordpress-drupal-workflows",{"_path":28216,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28217,"content":28222,"config":28227,"_id":28229,"_type":16,"title":28230,"_source":17,"_file":28231,"_stem":28232,"_extension":20},"/en-us/blog/security-incident-runner-registration-token",{"title":28218,"description":28219,"ogTitle":28218,"ogDescription":28219,"noIndex":6,"ogImage":11046,"ogUrl":28220,"ogSiteName":995,"ogType":996,"canonicalUrls":28220,"schema":28221},"Project runner registration token security update","How we responded to a vulnerability in quick actions for issues that can expose project runner registration tokens to unauthorized users.","https://about.gitlab.com/blog/security-incident-runner-registration-token","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"An update on project runner registration token exposed through issues quick actions vulnerability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kathy Wang\"}],\n        \"datePublished\": \"2019-03-25\",\n      }",{"title":28223,"description":28219,"authors":28224,"heroImage":11046,"date":28225,"category":790,"tags":28226},"An update on project runner registration token exposed through issues quick actions vulnerability",[27727],"2019-03-25",[790],{"slug":28228,"featured":6,"template":736},"security-incident-runner-registration-token","content:en-us:blog:security-incident-runner-registration-token.yml","Security Incident Runner Registration Token","en-us/blog/security-incident-runner-registration-token.yml","en-us/blog/security-incident-runner-registration-token",{"_path":28234,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28235,"content":28239,"config":28243,"_id":28245,"_type":16,"title":28246,"_source":17,"_file":28247,"_stem":28248,"_extension":20},"/en-us/blog/six-more-months-ci-cd-github",{"title":28236,"description":25619,"ogTitle":28236,"ogDescription":25619,"noIndex":6,"ogImage":16110,"ogUrl":28237,"ogSiteName":995,"ogType":996,"canonicalUrls":28237,"schema":28238},"Extending free use of CI/CD for GitHub on GitLab.com","https://about.gitlab.com/blog/six-more-months-ci-cd-github","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Extending free use of CI/CD for GitHub on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2019-03-21\",\n      }",{"title":28236,"description":25619,"authors":28240,"heroImage":16110,"date":28241,"category":301,"tags":28242},[15730],"2019-03-21",[110,564,269],{"slug":28244,"featured":6,"template":736},"six-more-months-ci-cd-github","content:en-us:blog:six-more-months-ci-cd-github.yml","Six More Months Ci Cd Github","en-us/blog/six-more-months-ci-cd-github.yml","en-us/blog/six-more-months-ci-cd-github",{"_path":28250,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28251,"content":28256,"config":28262,"_id":28264,"_type":16,"title":28265,"_source":17,"_file":28266,"_stem":28267,"_extension":20},"/en-us/blog/enabling-global-search-elasticsearch-gitlab-com",{"title":28252,"description":28253,"ogTitle":28252,"ogDescription":28253,"noIndex":6,"ogImage":26607,"ogUrl":28254,"ogSiteName":995,"ogType":996,"canonicalUrls":28254,"schema":28255},"Lessons from implementing global code search on GitLab.com","Read about some of the dead ends we've encountered on the way to enabling global code search on GitLab.com, and how we're working on a way forward.","https://about.gitlab.com/blog/enabling-global-search-elasticsearch-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Lessons from our journey to enable global code search with Elasticsearch on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mario de la Ossa\"}],\n        \"datePublished\": \"2019-03-20\",\n      }",{"title":28257,"description":28253,"authors":28258,"heroImage":26607,"date":28260,"category":858,"tags":28261},"Lessons from our journey to enable global code search with Elasticsearch on GitLab.com",[28259],"Mario de la Ossa","2019-03-20",[730,233,1569],{"slug":28263,"featured":6,"template":736},"enabling-global-search-elasticsearch-gitlab-com","content:en-us:blog:enabling-global-search-elasticsearch-gitlab-com.yml","Enabling Global Search Elasticsearch Gitlab Com","en-us/blog/enabling-global-search-elasticsearch-gitlab-com.yml","en-us/blog/enabling-global-search-elasticsearch-gitlab-com",{"_path":28269,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28270,"content":28275,"config":28279,"_id":28281,"_type":16,"title":28282,"_source":17,"_file":28283,"_stem":28284,"_extension":20},"/en-us/blog/reduce-cycle-time-digital-transformation",{"title":28271,"description":28272,"ogTitle":28271,"ogDescription":28272,"noIndex":6,"ogImage":27689,"ogUrl":28273,"ogSiteName":995,"ogType":996,"canonicalUrls":28273,"schema":28274},"How to reduce cycle time when faced with the digital transformation","With every industry facing change at an accelerated pace, how do you quickly deliver value to customers?","https://about.gitlab.com/blog/reduce-cycle-time-digital-transformation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to reduce cycle time when faced with the digital transformation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jeremiah\"}],\n        \"datePublished\": \"2019-03-19\",\n      }",{"title":28271,"description":28272,"authors":28276,"heroImage":27689,"date":28277,"category":8140,"tags":28278},[27376],"2019-03-19",[1335,564],{"slug":28280,"featured":6,"template":736},"reduce-cycle-time-digital-transformation","content:en-us:blog:reduce-cycle-time-digital-transformation.yml","Reduce Cycle Time Digital Transformation","en-us/blog/reduce-cycle-time-digital-transformation.yml","en-us/blog/reduce-cycle-time-digital-transformation",{"_path":28286,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28287,"content":28293,"config":28297,"_id":28299,"_type":16,"title":28300,"_source":17,"_file":28301,"_stem":28302,"_extension":20},"/en-us/blog/atlassian-acquires-agilecraft",{"title":28288,"description":28289,"ogTitle":28288,"ogDescription":28289,"noIndex":6,"ogImage":28290,"ogUrl":28291,"ogSiteName":995,"ogType":996,"canonicalUrls":28291,"schema":28292},"What’s your plan?"," GitLab integrates planning every step of the way","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680500/Blog/Hero%20Images/planpost.jpg","https://about.gitlab.com/blog/atlassian-acquires-agilecraft","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What’s your plan?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2019-03-18\",\n      }",{"title":28288,"description":28289,"authors":28294,"heroImage":28290,"date":28295,"category":301,"tags":28296},[1000],"2019-03-18",[729,1049,1335],{"slug":28298,"featured":6,"template":736},"atlassian-acquires-agilecraft","content:en-us:blog:atlassian-acquires-agilecraft.yml","Atlassian Acquires Agilecraft","en-us/blog/atlassian-acquires-agilecraft.yml","en-us/blog/atlassian-acquires-agilecraft",{"_path":28304,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28305,"content":28311,"config":28315,"_id":28317,"_type":16,"title":28318,"_source":17,"_file":28319,"_stem":28320,"_extension":20},"/en-us/blog/incident-management-design-facilitation",{"title":28306,"description":28307,"ogTitle":28306,"ogDescription":28307,"noIndex":6,"ogImage":28308,"ogUrl":28309,"ogSiteName":995,"ogType":996,"canonicalUrls":28309,"schema":28310},"How we used design facilitation to understand incident management","The group responsible for the Monitor stage at GitLab recently got together to decide on new product features with a facilitated design session.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678649/Blog/Hero%20Images/incident_management-blog-image.jpg","https://about.gitlab.com/blog/incident-management-design-facilitation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we used design facilitation to understand incident management\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amelia Bauerly\"}],\n        \"datePublished\": \"2019-03-15\",\n      }",{"title":28306,"description":28307,"authors":28312,"heroImage":28308,"date":28313,"category":6121,"tags":28314},[14559],"2019-03-15",[2815,730,1569],{"slug":28316,"featured":6,"template":736},"incident-management-design-facilitation","content:en-us:blog:incident-management-design-facilitation.yml","Incident Management Design Facilitation","en-us/blog/incident-management-design-facilitation.yml","en-us/blog/incident-management-design-facilitation",{"_path":28322,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28323,"content":28328,"config":28332,"_id":28334,"_type":16,"title":28335,"_source":17,"_file":28336,"_stem":28337,"_extension":20},"/en-us/blog/application-modernization-examples",{"title":28324,"description":28325,"ogTitle":28324,"ogDescription":28325,"noIndex":6,"ogImage":27689,"ogUrl":28326,"ogSiteName":995,"ogType":996,"canonicalUrls":28326,"schema":28327},"Examples of legacy modernisation projects","Discover how four teams committed to the application modernization process.","https://about.gitlab.com/blog/application-modernization-examples","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Examples of legacy modernisation projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chrissie Buchanan\"}],\n        \"datePublished\": \"2019-03-14\",\n      }",{"title":28324,"description":28325,"authors":28329,"heroImage":27689,"date":28330,"category":858,"tags":28331},[17150],"2019-03-14",[110,564,582],{"slug":28333,"featured":6,"template":736},"application-modernization-examples","content:en-us:blog:application-modernization-examples.yml","Application Modernization Examples","en-us/blog/application-modernization-examples.yml","en-us/blog/application-modernization-examples",{"_path":28339,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28340,"content":28346,"config":28350,"_id":28352,"_type":16,"title":28353,"_source":17,"_file":28354,"_stem":28355,"_extension":20},"/en-us/blog/quantifying-ux-validating-the-redesign-of-gitlabs-settings-pages",{"title":28341,"description":28342,"ogTitle":28341,"ogDescription":28342,"noIndex":6,"ogImage":28343,"ogUrl":28344,"ogSiteName":995,"ogType":996,"canonicalUrls":28344,"schema":28345},"Quantifying UX: How we validated the redesign of GitLab's settings pages","A GitLab senior UX designer shares how we determined whether a recent redesign improved the overall experience for users.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683361/Blog/Hero%20Images/user-testing-validating-redesign.jpg","https://about.gitlab.com/blog/quantifying-ux-validating-the-redesign-of-gitlabs-settings-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Quantifying UX: How we validated the redesign of GitLab's settings pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2019-03-13\",\n      }",{"title":28341,"description":28342,"authors":28347,"heroImage":28343,"date":28348,"category":301,"tags":28349},[17415],"2019-03-13",[1569,2703,2702],{"slug":28351,"featured":6,"template":736},"quantifying-ux-validating-the-redesign-of-gitlabs-settings-pages","content:en-us:blog:quantifying-ux-validating-the-redesign-of-gitlabs-settings-pages.yml","Quantifying Ux Validating The Redesign Of Gitlabs Settings Pages","en-us/blog/quantifying-ux-validating-the-redesign-of-gitlabs-settings-pages.yml","en-us/blog/quantifying-ux-validating-the-redesign-of-gitlabs-settings-pages",{"_path":28357,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28358,"content":28363,"config":28367,"_id":28369,"_type":16,"title":28370,"_source":17,"_file":28371,"_stem":28372,"_extension":20},"/en-us/blog/gitlab-joins-cd-foundation",{"title":28359,"description":28360,"ogTitle":28359,"ogDescription":28360,"noIndex":6,"ogImage":26205,"ogUrl":28361,"ogSiteName":995,"ogType":996,"canonicalUrls":28361,"schema":28362},"GitLab leads the industry forward with the CD Foundation","Today we're proud to announce we've joined the CD Foundation as a founding member.","https://about.gitlab.com/blog/gitlab-joins-cd-foundation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab leads the industry forward with the CD Foundation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2019-03-12\",\n      }",{"title":28359,"description":28360,"authors":28364,"heroImage":26205,"date":28365,"category":301,"tags":28366},[3701],"2019-03-12",[582,2098,1265],{"slug":28368,"featured":6,"template":736},"gitlab-joins-cd-foundation","content:en-us:blog:gitlab-joins-cd-foundation.yml","Gitlab Joins Cd Foundation","en-us/blog/gitlab-joins-cd-foundation.yml","en-us/blog/gitlab-joins-cd-foundation",{"_path":28374,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28375,"content":28381,"config":28387,"_id":28389,"_type":16,"title":28390,"_source":17,"_file":28391,"_stem":28392,"_extension":20},"/en-us/blog/international-womens-day-gitlab-initiatives",{"title":28376,"description":28377,"ogTitle":28376,"ogDescription":28377,"noIndex":6,"ogImage":28378,"ogUrl":28379,"ogSiteName":995,"ogType":996,"canonicalUrls":28379,"schema":28380},"GitLab supports women in STEM for International Women's Day","We're shining a light on some of the initiatives we're proud to support, helping us to give back and foster a global community of women in technology.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680483/Blog/Hero%20Images/international-womens-day.jpg","https://about.gitlab.com/blog/international-womens-day-gitlab-initiatives","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Happy International Women’s Day! How we’re working to inspire and educate women in STEM\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stephanie Garza\"}],\n        \"datePublished\": \"2019-03-08\",\n      }",{"title":28382,"description":28377,"authors":28383,"heroImage":28378,"date":28385,"category":6121,"tags":28386},"Happy International Women’s Day! How we’re working to inspire and educate women in STEM",[28384],"Stephanie Garza","2019-03-08",[269,1569],{"slug":28388,"featured":6,"template":736},"international-womens-day-gitlab-initiatives","content:en-us:blog:international-womens-day-gitlab-initiatives.yml","International Womens Day Gitlab Initiatives","en-us/blog/international-womens-day-gitlab-initiatives.yml","en-us/blog/international-womens-day-gitlab-initiatives",{"_path":28394,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28395,"content":28400,"config":28404,"_id":28406,"_type":16,"title":28407,"_source":17,"_file":28408,"_stem":28409,"_extension":20},"/en-us/blog/how-we-used-gitlab-to-automate-our-monthly-retrospectives",{"title":28396,"description":28397,"ogTitle":28396,"ogDescription":28397,"noIndex":6,"ogImage":27315,"ogUrl":28398,"ogSiteName":995,"ogType":996,"canonicalUrls":28398,"schema":28399},"How we use GitLab to automate our monthly retrospectives","How one engineering team is using GitLab CI to automate asynchronous retrospectives, making collaboration across four continents a breeze.","https://about.gitlab.com/blog/how-we-used-gitlab-to-automate-our-monthly-retrospectives","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we use GitLab to automate our monthly retrospectives\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean McGivern\"}],\n        \"datePublished\": \"2019-03-07\",\n      }",{"title":28396,"description":28397,"authors":28401,"heroImage":27315,"date":28402,"category":858,"tags":28403},[18858],"2019-03-07",[110,2815,1569,1335],{"slug":28405,"featured":6,"template":736},"how-we-used-gitlab-to-automate-our-monthly-retrospectives","content:en-us:blog:how-we-used-gitlab-to-automate-our-monthly-retrospectives.yml","How We Used Gitlab To Automate Our Monthly Retrospectives","en-us/blog/how-we-used-gitlab-to-automate-our-monthly-retrospectives.yml","en-us/blog/how-we-used-gitlab-to-automate-our-monthly-retrospectives",{"_path":28411,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28412,"content":28418,"config":28422,"_id":28424,"_type":16,"title":28425,"_source":17,"_file":28426,"_stem":28427,"_extension":20},"/en-us/blog/ios-publishing-with-gitlab-and-fastlane",{"title":28413,"description":28414,"ogTitle":28413,"ogDescription":28414,"noIndex":6,"ogImage":28415,"ogUrl":28416,"ogSiteName":995,"ogType":996,"canonicalUrls":28416,"schema":28417},"How to publish iOS apps to the App Store with GitLab and fastlane","See how GitLab, together with fastlane, can build, sign, and publish apps for iOS to the App Store.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680470/Blog/Hero%20Images/ios-publishing-cover.jpg","https://about.gitlab.com/blog/ios-publishing-with-gitlab-and-fastlane","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to publish iOS apps to the App Store with GitLab and fastlane\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-03-06\",\n      }",{"title":28413,"description":28414,"authors":28419,"heroImage":28415,"date":28420,"category":858,"tags":28421},[20535],"2019-03-06",[110,233,730],{"slug":28423,"featured":6,"template":736},"ios-publishing-with-gitlab-and-fastlane","content:en-us:blog:ios-publishing-with-gitlab-and-fastlane.yml","Ios Publishing With Gitlab And Fastlane","en-us/blog/ios-publishing-with-gitlab-and-fastlane.yml","en-us/blog/ios-publishing-with-gitlab-and-fastlane",{"_path":28429,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28430,"content":28435,"config":28438,"_id":28440,"_type":16,"title":28441,"_source":17,"_file":28442,"_stem":28443,"_extension":20},"/en-us/blog/reduce-cycle-time",{"title":28431,"description":28432,"ogTitle":28431,"ogDescription":28432,"noIndex":6,"ogImage":27689,"ogUrl":28433,"ogSiteName":995,"ogType":996,"canonicalUrls":28433,"schema":28434},"Want to reduce cycle time? Commit to a new approach.","We have a new way of looking at cycle time. Let’s talk about it.","https://about.gitlab.com/blog/reduce-cycle-time","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Want to reduce cycle time? Commit to a new approach.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-03-04\",\n      }",{"title":28431,"description":28432,"authors":28436,"heroImage":27689,"date":28437,"category":8140},[19332],"2019-03-04",{"slug":28439,"featured":6,"template":736},"reduce-cycle-time","content:en-us:blog:reduce-cycle-time.yml","Reduce Cycle Time","en-us/blog/reduce-cycle-time.yml","en-us/blog/reduce-cycle-time",{"_path":28445,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28446,"content":28452,"config":28456,"_id":28458,"_type":16,"title":28459,"_source":17,"_file":28460,"_stem":28461,"_extension":20},"/en-us/blog/why-we-pay-local-rates",{"title":28447,"description":28448,"ogTitle":28447,"ogDescription":28448,"noIndex":6,"ogImage":28449,"ogUrl":28450,"ogSiteName":995,"ogType":996,"canonicalUrls":28450,"schema":28451},"Why GitLab pays local rates","Our compensation structure is known to spark controversy, so we want to give an update on our latest iteration on team member salaries.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680461/Blog/Hero%20Images/local-rates.jpg","https://about.gitlab.com/blog/why-we-pay-local-rates","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why GitLab pays local rates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2019-02-28\",\n      }",{"title":28447,"description":28448,"authors":28453,"heroImage":28449,"date":28454,"category":6121,"tags":28455},[27414],"2019-02-28",[6980,1569,3914,10011],{"slug":28457,"featured":6,"template":736},"why-we-pay-local-rates","content:en-us:blog:why-we-pay-local-rates.yml","Why We Pay Local Rates","en-us/blog/why-we-pay-local-rates.yml","en-us/blog/why-we-pay-local-rates",{"_path":28463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28464,"content":28470,"config":28475,"_id":28477,"_type":16,"title":28478,"_source":17,"_file":28479,"_stem":28480,"_extension":20},"/en-us/blog/remote-enables-innovation",{"title":28465,"description":28466,"ogTitle":28465,"ogDescription":28466,"noIndex":6,"ogImage":28467,"ogUrl":28468,"ogSiteName":995,"ogType":996,"canonicalUrls":28468,"schema":28469},"How remote work enables rapid innovation at GitLab","At GitLab, remote isn’t a business operations risk, it’s a competitive advantage.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678666/Blog/Hero%20Images/paper-lanterns.jpg","https://about.gitlab.com/blog/remote-enables-innovation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How remote work enables rapid innovation at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2019-02-27\",\n      }",{"title":28465,"description":28466,"authors":28471,"heroImage":28467,"date":28473,"category":6121,"tags":28474},[28472],"Victor Wu","2019-02-27",[2815,1569,3914,10011,1335],{"slug":28476,"featured":6,"template":736},"remote-enables-innovation","content:en-us:blog:remote-enables-innovation.yml","Remote Enables Innovation","en-us/blog/remote-enables-innovation.yml","en-us/blog/remote-enables-innovation",{"_path":28482,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28483,"content":28488,"config":28492,"_id":28494,"_type":16,"title":28495,"_source":17,"_file":28496,"_stem":28497,"_extension":20},"/en-us/blog/beyond-application-modernization-trends",{"title":28484,"description":28485,"ogTitle":28484,"ogDescription":28485,"noIndex":6,"ogImage":27689,"ogUrl":28486,"ogSiteName":995,"ogType":996,"canonicalUrls":28486,"schema":28487},"Beyond trends: Committing to application modernization","How to overcome analysis paralysis and take your digital transformation efforts from theory to practice.","https://about.gitlab.com/blog/beyond-application-modernization-trends","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Beyond trends: Committing to application modernization\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2019-02-25\",\n      }",{"title":28484,"description":28485,"authors":28489,"heroImage":27689,"date":28490,"category":8140,"tags":28491},[27004],"2019-02-25",[729,110,564],{"slug":28493,"featured":6,"template":736},"beyond-application-modernization-trends","content:en-us:blog:beyond-application-modernization-trends.yml","Beyond Application Modernization Trends","en-us/blog/beyond-application-modernization-trends.yml","en-us/blog/beyond-application-modernization-trends",{"_path":28499,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28500,"content":28506,"config":28510,"_id":28512,"_type":16,"title":28513,"_source":17,"_file":28514,"_stem":28515,"_extension":20},"/en-us/blog/ci-cd-market-consolidation",{"title":28501,"description":28502,"ogTitle":28501,"ogDescription":28502,"noIndex":6,"ogImage":28503,"ogUrl":28504,"ogSiteName":995,"ogType":996,"canonicalUrls":28504,"schema":28505},"The CI/CD market consolidation","The DevOps industry is consolidating. GitLab is here to stay.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679957/Blog/Hero%20Images/consolidate.jpg","https://about.gitlab.com/blog/ci-cd-market-consolidation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The CI/CD market consolidation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2019-02-21\",\n      }",{"title":28501,"description":28502,"authors":28507,"heroImage":28503,"date":28508,"category":301,"tags":28509},[3701],"2019-02-21",[1049,110],{"slug":28511,"featured":6,"template":736},"ci-cd-market-consolidation","content:en-us:blog:ci-cd-market-consolidation.yml","Ci Cd Market Consolidation","en-us/blog/ci-cd-market-consolidation.yml","en-us/blog/ci-cd-market-consolidation",{"_path":28517,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28518,"content":28523,"config":28527,"_id":28529,"_type":16,"title":28530,"_source":17,"_file":28531,"_stem":28532,"_extension":20},"/en-us/blog/merging-ce-and-ee-codebases",{"title":28519,"description":28520,"ogTitle":28519,"ogDescription":28520,"noIndex":6,"ogImage":25953,"ogUrl":28521,"ogSiteName":995,"ogType":996,"canonicalUrls":28521,"schema":28522},"GitLab might move to a single Rails codebase","We're considering moving towards a single Rails repository by combining the two existing repositories – here's why, and what would change.","https://about.gitlab.com/blog/merging-ce-and-ee-codebases","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab might move to a single Rails codebase\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marin Jankovski\"}],\n        \"datePublished\": \"2019-02-21\",\n      }",{"title":28519,"description":28520,"authors":28524,"heroImage":25953,"date":28508,"category":858,"tags":28526},[28525],"Marin Jankovski",[1569,269,279,1265],{"slug":28528,"featured":6,"template":736},"merging-ce-and-ee-codebases","content:en-us:blog:merging-ce-and-ee-codebases.yml","Merging Ce And Ee Codebases","en-us/blog/merging-ce-and-ee-codebases.yml","en-us/blog/merging-ce-and-ee-codebases",{"_path":28534,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28535,"content":28541,"config":28545,"_id":28547,"_type":16,"title":28548,"_source":17,"_file":28549,"_stem":28550,"_extension":20},"/en-us/blog/start-using-pages-quickly",{"title":28536,"description":28537,"ogTitle":28536,"ogDescription":28537,"noIndex":6,"ogImage":28538,"ogUrl":28539,"ogSiteName":995,"ogType":996,"canonicalUrls":28539,"schema":28540},"New: How to get up and running quickly using GitLab Pages templates","We're introducing bundled GitLab Pages templates, so let's take a look at how easy it really is now to get up and running with a new site.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679908/Blog/Hero%20Images/pages-templates-cover-image.jpg","https://about.gitlab.com/blog/start-using-pages-quickly","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New: How to get up and running quickly using GitLab Pages templates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-02-20\",\n      }",{"title":28536,"description":28537,"authors":28542,"heroImage":28538,"date":28543,"category":858,"tags":28544},[20535],"2019-02-20",[4182,730,1569,1265],{"slug":28546,"featured":6,"template":736},"start-using-pages-quickly","content:en-us:blog:start-using-pages-quickly.yml","Start Using Pages Quickly","en-us/blog/start-using-pages-quickly.yml","en-us/blog/start-using-pages-quickly",{"_path":28552,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28553,"content":28558,"config":28563,"_id":28565,"_type":16,"title":28566,"_source":17,"_file":28567,"_stem":28568,"_extension":20},"/en-us/blog/just-commit-launch",{"title":28554,"description":28555,"ogTitle":28554,"ogDescription":28555,"noIndex":6,"ogImage":27689,"ogUrl":28556,"ogSiteName":995,"ogType":996,"canonicalUrls":28556,"schema":28557},"Let’s talk about commitment","What possibilities could you unlock by just making the choice, committing, and moving forward?","https://about.gitlab.com/blog/just-commit-launch","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Let’s talk about commitment\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Todd Barr\"}],\n        \"datePublished\": \"2019-02-18\",\n      }",{"title":28554,"description":28555,"authors":28559,"heroImage":27689,"date":28561,"category":8140,"tags":28562},[28560],"Todd Barr","2019-02-18",[564,1195,1569],{"slug":28564,"featured":6,"template":736},"just-commit-launch","content:en-us:blog:just-commit-launch.yml","Just Commit Launch","en-us/blog/just-commit-launch.yml","en-us/blog/just-commit-launch",{"_path":28570,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28571,"content":28577,"config":28583,"_id":28585,"_type":16,"title":28586,"_source":17,"_file":28587,"_stem":28588,"_extension":20},"/en-us/blog/verizon-customer-story",{"title":28572,"description":28573,"ogTitle":28572,"ogDescription":28573,"noIndex":6,"ogImage":28574,"ogUrl":28575,"ogSiteName":995,"ogType":996,"canonicalUrls":28575,"schema":28576},"Verizon cuts datacenter rebuilds from 30 days to 8 hours","Verizon utilized microservices, automation, and GitLab to reduce datacenter rebuilds to under 8 hours.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678933/Blog/Hero%20Images/verizon_video_blog.jpg","https://about.gitlab.com/blog/verizon-customer-story","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Verizon Connect reduced datacenter rebuilds from 30 days to under 8 hours with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kim Lock\"}],\n        \"datePublished\": \"2019-02-14\",\n      }",{"title":28578,"description":28573,"authors":28579,"heroImage":28574,"date":28581,"category":1388,"tags":28582},"How Verizon Connect reduced datacenter rebuilds from 30 days to under 8 hours with GitLab",[28580],"Kim Lock","2019-02-14",[3075,110,564,4665,1335],{"slug":28584,"featured":6,"template":736},"verizon-customer-story","content:en-us:blog:verizon-customer-story.yml","Verizon Customer Story","en-us/blog/verizon-customer-story.yml","en-us/blog/verizon-customer-story",{"_path":28590,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28591,"content":28597,"config":28602,"_id":28604,"_type":16,"title":28605,"_source":17,"_file":28606,"_stem":28607,"_extension":20},"/en-us/blog/delayed-replication-for-disaster-recovery-with-postgresql",{"title":28592,"description":28593,"ogTitle":28592,"ogDescription":28593,"noIndex":6,"ogImage":28594,"ogUrl":28595,"ogSiteName":995,"ogType":996,"canonicalUrls":28595,"schema":28596},"How we used delayed replication for disaster recovery with PostgreSQL","Replication is no backup. Or is it? Let's take a look at delayed replication and how we used it to recover from accidental label deletion.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683349/Blog/Hero%20Images/mathew-schwartz-397471-unsplash.jpg","https://about.gitlab.com/blog/delayed-replication-for-disaster-recovery-with-postgresql","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we used delayed replication for disaster recovery with PostgreSQL\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andreas Brandl\"}],\n        \"datePublished\": \"2019-02-13\",\n      }",{"title":28592,"description":28593,"authors":28598,"heroImage":28594,"date":28600,"category":858,"tags":28601},[28599],"Andreas Brandl","2019-02-13",[1569,1265],{"slug":28603,"featured":6,"template":736},"delayed-replication-for-disaster-recovery-with-postgresql","content:en-us:blog:delayed-replication-for-disaster-recovery-with-postgresql.yml","Delayed Replication For Disaster Recovery With Postgresql","en-us/blog/delayed-replication-for-disaster-recovery-with-postgresql.yml","en-us/blog/delayed-replication-for-disaster-recovery-with-postgresql",{"_path":28609,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28610,"content":28615,"config":28619,"_id":28621,"_type":16,"title":28622,"_source":17,"_file":28623,"_stem":28624,"_extension":20},"/en-us/blog/a-deep-dive-into-the-security-analyst-persona",{"title":28611,"description":28612,"ogTitle":28611,"ogDescription":28612,"noIndex":6,"ogImage":9168,"ogUrl":28613,"ogSiteName":995,"ogType":996,"canonicalUrls":28613,"schema":28614},"A deep dive into the Security Analyst persona","See how we created our new Security Analyst persona, and how we are already putting it to use.","https://about.gitlab.com/blog/a-deep-dive-into-the-security-analyst-persona","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A deep dive into the Security Analyst persona\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andy Volpe\"}],\n        \"datePublished\": \"2019-02-12\",\n      }",{"title":28611,"description":28612,"authors":28616,"heroImage":9168,"date":28617,"category":790,"tags":28618},[25080],"2019-02-12",[964,1569,790,2703,1335],{"slug":28620,"featured":6,"template":736},"a-deep-dive-into-the-security-analyst-persona","content:en-us:blog:a-deep-dive-into-the-security-analyst-persona.yml","A Deep Dive Into The Security Analyst Persona","en-us/blog/a-deep-dive-into-the-security-analyst-persona.yml","en-us/blog/a-deep-dive-into-the-security-analyst-persona",{"_path":28626,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28627,"content":28633,"config":28638,"_id":28640,"_type":16,"title":28641,"_source":17,"_file":28642,"_stem":28643,"_extension":20},"/en-us/blog/start-using-git",{"title":28628,"description":28629,"ogTitle":28628,"ogDescription":28629,"noIndex":6,"ogImage":28630,"ogUrl":28631,"ogSiteName":995,"ogType":996,"canonicalUrls":28631,"schema":28632},"How to tidy up your merge requests with Git","Here's how to use a Git feature that saves a lot of time and cleans up your MRs.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672243/Blog/Hero%20Images/git-tricks-cover-image.png","https://about.gitlab.com/blog/start-using-git","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to tidy up your merge requests with Git\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ronald van Zon\"}],\n        \"datePublished\": \"2019-02-07\",\n      }",{"title":28628,"description":28629,"authors":28634,"heroImage":28630,"date":28636,"category":858,"tags":28637},[28635],"Ronald van Zon","2019-02-07",[4665,1335,1195],{"slug":28639,"featured":6,"template":736},"start-using-git","content:en-us:blog:start-using-git.yml","Start Using Git","en-us/blog/start-using-git.yml","en-us/blog/start-using-git",{"_path":28645,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28646,"content":28652,"config":28658,"_id":28660,"_type":16,"title":28661,"_source":17,"_file":28662,"_stem":28663,"_extension":20},"/en-us/blog/donatinator-open-source-donation-platform",{"title":28647,"description":28648,"ogTitle":28647,"ogDescription":28648,"noIndex":6,"ogImage":28649,"ogUrl":28650,"ogSiteName":995,"ogType":996,"canonicalUrls":28650,"schema":28651},"The Donatinator: Simple donation solution for charities","This guest author shares his passion project: a free and open source solution for small charities and non-profits to accept donations online.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679940/Blog/Hero%20Images/donatinator-open-source.jpg","https://about.gitlab.com/blog/donatinator-open-source-donation-platform","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Donatinator: A simple, secure way to accept donations to your charity or non-profit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Chilton\"}],\n        \"datePublished\": \"2019-02-06\",\n      }",{"title":28653,"description":28648,"authors":28654,"heroImage":28649,"date":28656,"category":1388,"tags":28657},"The Donatinator: A simple, secure way to accept donations to your charity or non-profit",[28655],"Andrew Chilton","2019-02-06",[1265,269,4665],{"slug":28659,"featured":6,"template":736},"donatinator-open-source-donation-platform","content:en-us:blog:donatinator-open-source-donation-platform.yml","Donatinator Open Source Donation Platform","en-us/blog/donatinator-open-source-donation-platform.yml","en-us/blog/donatinator-open-source-donation-platform",{"_path":28665,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28666,"content":28671,"config":28676,"_id":28678,"_type":16,"title":28679,"_source":17,"_file":28680,"_stem":28681,"_extension":20},"/en-us/blog/multi-account-aws-sam-deployments-with-gitlab-ci",{"title":28667,"description":28668,"ogTitle":28667,"ogDescription":28668,"noIndex":6,"ogImage":22083,"ogUrl":28669,"ogSiteName":995,"ogType":996,"canonicalUrls":28669,"schema":28670},"How to set up multi-account AWS SAM deployments with GitLab CI/CD","Our guest author, an AWS Serverless hero, shares how to automate SAM deployments using GitLab CI/CD.","https://about.gitlab.com/blog/multi-account-aws-sam-deployments-with-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to set up multi-account AWS SAM deployments with GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Forrest Brazeal\"}],\n        \"datePublished\": \"2019-02-04\",\n      }",{"title":28667,"description":28668,"authors":28672,"heroImage":22083,"date":28674,"category":858,"tags":28675},[28673],"Forrest Brazeal","2019-02-04",[110,4182,233,1265,6376,4665],{"slug":28677,"featured":6,"template":736},"multi-account-aws-sam-deployments-with-gitlab-ci","content:en-us:blog:multi-account-aws-sam-deployments-with-gitlab-ci.yml","Multi Account Aws Sam Deployments With Gitlab Ci","en-us/blog/multi-account-aws-sam-deployments-with-gitlab-ci.yml","en-us/blog/multi-account-aws-sam-deployments-with-gitlab-ci",{"_path":28683,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28684,"content":28689,"config":28693,"_id":28695,"_type":16,"title":28696,"_source":17,"_file":28697,"_stem":28698,"_extension":20},"/en-us/blog/pre-commit-post-deploy-is-dead",{"title":28685,"description":28686,"ogTitle":28685,"ogDescription":28686,"noIndex":6,"ogImage":20386,"ogUrl":28687,"ogSiteName":995,"ogType":996,"canonicalUrls":28687,"schema":28688},"Pre-commit and post-deploy code reviews are dead","In a world with Git, pre-commit and post-deploy code reviews are relics that can be eliminated from your workflow.","https://about.gitlab.com/blog/pre-commit-post-deploy-is-dead","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pre-commit and post-deploy code reviews are dead\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2019-01-31\",\n      }",{"title":28685,"description":28686,"authors":28690,"heroImage":20386,"date":28691,"category":858,"tags":28692},[27414],"2019-01-31",[1932,1195,1335],{"slug":28694,"featured":6,"template":736},"pre-commit-post-deploy-is-dead","content:en-us:blog:pre-commit-post-deploy-is-dead.yml","Pre Commit Post Deploy Is Dead","en-us/blog/pre-commit-post-deploy-is-dead.yml","en-us/blog/pre-commit-post-deploy-is-dead",{"_path":28700,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28701,"content":28706,"config":28710,"_id":28712,"_type":16,"title":28713,"_source":17,"_file":28714,"_stem":28715,"_extension":20},"/en-us/blog/semyon-pupkov-contributor-post",{"title":28702,"description":28703,"ogTitle":28702,"ogDescription":28703,"noIndex":6,"ogImage":24329,"ogUrl":28704,"ogSiteName":995,"ogType":996,"canonicalUrls":28704,"schema":28705},"GitLab Code Contributor: Semyon Pupkov","Long-time contributor Semyon Pupkov shares why he loves contributing to GitLab.","https://about.gitlab.com/blog/semyon-pupkov-contributor-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Semyon Pupkov\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-01-30\",\n      }",{"title":28702,"description":28703,"authors":28707,"heroImage":24329,"date":28708,"category":1388,"tags":28709},[20126],"2019-01-30",[269,2815,1265,3074],{"slug":28711,"featured":6,"template":736},"semyon-pupkov-contributor-post","content:en-us:blog:semyon-pupkov-contributor-post.yml","Semyon Pupkov Contributor Post","en-us/blog/semyon-pupkov-contributor-post.yml","en-us/blog/semyon-pupkov-contributor-post",{"_path":28717,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28718,"content":28725,"config":28730,"_id":28732,"_type":16,"title":28733,"_source":17,"_file":28734,"_stem":28735,"_extension":20},"/en-us/blog/android-publishing-with-gitlab-and-fastlane",{"title":28719,"description":28720,"ogTitle":28721,"ogDescription":28720,"noIndex":6,"ogImage":28722,"ogUrl":28723,"ogSiteName":995,"ogType":996,"canonicalUrls":28723,"schema":28724},"Publishing Android apps to Play Store with GitLab & fastlane","See how GitLab, together with fastlane, can build, sign, and publish apps for Android to the Google Play Store.","HPublishing Android apps to Play Store with GitLab & fastlane","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679918/Blog/Hero%20Images/android-fastlane-pipeline.png","https://about.gitlab.com/blog/android-publishing-with-gitlab-and-fastlane","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to publish Android apps to the Google Play Store with GitLab and fastlane\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-01-28\",\n      }",{"title":28726,"description":28720,"authors":28727,"heroImage":28722,"date":28728,"category":858,"tags":28729},"How to publish Android apps to the Google Play Store with GitLab and fastlane",[20535],"2019-01-28",[110,233,1730,730],{"slug":28731,"featured":6,"template":736},"android-publishing-with-gitlab-and-fastlane","content:en-us:blog:android-publishing-with-gitlab-and-fastlane.yml","Android Publishing With Gitlab And Fastlane","en-us/blog/android-publishing-with-gitlab-and-fastlane.yml","en-us/blog/android-publishing-with-gitlab-and-fastlane",{"_path":28737,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28738,"content":28744,"config":28750,"_id":28752,"_type":16,"title":28753,"_source":17,"_file":28754,"_stem":28755,"_extension":20},"/en-us/blog/sentry-integration-blog-post",{"title":28739,"description":28740,"ogTitle":28739,"ogDescription":28740,"noIndex":6,"ogImage":28741,"ogUrl":28742,"ogSiteName":995,"ogType":996,"canonicalUrls":28742,"schema":28743},"Sentry's GitLab integration streamlines error remediation","Your code has bugs, my code has bugs, everyone’s code has bugs (probably). Let’s fix that.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679964/Blog/Hero%20Images/sentry-io-blog.jpg","https://about.gitlab.com/blog/sentry-integration-blog-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Streamline and shorten error remediation with Sentry’s new GitLab integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eva Sasson\"}],\n        \"datePublished\": \"2019-01-25\",\n      }",{"title":28745,"description":28740,"authors":28746,"heroImage":28741,"date":28748,"category":1388,"tags":28749},"Streamline and shorten error remediation with Sentry’s new GitLab integration",[28747],"Eva Sasson","2019-01-25",[110,2815,564,233,1265,790,964,4665,1335],{"slug":28751,"featured":6,"template":736},"sentry-integration-blog-post","content:en-us:blog:sentry-integration-blog-post.yml","Sentry Integration Blog Post","en-us/blog/sentry-integration-blog-post.yml","en-us/blog/sentry-integration-blog-post",{"_path":28757,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28758,"content":28764,"config":28769,"_id":28771,"_type":16,"title":28772,"_source":17,"_file":28773,"_stem":28774,"_extension":20},"/en-us/blog/2019-developer-survey-announcement",{"title":28759,"description":28760,"ogTitle":28759,"ogDescription":28760,"noIndex":6,"ogImage":28761,"ogUrl":28762,"ogSiteName":995,"ogType":996,"canonicalUrls":28762,"schema":28763},"The 2019 developer survey: Help shape the industry","What do you need in order to thrive? From fewer delays in the development process to early detection of security vulnerabilities, we want to identify what you need to move ideas into action.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679930/Blog/Hero%20Images/2019-developer-survey-cover.png","https://about.gitlab.com/blog/2019-developer-survey-announcement","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The 2019 Global Developer Survey is now open! Share your thoughts to shape the industry.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2019-01-23\",\n      }",{"title":28765,"description":28760,"authors":28766,"heroImage":28761,"date":28767,"category":8140,"tags":28768},"The 2019 Global Developer Survey is now open! Share your thoughts to shape the industry.",[19332],"2019-01-23",[7788,564,269],{"slug":28770,"featured":6,"template":736},"2019-developer-survey-announcement","content:en-us:blog:2019-developer-survey-announcement.yml","2019 Developer Survey Announcement","en-us/blog/2019-developer-survey-announcement.yml","en-us/blog/2019-developer-survey-announcement",{"_path":28776,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28777,"content":28783,"config":28786,"_id":28788,"_type":16,"title":28789,"_source":17,"_file":28790,"_stem":28791,"_extension":20},"/en-us/blog/support-microsoft-exchange-google-groups-incoming-email",{"title":28778,"description":28779,"ogTitle":28778,"ogDescription":28779,"noIndex":6,"ogImage":28780,"ogUrl":28781,"ogSiteName":995,"ogType":996,"canonicalUrls":28781,"schema":28782},"Microsoft Exchange & Google Groups now supported by GitLab","You now have even more choices when configuring an email server for your self-managed GitLab instance","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684071/Blog/Hero%20Images/mailboxes.jpg","https://about.gitlab.com/blog/support-microsoft-exchange-google-groups-incoming-email","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab now supports Microsoft Exchange and Google Groups for incoming email features like Service Desk\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2019-01-23\",\n      }",{"title":28784,"description":28779,"authors":28785,"heroImage":28780,"date":28767,"category":858},"GitLab now supports Microsoft Exchange and Google Groups for incoming email features like Service Desk",[28472],{"slug":28787,"featured":6,"template":736},"support-microsoft-exchange-google-groups-incoming-email","content:en-us:blog:support-microsoft-exchange-google-groups-incoming-email.yml","Support Microsoft Exchange Google Groups Incoming Email","en-us/blog/support-microsoft-exchange-google-groups-incoming-email.yml","en-us/blog/support-microsoft-exchange-google-groups-incoming-email",{"_path":28793,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28794,"content":28799,"config":28803,"_id":28805,"_type":16,"title":28806,"_source":17,"_file":28807,"_stem":28808,"_extension":20},"/en-us/blog/gitlab-ci-cd-features-improvements",{"title":28795,"description":28796,"ogTitle":28795,"ogDescription":28796,"noIndex":6,"ogImage":8911,"ogUrl":28797,"ogSiteName":995,"ogType":996,"canonicalUrls":28797,"schema":28798},"GitLab CI/CD's 2018 highlights","We move quickly, always with an eye to the future, but let's take a moment to look back on how GitLab CI/CD has evolved in the past six months.","https://about.gitlab.com/blog/gitlab-ci-cd-features-improvements","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab CI/CD's 2018 highlights\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2019-01-21\",\n      }",{"title":28795,"description":28796,"authors":28800,"heroImage":8911,"date":28801,"category":301,"tags":28802},[20535],"2019-01-21",[2097,269,730,1569,1265],{"slug":28804,"featured":6,"template":736},"gitlab-ci-cd-features-improvements","content:en-us:blog:gitlab-ci-cd-features-improvements.yml","Gitlab Ci Cd Features Improvements","en-us/blog/gitlab-ci-cd-features-improvements.yml","en-us/blog/gitlab-ci-cd-features-improvements",{"_path":28810,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28811,"content":28816,"config":28820,"_id":28822,"_type":16,"title":28823,"_source":17,"_file":28824,"_stem":28825,"_extension":20},"/en-us/blog/inside-our-new-development-team-lead-persona",{"title":28812,"description":28813,"ogTitle":28812,"ogDescription":28813,"noIndex":6,"ogImage":12692,"ogUrl":28814,"ogSiteName":995,"ogType":996,"canonicalUrls":28814,"schema":28815},"What are the best and worst parts about being a development team lead?","Dev leads, we feel you. Here's a deep dive into our interviews with development team leads, and the new persona they informed.","https://about.gitlab.com/blog/inside-our-new-development-team-lead-persona","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What are the best and worst parts about being a development team lead?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Katherine Okpara\"}],\n        \"datePublished\": \"2019-01-18\",\n      }",{"title":28812,"description":28813,"authors":28817,"heroImage":12692,"date":28818,"category":858,"tags":28819},[26368],"2019-01-18",[964,1335,2703],{"slug":28821,"featured":6,"template":736},"inside-our-new-development-team-lead-persona","content:en-us:blog:inside-our-new-development-team-lead-persona.yml","Inside Our New Development Team Lead Persona","en-us/blog/inside-our-new-development-team-lead-persona.yml","en-us/blog/inside-our-new-development-team-lead-persona",{"_path":28827,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28828,"content":28833,"config":28837,"_id":28839,"_type":16,"title":28840,"_source":17,"_file":28841,"_stem":28842,"_extension":20},"/en-us/blog/iterating-on-sso",{"title":28829,"description":28830,"ogTitle":28829,"ogDescription":28830,"noIndex":6,"ogImage":11046,"ogUrl":28831,"ogSiteName":995,"ogType":996,"canonicalUrls":28831,"schema":28832},"How we are iterating on Group Single Sign On for GitLab.com","Here's some insight into our approach to improving a key enterprise capability for GitLab.com, SSO.","https://about.gitlab.com/blog/iterating-on-sso","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we are iterating on Group Single Sign On for GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Brinkman\"}],\n        \"datePublished\": \"2019-01-17\",\n      }",{"title":28829,"description":28830,"authors":28834,"heroImage":11046,"date":28835,"category":301,"tags":28836},[23809],"2019-01-17",[730,1569,790],{"slug":28838,"featured":6,"template":736},"iterating-on-sso","content:en-us:blog:iterating-on-sso.yml","Iterating On Sso","en-us/blog/iterating-on-sso.yml","en-us/blog/iterating-on-sso",{"_path":28844,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28845,"content":28851,"config":28855,"_id":28857,"_type":16,"title":28858,"_source":17,"_file":28859,"_stem":28860,"_extension":20},"/en-us/blog/wag-labs-blog-post",{"title":28846,"description":28847,"ogTitle":28846,"ogDescription":28847,"noIndex":6,"ogImage":28848,"ogUrl":28849,"ogSiteName":995,"ogType":996,"canonicalUrls":28849,"schema":28850},"How Wag! cut their release process from 40 minutes to just 6","The popular dog-walking app is rolling out new features faster and with more confidence as they adopt GitLab for more of their DevOps workflows.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678923/Blog/Hero%20Images/dog-walking.jpg","https://about.gitlab.com/blog/wag-labs-blog-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Wag! cut their release process from 40 minutes to just 6\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2019-01-16\",\n      }",{"title":28846,"description":28847,"authors":28852,"heroImage":28848,"date":28853,"category":1388,"tags":28854},[27414],"2019-01-16",[3075,2097,2815,564,790,964,4665,1335],{"slug":28856,"featured":6,"template":736},"wag-labs-blog-post","content:en-us:blog:wag-labs-blog-post.yml","Wag Labs Blog Post","en-us/blog/wag-labs-blog-post.yml","en-us/blog/wag-labs-blog-post",{"_path":28862,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28863,"content":28869,"config":28873,"_id":28875,"_type":16,"title":28876,"_source":17,"_file":28877,"_stem":28878,"_extension":20},"/en-us/blog/git-for-business-processes",{"title":28864,"description":28865,"ogTitle":28864,"ogDescription":28865,"noIndex":6,"ogImage":28866,"ogUrl":28867,"ogSiteName":995,"ogType":996,"canonicalUrls":28867,"schema":28868},"How we use Git as the blockchain for process changes","Git can be useful for more than just coding and operations. It can help you run your entire business – here's how we do it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679971/Blog/Hero%20Images/git-blockchain.jpg","https://about.gitlab.com/blog/git-for-business-processes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we use Git as the blockchain for process changes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2019-01-15\",\n      }",{"title":28864,"description":28865,"authors":28870,"heroImage":28866,"date":28871,"category":6121,"tags":28872},[27414],"2019-01-15",[2815,1195,1569,1265,1335],{"slug":28874,"featured":6,"template":736},"git-for-business-processes","content:en-us:blog:git-for-business-processes.yml","Git For Business Processes","en-us/blog/git-for-business-processes.yml","en-us/blog/git-for-business-processes",{"_path":28880,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28881,"content":28886,"config":28890,"_id":28892,"_type":16,"title":28893,"_source":17,"_file":28894,"_stem":28895,"_extension":20},"/en-us/blog/q1-hackathon-announcement",{"title":28882,"description":28883,"ogTitle":28882,"ogDescription":28883,"noIndex":6,"ogImage":18395,"ogUrl":28884,"ogSiteName":995,"ogType":996,"canonicalUrls":28884,"schema":28885},"Get ready for the Q1'2019 GitLab Hackathon","The first Hackathon in 2019 for the GitLab community will take place on February 12-13.","https://about.gitlab.com/blog/q1-hackathon-announcement","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get ready for the Q1'2019 GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-01-14\",\n      }",{"title":28882,"description":28883,"authors":28887,"heroImage":18395,"date":28888,"category":1388,"tags":28889},[20126],"2019-01-14",[269,2815,1265,279],{"slug":28891,"featured":6,"template":736},"q1-hackathon-announcement","content:en-us:blog:q1-hackathon-announcement.yml","Q1 Hackathon Announcement","en-us/blog/q1-hackathon-announcement.yml","en-us/blog/q1-hackathon-announcement",{"_path":28897,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28898,"content":28904,"config":28908,"_id":28910,"_type":16,"title":28911,"_source":17,"_file":28912,"_stem":28913,"_extension":20},"/en-us/blog/gitlab-2018-year-in-review",{"title":28899,"description":28900,"ogTitle":28899,"ogDescription":28900,"noIndex":6,"ogImage":28901,"ogUrl":28902,"ogSiteName":995,"ogType":996,"canonicalUrls":28902,"schema":28903},"2018: GitLab's year in review","Take a look at the highlight reel from 2018 – from landing $100M in funding to welcoming a host of great open source projects to GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670162/Blog/Hero%20Images/happy-holidays-cover.png","https://about.gitlab.com/blog/gitlab-2018-year-in-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2018: GitLab's year in review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"},{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2019-01-10\",\n      }",{"title":28899,"description":28900,"authors":28905,"heroImage":28901,"date":28906,"category":301,"tags":28907},[20500,17684],"2019-01-10",[269,1569,1049,1265],{"slug":28909,"featured":6,"template":736},"gitlab-2018-year-in-review","content:en-us:blog:gitlab-2018-year-in-review.yml","Gitlab 2018 Year In Review","en-us/blog/gitlab-2018-year-in-review.yml","en-us/blog/gitlab-2018-year-in-review",{"_path":28915,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28916,"content":28922,"config":28927,"_id":28929,"_type":16,"title":28930,"_source":17,"_file":28931,"_stem":28932,"_extension":20},"/en-us/blog/marker-io-gitlab-integration",{"title":28917,"description":28918,"ogTitle":28917,"ogDescription":28918,"noIndex":6,"ogImage":28919,"ogUrl":28920,"ogSiteName":995,"ogType":996,"canonicalUrls":28920,"schema":28921},"How to radically simplify bug reporting in GitLab","Marie Hargitt from Marker.io shares how product teams can empower colleagues to report actionable issues in GitLab, without driving developers crazy.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679899/Blog/Hero%20Images/gitlab-marker-io.png","https://about.gitlab.com/blog/marker-io-gitlab-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to radically simplify bug reporting in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marie Hargitt\"}],\n        \"datePublished\": \"2019-01-09\",\n      }",{"title":28917,"description":28918,"authors":28923,"heroImage":28919,"date":28925,"category":858,"tags":28926},[28924],"Marie Hargitt","2019-01-09",[2815,233,1335],{"slug":28928,"featured":6,"template":736},"marker-io-gitlab-integration","content:en-us:blog:marker-io-gitlab-integration.yml","Marker Io Gitlab Integration","en-us/blog/marker-io-gitlab-integration.yml","en-us/blog/marker-io-gitlab-integration",{"_path":28934,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28935,"content":28940,"config":28944,"_id":28946,"_type":16,"title":28947,"_source":17,"_file":28948,"_stem":28949,"_extension":20},"/en-us/blog/translating-gitlab",{"title":28936,"description":28937,"ogTitle":28936,"ogDescription":28937,"noIndex":6,"ogImage":18395,"ogUrl":28938,"ogSiteName":995,"ogType":996,"canonicalUrls":28938,"schema":28939},"Help us speak your language!","GitLab is available in many languages, but there's always more translation work to be done. Here's how you can contribute to translating GitLab.","https://about.gitlab.com/blog/translating-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Help us speak your language!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2019-01-08\",\n      }",{"title":28936,"description":28937,"authors":28941,"heroImage":18395,"date":28942,"category":1388,"tags":28943},[20126],"2019-01-08",[269,2815,1265,3074],{"slug":28945,"featured":6,"template":736},"translating-gitlab","content:en-us:blog:translating-gitlab.yml","Translating Gitlab","en-us/blog/translating-gitlab.yml","en-us/blog/translating-gitlab",{"_path":28951,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28952,"content":28957,"config":28962,"_id":28964,"_type":16,"title":28965,"_source":17,"_file":28966,"_stem":28967,"_extension":20},"/en-us/blog/github-offering-free-private-repos-for-up-to-three-collaborators",{"title":28953,"description":28954,"ogTitle":28953,"ogDescription":28954,"noIndex":6,"ogImage":11046,"ogUrl":28955,"ogSiteName":995,"ogType":996,"canonicalUrls":28955,"schema":28956},"GitHub's free private repos: GitLab's perspective","GitLab's CEO reflects on this move and what it means for the software development space.","https://about.gitlab.com/blog/github-offering-free-private-repos-for-up-to-three-collaborators","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitHub now offers free private repos for up to three collaborators – here are our thoughts\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2019-01-07\",\n      }",{"title":28958,"description":28954,"authors":28959,"heroImage":11046,"date":28960,"category":301,"tags":28961},"GitHub now offers free private repos for up to three collaborators – here are our thoughts",[3701],"2019-01-07",[1049,1265],{"slug":28963,"featured":6,"template":736},"github-offering-free-private-repos-for-up-to-three-collaborators","content:en-us:blog:github-offering-free-private-repos-for-up-to-three-collaborators.yml","Github Offering Free Private Repos For Up To Three Collaborators","en-us/blog/github-offering-free-private-repos-for-up-to-three-collaborators.yml","en-us/blog/github-offering-free-private-repos-for-up-to-three-collaborators",{"_path":28969,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28970,"content":28976,"config":28980,"_id":28982,"_type":16,"title":28983,"_source":17,"_file":28984,"_stem":28985,"_extension":20},"/en-us/blog/gitlab-chatops-will-become-available-to-everyone",{"title":28971,"description":28972,"ogTitle":28971,"ogDescription":28972,"noIndex":6,"ogImage":28973,"ogUrl":28974,"ogSiteName":995,"ogType":996,"canonicalUrls":28974,"schema":28975},"We're making GitLab ChatOps available to everyone!","As a holiday gift, the ChatOps functionality in GitLab will be open sourced","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679978/Blog/Hero%20Images/holiday-gift.jpg","https://about.gitlab.com/blog/gitlab-chatops-will-become-available-to-everyone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're making GitLab ChatOps available to everyone!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2018-12-24\",\n      }",{"title":28971,"description":28972,"authors":28977,"heroImage":28973,"date":28978,"category":301,"tags":28979},[3701],"2018-12-24",[269],{"slug":28981,"featured":6,"template":736},"gitlab-chatops-will-become-available-to-everyone","content:en-us:blog:gitlab-chatops-will-become-available-to-everyone.yml","Gitlab Chatops Will Become Available To Everyone","en-us/blog/gitlab-chatops-will-become-available-to-everyone.yml","en-us/blog/gitlab-chatops-will-become-available-to-everyone",{"_path":28987,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":28988,"content":28994,"config":28999,"_id":29001,"_type":16,"title":29002,"_source":17,"_file":29003,"_stem":29004,"_extension":20},"/en-us/blog/introducing-our-statement-of-support",{"title":28989,"description":28990,"ogTitle":28989,"ogDescription":28990,"noIndex":6,"ogImage":28991,"ogUrl":28992,"ogSiteName":995,"ogType":996,"canonicalUrls":28992,"schema":28993},"Introducing our Statement of Support","Our Statement of Support defines how and what we support in terms of our products, services, and applications. Here's an explainer on what you can expect from us.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678875/Blog/Hero%20Images/support-series-cover.png","https://about.gitlab.com/blog/introducing-our-statement-of-support","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing our Statement of Support\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tom Cooney\"}],\n        \"datePublished\": \"2018-12-20\",\n      }",{"title":28989,"description":28990,"authors":28995,"heroImage":28991,"date":28997,"category":301,"tags":28998},[28996],"Tom Cooney","2018-12-20",[1569,1049],{"slug":29000,"featured":6,"template":736},"introducing-our-statement-of-support","content:en-us:blog:introducing-our-statement-of-support.yml","Introducing Our Statement Of Support","en-us/blog/introducing-our-statement-of-support.yml","en-us/blog/introducing-our-statement-of-support",{"_path":29006,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29007,"content":29013,"config":29018,"_id":29020,"_type":16,"title":29021,"_source":17,"_file":29022,"_stem":29023,"_extension":20},"/en-us/blog/a-visual-prototype-of-drupal-dot-orgs-integration-with-gitlab",{"title":29008,"description":29009,"ogTitle":29008,"ogDescription":29009,"noIndex":6,"ogImage":29010,"ogUrl":29011,"ogSiteName":995,"ogType":996,"canonicalUrls":29011,"schema":29012},"A visual prototype of Drupal.org's GitLab integration","Guest author Tim Lehnen shares a visual preview of free and open source platform Drupal's upcoming integration with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671386/Blog/Hero%20Images/drupal-cover.png","https://about.gitlab.com/blog/a-visual-prototype-of-drupal-dot-orgs-integration-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A visual prototype of Drupal.org's GitLab integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tim Lehnen\"}],\n        \"datePublished\": \"2018-12-19\",\n      }",{"title":29008,"description":29009,"authors":29014,"heroImage":29010,"date":29016,"category":1388,"tags":29017},[29015],"Tim Lehnen","2018-12-19",[1265,269,233],{"slug":29019,"featured":6,"template":736},"a-visual-prototype-of-drupal-dot-orgs-integration-with-gitlab","content:en-us:blog:a-visual-prototype-of-drupal-dot-orgs-integration-with-gitlab.yml","A Visual Prototype Of Drupal Dot Orgs Integration With Gitlab","en-us/blog/a-visual-prototype-of-drupal-dot-orgs-integration-with-gitlab.yml","en-us/blog/a-visual-prototype-of-drupal-dot-orgs-integration-with-gitlab",{"_path":29025,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29026,"content":29031,"config":29035,"_id":29037,"_type":16,"title":29038,"_source":17,"_file":29039,"_stem":29040,"_extension":20},"/en-us/blog/contributor-post-siemens",{"title":29027,"description":29028,"ogTitle":29027,"ogDescription":29028,"noIndex":6,"ogImage":24329,"ogUrl":29029,"ogSiteName":995,"ogType":996,"canonicalUrls":29029,"schema":29030},"GitLab Code Contributor: Alexis Reigel","Alexis Reigel shares his experience as a GitLab contributor on behalf of Siemens.","https://about.gitlab.com/blog/contributor-post-siemens","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Alexis Reigel\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-12-18\",\n      }",{"title":29027,"description":29028,"authors":29032,"heroImage":24329,"date":29033,"category":1388,"tags":29034},[20126],"2018-12-18",[269,2815,1265,3074],{"slug":29036,"featured":6,"template":736},"contributor-post-siemens","content:en-us:blog:contributor-post-siemens.yml","Contributor Post Siemens","en-us/blog/contributor-post-siemens.yml","en-us/blog/contributor-post-siemens",{"_path":29042,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29043,"content":29048,"config":29052,"_id":29054,"_type":16,"title":29055,"_source":17,"_file":29056,"_stem":29057,"_extension":20},"/en-us/blog/gartner-peer-choice-gitlab-2018",{"title":29044,"description":29045,"ogTitle":29044,"ogDescription":29045,"noIndex":6,"ogImage":11046,"ogUrl":29046,"ogSiteName":995,"ogType":996,"canonicalUrls":29046,"schema":29047},"GitLab named a December 2018 Gartner Peer Insights Customers' Choice for Application Release Orchestration","The Gartner Peer Insights Customers’ Choice is a recognition of vendors in the market verified by end-user reviews and ratings.","https://about.gitlab.com/blog/gartner-peer-choice-gitlab-2018","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab named a December 2018 Gartner Peer Insights Customers' Choice for Application Release Orchestration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-12-17\",\n      }",{"title":29044,"description":29045,"authors":29049,"heroImage":11046,"date":29050,"category":301,"tags":29051},[1000],"2018-12-17",[1049],{"slug":29053,"featured":6,"template":736},"gartner-peer-choice-gitlab-2018","content:en-us:blog:gartner-peer-choice-gitlab-2018.yml","Gartner Peer Choice Gitlab 2018","en-us/blog/gartner-peer-choice-gitlab-2018.yml","en-us/blog/gartner-peer-choice-gitlab-2018",{"_path":29059,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29060,"content":29065,"config":29070,"_id":29072,"_type":16,"title":29073,"_source":17,"_file":29074,"_stem":29075,"_extension":20},"/en-us/blog/gitlab-tls1011-discontinued-update",{"title":29061,"description":29062,"ogTitle":29061,"ogDescription":29062,"noIndex":6,"ogImage":13091,"ogUrl":29063,"ogSiteName":995,"ogType":996,"canonicalUrls":29063,"schema":29064},"TLS 1.0 and 1.1 support ended on GitLab.com and API","TLS 1.2 is now required for all clients that connect to GitLab.com and our GitLab API.","https://about.gitlab.com/blog/gitlab-tls1011-discontinued-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Support for TLS 1.0 and 1.1 discontinued on GitLab.com and GitLab API on 2018-12-15\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Farber\"}],\n        \"datePublished\": \"2018-12-17\",\n      }",{"title":29066,"description":29062,"authors":29067,"heroImage":13091,"date":29050,"category":301,"tags":29069},"Support for TLS 1.0 and 1.1 discontinued on GitLab.com and GitLab API on 2018-12-15",[29068],"Melissa Farber",[892,790],{"slug":29071,"featured":6,"template":736},"gitlab-tls1011-discontinued-update","content:en-us:blog:gitlab-tls1011-discontinued-update.yml","Gitlab Tls1011 Discontinued Update","en-us/blog/gitlab-tls1011-discontinued-update.yml","en-us/blog/gitlab-tls1011-discontinued-update",{"_path":29077,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29078,"content":29084,"config":29089,"_id":29091,"_type":16,"title":29092,"_source":17,"_file":29093,"_stem":29094,"_extension":20},"/en-us/blog/configure-post",{"title":29079,"description":29080,"ogTitle":29079,"ogDescription":29080,"noIndex":6,"ogImage":29081,"ogUrl":29082,"ogSiteName":995,"ogType":996,"canonicalUrls":29082,"schema":29083},"GitLab restructures to boost cross-functional collaboration","Implementing a new structure sounds like a big change, but our Configure group is here to give you the scoop.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678839/Blog/Hero%20Images/inside-look-at-new-cross-functional-teams-at-gitlab.jpg","https://about.gitlab.com/blog/configure-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We restructured to allow better cross-functional collaboration — here's how it's going.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2018-12-13\",\n      }",{"title":29085,"description":29080,"authors":29086,"heroImage":29081,"date":29087,"category":858,"tags":29088},"We restructured to allow better cross-functional collaboration — here's how it's going.",[20500],"2018-12-13",[730,2815],{"slug":29090,"featured":6,"template":736},"configure-post","content:en-us:blog:configure-post.yml","Configure Post","en-us/blog/configure-post.yml","en-us/blog/configure-post",{"_path":29096,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29097,"content":29102,"config":29106,"_id":29108,"_type":16,"title":29109,"_source":17,"_file":29110,"_stem":29111,"_extension":20},"/en-us/blog/gitlab-hackerone-bug-bounty-program-is-public-today",{"title":29098,"description":29099,"ogTitle":29098,"ogDescription":29099,"noIndex":6,"ogImage":13091,"ogUrl":29100,"ogSiteName":995,"ogType":996,"canonicalUrls":29100,"schema":29101},"GitLab's HackerOne Bug Bounty Program is public today","With 200 reported vulnerabilities and $200,000 awarded already, our bug bounty program is now public and open for your contributions.","https://about.gitlab.com/blog/gitlab-hackerone-bug-bounty-program-is-public-today","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's HackerOne Bug Bounty Program is public today\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kathy Wang\"}],\n        \"datePublished\": \"2018-12-12\",\n      }",{"title":29098,"description":29099,"authors":29103,"heroImage":13091,"date":29104,"category":858,"tags":29105},[27727],"2018-12-12",[269,790],{"slug":29107,"featured":6,"template":736},"gitlab-hackerone-bug-bounty-program-is-public-today","content:en-us:blog:gitlab-hackerone-bug-bounty-program-is-public-today.yml","Gitlab Hackerone Bug Bounty Program Is Public Today","en-us/blog/gitlab-hackerone-bug-bounty-program-is-public-today.yml","en-us/blog/gitlab-hackerone-bug-bounty-program-is-public-today",{"_path":29113,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29114,"content":29119,"config":29122,"_id":29124,"_type":16,"title":29125,"_source":17,"_file":29126,"_stem":29127,"_extension":20},"/en-us/blog/what-to-expect-at-predict-2019",{"title":29115,"description":29116,"ogTitle":29115,"ogDescription":29116,"noIndex":6,"ogImage":23606,"ogUrl":29117,"ogSiteName":995,"ogType":996,"canonicalUrls":29117,"schema":29118},"2019 cloud native predictions from the Predict 2019 Conference","Break out your sunglasses, because the cloud native forecast for 2019 is sunny.","https://about.gitlab.com/blog/what-to-expect-at-predict-2019","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2019 cloud native predictions from the Predict 2019 Conference\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tina Sturgis\"}],\n        \"datePublished\": \"2018-12-12\",\n      }",{"title":29115,"description":29116,"authors":29120,"heroImage":23606,"date":29104,"category":8140,"tags":29121},[24054],[564,2908,582,279],{"slug":29123,"featured":6,"template":736},"what-to-expect-at-predict-2019","content:en-us:blog:what-to-expect-at-predict-2019.yml","What To Expect At Predict 2019","en-us/blog/what-to-expect-at-predict-2019.yml","en-us/blog/what-to-expect-at-predict-2019",{"_path":29129,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29130,"content":29135,"config":29139,"_id":29141,"_type":16,"title":29142,"_source":17,"_file":29143,"_stem":29144,"_extension":20},"/en-us/blog/introducing-gitlab-serverless",{"title":29131,"description":29132,"ogTitle":29131,"ogDescription":29132,"noIndex":6,"ogImage":24522,"ogUrl":29133,"ogSiteName":995,"ogType":996,"canonicalUrls":29133,"schema":29134},"Announcing GitLab Serverless","The true value of serverless is best realized via a single-application DevOps experience – that's why we're launching GitLab Serverless.","https://about.gitlab.com/blog/introducing-gitlab-serverless","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing GitLab Serverless\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Priyanka Sharma\"}],\n        \"datePublished\": \"2018-12-11\",\n      }",{"title":29131,"description":29132,"authors":29136,"heroImage":24522,"date":29137,"category":301,"tags":29138},[25150],"2018-12-11",[1049,564,730,233,2908],{"slug":29140,"featured":6,"template":736},"introducing-gitlab-serverless","content:en-us:blog:introducing-gitlab-serverless.yml","Introducing Gitlab Serverless","en-us/blog/introducing-gitlab-serverless.yml","en-us/blog/introducing-gitlab-serverless",{"_path":29146,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29147,"content":29153,"config":29157,"_id":29159,"_type":16,"title":29160,"_source":17,"_file":29161,"_stem":29162,"_extension":20},"/en-us/blog/friends-dont-let-friends-add-options-to-code",{"title":29148,"description":29149,"ogTitle":29148,"ogDescription":29149,"noIndex":6,"ogImage":29150,"ogUrl":29151,"ogSiteName":995,"ogType":996,"canonicalUrls":29151,"schema":29152},"Friends don't let friends add options to code","Creating optional features burdens users and applications – here's how we avoid adding options.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678953/Blog/Hero%20Images/options.jpg","https://about.gitlab.com/blog/friends-dont-let-friends-add-options-to-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Friends don't let friends add options to code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-12-10\",\n      }",{"title":29148,"description":29149,"authors":29154,"heroImage":29150,"date":29155,"category":858,"tags":29156},[19332],"2018-12-10",[1569,2703,1265,1335],{"slug":29158,"featured":6,"template":736},"friends-dont-let-friends-add-options-to-code","content:en-us:blog:friends-dont-let-friends-add-options-to-code.yml","Friends Dont Let Friends Add Options To Code","en-us/blog/friends-dont-let-friends-add-options-to-code.yml","en-us/blog/friends-dont-let-friends-add-options-to-code",{"_path":29164,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29165,"content":29170,"config":29173,"_id":29175,"_type":16,"title":29176,"_source":17,"_file":29177,"_stem":29178,"_extension":20},"/en-us/blog/git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com",{"title":29166,"description":29167,"ogTitle":29166,"ogDescription":29167,"noIndex":6,"ogImage":11046,"ogUrl":29168,"ogSiteName":995,"ogType":996,"canonicalUrls":29168,"schema":29169},"Git Protocol v2 now enabled for SSH on GitLab.com","Fetch faster using Git Protocol v2 – here's how.","https://about.gitlab.com/blog/git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git Protocol v2 now enabled for SSH on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Ramsay\"}],\n        \"datePublished\": \"2018-12-10\",\n      }",{"title":29166,"description":29167,"authors":29171,"heroImage":11046,"date":29155,"category":858,"tags":29172},[22890],[1195,6376,892],{"slug":29174,"featured":6,"template":736},"git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com","content:en-us:blog:git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com.yml","Git Protocol V2 Enabled For Ssh On Gitlab Dot Com","en-us/blog/git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com.yml","en-us/blog/git-protocol-v2-enabled-for-ssh-on-gitlab-dot-com",{"_path":29180,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29181,"content":29187,"config":29191,"_id":29193,"_type":16,"title":29194,"_source":17,"_file":29195,"_stem":29196,"_extension":20},"/en-us/blog/aws-reinvent-recap",{"title":29182,"description":29183,"ogTitle":29182,"ogDescription":29183,"noIndex":6,"ogImage":29184,"ogUrl":29185,"ogSiteName":995,"ogType":996,"canonicalUrls":29185,"schema":29186},"Highlights from AWS re:Invent 2018","Catch up on what GitLab got up to at AWS re:Invent last week! Reinventing pipelines, emerging as a single application, theCUBE interviews, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679994/Blog/Hero%20Images/aws_booth_2018.jpg","https://about.gitlab.com/blog/aws-reinvent-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Highlights from AWS re:Invent 2018\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Priyanka Sharma\"}],\n        \"datePublished\": \"2018-12-06\",\n      }",{"title":29182,"description":29183,"authors":29188,"heroImage":29184,"date":29189,"category":301,"tags":29190},[25150],"2018-12-06",[2097,269,4182,279,1049,2908,1569,1265],{"slug":29192,"featured":6,"template":736},"aws-reinvent-recap","content:en-us:blog:aws-reinvent-recap.yml","Aws Reinvent Recap","en-us/blog/aws-reinvent-recap.yml","en-us/blog/aws-reinvent-recap",{"_path":29198,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29199,"content":29204,"config":29208,"_id":29210,"_type":16,"title":29211,"_source":17,"_file":29212,"_stem":29213,"_extension":20},"/en-us/blog/gitlab-runner-update-required-to-use-auto-devops-and-sast",{"title":29200,"description":29201,"ogTitle":29200,"ogDescription":29201,"noIndex":6,"ogImage":16110,"ogUrl":29202,"ogSiteName":995,"ogType":996,"canonicalUrls":29202,"schema":29203},"GitLab Runner update required to use SAST in Auto DevOps","Make sure you upgrade GitLab Runner to 11.5+ to coninue using SAST in Auto DevOps.","https://about.gitlab.com/blog/gitlab-runner-update-required-to-use-auto-devops-and-sast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Runner update required to use SAST in Auto DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabio Busatto\"}],\n        \"datePublished\": \"2018-12-06\",\n      }",{"title":29200,"description":29201,"authors":29205,"heroImage":16110,"date":29189,"category":858,"tags":29207},[29206],"Fabio Busatto",[2097,564,730,892,790],{"slug":29209,"featured":6,"template":736},"gitlab-runner-update-required-to-use-auto-devops-and-sast","content:en-us:blog:gitlab-runner-update-required-to-use-auto-devops-and-sast.yml","Gitlab Runner Update Required To Use Auto Devops And Sast","en-us/blog/gitlab-runner-update-required-to-use-auto-devops-and-sast.yml","en-us/blog/gitlab-runner-update-required-to-use-auto-devops-and-sast",{"_path":29215,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29216,"content":29221,"config":29226,"_id":29228,"_type":16,"title":29229,"_source":17,"_file":29230,"_stem":29231,"_extension":20},"/en-us/blog/availability-postgres-patroni",{"title":29217,"description":29218,"ogTitle":29217,"ogDescription":29218,"noIndex":6,"ogImage":27619,"ogUrl":29219,"ogSiteName":995,"ogType":996,"canonicalUrls":29219,"schema":29220},"Introducing Patroni as the Postgres Failover Manager on GitLab.com","GitLab.com is introducing Patroni as the Postgres Failover Manager on GitLab.com.","https://about.gitlab.com/blog/availability-postgres-patroni","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing Patroni as the Postgres Failover Manager on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gerardo Lopez-Fernandez\"}],\n        \"datePublished\": \"2018-12-05\",\n      }",{"title":29217,"description":29218,"authors":29222,"heroImage":27619,"date":29224,"category":858,"tags":29225},[29223],"Gerardo Lopez-Fernandez","2018-12-05",[730,730,729,2483,729,3074],{"slug":29227,"featured":6,"template":736},"availability-postgres-patroni","content:en-us:blog:availability-postgres-patroni.yml","Availability Postgres Patroni","en-us/blog/availability-postgres-patroni.yml","en-us/blog/availability-postgres-patroni",{"_path":29233,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29234,"content":29239,"config":29242,"_id":29244,"_type":16,"title":29245,"_source":17,"_file":29246,"_stem":29247,"_extension":20},"/en-us/blog/opensource-multi-cloud-crossplane",{"title":29235,"description":29236,"ogTitle":29235,"ogDescription":29236,"noIndex":6,"ogImage":27427,"ogUrl":29237,"ogSiteName":995,"ogType":996,"canonicalUrls":29237,"schema":29238},"Crossplane lowers the barrier to a multi-cloud future","GitLab has been chosen as the first complex app to be deployed on new multi-cloud control plane, Crossplane.","https://about.gitlab.com/blog/opensource-multi-cloud-crossplane","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Crossplane lowers the barrier to a multi-cloud future\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2018-12-04\",\n      }",{"title":29235,"description":29236,"authors":29240,"heroImage":27427,"date":29241,"category":301},[3701],"2018-12-04",{"slug":29243,"featured":6,"template":736},"opensource-multi-cloud-crossplane","content:en-us:blog:opensource-multi-cloud-crossplane.yml","Opensource Multi Cloud Crossplane","en-us/blog/opensource-multi-cloud-crossplane.yml","en-us/blog/opensource-multi-cloud-crossplane",{"_path":29249,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29250,"content":29255,"config":29259,"_id":29261,"_type":16,"title":29262,"_source":17,"_file":29263,"_stem":29264,"_extension":20},"/en-us/blog/gitlab-achieves-aws-devops-competency-certification",{"title":29251,"description":29252,"ogTitle":29251,"ogDescription":29252,"noIndex":6,"ogImage":22083,"ogUrl":29253,"ogSiteName":995,"ogType":996,"canonicalUrls":29253,"schema":29254},"GitLab achieves AWS DevOps Competency certification","GitLab has been certified with AWS DevOps Competency, affirming our further commitment as a technology partner with Amazon Web Services.","https://about.gitlab.com/blog/gitlab-achieves-aws-devops-competency-certification","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab achieves AWS DevOps Competency certification\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tina Sturgis\"},{\"@type\":\"Person\",\"name\":\"Eliran Mesika\"}],\n        \"datePublished\": \"2018-11-28\",\n      }",{"title":29251,"description":29252,"authors":29256,"heroImage":22083,"date":29257,"category":301,"tags":29258},[24054,20074],"2018-11-28",[2097,564,1049],{"slug":29260,"featured":6,"template":736},"gitlab-achieves-aws-devops-competency-certification","content:en-us:blog:gitlab-achieves-aws-devops-competency-certification.yml","Gitlab Achieves Aws Devops Competency Certification","en-us/blog/gitlab-achieves-aws-devops-competency-certification.yml","en-us/blog/gitlab-achieves-aws-devops-competency-certification",{"_path":29266,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29267,"content":29272,"config":29277,"_id":29279,"_type":16,"title":29280,"_source":17,"_file":29281,"_stem":29282,"_extension":20},"/en-us/blog/microservices-integrated-solution",{"title":29268,"description":29269,"ogTitle":29268,"ogDescription":29269,"noIndex":6,"ogImage":11408,"ogUrl":29270,"ogSiteName":995,"ogType":996,"canonicalUrls":29270,"schema":29271},"Tackling the microservices repository explosion challenge","Microservices have spawned an explosion of dependent projects with multiple repos, creating the need for an integrated solution – we're working on it right now.","https://about.gitlab.com/blog/microservices-integrated-solution","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"It's raining repos: The microservices repo explosion, and what we're doing about it\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-11-26\",\n      }",{"title":29273,"description":29269,"authors":29274,"heroImage":11408,"date":29275,"category":858,"tags":29276},"It's raining repos: The microservices repo explosion, and what we're doing about it",[27414],"2018-11-26",[2097,233,2908,790,964],{"slug":29278,"featured":6,"template":736},"microservices-integrated-solution","content:en-us:blog:microservices-integrated-solution.yml","Microservices Integrated Solution","en-us/blog/microservices-integrated-solution.yml","en-us/blog/microservices-integrated-solution",{"_path":29284,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29285,"content":29291,"config":29295,"_id":29297,"_type":16,"title":29298,"_source":17,"_file":29299,"_stem":29300,"_extension":20},"/en-us/blog/why-gitlab-uses-a-monthly-release-cycle",{"title":29286,"description":29287,"ogTitle":29286,"ogDescription":29287,"noIndex":6,"ogImage":29288,"ogUrl":29289,"ogSiteName":995,"ogType":996,"canonicalUrls":29289,"schema":29290},"How we maintain product velocity with a monthly release cycle","This workplace has gone 85 months without missing a release.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678822/Blog/Hero%20Images/monthlyrelease.jpg","https://about.gitlab.com/blog/why-gitlab-uses-a-monthly-release-cycle","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we maintain product velocity with a monthly release cycle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-11-21\",\n      }",{"title":29286,"description":29287,"authors":29292,"heroImage":29288,"date":29293,"category":301,"tags":29294},[19332],"2018-11-21",[964,1569],{"slug":29296,"featured":6,"template":736},"why-gitlab-uses-a-monthly-release-cycle","content:en-us:blog:why-gitlab-uses-a-monthly-release-cycle.yml","Why Gitlab Uses A Monthly Release Cycle","en-us/blog/why-gitlab-uses-a-monthly-release-cycle.yml","en-us/blog/why-gitlab-uses-a-monthly-release-cycle",{"_path":29302,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29303,"content":29308,"config":29312,"_id":29314,"_type":16,"title":29315,"_source":17,"_file":29316,"_stem":29317,"_extension":20},"/en-us/blog/contributor-post-hannes",{"title":29304,"description":29305,"ogTitle":29304,"ogDescription":29305,"noIndex":6,"ogImage":24329,"ogUrl":29306,"ogSiteName":995,"ogType":996,"canonicalUrls":29306,"schema":29307},"GitLab Code Contributor: Hannes Rosenögger","Core team member Hannes Rosenögger shares his experience contributing to GitLab since 2014.","https://about.gitlab.com/blog/contributor-post-hannes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Hannes Rosenögger\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-11-20\",\n      }",{"title":29304,"description":29305,"authors":29309,"heroImage":24329,"date":29310,"category":1388,"tags":29311},[20126],"2018-11-20",[269,2815,1265,3074],{"slug":29313,"featured":6,"template":736},"contributor-post-hannes","content:en-us:blog:contributor-post-hannes.yml","Contributor Post Hannes","en-us/blog/contributor-post-hannes.yml","en-us/blog/contributor-post-hannes",{"_path":29319,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29320,"content":29326,"config":29330,"_id":29332,"_type":16,"title":29333,"_source":17,"_file":29334,"_stem":29335,"_extension":20},"/en-us/blog/aws-pre-event-post",{"title":29321,"description":29322,"ogTitle":29321,"ogDescription":29322,"noIndex":6,"ogImage":29323,"ogUrl":29324,"ogSiteName":995,"ogType":996,"canonicalUrls":29324,"schema":29325},"Our top 6 tips for making the most of AWS re:Invent","Here are our top tips, tricks, and not-to-be missed for AWS 2018.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678889/Blog/Hero%20Images/IMG_4756.jpg","https://about.gitlab.com/blog/aws-pre-event-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our top 6 tips for making the most of AWS re:Invent\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2018-11-19\",\n      }",{"title":29321,"description":29322,"authors":29327,"heroImage":29323,"date":29328,"category":8140,"tags":29329},[15730],"2018-11-19",[279],{"slug":29331,"featured":6,"template":736},"aws-pre-event-post","content:en-us:blog:aws-pre-event-post.yml","Aws Pre Event Post","en-us/blog/aws-pre-event-post.yml","en-us/blog/aws-pre-event-post",{"_path":29337,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29338,"content":29344,"config":29348,"_id":29350,"_type":16,"title":29351,"_source":17,"_file":29352,"_stem":29353,"_extension":20},"/en-us/blog/hiring-based-on-open-source-contributions-could-be-harmful",{"title":29339,"description":29340,"ogTitle":29339,"ogDescription":29340,"noIndex":6,"ogImage":29341,"ogUrl":29342,"ogSiteName":995,"ogType":996,"canonicalUrls":29342,"schema":29343},"We all love open source, but hiring based on contributions could be harmful","An industry expert from Indeed says it's a bad idea to make hiring decisions based on GitHub activity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678750/Blog/Hero%20Images/man-coding.jpg","https://about.gitlab.com/blog/hiring-based-on-open-source-contributions-could-be-harmful","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We all love open source, but hiring based on contributions could be harmful\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-11-16\",\n      }",{"title":29339,"description":29340,"authors":29345,"heroImage":29341,"date":29346,"category":1388,"tags":29347},[27414],"2018-11-16",[6980,1265,269],{"slug":29349,"featured":6,"template":736},"hiring-based-on-open-source-contributions-could-be-harmful","content:en-us:blog:hiring-based-on-open-source-contributions-could-be-harmful.yml","Hiring Based On Open Source Contributions Could Be Harmful","en-us/blog/hiring-based-on-open-source-contributions-could-be-harmful.yml","en-us/blog/hiring-based-on-open-source-contributions-could-be-harmful",{"_path":29355,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29356,"content":29361,"config":29365,"_id":29367,"_type":16,"title":29368,"_source":17,"_file":29369,"_stem":29370,"_extension":20},"/en-us/blog/new-elasticsearch-version-requirements",{"title":29357,"description":29358,"ogTitle":29357,"ogDescription":29358,"noIndex":6,"ogImage":16110,"ogUrl":29359,"ogSiteName":995,"ogType":996,"canonicalUrls":29359,"schema":29360},"GitLab 11.5 adds Elasticsearch 6, removes ES 5.5 support","GitLab 11.5 will support Elasticsearch version 6 and 5.6, sunsetting support for versions 5.5 and earlier.","https://about.gitlab.com/blog/new-elasticsearch-version-requirements","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 11.5 to support Elasticsearch 6, sunset support for Elasticsearch 5.5\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mario de la Ossa\"}],\n        \"datePublished\": \"2018-11-16\",\n      }",{"title":29362,"description":29358,"authors":29363,"heroImage":16110,"date":29346,"category":858,"tags":29364},"GitLab 11.5 to support Elasticsearch 6, sunset support for Elasticsearch 5.5",[28259],[730,892],{"slug":29366,"featured":6,"template":736},"new-elasticsearch-version-requirements","content:en-us:blog:new-elasticsearch-version-requirements.yml","New Elasticsearch Version Requirements","en-us/blog/new-elasticsearch-version-requirements.yml","en-us/blog/new-elasticsearch-version-requirements",{"_path":29372,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29373,"content":29378,"config":29383,"_id":29385,"_type":16,"title":29386,"_source":17,"_file":29387,"_stem":29388,"_extension":20},"/en-us/blog/gitlab-tls-support-discontinue-update",{"title":29374,"description":29375,"ogTitle":29374,"ogDescription":29375,"noIndex":6,"ogImage":13091,"ogUrl":29376,"ogSiteName":995,"ogType":996,"canonicalUrls":29376,"schema":29377},"TLS 1.0 and 1.1 support ending on GitLab in 2018","Find out how to test for potential operational disruptions to your integrations and browsers.","https://about.gitlab.com/blog/gitlab-tls-support-discontinue-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're on target to discontinue support for TLS 1.0 and TLS 1.1 by end of 2018\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Farber\"}],\n        \"datePublished\": \"2018-11-15\",\n      }",{"title":29379,"description":29375,"authors":29380,"heroImage":13091,"date":29381,"category":301,"tags":29382},"We're on target to discontinue support for TLS 1.0 and TLS 1.1 by end of 2018",[29068],"2018-11-15",[790],{"slug":29384,"featured":6,"template":736},"gitlab-tls-support-discontinue-update","content:en-us:blog:gitlab-tls-support-discontinue-update.yml","Gitlab Tls Support Discontinue Update","en-us/blog/gitlab-tls-support-discontinue-update.yml","en-us/blog/gitlab-tls-support-discontinue-update",{"_path":29390,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29391,"content":29397,"config":29401,"_id":29403,"_type":16,"title":29404,"_source":17,"_file":29405,"_stem":29406,"_extension":20},"/en-us/blog/how-we-spent-two-weeks-hunting-an-nfs-bug",{"title":29392,"description":29393,"ogTitle":29392,"ogDescription":29393,"noIndex":6,"ogImage":29394,"ogUrl":29395,"ogSiteName":995,"ogType":996,"canonicalUrls":29395,"schema":29396},"How we spent two weeks hunting an NFS bug in the Linux kernel","Here's an in-depth recap of debugging a GitLab issue that culminated in a patch for the Linux kernel.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672173/Blog/Hero%20Images/nfs-bug-hunt-detective.jpg","https://about.gitlab.com/blog/how-we-spent-two-weeks-hunting-an-nfs-bug","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we spent two weeks hunting an NFS bug in the Linux kernel\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stan Hu\"}],\n        \"datePublished\": \"2018-11-14\",\n      }",{"title":29392,"description":29393,"authors":29398,"heroImage":29394,"date":29399,"category":858,"tags":29400},[1598],"2018-11-14",[269,1195,1569,1265],{"slug":29402,"featured":6,"template":736},"how-we-spent-two-weeks-hunting-an-nfs-bug","content:en-us:blog:how-we-spent-two-weeks-hunting-an-nfs-bug.yml","How We Spent Two Weeks Hunting An Nfs Bug","en-us/blog/how-we-spent-two-weeks-hunting-an-nfs-bug.yml","en-us/blog/how-we-spent-two-weeks-hunting-an-nfs-bug",{"_path":29408,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29409,"content":29415,"config":29419,"_id":29421,"_type":16,"title":29422,"_source":17,"_file":29423,"_stem":29424,"_extension":20},"/en-us/blog/inside-our-new-product-manager-persona",{"title":29410,"description":29411,"ogTitle":29410,"ogDescription":29411,"noIndex":6,"ogImage":29412,"ogUrl":29413,"ogSiteName":995,"ogType":996,"canonicalUrls":29413,"schema":29414},"What do product managers need to do their best work?","Check out some of the findings that led to our new Product Manager Persona.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678857/Blog/Hero%20Images/investigating-how-product-managers-use-gitlab.jpg","https://about.gitlab.com/blog/inside-our-new-product-manager-persona","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What do product managers need to do their best work?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Katherine Okpara\"}],\n        \"datePublished\": \"2018-11-12\",\n      }",{"title":29410,"description":29411,"authors":29416,"heroImage":29412,"date":29417,"category":8140,"tags":29418},[26368],"2018-11-12",[964,1569,1335],{"slug":29420,"featured":6,"template":736},"inside-our-new-product-manager-persona","content:en-us:blog:inside-our-new-product-manager-persona.yml","Inside Our New Product Manager Persona","en-us/blog/inside-our-new-product-manager-persona.yml","en-us/blog/inside-our-new-product-manager-persona",{"_path":29426,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29427,"content":29433,"config":29437,"_id":29439,"_type":16,"title":29440,"_source":17,"_file":29441,"_stem":29442,"_extension":20},"/en-us/blog/monetizing-and-being-open-source",{"title":29428,"description":29429,"ogTitle":29428,"ogDescription":29429,"noIndex":6,"ogImage":29430,"ogUrl":29431,"ogSiteName":995,"ogType":996,"canonicalUrls":29431,"schema":29432},"How GitLab makes money","Monetizing open source ≠ an 'open source' company. Our CEO Sid Sijbrandij explains how we got over the barriers to monetizing an open source company.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678896/Blog/Hero%20Images/monetizing-os.jpg","https://about.gitlab.com/blog/monetizing-and-being-open-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab makes money\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-11-09\",\n      }",{"title":29428,"description":29429,"authors":29434,"heroImage":29430,"date":29435,"category":301,"tags":29436},[27414],"2018-11-09",[1569,1265],{"slug":29438,"featured":6,"template":736},"monetizing-and-being-open-source","content:en-us:blog:monetizing-and-being-open-source.yml","Monetizing And Being Open Source","en-us/blog/monetizing-and-being-open-source.yml","en-us/blog/monetizing-and-being-open-source",{"_path":29444,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29445,"content":29451,"config":29456,"_id":29458,"_type":16,"title":29459,"_source":17,"_file":29460,"_stem":29461,"_extension":20},"/en-us/blog/gitlab-for-designers",{"title":29446,"description":29447,"ogTitle":29446,"ogDescription":29447,"noIndex":6,"ogImage":29448,"ogUrl":29449,"ogSiteName":995,"ogType":996,"canonicalUrls":29449,"schema":29450},"Help us shape the future of design discussion in GitLab","We've identified the need for full integration of user experience design within the DevOps lifecycle, and would love your feedback on how to make that happen.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680008/Blog/Hero%20Images/design-discussion.jpg","https://about.gitlab.com/blog/gitlab-for-designers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Help us shape the future of design discussion in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarrah Vesselov\"}],\n        \"datePublished\": \"2018-11-08\",\n      }",{"title":29446,"description":29447,"authors":29452,"heroImage":29448,"date":29454,"category":301,"tags":29455},[29453],"Sarrah Vesselov","2018-11-08",[2815,1569,2703,2702,564],{"slug":29457,"featured":6,"template":736},"gitlab-for-designers","content:en-us:blog:gitlab-for-designers.yml","Gitlab For Designers","en-us/blog/gitlab-for-designers.yml","en-us/blog/gitlab-for-designers",{"_path":29463,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29464,"content":29469,"config":29474,"_id":29476,"_type":16,"title":29477,"_source":17,"_file":29478,"_stem":29479,"_extension":20},"/en-us/blog/use-multiproject-pipelines-with-gitlab-cicd",{"title":29465,"description":29466,"ogTitle":29465,"ogDescription":29466,"noIndex":6,"ogImage":11046,"ogUrl":29467,"ogSiteName":995,"ogType":996,"canonicalUrls":29467,"schema":29468},"Multi-project pipelines for streamlined repository workflow","You can connect CI/CD pipelines and artifacts for multiple related projects to make managing interactions easy.","https://about.gitlab.com/blog/use-multiproject-pipelines-with-gitlab-cicd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to streamline interactions between multiple repositories with multi-project pipelines\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabio Busatto\"}],\n        \"datePublished\": \"2018-10-31\",\n      }",{"title":29470,"description":29466,"authors":29471,"heroImage":11046,"date":29472,"category":858,"tags":29473},"How to streamline interactions between multiple repositories with multi-project pipelines",[29206],"2018-10-31",[110],{"slug":29475,"featured":6,"template":736},"use-multiproject-pipelines-with-gitlab-cicd","content:en-us:blog:use-multiproject-pipelines-with-gitlab-cicd.yml","Use Multiproject Pipelines With Gitlab Cicd","en-us/blog/use-multiproject-pipelines-with-gitlab-cicd.yml","en-us/blog/use-multiproject-pipelines-with-gitlab-cicd",{"_path":29481,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29482,"content":29488,"config":29492,"_id":29494,"_type":16,"title":29495,"_source":17,"_file":29496,"_stem":29497,"_extension":20},"/en-us/blog/how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team",{"title":29483,"description":29484,"ogTitle":29483,"ogDescription":29484,"noIndex":6,"ogImage":29485,"ogUrl":29486,"ogSiteName":995,"ogType":996,"canonicalUrls":29486,"schema":29487},"How do we handle engineering-led issues that don't belong to one team?","A recent issue sparked a lively discussion between engineering and product leadership about how 'cross-vertical' issues should be prioritized to avoid the bystander effect.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678916/Blog/Hero%20Images/how-do-we-handle-engineering-led-initiatives.jpg","https://about.gitlab.com/blog/how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How do we handle engineering-led issues that don't belong to one team?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2018-10-30\",\n      }",{"title":29483,"description":29484,"authors":29489,"heroImage":29485,"date":29490,"category":301,"tags":29491},[20500],"2018-10-30",[2815,564,1569,1335],{"slug":29493,"featured":6,"template":736},"how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team","content:en-us:blog:how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team.yml","How Do We Handle Engineering Led Initiatives That Dont Belong To One Team","en-us/blog/how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team.yml","en-us/blog/how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team",{"_path":29499,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29500,"content":29505,"config":29509,"_id":29511,"_type":16,"title":29512,"_source":17,"_file":29513,"_stem":29514,"_extension":20},"/en-us/blog/why-we-use-rails-to-build-gitlab",{"title":29501,"description":29502,"ogTitle":29501,"ogDescription":29502,"noIndex":6,"ogImage":12447,"ogUrl":29503,"ogSiteName":995,"ogType":996,"canonicalUrls":29503,"schema":29504},"Why we use Ruby on Rails to build GitLab","Here's our CEO on GitLab’s inception using Rails, and how challenges are being handled along the way.","https://about.gitlab.com/blog/why-we-use-rails-to-build-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we use Ruby on Rails to build GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-10-29\",\n      }",{"title":29501,"description":29502,"authors":29506,"heroImage":12447,"date":29507,"category":301,"tags":29508},[27414],"2018-10-29",[2815,269,10121,1569,1988,6376,1335],{"slug":29510,"featured":6,"template":736},"why-we-use-rails-to-build-gitlab","content:en-us:blog:why-we-use-rails-to-build-gitlab.yml","Why We Use Rails To Build Gitlab","en-us/blog/why-we-use-rails-to-build-gitlab.yml","en-us/blog/why-we-use-rails-to-build-gitlab",{"_path":29516,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29517,"content":29523,"config":29527,"_id":29529,"_type":16,"title":29530,"_source":17,"_file":29531,"_stem":29532,"_extension":20},"/en-us/blog/two-questions-we-ask-ux-designers-in-job-interviews",{"title":29518,"description":29519,"ogTitle":29518,"ogDescription":29519,"noIndex":6,"ogImage":29520,"ogUrl":29521,"ogSiteName":995,"ogType":996,"canonicalUrls":29521,"schema":29522},"2 Questions we ask UX designers in job interviews (and why)","UX designer interviews are quite simple at GitLab. There are no trick questions – but here are two 'basic' ones that tell us a lot about you.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678794/Blog/Hero%20Images/ux-interviews.jpg","https://about.gitlab.com/blog/two-questions-we-ask-ux-designers-in-job-interviews","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2 Questions we ask UX designers in job interviews (and why)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2018-10-25\",\n      }",{"title":29518,"description":29519,"authors":29524,"heroImage":29520,"date":29525,"category":301,"tags":29526},[17415],"2018-10-25",[1569,2703,2702,6980],{"slug":29528,"featured":6,"template":736},"two-questions-we-ask-ux-designers-in-job-interviews","content:en-us:blog:two-questions-we-ask-ux-designers-in-job-interviews.yml","Two Questions We Ask Ux Designers In Job Interviews","en-us/blog/two-questions-we-ask-ux-designers-in-job-interviews.yml","en-us/blog/two-questions-we-ask-ux-designers-in-job-interviews",{"_path":29534,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29535,"content":29540,"config":29544,"_id":29546,"_type":16,"title":29547,"_source":17,"_file":29548,"_stem":29549,"_extension":20},"/en-us/blog/setting-up-gitlab-ci-for-android-projects",{"title":29536,"description":29537,"ogTitle":29536,"ogDescription":29537,"noIndex":6,"ogImage":25301,"ogUrl":29538,"ogSiteName":995,"ogType":996,"canonicalUrls":29538,"schema":29539},"Setting up GitLab CI for Android projects","Learn how to set up GitLab CI to ensure your Android app compiles and passes tests.","https://about.gitlab.com/blog/setting-up-gitlab-ci-for-android-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Setting up GitLab CI for Android projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Yavorska\"}],\n        \"datePublished\": \"2018-10-24\",\n      }",{"title":29536,"description":29537,"authors":29541,"heroImage":25301,"date":29542,"category":858,"tags":29543},[20535],"2018-10-24",[110,4665],{"slug":29545,"featured":6,"template":736},"setting-up-gitlab-ci-for-android-projects","content:en-us:blog:setting-up-gitlab-ci-for-android-projects.yml","Setting Up Gitlab Ci For Android Projects","en-us/blog/setting-up-gitlab-ci-for-android-projects.yml","en-us/blog/setting-up-gitlab-ci-for-android-projects",{"_path":29551,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29552,"content":29557,"config":29561,"_id":29563,"_type":16,"title":29564,"_source":17,"_file":29565,"_stem":29566,"_extension":20},"/en-us/blog/q4-hackathon-announcement",{"title":29553,"description":29554,"ogTitle":29553,"ogDescription":29554,"noIndex":6,"ogImage":18395,"ogUrl":29555,"ogSiteName":995,"ogType":996,"canonicalUrls":29555,"schema":29556},"Get ready for the Q4'2018 GitLab Hackathon","The Q4 Hackathon for the GitLab community will take place on November 14-15.","https://about.gitlab.com/blog/q4-hackathon-announcement","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get ready for the Q4'2018 GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-10-23\",\n      }",{"title":29553,"description":29554,"authors":29558,"heroImage":18395,"date":29559,"category":1388,"tags":29560},[20126],"2018-10-23",[269,2815,1265,279],{"slug":29562,"featured":6,"template":736},"q4-hackathon-announcement","content:en-us:blog:q4-hackathon-announcement.yml","Q4 Hackathon Announcement","en-us/blog/q4-hackathon-announcement.yml","en-us/blog/q4-hackathon-announcement",{"_path":29568,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29569,"content":29574,"config":29578,"_id":29580,"_type":16,"title":29581,"_source":17,"_file":29582,"_stem":29583,"_extension":20},"/en-us/blog/the-case-for-all-remote-companies",{"title":29570,"description":29571,"ogTitle":29570,"ogDescription":29571,"noIndex":6,"ogImage":13324,"ogUrl":29572,"ogSiteName":995,"ogType":996,"canonicalUrls":29572,"schema":29573},"The case for all-remote companies","Remote teams offer flexibility, reduce company costs, and increase productivity.","https://about.gitlab.com/blog/the-case-for-all-remote-companies","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The case for all-remote companies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-10-18\",\n      }",{"title":29570,"description":29571,"authors":29575,"heroImage":13324,"date":29576,"category":6121,"tags":29577},[19332],"2018-10-18",[1569,3914],{"slug":29579,"featured":6,"template":736},"the-case-for-all-remote-companies","content:en-us:blog:the-case-for-all-remote-companies.yml","The Case For All Remote Companies","en-us/blog/the-case-for-all-remote-companies.yml","en-us/blog/the-case-for-all-remote-companies",{"_path":29585,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29586,"content":29592,"config":29596,"_id":29598,"_type":16,"title":29599,"_source":17,"_file":29600,"_stem":29601,"_extension":20},"/en-us/blog/how-we-keep-investors-in-the-loop",{"title":29587,"description":29588,"ogTitle":29587,"ogDescription":29588,"noIndex":6,"ogImage":29589,"ogUrl":29590,"ogSiteName":995,"ogType":996,"canonicalUrls":29590,"schema":29591},"How we keep investors in the loop","Monthly updates to investors and team members ensure transparency and open communication.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678944/Blog/Hero%20Images/investorupdate.jpg","https://about.gitlab.com/blog/how-we-keep-investors-in-the-loop","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we keep investors in the loop\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-10-17\",\n      }",{"title":29587,"description":29588,"authors":29593,"heroImage":29589,"date":29594,"category":6121,"tags":29595},[19332],"2018-10-17",[10011,1569],{"slug":29597,"featured":6,"template":736},"how-we-keep-investors-in-the-loop","content:en-us:blog:how-we-keep-investors-in-the-loop.yml","How We Keep Investors In The Loop","en-us/blog/how-we-keep-investors-in-the-loop.yml","en-us/blog/how-we-keep-investors-in-the-loop",{"_path":29603,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29604,"content":29610,"config":29614,"_id":29616,"_type":16,"title":29617,"_source":17,"_file":29618,"_stem":29619,"_extension":20},"/en-us/blog/an-ode-to-stable-counterparts",{"title":29605,"description":29606,"ogTitle":29605,"ogDescription":29606,"noIndex":6,"ogImage":29607,"ogUrl":29608,"ogSiteName":995,"ogType":996,"canonicalUrls":29608,"schema":29609},"An ode to stable counterparts","Our workflow model streamlines decision making, cultivates trust, and promotes cross-functional collaboration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679002/Blog/Hero%20Images/stablecounterparts.jpg","https://about.gitlab.com/blog/an-ode-to-stable-counterparts","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"An ode to stable counterparts\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-10-16\",\n      }",{"title":29605,"description":29606,"authors":29611,"heroImage":29607,"date":29612,"category":8140,"tags":29613},[19332],"2018-10-16",[1335,1569,2815],{"slug":29615,"featured":6,"template":736},"an-ode-to-stable-counterparts","content:en-us:blog:an-ode-to-stable-counterparts.yml","An Ode To Stable Counterparts","en-us/blog/an-ode-to-stable-counterparts.yml","en-us/blog/an-ode-to-stable-counterparts",{"_path":29621,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29622,"content":29628,"config":29631,"_id":29633,"_type":16,"title":29634,"_source":17,"_file":29635,"_stem":29636,"_extension":20},"/en-us/blog/github-launch-continuous-integration",{"title":29623,"description":29624,"ogTitle":29623,"ogDescription":29624,"noIndex":6,"ogImage":29625,"ogUrl":29626,"ogSiteName":995,"ogType":996,"canonicalUrls":29626,"schema":29627},"GitHub Actions affirms all-in-one is eating the marketplace model","GitHub announces GitHub Actions, a continuous integration tool, affirming the need for single application for the entire DevOps lifecycle.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678806/Blog/Hero%20Images/single-application.png","https://about.gitlab.com/blog/github-launch-continuous-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitHub Actions affirms all-in-one is eating the marketplace model\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2018-10-16\",\n      }",{"title":29623,"description":29624,"authors":29629,"heroImage":29625,"date":29612,"category":301,"tags":29630},[3701],[1049,564,2097],{"slug":29632,"featured":6,"template":736},"github-launch-continuous-integration","content:en-us:blog:github-launch-continuous-integration.yml","Github Launch Continuous Integration","en-us/blog/github-launch-continuous-integration.yml","en-us/blog/github-launch-continuous-integration",{"_path":29638,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29639,"content":29645,"config":29648,"_id":29650,"_type":16,"title":29651,"_source":17,"_file":29652,"_stem":29653,"_extension":20},"/en-us/blog/going-virtual-with-all-day-devops",{"title":29640,"description":29641,"ogTitle":29640,"ogDescription":29641,"noIndex":6,"ogImage":29642,"ogUrl":29643,"ogSiteName":995,"ogType":996,"canonicalUrls":29643,"schema":29644},"Going virtual with All Day DevOps","The real value of virtual conferences.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671730/Blog/Hero%20Images/meeting_image.jpg","https://about.gitlab.com/blog/going-virtual-with-all-day-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Going virtual with All Day DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2018-10-16\",\n      }",{"title":29640,"description":29641,"authors":29646,"heroImage":29642,"date":29612,"category":8140,"tags":29647},[25520],[564,279],{"slug":29649,"featured":6,"template":736},"going-virtual-with-all-day-devops","content:en-us:blog:going-virtual-with-all-day-devops.yml","Going Virtual With All Day Devops","en-us/blog/going-virtual-with-all-day-devops.yml","en-us/blog/going-virtual-with-all-day-devops",{"_path":29655,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29656,"content":29661,"config":29665,"_id":29667,"_type":16,"title":29668,"_source":17,"_file":29669,"_stem":29670,"_extension":20},"/en-us/blog/gitlab-to-deprecate-older-tls",{"title":29657,"description":29658,"ogTitle":29657,"ogDescription":29658,"noIndex":6,"ogImage":16110,"ogUrl":29659,"ogSiteName":995,"ogType":996,"canonicalUrls":29659,"schema":29660},"GitLab to deprecate support for TLS 1.0 and TLS 1.1 by end of 2018","Support for TLS 1.0 and 1.1 will be disabled on December 15th, 2018","https://about.gitlab.com/blog/gitlab-to-deprecate-older-tls","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab to deprecate support for TLS 1.0 and TLS 1.1 by end of 2018\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Melissa Farber\"}],\n        \"datePublished\": \"2018-10-15\",\n      }",{"title":29657,"description":29658,"authors":29662,"heroImage":16110,"date":29663,"category":301,"tags":29664},[29068],"2018-10-15",[790],{"slug":29666,"featured":6,"template":736},"gitlab-to-deprecate-older-tls","content:en-us:blog:gitlab-to-deprecate-older-tls.yml","Gitlab To Deprecate Older Tls","en-us/blog/gitlab-to-deprecate-older-tls.yml","en-us/blog/gitlab-to-deprecate-older-tls",{"_path":29672,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29673,"content":29679,"config":29683,"_id":29685,"_type":16,"title":29686,"_source":17,"_file":29687,"_stem":29688,"_extension":20},"/en-us/blog/cern-connect-global-researchers",{"title":29674,"description":29675,"ogTitle":29674,"ogDescription":29675,"noIndex":6,"ogImage":29676,"ogUrl":29677,"ogSiteName":995,"ogType":996,"canonicalUrls":29677,"schema":29678},"CERN uses GitLab to remove the obstacles around global researchers","Learn how GitLab helps particle physics laboratory CERN manage over 7,000 projects globally","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670719/Blog/Hero%20Images/cern.jpg","https://about.gitlab.com/blog/cern-connect-global-researchers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CERN uses GitLab to remove the obstacles around global researchers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kim Lock\"}],\n        \"datePublished\": \"2018-10-12\",\n      }",{"title":29674,"description":29675,"authors":29680,"heroImage":29676,"date":29681,"category":8140,"tags":29682},[28580],"2018-10-12",[4665,1932,2815,3914],{"slug":29684,"featured":6,"template":736},"cern-connect-global-researchers","content:en-us:blog:cern-connect-global-researchers.yml","Cern Connect Global Researchers","en-us/blog/cern-connect-global-researchers.yml","en-us/blog/cern-connect-global-researchers",{"_path":29690,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29691,"content":29697,"config":29700,"_id":29702,"_type":16,"title":29703,"_source":17,"_file":29704,"_stem":29705,"_extension":20},"/en-us/blog/personas-and-empathy-building",{"title":29692,"description":29693,"ogTitle":29692,"ogDescription":29693,"noIndex":6,"ogImage":29694,"ogUrl":29695,"ogSiteName":995,"ogType":996,"canonicalUrls":29695,"schema":29696},"How we use personas to build empathy for different types of users","Welcome to our series on the new GitLab personas!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678789/Blog/Hero%20Images/how-we-use-personas-to-gain-empathy.jpg","https://about.gitlab.com/blog/personas-and-empathy-building","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we use personas to build empathy for different types of users\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Katherine Okpara\"}],\n        \"datePublished\": \"2018-10-12\",\n      }",{"title":29692,"description":29693,"authors":29698,"heroImage":29694,"date":29681,"category":858,"tags":29699},[26368],[964,1335],{"slug":29701,"featured":6,"template":736},"personas-and-empathy-building","content:en-us:blog:personas-and-empathy-building.yml","Personas And Empathy Building","en-us/blog/personas-and-empathy-building.yml","en-us/blog/personas-and-empathy-building",{"_path":29707,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29708,"content":29713,"config":29716,"_id":29718,"_type":16,"title":29719,"_source":17,"_file":29720,"_stem":29721,"_extension":20},"/en-us/blog/strategies-to-reduce-cycle-times",{"title":29709,"description":29710,"ogTitle":29709,"ogDescription":29710,"noIndex":6,"ogImage":10202,"ogUrl":29711,"ogSiteName":995,"ogType":996,"canonicalUrls":29711,"schema":29712},"10 strategies for cycle time reduction","Engineering leads share strategies on how to speed up cycle times.","https://about.gitlab.com/blog/strategies-to-reduce-cycle-times","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"10 strategies for cycle time reduction\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-10-12\",\n      }",{"title":29709,"description":29710,"authors":29714,"heroImage":10202,"date":29681,"category":858,"tags":29715},[19332],[1335,2815],{"slug":29717,"featured":6,"template":736},"strategies-to-reduce-cycle-times","content:en-us:blog:strategies-to-reduce-cycle-times.yml","Strategies To Reduce Cycle Times","en-us/blog/strategies-to-reduce-cycle-times.yml","en-us/blog/strategies-to-reduce-cycle-times",{"_path":29723,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29724,"content":29729,"config":29733,"_id":29735,"_type":16,"title":29736,"_source":17,"_file":29737,"_stem":29738,"_extension":20},"/en-us/blog/gitlab-com-stability-post-gcp-migration",{"title":29725,"description":29726,"ogTitle":29725,"ogDescription":29726,"noIndex":6,"ogImage":27619,"ogUrl":29727,"ogSiteName":995,"ogType":996,"canonicalUrls":29727,"schema":29728},"What's up with GitLab.com? Check out the latest data on its stability","Let's take a look at the data on the stability of GitLab.com from before and after our recent migration from Azure to GCP, and dive into why things are looking up.","https://about.gitlab.com/blog/gitlab-com-stability-post-gcp-migration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What's up with GitLab.com? Check out the latest data on its stability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Newdigate\"}],\n        \"datePublished\": \"2018-10-11\",\n      }",{"title":29725,"description":29726,"authors":29730,"heroImage":27619,"date":29731,"category":858,"tags":29732},[8242],"2018-10-11",[3346,1730,1569,2908,1049,1988],{"slug":29734,"featured":6,"template":736},"gitlab-com-stability-post-gcp-migration","content:en-us:blog:gitlab-com-stability-post-gcp-migration.yml","Gitlab Com Stability Post Gcp Migration","en-us/blog/gitlab-com-stability-post-gcp-migration.yml","en-us/blog/gitlab-com-stability-post-gcp-migration",{"_path":29740,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29741,"content":29746,"config":29750,"_id":29752,"_type":16,"title":29753,"_source":17,"_file":29754,"_stem":29755,"_extension":20},"/en-us/blog/hackathon-recap",{"title":29742,"description":29743,"ogTitle":29742,"ogDescription":29743,"noIndex":6,"ogImage":18395,"ogUrl":29744,"ogSiteName":995,"ogType":996,"canonicalUrls":29744,"schema":29745},"Recapping the first GitLab Hackathon","What we accomplished and learned from the Hackathon on September 27-28.","https://about.gitlab.com/blog/hackathon-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Recapping the first GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-10-09\",\n      }",{"title":29742,"description":29743,"authors":29747,"heroImage":18395,"date":29748,"category":1388,"tags":29749},[20126],"2018-10-09",[269,2815,1265,279],{"slug":29751,"featured":6,"template":736},"hackathon-recap","content:en-us:blog:hackathon-recap.yml","Hackathon Recap","en-us/blog/hackathon-recap.yml","en-us/blog/hackathon-recap",{"_path":29757,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29758,"content":29763,"config":29767,"_id":29769,"_type":16,"title":29770,"_source":17,"_file":29771,"_stem":29772,"_extension":20},"/en-us/blog/enforcing-managing-2fa-support-security",{"title":29759,"description":29760,"ogTitle":29759,"ogDescription":29760,"noIndex":6,"ogImage":13091,"ogUrl":29761,"ogSiteName":995,"ogType":996,"canonicalUrls":29761,"schema":29762},"This is what happens if you lose access to your 2FA GitLab.com account","Support Engineering Manager Lyle Kozloff explains why we no longer accept government ID for two-factor authentication removal.","https://about.gitlab.com/blog/enforcing-managing-2fa-support-security","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"This is what happens if you lose access to your 2FA GitLab.com account\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lyle Kozloff\"}],\n        \"datePublished\": \"2018-10-08\",\n      }",{"title":29759,"description":29760,"authors":29764,"heroImage":13091,"date":29765,"category":301,"tags":29766},[5378],"2018-10-08",[2815,1569,790],{"slug":29768,"featured":6,"template":736},"enforcing-managing-2fa-support-security","content:en-us:blog:enforcing-managing-2fa-support-security.yml","Enforcing Managing 2fa Support Security","en-us/blog/enforcing-managing-2fa-support-security.yml","en-us/blog/enforcing-managing-2fa-support-security",{"_path":29774,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29775,"content":29781,"config":29785,"_id":29787,"_type":16,"title":29788,"_source":17,"_file":29789,"_stem":29790,"_extension":20},"/en-us/blog/meltano-functional-group-update-post",{"title":29776,"description":29777,"ogTitle":29776,"ogDescription":29777,"noIndex":6,"ogImage":29778,"ogUrl":29779,"ogSiteName":995,"ogType":996,"canonicalUrls":29779,"schema":29780},"New Meltano personas, priorities, and updates from the team","There's a lot going on — here are some of the highlights on user research, dogfooding Meltano, embedding engineers, and hiring!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678847/Blog/Hero%20Images/meltano-fgu.jpg","https://about.gitlab.com/blog/meltano-functional-group-update-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New Meltano personas, priorities, and updates from the team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2018-10-08\",\n      }",{"title":29776,"description":29777,"authors":29782,"heroImage":29778,"date":29765,"category":858,"tags":29784},[29783],"Jacob Schatz",[4182,730,1195,1569,1335],{"slug":29786,"featured":6,"template":736},"meltano-functional-group-update-post","content:en-us:blog:meltano-functional-group-update-post.yml","Meltano Functional Group Update Post","en-us/blog/meltano-functional-group-update-post.yml","en-us/blog/meltano-functional-group-update-post",{"_path":29792,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29793,"content":29799,"config":29802,"_id":29804,"_type":16,"title":29805,"_source":17,"_file":29806,"_stem":29807,"_extension":20},"/en-us/blog/stem-gems-give-girls-role-models",{"title":29794,"description":29795,"ogTitle":29794,"ogDescription":29795,"noIndex":6,"ogImage":29796,"ogUrl":29797,"ogSiteName":995,"ogType":996,"canonicalUrls":29797,"schema":29798},"GitLab + STEM Gems: Giving girls role models in tech","Meet the GitLab team-members working to inspire the next generation to pursue careers in STEM.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672357/Blog/Hero%20Images/stem-gems.png","https://about.gitlab.com/blog/stem-gems-give-girls-role-models","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab + STEM Gems: Giving girls role models in tech\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stephanie Garza\"}],\n        \"datePublished\": \"2018-10-08\",\n      }",{"title":29794,"description":29795,"authors":29800,"heroImage":29796,"date":29765,"category":6121,"tags":29801},[28384],[6980,269,2815,1569,3914],{"slug":29803,"featured":6,"template":736},"stem-gems-give-girls-role-models","content:en-us:blog:stem-gems-give-girls-role-models.yml","Stem Gems Give Girls Role Models","en-us/blog/stem-gems-give-girls-role-models.yml","en-us/blog/stem-gems-give-girls-role-models",{"_path":29809,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29810,"content":29815,"config":29818,"_id":29820,"_type":16,"title":29821,"_source":17,"_file":29822,"_stem":29823,"_extension":20},"/en-us/blog/what-is-cloud-native",{"title":29811,"description":29812,"ogTitle":29811,"ogDescription":29812,"noIndex":6,"ogImage":11263,"ogUrl":29813,"ogSiteName":995,"ogType":996,"canonicalUrls":29813,"schema":29814},"A beginner's guide to cloud native","If you’re a little fuzzy on what makes an application cloud native, this explainer will help you get up to speed.","https://about.gitlab.com/blog/what-is-cloud-native","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A beginner's guide to cloud native\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-10-08\",\n      }",{"title":29811,"description":29812,"authors":29816,"heroImage":11263,"date":29765,"category":8140,"tags":29817},[27414],[582,2908],{"slug":29819,"featured":6,"template":736},"what-is-cloud-native","content:en-us:blog:what-is-cloud-native.yml","What Is Cloud Native","en-us/blog/what-is-cloud-native.yml","en-us/blog/what-is-cloud-native",{"_path":29825,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29826,"content":29832,"config":29837,"_id":29839,"_type":16,"title":29840,"_source":17,"_file":29841,"_stem":29842,"_extension":20},"/en-us/blog/how-i-transitioned-from-frontend-to-ux",{"title":29827,"description":29828,"ogTitle":29827,"ogDescription":29828,"noIndex":6,"ogImage":29829,"ogUrl":29830,"ogSiteName":995,"ogType":996,"canonicalUrls":29830,"schema":29831},"How I transitioned from frontend to UX","One GitLab team-member shares how switching from a frontend engineer to a UX designer has been a rewarding experience.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679015/Blog/Hero%20Images/frontendux.jpg","https://about.gitlab.com/blog/how-i-transitioned-from-frontend-to-ux","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How I transitioned from frontend to UX\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Annabel Dunstone Gray\"}],\n        \"datePublished\": \"2018-10-05\",\n      }",{"title":29827,"description":29828,"authors":29833,"heroImage":29829,"date":29835,"category":6121,"tags":29836},[29834],"Annabel Dunstone Gray","2018-10-05",[2703,10121,6980,1569],{"slug":29838,"featured":6,"template":736},"how-i-transitioned-from-frontend-to-ux","content:en-us:blog:how-i-transitioned-from-frontend-to-ux.yml","How I Transitioned From Frontend To Ux","en-us/blog/how-i-transitioned-from-frontend-to-ux.yml","en-us/blog/how-i-transitioned-from-frontend-to-ux",{"_path":29844,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29845,"content":29850,"config":29854,"_id":29856,"_type":16,"title":29857,"_source":17,"_file":29858,"_stem":29859,"_extension":20},"/en-us/blog/contributor-post-luke",{"title":29846,"description":29847,"ogTitle":29846,"ogDescription":29847,"noIndex":6,"ogImage":24329,"ogUrl":29848,"ogSiteName":995,"ogType":996,"canonicalUrls":29848,"schema":29849},"GitLab Code Contributor: Luke Picciau","New contributor Luke Picciau shares why he started contributing to GitLab.","https://about.gitlab.com/blog/contributor-post-luke","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Luke Picciau\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-10-04\",\n      }",{"title":29846,"description":29847,"authors":29851,"heroImage":24329,"date":29852,"category":1388,"tags":29853},[20126],"2018-10-04",[269,2815,1265,3074],{"slug":29855,"featured":6,"template":736},"contributor-post-luke","content:en-us:blog:contributor-post-luke.yml","Contributor Post Luke","en-us/blog/contributor-post-luke.yml","en-us/blog/contributor-post-luke",{"_path":29861,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29862,"content":29868,"config":29872,"_id":29874,"_type":16,"title":29875,"_source":17,"_file":29876,"_stem":29877,"_extension":20},"/en-us/blog/working-on-two-git-branches-at-the-same-time",{"title":29863,"description":29864,"ogTitle":29863,"ogDescription":29864,"noIndex":6,"ogImage":29865,"ogUrl":29866,"ogSiteName":995,"ogType":996,"canonicalUrls":29866,"schema":29867},"How to work on two Git branches at the same time","Watch the demo on how using the GitLab Web IDE and your local dev environment to work on two branches at once can help save time.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678782/Blog/Hero%20Images/working-on-two-git-branches-at-the-same-time.jpg","https://about.gitlab.com/blog/working-on-two-git-branches-at-the-same-time","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to work on two Git branches at the same time\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2018-10-03\",\n      }",{"title":29863,"description":29864,"authors":29869,"heroImage":29865,"date":29870,"category":858,"tags":29871},[15730],"2018-10-03",[4182,730,1195,1569,1335],{"slug":29873,"featured":6,"template":736},"working-on-two-git-branches-at-the-same-time","content:en-us:blog:working-on-two-git-branches-at-the-same-time.yml","Working On Two Git Branches At The Same Time","en-us/blog/working-on-two-git-branches-at-the-same-time.yml","en-us/blog/working-on-two-git-branches-at-the-same-time",{"_path":29879,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29880,"content":29886,"config":29890,"_id":29892,"_type":16,"title":29893,"_source":17,"_file":29894,"_stem":29895,"_extension":20},"/en-us/blog/gitlab-product-vision",{"title":29881,"description":29882,"ogTitle":29881,"ogDescription":29882,"noIndex":6,"ogImage":29883,"ogUrl":29884,"ogSiteName":995,"ogType":996,"canonicalUrls":29884,"schema":29885},"GitLab's product vision for 2019 and beyond","Watch Head of Product, Mark Pundsack, present our product vision.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671613/Blog/Hero%20Images/gitlab-innovate-cover.png","https://about.gitlab.com/blog/gitlab-product-vision","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's product vision for 2019 and beyond\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-10-01\",\n      }",{"title":29881,"description":29882,"authors":29887,"heroImage":29883,"date":29888,"category":301,"tags":29889},[1000],"2018-10-01",[730,1569],{"slug":29891,"featured":6,"template":736},"gitlab-product-vision","content:en-us:blog:gitlab-product-vision.yml","Gitlab Product Vision","en-us/blog/gitlab-product-vision.yml","en-us/blog/gitlab-product-vision",{"_path":29897,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29898,"content":29904,"config":29908,"_id":29910,"_type":16,"title":29911,"_source":17,"_file":29912,"_stem":29913,"_extension":20},"/en-us/blog/why-all-organizations-need-prometheus",{"title":29899,"description":29900,"ogTitle":29899,"ogDescription":29900,"noIndex":6,"ogImage":29901,"ogUrl":29902,"ogSiteName":995,"ogType":996,"canonicalUrls":29902,"schema":29903},"Why Prometheus is for everyone","You think you don't need Prometheus – I'm here to tell you why you're wrong. Learn why GitLab uses Prometheus, and why your organization should be using it too!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678778/Blog/Hero%20Images/monitoring-cover.png","https://about.gitlab.com/blog/why-all-organizations-need-prometheus","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why Prometheus is for everyone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Matos\"}],\n        \"datePublished\": \"2018-09-27\",\n      }",{"title":29899,"description":29900,"authors":29905,"heroImage":29901,"date":29906,"category":858,"tags":29907},[18259],"2018-09-27",[730,1569,1988],{"slug":29909,"featured":6,"template":736},"why-all-organizations-need-prometheus","content:en-us:blog:why-all-organizations-need-prometheus.yml","Why All Organizations Need Prometheus","en-us/blog/why-all-organizations-need-prometheus.yml","en-us/blog/why-all-organizations-need-prometheus",{"_path":29915,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29916,"content":29922,"config":29927,"_id":29929,"_type":16,"title":29930,"_source":17,"_file":29931,"_stem":29932,"_extension":20},"/en-us/blog/customer-interview-charter-communications",{"title":29917,"description":29918,"ogTitle":29917,"ogDescription":29918,"noIndex":6,"ogImage":29919,"ogUrl":29920,"ogSiteName":995,"ogType":996,"canonicalUrls":29920,"schema":29921},"Better Developer & Customer Experiences with One Application","Director of Product Integration Michael Sobota of Charter Communications shares how they're using GitLab to simplify their toolchain, with big results.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663655/Blog/Hero%20Images/gitlab-live-sept-2018.png","https://about.gitlab.com/blog/customer-interview-charter-communications","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer story: Driving better developer and customer experiences with a single application\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-09-26\",\n      }",{"title":29923,"description":29918,"authors":29924,"heroImage":29919,"date":29925,"category":301,"tags":29926},"Customer story: Driving better developer and customer experiences with a single application",[17684],"2018-09-26",[564,4665,1335],{"slug":29928,"featured":6,"template":736},"customer-interview-charter-communications","content:en-us:blog:customer-interview-charter-communications.yml","Customer Interview Charter Communications","en-us/blog/customer-interview-charter-communications.yml","en-us/blog/customer-interview-charter-communications",{"_path":29934,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29935,"content":29941,"config":29945,"_id":29947,"_type":16,"title":29948,"_source":17,"_file":29949,"_stem":29950,"_extension":20},"/en-us/blog/what-were-reading-in-september",{"title":29936,"description":29937,"ogTitle":29936,"ogDescription":29937,"noIndex":6,"ogImage":29938,"ogUrl":29939,"ogSiteName":995,"ogType":996,"canonicalUrls":29939,"schema":29940},"What we've been reading in September","We've been busting out our bookmarks this month – discover what we've been reading.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678773/Blog/Hero%20Images/septemberreading.jpg","https://about.gitlab.com/blog/what-were-reading-in-september","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we've been reading in September\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-09-25\",\n      }",{"title":29936,"description":29937,"authors":29942,"heroImage":29938,"date":29943,"category":6121,"tags":29944},[19332],"2018-09-25",[1569],{"slug":29946,"featured":6,"template":736},"what-were-reading-in-september","content:en-us:blog:what-were-reading-in-september.yml","What Were Reading In September","en-us/blog/what-were-reading-in-september.yml","en-us/blog/what-were-reading-in-september",{"_path":29952,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29953,"content":29958,"config":29962,"_id":29964,"_type":16,"title":29965,"_source":17,"_file":29966,"_stem":29967,"_extension":20},"/en-us/blog/create-vision",{"title":29954,"description":29955,"ogTitle":29954,"ogDescription":29955,"noIndex":6,"ogImage":21699,"ogUrl":29956,"ogSiteName":995,"ogType":996,"canonicalUrls":29956,"schema":29957},"GitLab's 2019 product vision for DevOps Create","Take an early look at where collaboration, merge requests, and the Web IDE are heading in 2019.","https://about.gitlab.com/blog/create-vision","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's 2019 product vision for DevOps Create\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Ramsay\"}],\n        \"datePublished\": \"2018-09-21\",\n      }",{"title":29954,"description":29955,"authors":29959,"heroImage":21699,"date":29960,"category":301,"tags":29961},[22890],"2018-09-21",[1569,730,2815,1335,564],{"slug":29963,"featured":6,"template":736},"create-vision","content:en-us:blog:create-vision.yml","Create Vision","en-us/blog/create-vision.yml","en-us/blog/create-vision",{"_path":29969,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29970,"content":29975,"config":29979,"_id":29981,"_type":16,"title":29982,"_source":17,"_file":29983,"_stem":29984,"_extension":20},"/en-us/blog/gitlab-live-event-recap",{"title":29971,"description":29972,"ogTitle":29971,"ogDescription":29972,"noIndex":6,"ogImage":29919,"ogUrl":29973,"ogSiteName":995,"ogType":996,"canonicalUrls":29973,"schema":29974},"Here's what went down at #GitLabLive","We went live today to discuss our $100m Series D funding and what's next for GitLab – catch up on the recording here.","https://about.gitlab.com/blog/gitlab-live-event-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Here's what went down at #GitLabLive\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-09-20\",\n      }",{"title":29971,"description":29972,"authors":29976,"heroImage":29919,"date":29977,"category":301,"tags":29978},[17684],"2018-09-20",[279,1049,1569,1049,10011],{"slug":29980,"featured":6,"template":736},"gitlab-live-event-recap","content:en-us:blog:gitlab-live-event-recap.yml","Gitlab Live Event Recap","en-us/blog/gitlab-live-event-recap.yml","en-us/blog/gitlab-live-event-recap",{"_path":29986,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":29987,"content":29992,"config":29996,"_id":29998,"_type":16,"title":29999,"_source":17,"_file":30000,"_stem":30001,"_extension":20},"/en-us/blog/announcing-100m-series-d-funding",{"title":29988,"description":29989,"ogTitle":29988,"ogDescription":29989,"noIndex":6,"ogImage":29919,"ogUrl":29990,"ogSiteName":995,"ogType":996,"canonicalUrls":29990,"schema":29991},"Announcing $100 million in Series D round funding led by ICONIQ Capital","Today we announced $100M in new funding to beat nine best-in-class products with a single application.","https://about.gitlab.com/blog/announcing-100m-series-d-funding","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing $100 million in Series D round funding led by ICONIQ Capital\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-09-19\",\n      }",{"title":29988,"description":29989,"authors":29993,"heroImage":29919,"date":29994,"category":301,"tags":29995},[1000],"2018-09-19",[1049,1569,10011],{"slug":29997,"featured":6,"template":736},"announcing-100m-series-d-funding","content:en-us:blog:announcing-100m-series-d-funding.yml","Announcing 100m Series D Funding","en-us/blog/announcing-100m-series-d-funding.yml","en-us/blog/announcing-100m-series-d-funding",{"_path":30003,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30004,"content":30009,"config":30012,"_id":30014,"_type":16,"title":30015,"_source":17,"_file":30016,"_stem":30017,"_extension":20},"/en-us/blog/free-trial-gitlab-gold",{"title":30005,"description":30006,"ogTitle":30005,"ogDescription":30006,"noIndex":6,"ogImage":27408,"ogUrl":30007,"ogSiteName":995,"ogType":996,"canonicalUrls":30007,"schema":30008},"Take GitLab Gold out for a test drive","Free trials of GitLab Gold are now available – here's how to get started.","https://about.gitlab.com/blog/free-trial-gitlab-gold","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Take GitLab Gold out for a test drive\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-09-19\",\n      }",{"title":30005,"description":30006,"authors":30010,"heroImage":27408,"date":29994,"category":301,"tags":30011},[1000],[1049,564],{"slug":30013,"featured":6,"template":736},"free-trial-gitlab-gold","content:en-us:blog:free-trial-gitlab-gold.yml","Free Trial Gitlab Gold","en-us/blog/free-trial-gitlab-gold.yml","en-us/blog/free-trial-gitlab-gold",{"_path":30019,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30020,"content":30025,"config":30029,"_id":30031,"_type":16,"title":30032,"_source":17,"_file":30033,"_stem":30034,"_extension":20},"/en-us/blog/gitlab-hackathon",{"title":30021,"description":30022,"ogTitle":30021,"ogDescription":30022,"noIndex":6,"ogImage":18395,"ogUrl":30023,"ogSiteName":995,"ogType":996,"canonicalUrls":30023,"schema":30024},"Announcing the GitLab Hackathon","The first Hackathon event for the GitLab community will take place September 27-28.","https://about.gitlab.com/blog/gitlab-hackathon","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing the GitLab Hackathon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-09-17\",\n      }",{"title":30021,"description":30022,"authors":30026,"heroImage":18395,"date":30027,"category":1388,"tags":30028},[20126],"2018-09-17",[269,2815,1265,279],{"slug":30030,"featured":6,"template":736},"gitlab-hackathon","content:en-us:blog:gitlab-hackathon.yml","Gitlab Hackathon","en-us/blog/gitlab-hackathon.yml","en-us/blog/gitlab-hackathon",{"_path":30036,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30037,"content":30043,"config":30048,"_id":30050,"_type":16,"title":30051,"_source":17,"_file":30052,"_stem":30053,"_extension":20},"/en-us/blog/gitlab-summit-cape-town-recap",{"title":30038,"description":30039,"ogTitle":30038,"ogDescription":30039,"noIndex":6,"ogImage":30040,"ogUrl":30041,"ogSiteName":995,"ogType":996,"canonicalUrls":30041,"schema":30042},"Salani kakuhle (bye!) and thanks for a great summit in Cape Town!","And just like that, it was all over. Check out the highlights and keynote from our recent summit in South Africa.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670482/Blog/Hero%20Images/summit_recap_pic_post.jpg","https://about.gitlab.com/blog/gitlab-summit-cape-town-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Salani kakuhle (bye!) and thanks for a great summit in Cape Town!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daisy Miclat\"},{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-09-14\",\n      }",{"title":30038,"description":30039,"authors":30044,"heroImage":30040,"date":30046,"category":301,"tags":30047},[30045,17684],"Daisy Miclat","2018-09-14",[730,279,3914,1569],{"slug":30049,"featured":6,"template":736},"gitlab-summit-cape-town-recap","content:en-us:blog:gitlab-summit-cape-town-recap.yml","Gitlab Summit Cape Town Recap","en-us/blog/gitlab-summit-cape-town-recap.yml","en-us/blog/gitlab-summit-cape-town-recap",{"_path":30055,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30056,"content":30062,"config":30066,"_id":30068,"_type":16,"title":30069,"_source":17,"_file":30070,"_stem":30071,"_extension":20},"/en-us/blog/how-we-built-gitlab-geo",{"title":30057,"description":30058,"ogTitle":30057,"ogDescription":30058,"noIndex":6,"ogImage":30059,"ogUrl":30060,"ogSiteName":995,"ogType":996,"canonicalUrls":30060,"schema":30061},"How we built GitLab Geo","Take a deep dive into the many architectural decisions we made while building GitLab Geo.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678985/Blog/Hero%20Images/how-we-built-geo-cover.jpg","https://about.gitlab.com/blog/how-we-built-gitlab-geo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we built GitLab Geo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Mazetto\"}],\n        \"datePublished\": \"2018-09-14\",\n      }",{"title":30057,"description":30058,"authors":30063,"heroImage":30059,"date":30046,"category":858,"tags":30065},[30064],"Gabriel Mazetto",[730,1569],{"slug":30067,"featured":6,"template":736},"how-we-built-gitlab-geo","content:en-us:blog:how-we-built-gitlab-geo.yml","How We Built Gitlab Geo","en-us/blog/how-we-built-gitlab-geo.yml","en-us/blog/how-we-built-gitlab-geo",{"_path":30073,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30074,"content":30080,"config":30084,"_id":30086,"_type":16,"title":30087,"_source":17,"_file":30088,"_stem":30089,"_extension":20},"/en-us/blog/inside-gitlab-security-dashboards",{"title":30075,"description":30076,"ogTitle":30075,"ogDescription":30076,"noIndex":6,"ogImage":30077,"ogUrl":30078,"ogSiteName":995,"ogType":996,"canonicalUrls":30078,"schema":30079},"Security dashboards secure applications at DevOps speed","GitLab Security Dashboards enable security professionals to view vulnerabilities across a project. Here’s an inside look.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678710/Blog/Hero%20Images/inside-gitlab-security-dashboards.jpg","https://about.gitlab.com/blog/inside-gitlab-security-dashboards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How can teams secure applications at DevOps speed? Security Dashboards are here to help.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2018-09-14\",\n      }",{"title":30081,"description":30076,"authors":30082,"heroImage":30077,"date":30046,"category":858,"tags":30083},"How can teams secure applications at DevOps speed? Security Dashboards are here to help.",[11487],[564,730,1569,790],{"slug":30085,"featured":6,"template":736},"inside-gitlab-security-dashboards","content:en-us:blog:inside-gitlab-security-dashboards.yml","Inside Gitlab Security Dashboards","en-us/blog/inside-gitlab-security-dashboards.yml","en-us/blog/inside-gitlab-security-dashboards",{"_path":30091,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30092,"content":30098,"config":30103,"_id":30105,"_type":16,"title":30106,"_source":17,"_file":30107,"_stem":30108,"_extension":20},"/en-us/blog/the-road-to-gitaly-1-0",{"title":30093,"description":30094,"ogTitle":30093,"ogDescription":30094,"noIndex":6,"ogImage":30095,"ogUrl":30096,"ogSiteName":995,"ogType":996,"canonicalUrls":30096,"schema":30097},"GitLab no longer requires NFS: The road to Gitaly v1.0","How we went from vertical to horizontal scaling without depending on NFS by creating our own Git RPC service.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670092/Blog/Hero%20Images/road-to-gitaly.jpg","https://about.gitlab.com/blog/the-road-to-gitaly-1-0","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The road to Gitaly v1.0 (aka, why GitLab doesn't require NFS for storing Git data anymore)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Zeger-Jan van de Weg\"}],\n        \"datePublished\": \"2018-09-12\",\n      }",{"title":30099,"description":30094,"authors":30100,"heroImage":30095,"date":30101,"category":858,"tags":30102},"The road to Gitaly v1.0 (aka, why GitLab doesn't require NFS for storing Git data anymore)",[18575],"2018-09-12",[1569,1195,1988],{"slug":30104,"featured":6,"template":736},"the-road-to-gitaly-1-0","content:en-us:blog:the-road-to-gitaly-1-0.yml","The Road To Gitaly 1 0","en-us/blog/the-road-to-gitaly-1-0.yml","en-us/blog/the-road-to-gitaly-1-0",{"_path":30110,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30111,"content":30117,"config":30121,"_id":30123,"_type":16,"title":30124,"_source":17,"_file":30125,"_stem":30126,"_extension":20},"/en-us/blog/what-south-africa-taught-me-about-cybersecurity",{"title":30112,"description":30113,"ogTitle":30112,"ogDescription":30113,"noIndex":6,"ogImage":30114,"ogUrl":30115,"ogSiteName":995,"ogType":996,"canonicalUrls":30115,"schema":30116},"What our summit in South Africa taught me about cybersecurity","Cybersecurity is a necessity, but it's often treated as an afterthought. What it has in common with modern photography could tell us how to make it less painful to achieve.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671140/Blog/Hero%20Images/south-africa-cyber-security.jpg","https://about.gitlab.com/blog/what-south-africa-taught-me-about-cybersecurity","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What our summit in South Africa taught me about cybersecurity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cindy Blake\"}],\n        \"datePublished\": \"2018-09-11\",\n      }",{"title":30112,"description":30113,"authors":30118,"heroImage":30114,"date":30119,"category":8140,"tags":30120},[11487],"2018-09-11",[790,564,4665],{"slug":30122,"featured":6,"template":736},"what-south-africa-taught-me-about-cybersecurity","content:en-us:blog:what-south-africa-taught-me-about-cybersecurity.yml","What South Africa Taught Me About Cybersecurity","en-us/blog/what-south-africa-taught-me-about-cybersecurity.yml","en-us/blog/what-south-africa-taught-me-about-cybersecurity",{"_path":30128,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30129,"content":30134,"config":30138,"_id":30140,"_type":16,"title":30141,"_source":17,"_file":30142,"_stem":30143,"_extension":20},"/en-us/blog/auto-devops-enabled-by-default",{"title":30130,"description":30131,"ogTitle":30130,"ogDescription":30131,"noIndex":6,"ogImage":11046,"ogUrl":30132,"ogSiteName":995,"ogType":996,"canonicalUrls":30132,"schema":30133},"Auto DevOps will be enabled by default as part of GitLab’s 11.3 release","GitLab 11.3 will bring the power of Auto DevOps to every user","https://about.gitlab.com/blog/auto-devops-enabled-by-default","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Auto DevOps will be enabled by default as part of GitLab’s 11.3 release\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Gruesso\"}],\n        \"datePublished\": \"2018-09-10\",\n      }",{"title":30130,"description":30131,"authors":30135,"heroImage":11046,"date":30136,"category":301,"tags":30137},[17929],"2018-09-10",[730,1049,892],{"slug":30139,"featured":6,"template":736},"auto-devops-enabled-by-default","content:en-us:blog:auto-devops-enabled-by-default.yml","Auto Devops Enabled By Default","en-us/blog/auto-devops-enabled-by-default.yml","en-us/blog/auto-devops-enabled-by-default",{"_path":30145,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30146,"content":30152,"config":30156,"_id":30158,"_type":16,"title":30159,"_source":17,"_file":30160,"_stem":30161,"_extension":20},"/en-us/blog/mvcs-with-big-results",{"title":30147,"description":30148,"ogTitle":30147,"ogDescription":30148,"noIndex":6,"ogImage":30149,"ogUrl":30150,"ogSiteName":995,"ogType":996,"canonicalUrls":30150,"schema":30151},"4 Examples of MVCs with big results","Small change, big impact. Here are four recent tweaks to GitLab which exemplify our value of iteration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678764/Blog/Hero%20Images/mvcs-big-results.jpg","https://about.gitlab.com/blog/mvcs-with-big-results","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 Examples of MVCs with big results\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2018-09-07\",\n      }",{"title":30147,"description":30148,"authors":30153,"heroImage":30149,"date":30154,"category":301,"tags":30155},[28472],"2018-09-07",[730,1569,1265],{"slug":30157,"featured":6,"template":736},"mvcs-with-big-results","content:en-us:blog:mvcs-with-big-results.yml","Mvcs With Big Results","en-us/blog/mvcs-with-big-results.yml","en-us/blog/mvcs-with-big-results",{"_path":30163,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30164,"content":30169,"config":30173,"_id":30175,"_type":16,"title":30176,"_source":17,"_file":30177,"_stem":30178,"_extension":20},"/en-us/blog/contributor-post-jacopo",{"title":30165,"description":30166,"ogTitle":30165,"ogDescription":30166,"noIndex":6,"ogImage":24329,"ogUrl":30167,"ogSiteName":995,"ogType":996,"canonicalUrls":30167,"schema":30168},"GitLab Code Contributor: Jacopo Beschi","Core Team member Jacopo Beschi shares why he loves contributing to GitLab.","https://about.gitlab.com/blog/contributor-post-jacopo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Jacopo Beschi\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-09-06\",\n      }",{"title":30165,"description":30166,"authors":30170,"heroImage":24329,"date":30171,"category":1388,"tags":30172},[20126],"2018-09-06",[269,2815,1265,3074],{"slug":30174,"featured":6,"template":736},"contributor-post-jacopo","content:en-us:blog:contributor-post-jacopo.yml","Contributor Post Jacopo","en-us/blog/contributor-post-jacopo.yml","en-us/blog/contributor-post-jacopo",{"_path":30180,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30181,"content":30187,"config":30191,"_id":30193,"_type":16,"title":30194,"_source":17,"_file":30195,"_stem":30196,"_extension":20},"/en-us/blog/deep-dive-into-gitlabs-ux-design-process",{"title":30182,"description":30183,"ogTitle":30182,"ogDescription":30183,"noIndex":6,"ogImage":30184,"ogUrl":30185,"ogSiteName":995,"ogType":996,"canonicalUrls":30185,"schema":30186},"A deep dive into GitLab's UX design process","The UX team shares how they communicate, plan, share, and tackle improvements one iteration at a time.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678759/Blog/Hero%20Images/designwebcast.jpg","https://about.gitlab.com/blog/deep-dive-into-gitlabs-ux-design-process","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A deep dive into GitLab's UX design process\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-09-05\",\n      }",{"title":30182,"description":30183,"authors":30188,"heroImage":30184,"date":30189,"category":858,"tags":30190},[19332],"2018-09-05",[1569,2703,3721,2702],{"slug":30192,"featured":6,"template":736},"deep-dive-into-gitlabs-ux-design-process","content:en-us:blog:deep-dive-into-gitlabs-ux-design-process.yml","Deep Dive Into Gitlabs Ux Design Process","en-us/blog/deep-dive-into-gitlabs-ux-design-process.yml","en-us/blog/deep-dive-into-gitlabs-ux-design-process",{"_path":30198,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30199,"content":30205,"config":30209,"_id":30211,"_type":16,"title":30212,"_source":17,"_file":30213,"_stem":30214,"_extension":20},"/en-us/blog/how-telesphora-is-tackling-the-opioid-crisis-machine-learning-human-centered-design",{"title":30200,"description":30201,"ogTitle":30200,"ogDescription":30201,"noIndex":6,"ogImage":30202,"ogUrl":30203,"ogSiteName":995,"ogType":996,"canonicalUrls":30203,"schema":30204},"Fighting the opioid epidemic with ML & human-centered design","GitLab users Jack Cackler and Frank Lee explain how they use predictive analytics to empower community stakeholders, like first responders and policy makers, to save lives.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671593/Blog/Hero%20Images/telesphora-team.jpg","https://about.gitlab.com/blog/how-telesphora-is-tackling-the-opioid-crisis-machine-learning-human-centered-design","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Telesphora is tackling the opioid epidemic with machine learning and human-centered design\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2018-09-05\",\n      }",{"title":30206,"description":30201,"authors":30207,"heroImage":30202,"date":30189,"category":8140,"tags":30208},"How Telesphora is tackling the opioid epidemic with machine learning and human-centered design",[27004],[4665,728],{"slug":30210,"featured":6,"template":736},"how-telesphora-is-tackling-the-opioid-crisis-machine-learning-human-centered-design","content:en-us:blog:how-telesphora-is-tackling-the-opioid-crisis-machine-learning-human-centered-design.yml","How Telesphora Is Tackling The Opioid Crisis Machine Learning Human Centered Design","en-us/blog/how-telesphora-is-tackling-the-opioid-crisis-machine-learning-human-centered-design.yml","en-us/blog/how-telesphora-is-tackling-the-opioid-crisis-machine-learning-human-centered-design",{"_path":30216,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30217,"content":30222,"config":30225,"_id":30227,"_type":16,"title":30228,"_source":17,"_file":30229,"_stem":30230,"_extension":20},"/en-us/blog/how-gitlab-ci-compares-with-the-three-variants-of-jenkins",{"title":30218,"description":30219,"ogTitle":30218,"ogDescription":30219,"noIndex":6,"ogImage":11046,"ogUrl":30220,"ogSiteName":995,"ogType":996,"canonicalUrls":30220,"schema":30221},"How GitLab CI compares with the three variants of Jenkins","In this article, we compare GitLab CI with the three Jenkins variants and ask if there are things we can learn.","https://about.gitlab.com/blog/how-gitlab-ci-compares-with-the-three-variants-of-jenkins","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab CI compares with the three variants of Jenkins\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2018-09-03\",\n      }",{"title":30218,"description":30219,"authors":30223,"heroImage":11046,"date":30224,"category":8140},[3701],"2018-09-03",{"slug":30226,"featured":6,"template":736},"how-gitlab-ci-compares-with-the-three-variants-of-jenkins","content:en-us:blog:how-gitlab-ci-compares-with-the-three-variants-of-jenkins.yml","How Gitlab Ci Compares With The Three Variants Of Jenkins","en-us/blog/how-gitlab-ci-compares-with-the-three-variants-of-jenkins.yml","en-us/blog/how-gitlab-ci-compares-with-the-three-variants-of-jenkins",{"_path":30232,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30233,"content":30238,"config":30242,"_id":30244,"_type":16,"title":30245,"_source":17,"_file":30246,"_stem":30247,"_extension":20},"/en-us/blog/gitlab-pages-update",{"title":30234,"description":30235,"ogTitle":30234,"ogDescription":30235,"noIndex":6,"ogImage":27619,"ogUrl":30236,"ogSiteName":995,"ogType":996,"canonicalUrls":30236,"schema":30237},"Update about GitLab Pages","If you are using GitLab Pages with a custom domain, you may need to update your DNS.","https://about.gitlab.com/blog/gitlab-pages-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update about GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David Smith\"}],\n        \"datePublished\": \"2018-08-28\",\n      }",{"title":30234,"description":30235,"authors":30239,"heroImage":27619,"date":30240,"category":858,"tags":30241},[12038],"2018-08-28",[1730,582,3346,2908],{"slug":30243,"featured":6,"template":736},"gitlab-pages-update","content:en-us:blog:gitlab-pages-update.yml","Gitlab Pages Update","en-us/blog/gitlab-pages-update.yml","en-us/blog/gitlab-pages-update",{"_path":30249,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30250,"content":30256,"config":30260,"_id":30262,"_type":16,"title":30263,"_source":17,"_file":30264,"_stem":30265,"_extension":20},"/en-us/blog/what-we-re-reading",{"title":30251,"description":30252,"ogTitle":30251,"ogDescription":30252,"noIndex":6,"ogImage":30253,"ogUrl":30254,"ogSiteName":995,"ogType":996,"canonicalUrls":30254,"schema":30255},"What we're reading","GitLab team-members are a passionate group of learners who enjoy reading to strengthen their skills, develop new techniques, and enhance their knowledge.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683225/Blog/Hero%20Images/gitlabreading.jpg","https://about.gitlab.com/blog/what-we-re-reading","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What we're reading\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-08-27\",\n      }",{"title":30251,"description":30252,"authors":30257,"heroImage":30253,"date":30258,"category":6121,"tags":30259},[19332],"2018-08-27",[1569],{"slug":30261,"featured":6,"template":736},"what-we-re-reading","content:en-us:blog:what-we-re-reading.yml","What We Re Reading","en-us/blog/what-we-re-reading.yml","en-us/blog/what-we-re-reading",{"_path":30267,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30268,"content":30274,"config":30279,"_id":30281,"_type":16,"title":30282,"_source":17,"_file":30283,"_stem":30284,"_extension":20},"/en-us/blog/contributing-to-gitlab-with-ease",{"title":30269,"description":30270,"ogTitle":30269,"ogDescription":30270,"noIndex":6,"ogImage":30271,"ogUrl":30272,"ogSiteName":995,"ogType":996,"canonicalUrls":30272,"schema":30273},"Contributing to GitLab with ease","Everyone can contribute to GitLab, so here are a few tips to make your experience easy and pleasant.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678997/Blog/Hero%20Images/mergerequestsgame.jpg","https://about.gitlab.com/blog/contributing-to-gitlab-with-ease","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Contributing to GitLab with ease\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lin Jen-Shin\"}],\n        \"datePublished\": \"2018-08-23\",\n      }",{"title":30269,"description":30270,"authors":30275,"heroImage":30271,"date":30277,"category":1388,"tags":30278},[30276],"Lin Jen-Shin","2018-08-23",[269,2815,4182,1569,1265],{"slug":30280,"featured":6,"template":736},"contributing-to-gitlab-with-ease","content:en-us:blog:contributing-to-gitlab-with-ease.yml","Contributing To Gitlab With Ease","en-us/blog/contributing-to-gitlab-with-ease.yml","en-us/blog/contributing-to-gitlab-with-ease",{"_path":30286,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30287,"content":30293,"config":30297,"_id":30299,"_type":16,"title":30300,"_source":17,"_file":30301,"_stem":30302,"_extension":20},"/en-us/blog/epics-roadmap",{"title":30288,"description":30289,"ogTitle":30288,"ogDescription":30289,"noIndex":6,"ogImage":30290,"ogUrl":30291,"ogSiteName":995,"ogType":996,"canonicalUrls":30291,"schema":30292},"Coming in 11.3: Seamless planning with epics & roadmap","See how you can plan and track larger initiatives even more easily with milestone dates integrated into epics.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672146/Blog/Hero%20Images/epics-issues-milestones-planning.jpg","https://about.gitlab.com/blog/epics-roadmap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Coming in 11.3: Seamless top-down and bottom-up planning with epics and roadmap\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2018-08-23\",\n      }",{"title":30294,"description":30289,"authors":30295,"heroImage":30290,"date":30277,"category":301,"tags":30296},"Coming in 11.3: Seamless top-down and bottom-up planning with epics and roadmap",[28472],[729,730,1569,1335],{"slug":30298,"featured":6,"template":736},"epics-roadmap","content:en-us:blog:epics-roadmap.yml","Epics Roadmap","en-us/blog/epics-roadmap.yml","en-us/blog/epics-roadmap",{"_path":30304,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30305,"content":30311,"config":30315,"_id":30317,"_type":16,"title":30318,"_source":17,"_file":30319,"_stem":30320,"_extension":20},"/en-us/blog/freedesktop-org-migrates-to-gitlab",{"title":30306,"description":30307,"ogTitle":30306,"ogDescription":30307,"noIndex":6,"ogImage":30308,"ogUrl":30309,"ogSiteName":995,"ogType":996,"canonicalUrls":30309,"schema":30310},"Welcome to GitLab, freedesktop.org!","Freedesktop.org, the home of open source desktop technology development, has migrated to GitLab to improve their workflow and modernize their service.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671252/Blog/Hero%20Images/gitlab-desktop-org-cover.png","https://about.gitlab.com/blog/freedesktop-org-migrates-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Welcome to GitLab, freedesktop.org!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-08-20\",\n      }",{"title":30306,"description":30307,"authors":30312,"heroImage":30308,"date":30313,"category":1388,"tags":30314},[17684],"2018-08-20",[1265,269,4665,1335],{"slug":30316,"featured":6,"template":736},"freedesktop-org-migrates-to-gitlab","content:en-us:blog:freedesktop-org-migrates-to-gitlab.yml","Freedesktop Org Migrates To Gitlab","en-us/blog/freedesktop-org-migrates-to-gitlab.yml","en-us/blog/freedesktop-org-migrates-to-gitlab",{"_path":30322,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30323,"content":30329,"config":30333,"_id":30335,"_type":16,"title":30336,"_source":17,"_file":30337,"_stem":30338,"_extension":20},"/en-us/blog/designing-for-developers",{"title":30324,"description":30325,"ogTitle":30324,"ogDescription":30325,"noIndex":6,"ogImage":30326,"ogUrl":30327,"ogSiteName":995,"ogType":996,"canonicalUrls":30327,"schema":30328},"How to design for (and with) developers","UX Manager Sarrah Vesselov shares her thoughts on how to design for a developer audience.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679763/Blog/Hero%20Images/discovering_gitlabs_personas.jpg","https://about.gitlab.com/blog/designing-for-developers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to design for (and with) developers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-08-17\",\n      }",{"title":30324,"description":30325,"authors":30330,"heroImage":30326,"date":30331,"category":8140,"tags":30332},[19332],"2018-08-17",[2702,2703],{"slug":30334,"featured":6,"template":736},"designing-for-developers","content:en-us:blog:designing-for-developers.yml","Designing For Developers","en-us/blog/designing-for-developers.yml","en-us/blog/designing-for-developers",{"_path":30340,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30341,"content":30346,"config":30349,"_id":30351,"_type":16,"title":30352,"_source":17,"_file":30353,"_stem":30354,"_extension":20},"/en-us/blog/gitlab-markdown-tutorial",{"title":30342,"description":30343,"ogTitle":30342,"ogDescription":30343,"noIndex":6,"ogImage":27155,"ogUrl":30344,"ogSiteName":995,"ogType":996,"canonicalUrls":30344,"schema":30345},"A 5-minute Markdown tutorial","New to GitLab? New to Markdown? Here's a quick explainer on using Markdown to format text all over GitLab.","https://about.gitlab.com/blog/gitlab-markdown-tutorial","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A 5-minute Markdown tutorial\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-08-17\",\n      }",{"title":30342,"description":30343,"authors":30347,"heroImage":27155,"date":30331,"category":858,"tags":30348},[17684],[4182,1569],{"slug":30350,"featured":6,"template":736},"gitlab-markdown-tutorial","content:en-us:blog:gitlab-markdown-tutorial.yml","Gitlab Markdown Tutorial","en-us/blog/gitlab-markdown-tutorial.yml","en-us/blog/gitlab-markdown-tutorial",{"_path":30356,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30357,"content":30362,"config":30366,"_id":30368,"_type":16,"title":30369,"_source":17,"_file":30370,"_stem":30371,"_extension":20},"/en-us/blog/drupal-moves-to-gitlab",{"title":30358,"description":30359,"ogTitle":30358,"ogDescription":30359,"noIndex":6,"ogImage":29010,"ogUrl":30360,"ogSiteName":995,"ogType":996,"canonicalUrls":30360,"schema":30361},"Come on in! Drupal is moving to GitLab","Free and open source platform Drupal is moving to GitLab to accelerate developer velocity and attract new talent and contributors to the project.","https://about.gitlab.com/blog/drupal-moves-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Come on in! Drupal is moving to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-08-16\",\n      }",{"title":30358,"description":30359,"authors":30363,"heroImage":29010,"date":30364,"category":1388,"tags":30365},[17684],"2018-08-16",[1265,269],{"slug":30367,"featured":6,"template":736},"drupal-moves-to-gitlab","content:en-us:blog:drupal-moves-to-gitlab.yml","Drupal Moves To Gitlab","en-us/blog/drupal-moves-to-gitlab.yml","en-us/blog/drupal-moves-to-gitlab",{"_path":30373,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30374,"content":30380,"config":30384,"_id":30386,"_type":16,"title":30387,"_source":17,"_file":30388,"_stem":30389,"_extension":20},"/en-us/blog/gitlab-ranked-44-on-inc-5000-list",{"title":30375,"description":30376,"ogTitle":30375,"ogDescription":30376,"noIndex":6,"ogImage":30377,"ogUrl":30378,"ogSiteName":995,"ogType":996,"canonicalUrls":30378,"schema":30379},"GitLab ranks 4th on Inc. 5000 fastest-growing software list","GitLab ranked 4th fastest-growing private software company (#44 overall) on the Inc. 5000 list. How did we achieve such a strong rank among 2018's fastest-growing companies? Here's what we think.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682941/Blog/Hero%20Images/inc-5000-2018.png","https://about.gitlab.com/blog/gitlab-ranked-44-on-inc-5000-list","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab ranked 4th fastest-growing private software company on Inc. 5000 list of 2018's fastest growing companies\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-08-16\",\n      }",{"title":30381,"description":30376,"authors":30382,"heroImage":30377,"date":30364,"category":301,"tags":30383},"GitLab ranked 4th fastest-growing private software company on Inc. 5000 list of 2018's fastest growing companies",[1000],[1049,1265],{"slug":30385,"featured":6,"template":736},"gitlab-ranked-44-on-inc-5000-list","content:en-us:blog:gitlab-ranked-44-on-inc-5000-list.yml","Gitlab Ranked 44 On Inc 5000 List","en-us/blog/gitlab-ranked-44-on-inc-5000-list.yml","en-us/blog/gitlab-ranked-44-on-inc-5000-list",{"_path":30391,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30392,"content":30397,"config":30400,"_id":30402,"_type":16,"title":30403,"_source":17,"_file":30404,"_stem":30405,"_extension":20},"/en-us/blog/making-remote-internships-successful",{"title":30393,"description":30394,"ogTitle":30393,"ogDescription":30394,"noIndex":6,"ogImage":28991,"ogUrl":30395,"ogSiteName":995,"ogType":996,"canonicalUrls":30395,"schema":30396},"How to make remote internships successful","Support Engineering Manager Lee Matos talks about pitfalls and successes in making remote internships work.","https://about.gitlab.com/blog/making-remote-internships-successful","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to make remote internships successful\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Matos\"}],\n        \"datePublished\": \"2018-08-16\",\n      }",{"title":30393,"description":30394,"authors":30398,"heroImage":28991,"date":30364,"category":301,"tags":30399},[18259],[6980,1569,3914],{"slug":30401,"featured":6,"template":736},"making-remote-internships-successful","content:en-us:blog:making-remote-internships-successful.yml","Making Remote Internships Successful","en-us/blog/making-remote-internships-successful.yml","en-us/blog/making-remote-internships-successful",{"_path":30407,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30408,"content":30413,"config":30417,"_id":30419,"_type":16,"title":30420,"_source":17,"_file":30421,"_stem":30422,"_extension":20},"/en-us/blog/join-the-gitlab-community",{"title":30409,"description":30410,"ogTitle":30409,"ogDescription":30410,"noIndex":6,"ogImage":11046,"ogUrl":30411,"ogSiteName":995,"ogType":996,"canonicalUrls":30411,"schema":30412},"Join the GitLab Code Contributor Community!","How we're working to make contributions easier and more rewarding for the GitLab community.","https://about.gitlab.com/blog/join-the-gitlab-community","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join the GitLab Code Contributor Community!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-08-13\",\n      }",{"title":30409,"description":30410,"authors":30414,"heroImage":11046,"date":30415,"category":1388,"tags":30416},[20126],"2018-08-13",[269,2815,1265],{"slug":30418,"featured":6,"template":736},"join-the-gitlab-community","content:en-us:blog:join-the-gitlab-community.yml","Join The Gitlab Community","en-us/blog/join-the-gitlab-community.yml","en-us/blog/join-the-gitlab-community",{"_path":30424,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30425,"content":30430,"config":30434,"_id":30436,"_type":16,"title":30437,"_source":17,"_file":30438,"_stem":30439,"_extension":20},"/en-us/blog/gitlab-auto-devops-in-action",{"title":30426,"description":30427,"ogTitle":30426,"ogDescription":30427,"noIndex":6,"ogImage":11572,"ogUrl":30428,"ogSiteName":995,"ogType":996,"canonicalUrls":30428,"schema":30429},"GitLab Auto DevOps in action","See how the only single application for the entire DevOps lifecycle helps you deliver better software, faster.","https://about.gitlab.com/blog/gitlab-auto-devops-in-action","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Auto DevOps in action\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-08-10\",\n      }",{"title":30426,"description":30427,"authors":30431,"heroImage":11572,"date":30432,"category":858,"tags":30433},[27414],"2018-08-10",[564,1569,964,1335,790,6376,730],{"slug":30435,"featured":6,"template":736},"gitlab-auto-devops-in-action","content:en-us:blog:gitlab-auto-devops-in-action.yml","Gitlab Auto Devops In Action","en-us/blog/gitlab-auto-devops-in-action.yml","en-us/blog/gitlab-auto-devops-in-action",{"_path":30441,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30442,"content":30448,"config":30452,"_id":30454,"_type":16,"title":30455,"_source":17,"_file":30456,"_stem":30457,"_extension":20},"/en-us/blog/google-next-2018-security-track-recap",{"title":30443,"description":30444,"ogTitle":30443,"ogDescription":30444,"noIndex":6,"ogImage":30445,"ogUrl":30446,"ogSiteName":995,"ogType":996,"canonicalUrls":30446,"schema":30447},"Google Next 2018 security track recap","Here's how one GitLab team-member made the most of the security track at Google Next 2018.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678940/Blog/Hero%20Images/securitygooglenext.jpg","https://about.gitlab.com/blog/google-next-2018-security-track-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Google Next 2018 security track recap\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jim Thavisouk\"}],\n        \"datePublished\": \"2018-08-10\",\n      }",{"title":30443,"description":30444,"authors":30449,"heroImage":30445,"date":30432,"category":301,"tags":30451},[30450],"Jim Thavisouk",[279,1730,582,3346,2908,790],{"slug":30453,"featured":6,"template":736},"google-next-2018-security-track-recap","content:en-us:blog:google-next-2018-security-track-recap.yml","Google Next 2018 Security Track Recap","en-us/blog/google-next-2018-security-track-recap.yml","en-us/blog/google-next-2018-security-track-recap",{"_path":30459,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30460,"content":30465,"config":30468,"_id":30470,"_type":16,"title":30471,"_source":17,"_file":30472,"_stem":30473,"_extension":20},"/en-us/blog/gitlab-strong-performer-vsm",{"title":30461,"description":30462,"ogTitle":30461,"ogDescription":30462,"noIndex":6,"ogImage":6170,"ogUrl":30463,"ogSiteName":995,"ogType":996,"canonicalUrls":30463,"schema":30464},"GitLab announced they’ve been recognized as a Strong Performer in “The Forrester New Wave™ for Value Stream Management Tools, Q3 2018","GitLab is best for companies that are looking for a broad, integrated solution","https://about.gitlab.com/blog/gitlab-strong-performer-vsm","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab announced they’ve been recognized as a Strong Performer in “The Forrester New Wave™ for Value Stream Management Tools, Q3 2018\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-08-09\",\n      }",{"title":30461,"description":30462,"authors":30466,"heroImage":6170,"date":30467,"category":301},[1000],"2018-08-09",{"slug":30469,"featured":6,"template":736},"gitlab-strong-performer-vsm","content:en-us:blog:gitlab-strong-performer-vsm.yml","Gitlab Strong Performer Vsm","en-us/blog/gitlab-strong-performer-vsm.yml","en-us/blog/gitlab-strong-performer-vsm",{"_path":30475,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30476,"content":30482,"config":30486,"_id":30488,"_type":16,"title":30489,"_source":17,"_file":30490,"_stem":30491,"_extension":20},"/en-us/blog/how-devops-and-gitlab-cicd-enhance-a-frontend-workflow",{"title":30477,"description":30478,"ogTitle":30477,"ogDescription":30478,"noIndex":6,"ogImage":30479,"ogUrl":30480,"ogSiteName":995,"ogType":996,"canonicalUrls":30480,"schema":30481},"How DevOps and GitLab CI/CD enhance a frontend workflow","The GitLab frontend team uses DevOps and CI/CD to ensure code consistency, fast delivery, and simple automation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679026/Blog/Hero%20Images/frontendworkflow.jpg","https://about.gitlab.com/blog/how-devops-and-gitlab-cicd-enhance-a-frontend-workflow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How DevOps and GitLab CI/CD enhance a frontend workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"José Iván Vargas\"}],\n        \"datePublished\": \"2018-08-09\",\n      }",{"title":30477,"description":30478,"authors":30483,"heroImage":30479,"date":30467,"category":858,"tags":30485},[30484],"José Iván Vargas",[10121,1335,2097,564],{"slug":30487,"featured":6,"template":736},"how-devops-and-gitlab-cicd-enhance-a-frontend-workflow","content:en-us:blog:how-devops-and-gitlab-cicd-enhance-a-frontend-workflow.yml","How Devops And Gitlab Cicd Enhance A Frontend Workflow","en-us/blog/how-devops-and-gitlab-cicd-enhance-a-frontend-workflow.yml","en-us/blog/how-devops-and-gitlab-cicd-enhance-a-frontend-workflow",{"_path":30493,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30494,"content":30500,"config":30503,"_id":30505,"_type":16,"title":30506,"_source":17,"_file":30507,"_stem":30508,"_extension":20},"/en-us/blog/keeping-your-account-safe",{"title":30495,"description":30496,"ogTitle":30495,"ogDescription":30496,"noIndex":6,"ogImage":30497,"ogUrl":30498,"ogSiteName":995,"ogType":996,"canonicalUrls":30498,"schema":30499},"How to keep your GitLab account safe (and accessible)","Some practical tips from the GitLab.com Support Team to make sure you can get into your account when (not if!) disaster strikes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666806/Blog/Hero%20Images/keep-gitlab-account-safe.jpg","https://about.gitlab.com/blog/keeping-your-account-safe","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to keep your GitLab account safe (and accessible)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lyle Kozloff\"}],\n        \"datePublished\": \"2018-08-09\",\n      }",{"title":30495,"description":30496,"authors":30501,"heroImage":30497,"date":30467,"category":301,"tags":30502},[5378],[1569,790],{"slug":30504,"featured":6,"template":736},"keeping-your-account-safe","content:en-us:blog:keeping-your-account-safe.yml","Keeping Your Account Safe","en-us/blog/keeping-your-account-safe.yml","en-us/blog/keeping-your-account-safe",{"_path":30510,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30511,"content":30516,"config":30519,"_id":30521,"_type":16,"title":30522,"_source":17,"_file":30523,"_stem":30524,"_extension":20},"/en-us/blog/why-you-should-join-the-gitlab-security-team",{"title":30512,"description":30513,"ogTitle":30512,"ogDescription":30513,"noIndex":6,"ogImage":15377,"ogUrl":30514,"ogSiteName":995,"ogType":996,"canonicalUrls":30514,"schema":30515},"Why you should join the GitLab security team","Meet Director of Security Kathy Wang for a look inside our remote (and growing!) security team.","https://about.gitlab.com/blog/why-you-should-join-the-gitlab-security-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why you should join the GitLab security team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2018-08-09\",\n      }",{"title":30512,"description":30513,"authors":30517,"heroImage":15377,"date":30467,"category":858,"tags":30518},[20500],[790],{"slug":30520,"featured":6,"template":736},"why-you-should-join-the-gitlab-security-team","content:en-us:blog:why-you-should-join-the-gitlab-security-team.yml","Why You Should Join The Gitlab Security Team","en-us/blog/why-you-should-join-the-gitlab-security-team.yml","en-us/blog/why-you-should-join-the-gitlab-security-team",{"_path":30526,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30527,"content":30532,"config":30536,"_id":30538,"_type":16,"title":30539,"_source":17,"_file":30540,"_stem":30541,"_extension":20},"/en-us/blog/contributor-post-vitaliy",{"title":30528,"description":30529,"ogTitle":30528,"ogDescription":30529,"noIndex":6,"ogImage":24329,"ogUrl":30530,"ogSiteName":995,"ogType":996,"canonicalUrls":30530,"schema":30531},"GitLab Code Contributor: Vitaliy Klachkov","Core Team member Vitaliy Klachkov shares how he started contributing to GitLab.","https://about.gitlab.com/blog/contributor-post-vitaliy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Code Contributor: Vitaliy Klachkov\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ray Paik\"}],\n        \"datePublished\": \"2018-08-08\",\n      }",{"title":30528,"description":30529,"authors":30533,"heroImage":24329,"date":30534,"category":1388,"tags":30535},[20126],"2018-08-08",[269,2815,1265,3074],{"slug":30537,"featured":6,"template":736},"contributor-post-vitaliy","content:en-us:blog:contributor-post-vitaliy.yml","Contributor Post Vitaliy","en-us/blog/contributor-post-vitaliy.yml","en-us/blog/contributor-post-vitaliy",{"_path":30543,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30544,"content":30550,"config":30553,"_id":30555,"_type":16,"title":30556,"_source":17,"_file":30557,"_stem":30558,"_extension":20},"/en-us/blog/git-happens",{"title":30545,"description":30546,"ogTitle":30545,"ogDescription":30546,"noIndex":6,"ogImage":30547,"ogUrl":30548,"ogSiteName":995,"ogType":996,"canonicalUrls":30548,"schema":30549},"Git happens! 6 Common Git mistakes and how to fix them","Whether you added the wrong file, committed directly to master, or some other mishap, we've got you covered.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678743/Blog/Hero%20Images/fix-common-git-mistakes.jpg","https://about.gitlab.com/blog/git-happens","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git happens! 6 Common Git mistakes and how to fix them\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sam Beckham\"}],\n        \"datePublished\": \"2018-08-08\",\n      }",{"title":30545,"description":30546,"authors":30551,"heroImage":30547,"date":30534,"category":858,"tags":30552},[17239],[1195],{"slug":30554,"featured":6,"template":736},"git-happens","content:en-us:blog:git-happens.yml","Git Happens","en-us/blog/git-happens.yml","en-us/blog/git-happens",{"_path":30560,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30561,"content":30567,"config":30571,"_id":30573,"_type":16,"title":30574,"_source":17,"_file":30575,"_stem":30576,"_extension":20},"/en-us/blog/meltano-follow-up",{"title":30562,"description":30563,"ogTitle":30562,"ogDescription":30563,"noIndex":6,"ogImage":30564,"ogUrl":30565,"ogSiteName":995,"ogType":996,"canonicalUrls":30565,"schema":30566},"Thanks for all the feedback and interest in Meltano!","Last week we introduced Meltano, and we're so excited to be building our community and working with you on our MVP.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678909/Blog/Hero%20Images/thanks-for-all-the-feedback-and-interest-in-meltano.jpg","https://about.gitlab.com/blog/meltano-follow-up","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Thanks for all the feedback and interest in Meltano!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2018-08-07\",\n      }",{"title":30562,"description":30563,"authors":30568,"heroImage":30564,"date":30569,"category":301,"tags":30570},[29783],"2018-08-07",[1569,1265],{"slug":30572,"featured":6,"template":736},"meltano-follow-up","content:en-us:blog:meltano-follow-up.yml","Meltano Follow Up","en-us/blog/meltano-follow-up.yml","en-us/blog/meltano-follow-up",{"_path":30578,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30579,"content":30585,"config":30588,"_id":30590,"_type":16,"title":30591,"_source":17,"_file":30592,"_stem":30593,"_extension":20},"/en-us/blog/understanding-kubernestes-rbac",{"title":30580,"description":30581,"ogTitle":30580,"ogDescription":30581,"noIndex":6,"ogImage":30582,"ogUrl":30583,"ogSiteName":995,"ogType":996,"canonicalUrls":30583,"schema":30584},"What you need to know about Kubernetes RBAC","Role-based access control is now default, and expected in most Kubernetes deployments. Here's the What, Why and How of RBAC.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678884/Blog/Hero%20Images/understanding-kubernetes-rbac-post-cover.jpg","https://about.gitlab.com/blog/understanding-kubernestes-rbac","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What you need to know about Kubernetes RBAC\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2018-08-07\",\n      }",{"title":30580,"description":30581,"authors":30586,"heroImage":30582,"date":30569,"category":858,"tags":30587},[3181],[2908,582],{"slug":30589,"featured":6,"template":736},"understanding-kubernestes-rbac","content:en-us:blog:understanding-kubernestes-rbac.yml","Understanding Kubernestes Rbac","en-us/blog/understanding-kubernestes-rbac.yml","en-us/blog/understanding-kubernestes-rbac",{"_path":30595,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30596,"content":30602,"config":30606,"_id":30608,"_type":16,"title":30609,"_source":17,"_file":30610,"_stem":30611,"_extension":20},"/en-us/blog/4-ways-to-use-gitlab-issue-boards",{"title":30597,"description":30598,"ogTitle":30597,"ogDescription":30598,"noIndex":6,"ogImage":30599,"ogUrl":30600,"ogSiteName":995,"ogType":996,"canonicalUrls":30600,"schema":30601},"4 ways to use GitLab Issue Boards","By leveraging the power of labels, GitLab Issue Boards can be easily customized to support any workflow. Here are four examples.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671759/Blog/Hero%20Images/gitlab-issue-board-cover.png","https://about.gitlab.com/blog/4-ways-to-use-gitlab-issue-boards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"4 ways to use GitLab Issue Boards\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2018-08-02\",\n      }",{"title":30597,"description":30598,"authors":30603,"heroImage":30599,"date":30604,"category":301,"tags":30605},[28472],"2018-08-02",[1335,6376,729],{"slug":30607,"featured":6,"template":736},"4-ways-to-use-gitlab-issue-boards","content:en-us:blog:4-ways-to-use-gitlab-issue-boards.yml","4 Ways To Use Gitlab Issue Boards","en-us/blog/4-ways-to-use-gitlab-issue-boards.yml","en-us/blog/4-ways-to-use-gitlab-issue-boards",{"_path":30613,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30614,"content":30620,"config":30623,"_id":30625,"_type":16,"title":30626,"_source":17,"_file":30627,"_stem":30628,"_extension":20},"/en-us/blog/top-five-cloud-trends",{"title":30615,"description":30616,"ogTitle":30615,"ogDescription":30616,"noIndex":6,"ogImage":30617,"ogUrl":30618,"ogSiteName":995,"ogType":996,"canonicalUrls":30618,"schema":30619},"Top 5 cloud trends of 2018: What has happened and what’s next","Cloud computing is officially where it's at. Find out who's in the lead and how to plan for the future.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678732/Blog/Hero%20Images/clouds.jpg","https://about.gitlab.com/blog/top-five-cloud-trends","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 5 cloud trends of 2018: What has happened and what’s next\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-08-02\",\n      }",{"title":30615,"description":30616,"authors":30621,"heroImage":30617,"date":30604,"category":8140,"tags":30622},[27414],[2908,1049,790],{"slug":30624,"featured":6,"template":736},"top-five-cloud-trends","content:en-us:blog:top-five-cloud-trends.yml","Top Five Cloud Trends","en-us/blog/top-five-cloud-trends.yml","en-us/blog/top-five-cloud-trends",{"_path":30630,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30631,"content":30637,"config":30640,"_id":30642,"_type":16,"title":30643,"_source":17,"_file":30644,"_stem":30645,"_extension":20},"/en-us/blog/using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management",{"title":30632,"description":30633,"ogTitle":30632,"ogDescription":30633,"noIndex":6,"ogImage":30634,"ogUrl":30635,"ogSiteName":995,"ogType":996,"canonicalUrls":30635,"schema":30636},"How to simplify your smart home configuration with GitLab CI/CD","How to use GitLab pipelines to automatically test and deploy new home-assistant configurations, wherever you are.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678717/Blog/Hero%20Images/ci-smart-home-configuration.jpg","https://about.gitlab.com/blog/using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to simplify your smart home configuration with GitLab CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mario de la Ossa\"}],\n        \"datePublished\": \"2018-08-02\",\n      }",{"title":30632,"description":30633,"authors":30638,"heroImage":30634,"date":30604,"category":858,"tags":30639},[28259],[2097,1195],{"slug":30641,"featured":6,"template":736},"using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management","content:en-us:blog:using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management.yml","Using The Gitlab Ci Slash Cd For Smart Home Configuration Management","en-us/blog/using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management.yml","en-us/blog/using-the-gitlab-ci-slash-cd-for-smart-home-configuration-management",{"_path":30647,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30648,"content":30654,"config":30658,"_id":30660,"_type":16,"title":30661,"_source":17,"_file":30662,"_stem":30663,"_extension":20},"/en-us/blog/hey-data-teams-we-are-working-on-a-tool-just-for-you",{"title":30649,"description":30650,"ogTitle":30649,"ogDescription":30650,"noIndex":6,"ogImage":30651,"ogUrl":30652,"ogSiteName":995,"ogType":996,"canonicalUrls":30652,"schema":30653},"Hey, data teams - We're working on a tool just for you","Meltano is an open source tool for the entire data science lifecycle, and we want your contributions and feature requests!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678726/Blog/Hero%20Images/hey-data-analysts-we-are-working-on-a-tool-just-for-you.jpg","https://about.gitlab.com/blog/hey-data-teams-we-are-working-on-a-tool-just-for-you","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Hey, data teams - We're working on a tool just for you\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2018-08-01\",\n      }",{"title":30649,"description":30650,"authors":30655,"heroImage":30651,"date":30656,"category":301,"tags":30657},[29783],"2018-08-01",[1569],{"slug":30659,"featured":6,"template":736},"hey-data-teams-we-are-working-on-a-tool-just-for-you","content:en-us:blog:hey-data-teams-we-are-working-on-a-tool-just-for-you.yml","Hey Data Teams We Are Working On A Tool Just For You","en-us/blog/hey-data-teams-we-are-working-on-a-tool-just-for-you.yml","en-us/blog/hey-data-teams-we-are-working-on-a-tool-just-for-you",{"_path":30665,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30666,"content":30672,"config":30676,"_id":30678,"_type":16,"title":30679,"_source":17,"_file":30680,"_stem":30681,"_extension":20},"/en-us/blog/gitlab-workflow-with-jira-jenkins",{"title":30667,"description":30668,"ogTitle":30667,"ogDescription":30668,"noIndex":6,"ogImage":30669,"ogUrl":30670,"ogSiteName":995,"ogType":996,"canonicalUrls":30670,"schema":30671},"Demo: GitLab + Jira + Jenkins","See how you can use our Jira and Jenkins integrations to reduce context switching and streamline your workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680048/Blog/Hero%20Images/gitlab-jira-jenkins-cover.png","https://about.gitlab.com/blog/gitlab-workflow-with-jira-jenkins","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo: GitLab + Jira + Jenkins\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joel Krooswyk\"}],\n        \"datePublished\": \"2018-07-30\",\n      }",{"title":30667,"description":30668,"authors":30673,"heroImage":30669,"date":30674,"category":301,"tags":30675},[5749],"2018-07-30",[2097,4182,233,1335],{"slug":30677,"featured":6,"template":736},"gitlab-workflow-with-jira-jenkins","content:en-us:blog:gitlab-workflow-with-jira-jenkins.yml","Gitlab Workflow With Jira Jenkins","en-us/blog/gitlab-workflow-with-jira-jenkins.yml","en-us/blog/gitlab-workflow-with-jira-jenkins",{"_path":30683,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30684,"content":30690,"config":30694,"_id":30696,"_type":16,"title":30685,"_source":17,"_file":30697,"_stem":30698,"_extension":20},"/en-us/blog/google-next-2018-recap",{"title":30685,"description":30686,"ogTitle":30685,"ogDescription":30686,"noIndex":6,"ogImage":30687,"ogUrl":30688,"ogSiteName":995,"ogType":996,"canonicalUrls":30688,"schema":30689},"Google Next 2018 Recap","Several GitLab team-members participated in Google Next in San Francisco. Here’s a recap of what went on.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679821/Blog/Hero%20Images/melody-meckfessel-gitlab-google-next-keynote.png","https://about.gitlab.com/blog/google-next-2018-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Google Next 2018 Recap\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2018-07-27\",\n      }",{"title":30685,"description":30686,"authors":30691,"heroImage":30687,"date":30692,"category":301,"tags":30693},[15730],"2018-07-27",[279,1730,582,3346,2908],{"slug":30695,"featured":6,"template":736},"google-next-2018-recap","content:en-us:blog:google-next-2018-recap.yml","en-us/blog/google-next-2018-recap.yml","en-us/blog/google-next-2018-recap",{"_path":30700,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30701,"content":30707,"config":30711,"_id":30713,"_type":16,"title":30714,"_source":17,"_file":30715,"_stem":30716,"_extension":20},"/en-us/blog/chris-hill-devops-enterprise-summit-talk",{"title":30702,"description":30703,"ogTitle":30702,"ogDescription":30703,"noIndex":6,"ogImage":30704,"ogUrl":30705,"ogSiteName":995,"ogType":996,"canonicalUrls":30705,"schema":30706},"How Jaguar Land Rover embraced CI to speed up their software lifecycle","Inspiration, persistence, an attitude of continuous improvement – how adopting CI helped this vehicle company implement software over the air.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667619/Blog/Hero%20Images/chris-hill-jlr-does.jpg","https://about.gitlab.com/blog/chris-hill-devops-enterprise-summit-talk","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How Jaguar Land Rover embraced CI to speed up their software lifecycle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-07-23\",\n      }",{"title":30702,"description":30703,"authors":30708,"heroImage":30704,"date":30709,"category":3072,"tags":30710},[17684],"2018-07-23",[564,2815,2097,4665,1762,3075],{"slug":30712,"featured":6,"template":736},"chris-hill-devops-enterprise-summit-talk","content:en-us:blog:chris-hill-devops-enterprise-summit-talk.yml","Chris Hill Devops Enterprise Summit Talk","en-us/blog/chris-hill-devops-enterprise-summit-talk.yml","en-us/blog/chris-hill-devops-enterprise-summit-talk",{"_path":30718,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30719,"content":30724,"config":30728,"_id":30730,"_type":16,"title":30731,"_source":17,"_file":30732,"_stem":30733,"_extension":20},"/en-us/blog/gcp-move-update",{"title":30720,"description":30721,"ogTitle":30720,"ogDescription":30721,"noIndex":6,"ogImage":27619,"ogUrl":30722,"ogSiteName":995,"ogType":996,"canonicalUrls":30722,"schema":30723},"Update on our planned move from Azure to Google Cloud Platform","GitLab.com is migrating to Google Cloud Platform August 11 – here’s what this means for you now and in the future.","https://about.gitlab.com/blog/gcp-move-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Update on our planned move from Azure to Google Cloud Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David Smith\"}],\n        \"datePublished\": \"2018-07-19\",\n      }",{"title":30720,"description":30721,"authors":30725,"heroImage":27619,"date":30726,"category":858,"tags":30727},[12038],"2018-07-19",[1730,582,3346,2908],{"slug":30729,"featured":6,"template":736},"gcp-move-update","content:en-us:blog:gcp-move-update.yml","Gcp Move Update","en-us/blog/gcp-move-update.yml","en-us/blog/gcp-move-update",{"_path":30735,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30736,"content":30742,"config":30746,"_id":30748,"_type":16,"title":30749,"_source":17,"_file":30750,"_stem":30751,"_extension":20},"/en-us/blog/install-gitlab-one-click-gcp-marketplace",{"title":30737,"description":30738,"ogTitle":30737,"ogDescription":30738,"noIndex":6,"ogImage":30739,"ogUrl":30740,"ogSiteName":995,"ogType":996,"canonicalUrls":30740,"schema":30741},"Install GitLab with a single click from the new GCP Marketplace","GitLab is now available on the new Google Cloud Platform Marketplace, so you can deploy GitLab on Google Kubernetes Engine with a single click!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680061/Blog/Hero%20Images/gcp-send-gitlab-large.png","https://about.gitlab.com/blog/install-gitlab-one-click-gcp-marketplace","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Install GitLab with a single click from the new GCP Marketplace\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2018-07-18\",\n      }",{"title":30737,"description":30738,"authors":30743,"heroImage":30739,"date":30744,"category":301,"tags":30745},[15730],"2018-07-18",[582,3346,1730,2908],{"slug":30747,"featured":6,"template":736},"install-gitlab-one-click-gcp-marketplace","content:en-us:blog:install-gitlab-one-click-gcp-marketplace.yml","Install Gitlab One Click Gcp Marketplace","en-us/blog/install-gitlab-one-click-gcp-marketplace.yml","en-us/blog/install-gitlab-one-click-gcp-marketplace",{"_path":30753,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30754,"content":30760,"config":30764,"_id":30766,"_type":16,"title":30767,"_source":17,"_file":30768,"_stem":30769,"_extension":20},"/en-us/blog/solving-gitlabs-changelog-conflict-crisis",{"title":30755,"description":30756,"ogTitle":30755,"ogDescription":30756,"noIndex":6,"ogImage":30757,"ogUrl":30758,"ogSiteName":995,"ogType":996,"canonicalUrls":30758,"schema":30759},"How we solved GitLab's CHANGELOG conflict crisis","How we eliminated changelog-related merge conflicts and automated a crucial part of our release process.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672139/Blog/Hero%20Images/solving-gitlab-changelog-crisis.jpg","https://about.gitlab.com/blog/solving-gitlabs-changelog-conflict-crisis","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we solved GitLab's CHANGELOG conflict crisis\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Robert Speicher\"}],\n        \"datePublished\": \"2018-07-03\",\n      }",{"title":30755,"description":30756,"authors":30761,"heroImage":30757,"date":30762,"category":858,"tags":30763},[18788],"2018-07-03",[1569,1335],{"slug":30765,"featured":6,"template":736},"solving-gitlabs-changelog-conflict-crisis","content:en-us:blog:solving-gitlabs-changelog-conflict-crisis.yml","Solving Gitlabs Changelog Conflict Crisis","en-us/blog/solving-gitlabs-changelog-conflict-crisis.yml","en-us/blog/solving-gitlabs-changelog-conflict-crisis",{"_path":30771,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30772,"content":30778,"config":30782,"_id":30784,"_type":16,"title":30785,"_source":17,"_file":30786,"_stem":30787,"_extension":20},"/en-us/blog/introducing-auto-breakfast-from-gitlab",{"title":30773,"description":30774,"ogTitle":30773,"ogDescription":30774,"noIndex":6,"ogImage":30775,"ogUrl":30776,"ogSiteName":995,"ogType":996,"canonicalUrls":30776,"schema":30777},"Introducing Auto Breakfast from GitLab (sort of)","GitLab can't make you breakfast? This is what happens when you tell a GitLab team member whose favorite catchphrase is \"Challenge accepted.\"","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680054/Blog/Hero%20Images/auto-breakfast.jpg","https://about.gitlab.com/blog/introducing-auto-breakfast-from-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing Auto Breakfast from GitLab (sort of)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2018-06-29\",\n      }",{"title":30773,"description":30774,"authors":30779,"heroImage":30775,"date":30780,"category":858,"tags":30781},[10835],"2018-06-29",[2097,4665],{"slug":30783,"featured":6,"template":736},"introducing-auto-breakfast-from-gitlab","content:en-us:blog:introducing-auto-breakfast-from-gitlab.yml","Introducing Auto Breakfast From Gitlab","en-us/blog/introducing-auto-breakfast-from-gitlab.yml","en-us/blog/introducing-auto-breakfast-from-gitlab",{"_path":30789,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30790,"content":30795,"config":30801,"_id":30803,"_type":16,"title":30804,"_source":17,"_file":30805,"_stem":30806,"_extension":20},"/en-us/blog/play-reviewer-roulette",{"title":30791,"description":30792,"ogTitle":30791,"ogDescription":30792,"noIndex":6,"ogImage":24913,"ogUrl":30793,"ogSiteName":995,"ogType":996,"canonicalUrls":30793,"schema":30794},"Reviewer roulette: Easy way to find merge request reviewers","Finding the right reviewer for a merge request can be tough. Reviewer Roulette makes the decision easier – by making it random!","https://about.gitlab.com/blog/play-reviewer-roulette","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Let's play Reviewer Roulette! An easy way to find a reviewer for your merge request\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dennis Tang\"}],\n        \"datePublished\": \"2018-06-28\",\n      }",{"title":30796,"description":30792,"authors":30797,"heroImage":24913,"date":30799,"category":858,"tags":30800},"Let's play Reviewer Roulette! An easy way to find a reviewer for your merge request",[30798],"Dennis Tang","2018-06-28",[1569,2815,10121],{"slug":30802,"featured":6,"template":736},"play-reviewer-roulette","content:en-us:blog:play-reviewer-roulette.yml","Play Reviewer Roulette","en-us/blog/play-reviewer-roulette.yml","en-us/blog/play-reviewer-roulette",{"_path":30808,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30809,"content":30815,"config":30818,"_id":30820,"_type":16,"title":30821,"_source":17,"_file":30822,"_stem":30823,"_extension":20},"/en-us/blog/iterating-improving-frontend-culture",{"title":30810,"description":30811,"ogTitle":30810,"ogDescription":30811,"noIndex":6,"ogImage":30812,"ogUrl":30813,"ogSiteName":995,"ogType":996,"canonicalUrls":30813,"schema":30814},"How we iterated and improved our frontend team culture","A recent internal survey revealed that the frontend team culture needed some improvements. Here are some noteworthy steps we took.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684058/Blog/Hero%20Images/improving-frontend-team-culture.jpg","https://about.gitlab.com/blog/iterating-improving-frontend-culture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we iterated and improved our frontend team culture\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Clement Ho\"}],\n        \"datePublished\": \"2018-06-26\",\n      }",{"title":30810,"description":30811,"authors":30816,"heroImage":30812,"date":30817,"category":6121},[20589],"2018-06-26",{"slug":30819,"featured":6,"template":736},"iterating-improving-frontend-culture","content:en-us:blog:iterating-improving-frontend-culture.yml","Iterating Improving Frontend Culture","en-us/blog/iterating-improving-frontend-culture.yml","en-us/blog/iterating-improving-frontend-culture",{"_path":30825,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30826,"content":30831,"config":30835,"_id":30837,"_type":16,"title":30838,"_source":17,"_file":30839,"_stem":30840,"_extension":20},"/en-us/blog/moving-to-gcp",{"title":30827,"description":30828,"ogTitle":30827,"ogDescription":30828,"noIndex":6,"ogImage":27619,"ogUrl":30829,"ogSiteName":995,"ogType":996,"canonicalUrls":30829,"schema":30830},"We’re moving from Azure to Google Cloud Platform","GitLab.com is migrating to Google Cloud Platform – here’s what this means for you now and in the future.","https://about.gitlab.com/blog/moving-to-gcp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We’re moving from Azure to Google Cloud Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Newdigate\"}],\n        \"datePublished\": \"2018-06-25\",\n      }",{"title":30827,"description":30828,"authors":30832,"heroImage":27619,"date":30833,"category":858,"tags":30834},[8242],"2018-06-25",[1730,582,3346,2908],{"slug":30836,"featured":6,"template":736},"moving-to-gcp","content:en-us:blog:moving-to-gcp.yml","Moving To Gcp","en-us/blog/moving-to-gcp.yml","en-us/blog/moving-to-gcp",{"_path":30842,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30843,"content":30849,"config":30854,"_id":30856,"_type":16,"title":30857,"_source":17,"_file":30858,"_stem":30859,"_extension":20},"/en-us/blog/leah-petersen-user-spotlight",{"title":30844,"description":30845,"ogTitle":30844,"ogDescription":30845,"noIndex":6,"ogImage":30846,"ogUrl":30847,"ogSiteName":995,"ogType":996,"canonicalUrls":30847,"schema":30848},"From motorcycle stunter to DevOps: Finding love for CI/CD","Switching to GitLab helped a newly minted DevOps engineer grasp the concept of CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663760/Blog/Hero%20Images/image-for-leah-post.jpg","https://about.gitlab.com/blog/leah-petersen-user-spotlight","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Motorcycle stunter turned DevOps engineer says GitLab helped her learn to \"love\" CI/CD\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-06-21\",\n      }",{"title":30850,"description":30845,"authors":30851,"heroImage":30846,"date":30852,"category":8140,"tags":30853},"Motorcycle stunter turned DevOps engineer says GitLab helped her learn to \"love\" CI/CD",[27414],"2018-06-21",[6980,2908,582,1265,2815,269,564,4665],{"slug":30855,"featured":6,"template":736},"leah-petersen-user-spotlight","content:en-us:blog:leah-petersen-user-spotlight.yml","Leah Petersen User Spotlight","en-us/blog/leah-petersen-user-spotlight.yml","en-us/blog/leah-petersen-user-spotlight",{"_path":30861,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30862,"content":30867,"config":30871,"_id":30873,"_type":16,"title":30874,"_source":17,"_file":30875,"_stem":30876,"_extension":20},"/en-us/blog/gitlab-joins-msft-tech-accord",{"title":30863,"description":30864,"ogTitle":30863,"ogDescription":30864,"noIndex":6,"ogImage":13091,"ogUrl":30865,"ogSiteName":995,"ogType":996,"canonicalUrls":30865,"schema":30866},"GitLab joins Cybersecurity Tech Accord","Today we're happy to announce that we're one of 11 companies joining the Cybersecurity Tech Accord.","https://about.gitlab.com/blog/gitlab-joins-msft-tech-accord","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab joins Cybersecurity Tech Accord\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kathy Wang\"}],\n        \"datePublished\": \"2018-06-20\",\n      }",{"title":30863,"description":30864,"authors":30868,"heroImage":13091,"date":30869,"category":301,"tags":30870},[27727],"2018-06-20",[1569,790,1049],{"slug":30872,"featured":6,"template":736},"gitlab-joins-msft-tech-accord","content:en-us:blog:gitlab-joins-msft-tech-accord.yml","Gitlab Joins Msft Tech Accord","en-us/blog/gitlab-joins-msft-tech-accord.yml","en-us/blog/gitlab-joins-msft-tech-accord",{"_path":30878,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30879,"content":30885,"config":30890,"_id":30892,"_type":16,"title":30893,"_source":17,"_file":30894,"_stem":30895,"_extension":20},"/en-us/blog/autoscale-continuous-deployment-gitlab-runner-digital-ocean",{"title":30880,"description":30881,"ogTitle":30880,"ogDescription":30881,"noIndex":6,"ogImage":30882,"ogUrl":30883,"ogSiteName":995,"ogType":996,"canonicalUrls":30883,"schema":30884},"How to autoscale continuous deployment with GitLab Runner on DigitalOcean","Our friends over at DigitalOcean share how to configure a highly scalable, responsive and cost-effective GitLab infrastructure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680042/Blog/Hero%20Images/gitlab-digitalocean-cover.jpg","https://about.gitlab.com/blog/autoscale-continuous-deployment-gitlab-runner-digital-ocean","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to autoscale continuous deployment with GitLab Runner on DigitalOcean\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Owen Williams\"}],\n        \"datePublished\": \"2018-06-19\",\n      }",{"title":30880,"description":30881,"authors":30886,"heroImage":30882,"date":30888,"category":858,"tags":30889},[30887],"Owen Williams","2018-06-19",[2097,233],{"slug":30891,"featured":6,"template":736},"autoscale-continuous-deployment-gitlab-runner-digital-ocean","content:en-us:blog:autoscale-continuous-deployment-gitlab-runner-digital-ocean.yml","Autoscale Continuous Deployment Gitlab Runner Digital Ocean","en-us/blog/autoscale-continuous-deployment-gitlab-runner-digital-ocean.yml","en-us/blog/autoscale-continuous-deployment-gitlab-runner-digital-ocean",{"_path":30897,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30898,"content":30903,"config":30908,"_id":30910,"_type":16,"title":30911,"_source":17,"_file":30912,"_stem":30913,"_extension":20},"/en-us/blog/introducing-gitlab-s-integrated-development-environment",{"title":30899,"description":30900,"ogTitle":30899,"ogDescription":30900,"noIndex":6,"ogImage":21699,"ogUrl":30901,"ogSiteName":995,"ogType":996,"canonicalUrls":30901,"schema":30902},"Meet the GitLab Web IDE","Here's how we went from a proof of concept to a new feature that makes it even easier for everyone to edit inside of GitLab.","https://about.gitlab.com/blog/introducing-gitlab-s-integrated-development-environment","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet the GitLab Web IDE\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dimitrie Hoekstra\"}],\n        \"datePublished\": \"2018-06-15\",\n      }",{"title":30899,"description":30900,"authors":30904,"heroImage":21699,"date":30906,"category":858,"tags":30907},[30905],"Dimitrie Hoekstra","2018-06-15",[1569,10121,2703],{"slug":30909,"featured":6,"template":736},"introducing-gitlab-s-integrated-development-environment","content:en-us:blog:introducing-gitlab-s-integrated-development-environment.yml","Introducing Gitlab S Integrated Development Environment","en-us/blog/introducing-gitlab-s-integrated-development-environment.yml","en-us/blog/introducing-gitlab-s-integrated-development-environment",{"_path":30915,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30916,"content":30922,"config":30926,"_id":30928,"_type":16,"title":30929,"_source":17,"_file":30930,"_stem":30931,"_extension":20},"/en-us/blog/gary-gruver-interview-post",{"title":30917,"description":30918,"ogTitle":30917,"ogDescription":30918,"noIndex":6,"ogImage":30919,"ogUrl":30920,"ogSiteName":995,"ogType":996,"canonicalUrls":30920,"schema":30921},"IT executives! Take the lead in DevOps transformations","Gary Gruver, author of \"Starting and Scaling DevOps in the Enterprise,\" shares his thoughts on the role of executives in a DevOps transformation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680072/Blog/Hero%20Images/gary-gruver-cover.jpg","https://about.gitlab.com/blog/gary-gruver-interview-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"IT executives! Take the lead in DevOps transformations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-06-14\",\n      }",{"title":30917,"description":30918,"authors":30923,"heroImage":30919,"date":30924,"category":8140,"tags":30925},[19332],"2018-06-14",[564],{"slug":30927,"featured":6,"template":736},"gary-gruver-interview-post","content:en-us:blog:gary-gruver-interview-post.yml","Gary Gruver Interview Post","en-us/blog/gary-gruver-interview-post.yml","en-us/blog/gary-gruver-interview-post",{"_path":30933,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30934,"content":30940,"config":30944,"_id":30946,"_type":16,"title":30947,"_source":17,"_file":30948,"_stem":30949,"_extension":20},"/en-us/blog/netlify-launches-gitlab-support",{"title":30935,"description":30936,"ogTitle":30935,"ogDescription":30936,"noIndex":6,"ogImage":30937,"ogUrl":30938,"ogSiteName":995,"ogType":996,"canonicalUrls":30938,"schema":30939},"Netlify CMS launches support for GitLab","Make it even easier to bring developers and content creators together, so everyone can contribute.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671196/Blog/Hero%20Images/gitlab-netlify-cover.png","https://about.gitlab.com/blog/netlify-launches-gitlab-support","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Netlify CMS launches support for GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-06-13\",\n      }",{"title":30935,"description":30936,"authors":30941,"heroImage":30937,"date":30942,"category":301,"tags":30943},[17684],"2018-06-13",[233,1265],{"slug":30945,"featured":6,"template":736},"netlify-launches-gitlab-support","content:en-us:blog:netlify-launches-gitlab-support.yml","Netlify Launches Gitlab Support","en-us/blog/netlify-launches-gitlab-support.yml","en-us/blog/netlify-launches-gitlab-support",{"_path":30951,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30952,"content":30958,"config":30961,"_id":30963,"_type":16,"title":30964,"_source":17,"_file":30965,"_stem":30966,"_extension":20},"/en-us/blog/how-ux-research-impacts-product-decisions",{"title":30953,"description":30954,"ogTitle":30953,"ogDescription":30954,"noIndex":6,"ogImage":30955,"ogUrl":30956,"ogSiteName":995,"ogType":996,"canonicalUrls":30956,"schema":30957},"How UX research impacts product decisions","How GitLab UX researchers figure out how to turn your feedback into reality.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684792/Blog/Hero%20Images/ux-research-product-decisions.jpg","https://about.gitlab.com/blog/how-ux-research-impacts-product-decisions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How UX research impacts product decisions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Katherine Okpara\"}],\n        \"datePublished\": \"2018-06-12\",\n      }",{"title":30953,"description":30954,"authors":30959,"heroImage":30955,"date":30960,"category":8140},[26368],"2018-06-12",{"slug":30962,"featured":6,"template":736},"how-ux-research-impacts-product-decisions","content:en-us:blog:how-ux-research-impacts-product-decisions.yml","How Ux Research Impacts Product Decisions","en-us/blog/how-ux-research-impacts-product-decisions.yml","en-us/blog/how-ux-research-impacts-product-decisions",{"_path":30968,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30969,"content":30974,"config":30977,"_id":30979,"_type":16,"title":30980,"_source":17,"_file":30981,"_stem":30982,"_extension":20},"/en-us/blog/why-move-to-gitlab",{"title":30970,"description":30971,"ogTitle":30970,"ogDescription":30971,"noIndex":6,"ogImage":27408,"ogUrl":30972,"ogSiteName":995,"ogType":996,"canonicalUrls":30972,"schema":30973},"Thinking about moving to GitLab? Here are 5 reasons why you should.","Inspired by #movingtogitlab? We've put together our top reasons to give it a try.","https://about.gitlab.com/blog/why-move-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Thinking about moving to GitLab? Here are 5 reasons why you should.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-06-11\",\n      }",{"title":30970,"description":30971,"authors":30975,"heroImage":27408,"date":30976,"category":301},[27414],"2018-06-11",{"slug":30978,"featured":6,"template":736},"why-move-to-gitlab","content:en-us:blog:why-move-to-gitlab.yml","Why Move To Gitlab","en-us/blog/why-move-to-gitlab.yml","en-us/blog/why-move-to-gitlab",{"_path":30984,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":30985,"content":30991,"config":30994,"_id":30996,"_type":16,"title":30997,"_source":17,"_file":30998,"_stem":30999,"_extension":20},"/en-us/blog/gitlab-original-t-shirt",{"title":30986,"description":30987,"ogTitle":30986,"ogDescription":30987,"noIndex":6,"ogImage":30988,"ogUrl":30989,"ogSiteName":995,"ogType":996,"canonicalUrls":30989,"schema":30990},"Here's a little something for our longtime friends","Were you #movingtogitlab before it was the thing to do? We want to acknowledge our community for supporting us from the beginning – find out how you can get your hands on a limited edition GitLab Originals T-shirt.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684052/Blog/Hero%20Images/gitlab-original-cover.jpg","https://about.gitlab.com/blog/gitlab-original-t-shirt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Here's a little something for our longtime friends\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-06-08\",\n      }",{"title":30986,"description":30987,"authors":30992,"heroImage":30988,"date":30993,"category":301},[1000],"2018-06-08",{"slug":30995,"featured":6,"template":736},"gitlab-original-t-shirt","content:en-us:blog:gitlab-original-t-shirt.yml","Gitlab Original T Shirt","en-us/blog/gitlab-original-t-shirt.yml","en-us/blog/gitlab-original-t-shirt",{"_path":31001,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31002,"content":31008,"config":31013,"_id":31015,"_type":16,"title":31016,"_source":17,"_file":31017,"_stem":31018,"_extension":20},"/en-us/blog/keeping-git-commit-history-clean",{"title":31003,"description":31004,"ogTitle":31003,"ogDescription":31004,"noIndex":6,"ogImage":31005,"ogUrl":31006,"ogSiteName":995,"ogType":996,"canonicalUrls":31006,"schema":31007},"How (and why!) to keep your Git commit history clean","Git commit history is very easy to mess up, here's how you can fix it!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659457/Blog/Hero%20Images/keep-git-commit-history-clean.jpg","https://about.gitlab.com/blog/keeping-git-commit-history-clean","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How (and why!) to keep your Git commit history clean\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kushal Pandya\"}],\n        \"datePublished\": \"2018-06-07\",\n      }",{"title":31003,"description":31004,"authors":31009,"heroImage":31005,"date":31011,"category":858,"tags":31012},[31010],"Kushal Pandya","2018-06-07",[1195,1335],{"slug":31014,"featured":6,"template":736},"keeping-git-commit-history-clean","content:en-us:blog:keeping-git-commit-history-clean.yml","Keeping Git Commit History Clean","en-us/blog/keeping-git-commit-history-clean.yml","en-us/blog/keeping-git-commit-history-clean",{"_path":31020,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31021,"content":31026,"config":31030,"_id":31032,"_type":16,"title":31033,"_source":17,"_file":31034,"_stem":31035,"_extension":20},"/en-us/blog/eks-gitlab-integration",{"title":31022,"description":31023,"ogTitle":31022,"ogDescription":31023,"noIndex":6,"ogImage":22083,"ogUrl":31024,"ogSiteName":995,"ogType":996,"canonicalUrls":31024,"schema":31025},"Simple deployment to Amazon EKS","Amazon EKS is now GA! We’ve partnered with AWS to make sure GitLab support is available out of the gate. Here’s how you can take advantage.","https://about.gitlab.com/blog/eks-gitlab-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Simple deployment to Amazon EKS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2018-06-06\",\n      }",{"title":31022,"description":31023,"authors":31027,"heroImage":22083,"date":31028,"category":1049,"tags":31029},[15730],"2018-06-06",[233,1049],{"slug":31031,"featured":6,"template":736},"eks-gitlab-integration","content:en-us:blog:eks-gitlab-integration.yml","Eks Gitlab Integration","en-us/blog/eks-gitlab-integration.yml","en-us/blog/eks-gitlab-integration",{"_path":31037,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31038,"content":31044,"config":31047,"_id":31049,"_type":16,"title":31050,"_source":17,"_file":31051,"_stem":31052,"_extension":20},"/en-us/blog/one-click-clone-to-xcode",{"title":31039,"description":31040,"ogTitle":31039,"ogDescription":31040,"noIndex":6,"ogImage":31041,"ogUrl":31042,"ogSiteName":995,"ogType":996,"canonicalUrls":31042,"schema":31043},"Announcing GitLab one-click clone to Xcode","GitLab's Xcode integration allows you to clone repos to Xcode with a single click!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680081/Blog/Hero%20Images/apple-xcode-cover.jpg","https://about.gitlab.com/blog/one-click-clone-to-xcode","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing GitLab one-click clone to Xcode\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2018-06-06\",\n      }",{"title":31039,"description":31040,"authors":31045,"heroImage":31041,"date":31028,"category":301,"tags":31046},[15730],[233,1049],{"slug":31048,"featured":6,"template":736},"one-click-clone-to-xcode","content:en-us:blog:one-click-clone-to-xcode.yml","One Click Clone To Xcode","en-us/blog/one-click-clone-to-xcode.yml","en-us/blog/one-click-clone-to-xcode",{"_path":31054,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31055,"content":31061,"config":31065,"_id":31067,"_type":16,"title":31068,"_source":17,"_file":31069,"_stem":31070,"_extension":20},"/en-us/blog/gitlab-ultimate-and-gold-free-for-education-and-open-source",{"title":31056,"description":31057,"ogTitle":31056,"ogDescription":31057,"noIndex":6,"ogImage":31058,"ogUrl":31059,"ogSiteName":995,"ogType":996,"canonicalUrls":31059,"schema":31060},"GitLab Ultimate and Gold now free for education and open source","Our top-tier SaaS and self-managed offerings are now free to educational institutions and open source projects. Find out how to apply.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680096/Blog/Hero%20Images/open-source-education-cover.png","https://about.gitlab.com/blog/gitlab-ultimate-and-gold-free-for-education-and-open-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Ultimate and Gold now free for education and open source\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-06-05\",\n      }",{"title":31056,"description":31057,"authors":31062,"heroImage":31058,"date":31063,"category":1388,"tags":31064},[1000],"2018-06-05",[1265,1049],{"slug":31066,"featured":6,"template":736},"gitlab-ultimate-and-gold-free-for-education-and-open-source","content:en-us:blog:gitlab-ultimate-and-gold-free-for-education-and-open-source.yml","Gitlab Ultimate And Gold Free For Education And Open Source","en-us/blog/gitlab-ultimate-and-gold-free-for-education-and-open-source.yml","en-us/blog/gitlab-ultimate-and-gold-free-for-education-and-open-source",{"_path":31072,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31073,"content":31079,"config":31083,"_id":31085,"_type":16,"title":31086,"_source":17,"_file":31087,"_stem":31088,"_extension":20},"/en-us/blog/microsoft-acquires-github",{"title":31074,"description":31075,"ogTitle":31074,"ogDescription":31075,"noIndex":6,"ogImage":31076,"ogUrl":31077,"ogSiteName":995,"ogType":996,"canonicalUrls":31077,"schema":31078},"Congratulations GitHub on the acquisition by Microsoft","The acquisition of GitHub by Microsoft is validation of the growing influence of software developers in the world.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680101/Blog/Hero%20Images/github-news-cover.png","https://about.gitlab.com/blog/microsoft-acquires-github","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Congratulations GitHub on the acquisition by Microsoft\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-06-03\",\n      }",{"title":31074,"description":31075,"authors":31080,"heroImage":31076,"date":31081,"category":1388,"tags":31082},[1000],"2018-06-03",[1265,1049,1195],{"slug":31084,"featured":6,"template":736},"microsoft-acquires-github","content:en-us:blog:microsoft-acquires-github.yml","Microsoft Acquires Github","en-us/blog/microsoft-acquires-github.yml","en-us/blog/microsoft-acquires-github",{"_path":31090,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31091,"content":31096,"config":31099,"_id":31101,"_type":16,"title":31102,"_source":17,"_file":31103,"_stem":31104,"_extension":20},"/en-us/blog/movingtogitlab",{"title":31092,"description":31093,"ogTitle":31092,"ogDescription":31093,"noIndex":6,"ogImage":27408,"ogUrl":31094,"ogSiteName":995,"ogType":996,"canonicalUrls":31094,"schema":31095},"#movingtogitlab","People are #movingtogitlab. New users can get 75% off on Gold or Ultimate for one year.","https://about.gitlab.com/blog/movingtogitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"#movingtogitlab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-06-03\",\n      }",{"title":31092,"description":31093,"authors":31097,"heroImage":27408,"date":31081,"category":301,"tags":31098},[1000],[1265,1049],{"slug":31100,"featured":6,"template":736},"movingtogitlab","content:en-us:blog:movingtogitlab.yml","Movingtogitlab","en-us/blog/movingtogitlab.yml","en-us/blog/movingtogitlab",{"_path":31106,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31107,"content":31112,"config":31116,"_id":31118,"_type":16,"title":31119,"_source":17,"_file":31120,"_stem":31121,"_extension":20},"/en-us/blog/api-v3-removal-impending",{"title":31108,"description":31109,"ogTitle":31108,"ogDescription":31109,"noIndex":6,"ogImage":11046,"ogUrl":31110,"ogSiteName":995,"ogType":996,"canonicalUrls":31110,"schema":31111},"Breaking change: Support for API v3 will be removed June 4","With the removal of deprecated GitLab API v3 in GitLab 11.0, requests to the API v3 will fail.","https://about.gitlab.com/blog/api-v3-removal-impending","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Breaking change: Support for API v3 will be removed June 4\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Ramsay\"}],\n        \"datePublished\": \"2018-06-01\",\n      }",{"title":31108,"description":31109,"authors":31113,"heroImage":11046,"date":31114,"category":301,"tags":31115},[22890],"2018-06-01",[1049,892,233],{"slug":31117,"featured":6,"template":736},"api-v3-removal-impending","content:en-us:blog:api-v3-removal-impending.yml","Api V3 Removal Impending","en-us/blog/api-v3-removal-impending.yml","en-us/blog/api-v3-removal-impending",{"_path":31123,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31124,"content":31129,"config":31133,"_id":31135,"_type":16,"title":31136,"_source":17,"_file":31137,"_stem":31138,"_extension":20},"/en-us/blog/welcome-gnome-to-gitlab",{"title":31125,"description":31126,"ogTitle":31125,"ogDescription":31126,"noIndex":6,"ogImage":20405,"ogUrl":31127,"ogSiteName":995,"ogType":996,"canonicalUrls":31127,"schema":31128},"GNOME, welcome to GitLab!","We’re excited to welcome free software project GNOME to the GitLab community.","https://about.gitlab.com/blog/welcome-gnome-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GNOME, welcome to GitLab!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-05-31\",\n      }",{"title":31125,"description":31126,"authors":31130,"heroImage":20405,"date":31131,"category":1388,"tags":31132},[17684],"2018-05-31",[1265,1049,269],{"slug":31134,"featured":6,"template":736},"welcome-gnome-to-gitlab","content:en-us:blog:welcome-gnome-to-gitlab.yml","Welcome Gnome To Gitlab","en-us/blog/welcome-gnome-to-gitlab.yml","en-us/blog/welcome-gnome-to-gitlab",{"_path":31140,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31141,"content":31147,"config":31151,"_id":31153,"_type":16,"title":31154,"_source":17,"_file":31155,"_stem":31156,"_extension":20},"/en-us/blog/journey-in-native-unicode-emoji",{"title":31142,"description":31143,"ogTitle":31142,"ogDescription":31143,"noIndex":6,"ogImage":31144,"ogUrl":31145,"ogSiteName":995,"ogType":996,"canonicalUrls":31145,"schema":31146},"Our journey in switching to native Unicode emoji","Unicode is hard. Here's a guide to getting native Unicode Emoji right 👌. Learn more!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672573/Blog/Hero%20Images/journey-in-native-unicode-emoji-cover.png","https://about.gitlab.com/blog/journey-in-native-unicode-emoji","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our journey in switching to native Unicode emoji\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Eric Eastwood\"}],\n        \"datePublished\": \"2018-05-30\",\n      }",{"title":31142,"description":31143,"authors":31148,"heroImage":31144,"date":31149,"category":858,"tags":31150},[24436],"2018-05-30",[10121],{"slug":31152,"featured":6,"template":736},"journey-in-native-unicode-emoji","content:en-us:blog:journey-in-native-unicode-emoji.yml","Journey In Native Unicode Emoji","en-us/blog/journey-in-native-unicode-emoji.yml","en-us/blog/journey-in-native-unicode-emoji",{"_path":31158,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31159,"content":31165,"config":31169,"_id":31171,"_type":16,"title":31172,"_source":17,"_file":31173,"_stem":31174,"_extension":20},"/en-us/blog/people-ops-using-gitlab",{"title":31160,"description":31161,"ogTitle":31160,"ogDescription":31161,"noIndex":6,"ogImage":31162,"ogUrl":31163,"ogSiteName":995,"ogType":996,"canonicalUrls":31163,"schema":31164},"GitLab People Ops: Getting drunk on our own wine","How our People Ops team uses GitLab day to day: from onboarding new GitLab team-members to keeping our handbook up to date.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678697/Blog/Hero%20Images/how-people-ops-uses-gitlab.jpg","https://about.gitlab.com/blog/people-ops-using-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab People Ops: Getting drunk on our own wine\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chloe Whitestone\"}],\n        \"datePublished\": \"2018-05-25\",\n      }",{"title":31160,"description":31161,"authors":31166,"heroImage":31162,"date":31167,"category":6121,"tags":31168},[22504],"2018-05-25",[1569,2815,1335],{"slug":31170,"featured":6,"template":736},"people-ops-using-gitlab","content:en-us:blog:people-ops-using-gitlab.yml","People Ops Using Gitlab","en-us/blog/people-ops-using-gitlab.yml","en-us/blog/people-ops-using-gitlab",{"_path":31176,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31177,"content":31182,"config":31188,"_id":31190,"_type":16,"title":31191,"_source":17,"_file":31192,"_stem":31193,"_extension":20},"/en-us/blog/git-not-just-for-developers",{"title":31178,"description":31179,"ogTitle":31178,"ogDescription":31179,"noIndex":6,"ogImage":27918,"ogUrl":31180,"ogSiteName":995,"ogType":996,"canonicalUrls":31180,"schema":31181},"Git: Not just for developers","How one company helps video editors, developers, and project managers to collaborate on interactive video, by leveraging the power of open source.","https://about.gitlab.com/blog/git-not-just-for-developers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git: Not just for developers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Opher Vishnia\"},{\"@type\":\"Person\",\"name\":\"Roy Taragan\"}],\n        \"datePublished\": \"2018-05-24\",\n      }",{"title":31178,"description":31179,"authors":31183,"heroImage":27918,"date":31186,"category":1388,"tags":31187},[31184,31185],"Opher Vishnia","Roy Taragan","2018-05-24",[1195,2815,1265],{"slug":31189,"featured":6,"template":736},"git-not-just-for-developers","content:en-us:blog:git-not-just-for-developers.yml","Git Not Just For Developers","en-us/blog/git-not-just-for-developers.yml","en-us/blog/git-not-just-for-developers",{"_path":31195,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31196,"content":31201,"config":31205,"_id":31207,"_type":16,"title":31208,"_source":17,"_file":31209,"_stem":31210,"_extension":20},"/en-us/blog/gitlab-ultimate-early-adopter-program",{"title":31197,"description":31198,"ogTitle":31197,"ogDescription":31198,"noIndex":6,"ogImage":29883,"ogUrl":31199,"ogSiteName":995,"ogType":996,"canonicalUrls":31199,"schema":31200},"Join the GitLab Ultimate Early Adopter program by June 30","GitLab Ultimate brings together strategy, execution, security, and speed for the most comprehensive DevOps experience.","https://about.gitlab.com/blog/gitlab-ultimate-early-adopter-program","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join the GitLab Ultimate Early Adopter program by June 30\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2018-05-23\",\n      }",{"title":31197,"description":31198,"authors":31202,"heroImage":29883,"date":31203,"category":301,"tags":31204},[27004],"2018-05-23",[1049],{"slug":31206,"featured":6,"template":736},"gitlab-ultimate-early-adopter-program","content:en-us:blog:gitlab-ultimate-early-adopter-program.yml","Gitlab Ultimate Early Adopter Program","en-us/blog/gitlab-ultimate-early-adopter-program.yml","en-us/blog/gitlab-ultimate-early-adopter-program",{"_path":31212,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31213,"content":31218,"config":31222,"_id":31224,"_type":16,"title":31225,"_source":17,"_file":31226,"_stem":31227,"_extension":20},"/en-us/blog/eliminating-distractions-and-getting-things-done",{"title":31214,"description":31215,"ogTitle":31214,"ogDescription":31215,"noIndex":6,"ogImage":24119,"ogUrl":31216,"ogSiteName":995,"ogType":996,"canonicalUrls":31216,"schema":31217},"9 Tips for eliminating remote work distractions and being more productive","Working remotely comes with great power and great responsibility. Here are a few tips on being efficient and productive.","https://about.gitlab.com/blog/eliminating-distractions-and-getting-things-done","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"9 Tips for eliminating remote work distractions and being more productive\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matej Latin\"}],\n        \"datePublished\": \"2018-05-17\",\n      }",{"title":31214,"description":31215,"authors":31219,"heroImage":24119,"date":31220,"category":6121,"tags":31221},[17415],"2018-05-17",[3914],{"slug":31223,"featured":6,"template":736},"eliminating-distractions-and-getting-things-done","content:en-us:blog:eliminating-distractions-and-getting-things-done.yml","Eliminating Distractions And Getting Things Done","en-us/blog/eliminating-distractions-and-getting-things-done.yml","en-us/blog/eliminating-distractions-and-getting-things-done",{"_path":31229,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31230,"content":31236,"config":31240,"_id":31242,"_type":16,"title":31243,"_source":17,"_file":31244,"_stem":31245,"_extension":20},"/en-us/blog/top-five-takeaways-from-the-developer-survey",{"title":31231,"description":31232,"ogTitle":31231,"ogDescription":31232,"noIndex":6,"ogImage":31233,"ogUrl":31234,"ogSiteName":995,"ogType":996,"canonicalUrls":31234,"schema":31235},"Top 5 takeaways from the 2018 Developer Survey","GitLab's director of product marketing discusses the challenges facing DevOps adoption and other key findings from our 2018 Developer Survey.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680105/Blog/Hero%20Images/top-five-takeaways-blog-image.jpg","https://about.gitlab.com/blog/top-five-takeaways-from-the-developer-survey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Top 5 takeaways from the 2018 Developer Survey\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-05-14\",\n      }",{"title":31231,"description":31232,"authors":31237,"heroImage":31233,"date":31238,"category":8140,"tags":31239},[27414],"2018-05-14",[564,7788,3721,1335,2815],{"slug":31241,"featured":6,"template":736},"top-five-takeaways-from-the-developer-survey","content:en-us:blog:top-five-takeaways-from-the-developer-survey.yml","Top Five Takeaways From The Developer Survey","en-us/blog/top-five-takeaways-from-the-developer-survey.yml","en-us/blog/top-five-takeaways-from-the-developer-survey",{"_path":31247,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31248,"content":31254,"config":31259,"_id":31261,"_type":16,"title":31262,"_source":17,"_file":31263,"_stem":31264,"_extension":20},"/en-us/blog/day-in-life-of-remote-sdr",{"title":31249,"description":31250,"ogTitle":31249,"ogDescription":31250,"noIndex":6,"ogImage":31251,"ogUrl":31252,"ogSiteName":995,"ogType":996,"canonicalUrls":31252,"schema":31253},"A day in the life of a remote Sales Development Representative","Working as a remote SDR is a fulfilling career that enables flexibility, a positive work/life balance, and encourages strong bonds with team members.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680115/Blog/Hero%20Images/day-in-life-remote-sdr.jpg","https://about.gitlab.com/blog/day-in-life-of-remote-sdr","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A day in the life of a remote Sales Development Representative\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Miranda\"}],\n        \"datePublished\": \"2018-05-11\",\n      }",{"title":31249,"description":31250,"authors":31255,"heroImage":31251,"date":31257,"category":6121,"tags":31258},[31256],"Michael Miranda","2018-05-11",[3914,1569],{"slug":31260,"featured":6,"template":736},"day-in-life-of-remote-sdr","content:en-us:blog:day-in-life-of-remote-sdr.yml","Day In Life Of Remote Sdr","en-us/blog/day-in-life-of-remote-sdr.yml","en-us/blog/day-in-life-of-remote-sdr",{"_path":31266,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31267,"content":31272,"config":31276,"_id":31278,"_type":16,"title":31279,"_source":17,"_file":31280,"_stem":31281,"_extension":20},"/en-us/blog/gke-webcast-recap-post",{"title":31268,"description":31269,"ogTitle":31268,"ogDescription":31269,"noIndex":6,"ogImage":27619,"ogUrl":31270,"ogSiteName":995,"ogType":996,"canonicalUrls":31270,"schema":31271},"Scalable app deployment with GitLab and Google Cloud Platform","Get the power to spin up a Kubernetes cluster managed by Google Cloud Platform in a few clicks – watch the demo of our native integration.","https://about.gitlab.com/blog/gke-webcast-recap-post","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Scalable app deployment with GitLab and Google Cloud Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-05-10\",\n      }",{"title":31268,"description":31269,"authors":31273,"heroImage":27619,"date":31274,"category":858,"tags":31275},[19332],"2018-05-10",[3346,1730,2908,3721,4182],{"slug":31277,"featured":6,"template":736},"gke-webcast-recap-post","content:en-us:blog:gke-webcast-recap-post.yml","Gke Webcast Recap Post","en-us/blog/gke-webcast-recap-post.yml","en-us/blog/gke-webcast-recap-post",{"_path":31283,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31284,"content":31290,"config":31295,"_id":31297,"_type":16,"title":31298,"_source":17,"_file":31299,"_stem":31300,"_extension":20},"/en-us/blog/gitlab-issue-bash-june-2018",{"title":31285,"description":31286,"ogTitle":31285,"ogDescription":31286,"noIndex":6,"ogImage":31287,"ogUrl":31288,"ogSiteName":995,"ogType":996,"canonicalUrls":31288,"schema":31289},"Join GitLab's June Issue Bash","Join us thin June and help us squash some of the open issues in the GitLab Community Edition tracker!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680123/Blog/Hero%20Images/gitlab-issue-bash-june-2017-cover.png","https://about.gitlab.com/blog/gitlab-issue-bash-june-2018","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join GitLab's June Issue Bash\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Fletcher\"}],\n        \"datePublished\": \"2018-05-09\",\n      }",{"title":31285,"description":31286,"authors":31291,"heroImage":31287,"date":31293,"category":301,"tags":31294},[31292],"Mark Fletcher","2018-05-09",[279,1569,269,1265],{"slug":31296,"featured":6,"template":736},"gitlab-issue-bash-june-2018","content:en-us:blog:gitlab-issue-bash-june-2018.yml","Gitlab Issue Bash June 2018","en-us/blog/gitlab-issue-bash-june-2018.yml","en-us/blog/gitlab-issue-bash-june-2018",{"_path":31302,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31303,"content":31308,"config":31312,"_id":31314,"_type":16,"title":31315,"_source":17,"_file":31316,"_stem":31317,"_extension":20},"/en-us/blog/using-gitlab-ci-to-build-gitlab-faster",{"title":31304,"description":31305,"ogTitle":31304,"ogDescription":31305,"noIndex":6,"ogImage":23501,"ogUrl":31306,"ogSiteName":995,"ogType":996,"canonicalUrls":31306,"schema":31307},"How we used GitLab CI to build GitLab faster","Here's how we went from a daily manual merge of GitLab Core into GitLab Enterprise to automated merges every three hours.","https://about.gitlab.com/blog/using-gitlab-ci-to-build-gitlab-faster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we used GitLab CI to build GitLab faster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rémy Coutable\"}],\n        \"datePublished\": \"2018-05-02\",\n      }",{"title":31304,"description":31305,"authors":31309,"heroImage":23501,"date":31310,"category":858,"tags":31311},[20144],"2018-05-02",[1569,2097],{"slug":31313,"featured":6,"template":736},"using-gitlab-ci-to-build-gitlab-faster","content:en-us:blog:using-gitlab-ci-to-build-gitlab-faster.yml","Using Gitlab Ci To Build Gitlab Faster","en-us/blog/using-gitlab-ci-to-build-gitlab-faster.yml","en-us/blog/using-gitlab-ci-to-build-gitlab-faster",{"_path":31319,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31320,"content":31326,"config":31330,"_id":31332,"_type":16,"title":31333,"_source":17,"_file":31334,"_stem":31335,"_extension":20},"/en-us/blog/new-gitlab-com-terms-of-service",{"title":31321,"description":31322,"ogTitle":31321,"ogDescription":31322,"noIndex":6,"ogImage":31323,"ogUrl":31324,"ogSiteName":995,"ogType":996,"canonicalUrls":31324,"schema":31325},"New GitLab.com Terms of Service: Coming soon","We're updating GitLab.com Terms of Service to comply with upcoming GDPR regulations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671239/Blog/Hero%20Images/contract-document-documents-48148.jpg","https://about.gitlab.com/blog/new-gitlab-com-terms-of-service","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New GitLab.com Terms of Service: Coming soon\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jeremiah\"}],\n        \"datePublished\": \"2018-05-01\",\n      }",{"title":31321,"description":31322,"authors":31327,"heroImage":31323,"date":31328,"category":301,"tags":31329},[27376],"2018-05-01",[1569,1049],{"slug":31331,"featured":6,"template":736},"new-gitlab-com-terms-of-service","content:en-us:blog:new-gitlab-com-terms-of-service.yml","New Gitlab Com Terms Of Service","en-us/blog/new-gitlab-com-terms-of-service.yml","en-us/blog/new-gitlab-com-terms-of-service",{"_path":31337,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31338,"content":31344,"config":31350,"_id":31352,"_type":16,"title":31353,"_source":17,"_file":31354,"_stem":31355,"_extension":20},"/en-us/blog/remote-future-how-remote-companies-stay-connected",{"title":31339,"description":31340,"ogTitle":31339,"ogDescription":31340,"noIndex":6,"ogImage":31341,"ogUrl":31342,"ogSiteName":995,"ogType":996,"canonicalUrls":31342,"schema":31343},"Remote teams: How tech companies build future collaboration","Resistance to remote work often stems from fears of reduced collaboration, isolation, and complexity – here's why those fears are unfounded.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678684/Blog/Hero%20Images/remote-future.jpg","https://about.gitlab.com/blog/remote-future-how-remote-companies-stay-connected","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The remote future: How tech companies are helping their remote teams connect\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ariel Camus\"}],\n        \"datePublished\": \"2018-04-27\",\n      }",{"title":31345,"description":31340,"authors":31346,"heroImage":31341,"date":31348,"category":6121,"tags":31349},"The remote future: How tech companies are helping their remote teams connect",[31347],"Ariel Camus","2018-04-27",[3914],{"slug":31351,"featured":6,"template":736},"remote-future-how-remote-companies-stay-connected","content:en-us:blog:remote-future-how-remote-companies-stay-connected.yml","Remote Future How Remote Companies Stay Connected","en-us/blog/remote-future-how-remote-companies-stay-connected.yml","en-us/blog/remote-future-how-remote-companies-stay-connected",{"_path":31357,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31358,"content":31363,"config":31367,"_id":31369,"_type":16,"title":31370,"_source":17,"_file":31371,"_stem":31372,"_extension":20},"/en-us/blog/getting-started-gitlab-ci-gcp",{"title":31359,"description":31360,"ogTitle":31359,"ogDescription":31360,"noIndex":6,"ogImage":27619,"ogUrl":31361,"ogSiteName":995,"ogType":996,"canonicalUrls":31361,"schema":31362},"Getting started with GitLab CI/CD and Google Cloud Platform","Discover how easy it is to set up CI/CD and Kubernetes deployment with our integration with Google Kubernetes Engine.","https://about.gitlab.com/blog/getting-started-gitlab-ci-gcp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab CI/CD and Google Cloud Platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-04-24\",\n      }",{"title":31359,"description":31360,"authors":31364,"heroImage":27619,"date":31365,"category":858,"tags":31366},[1000],"2018-04-24",[1730,3346,2908,4182],{"slug":31368,"featured":6,"template":736},"getting-started-gitlab-ci-gcp","content:en-us:blog:getting-started-gitlab-ci-gcp.yml","Getting Started Gitlab Ci Gcp","en-us/blog/getting-started-gitlab-ci-gcp.yml","en-us/blog/getting-started-gitlab-ci-gcp",{"_path":31374,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31375,"content":31380,"config":31385,"_id":31387,"_type":16,"title":31388,"_source":17,"_file":31389,"_stem":31390,"_extension":20},"/en-us/blog/test-automation-devops",{"title":31376,"description":31377,"ogTitle":31376,"ogDescription":31377,"noIndex":6,"ogImage":11947,"ogUrl":31378,"ogSiteName":995,"ogType":996,"canonicalUrls":31378,"schema":31379},"Trust, but verify: The importance of software test automation","Guest author Steve Ropa explains what a Cold War era motto has to do with test automation (seriously) and bringing development and operations closer together.","https://about.gitlab.com/blog/test-automation-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Trust, but verify: The importance of software test automation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Ropa\"}],\n        \"datePublished\": \"2018-04-23\",\n      }",{"title":31376,"description":31377,"authors":31381,"heroImage":11947,"date":31383,"category":8140,"tags":31384},[31382],"Steve Ropa","2018-04-23",[564,964],{"slug":31386,"featured":6,"template":736},"test-automation-devops","content:en-us:blog:test-automation-devops.yml","Test Automation Devops","en-us/blog/test-automation-devops.yml","en-us/blog/test-automation-devops",{"_path":31392,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31393,"content":31399,"config":31403,"_id":31405,"_type":16,"title":31406,"_source":17,"_file":31407,"_stem":31408,"_extension":20},"/en-us/blog/gitlab-tiers",{"title":31394,"description":31395,"ogTitle":31394,"ogDescription":31395,"noIndex":6,"ogImage":31396,"ogUrl":31397,"ogSiteName":995,"ogType":996,"canonicalUrls":31397,"schema":31398},"New names for GitLab self-managed pricing tiers","Understand GitLab's pricing tiers and know which features your subscription gives you access to.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680136/Blog/Hero%20Images/gitlab-tiers-cover.png","https://about.gitlab.com/blog/gitlab-tiers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New names for GitLab self-managed pricing tiers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2018-04-20\",\n      }",{"title":31394,"description":31395,"authors":31400,"heroImage":31396,"date":31401,"category":301,"tags":31402},[15730],"2018-04-20",[1569,730],{"slug":31404,"featured":6,"template":736},"gitlab-tiers","content:en-us:blog:gitlab-tiers.yml","Gitlab Tiers","en-us/blog/gitlab-tiers.yml","en-us/blog/gitlab-tiers",{"_path":31410,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31411,"content":31417,"config":31421,"_id":31423,"_type":16,"title":31424,"_source":17,"_file":31425,"_stem":31426,"_extension":20},"/en-us/blog/gitlab-merge-requests-in-tower",{"title":31412,"description":31413,"ogTitle":31412,"ogDescription":31413,"noIndex":6,"ogImage":31414,"ogUrl":31415,"ogSiteName":995,"ogType":996,"canonicalUrls":31415,"schema":31416},"Merge requests are coming to your desktop with Tower","GitLab users can now work with merge requests right from their desktops. A new version of Tower brings native support for all self-managed versions of GitLab and GitLab.com.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680144/Blog/Hero%20Images/gitlab-merge-requests-in-tower.png","https://about.gitlab.com/blog/gitlab-merge-requests-in-tower","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Merge requests are coming to your desktop with Tower\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tobias Günther\"}],\n        \"datePublished\": \"2018-04-18\",\n      }",{"title":31412,"description":31413,"authors":31418,"heroImage":31414,"date":31419,"category":301,"tags":31420},[19261],"2018-04-18",[233],{"slug":31422,"featured":6,"template":736},"gitlab-merge-requests-in-tower","content:en-us:blog:gitlab-merge-requests-in-tower.yml","Gitlab Merge Requests In Tower","en-us/blog/gitlab-merge-requests-in-tower.yml","en-us/blog/gitlab-merge-requests-in-tower",{"_path":31428,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31429,"content":31435,"config":31439,"_id":31441,"_type":16,"title":31442,"_source":17,"_file":31443,"_stem":31444,"_extension":20},"/en-us/blog/remote-work-facilitates-devops",{"title":31430,"description":31431,"ogTitle":31430,"ogDescription":31431,"noIndex":6,"ogImage":31432,"ogUrl":31433,"ogSiteName":995,"ogType":996,"canonicalUrls":31433,"schema":31434},"People agree that remote work in DevOps creates a stronger DevOps culture","What makes remote work more conducive to DevOps adoption? Here's a look at one of the findings of our 2018 Global Developer Report.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680149/Blog/Hero%20Images/devopsremotework.jpg","https://about.gitlab.com/blog/remote-work-facilitates-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"People agree that remote work in DevOps creates a stronger DevOps culture\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Suri Patel\"}],\n        \"datePublished\": \"2018-04-17\",\n      }",{"title":31430,"description":31431,"authors":31436,"heroImage":31432,"date":31437,"category":8140,"tags":31438},[19332],"2018-04-17",[3914,564,7788],{"slug":31440,"featured":6,"template":736},"remote-work-facilitates-devops","content:en-us:blog:remote-work-facilitates-devops.yml","Remote Work Facilitates Devops","en-us/blog/remote-work-facilitates-devops.yml","en-us/blog/remote-work-facilitates-devops",{"_path":31446,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31447,"content":31452,"config":31457,"_id":31459,"_type":16,"title":31460,"_source":17,"_file":31461,"_stem":31462,"_extension":20},"/en-us/blog/five-things-i-wish-i-knew-about-kubernetes",{"title":31448,"description":31449,"ogTitle":31448,"ogDescription":31449,"noIndex":6,"ogImage":27585,"ogUrl":31450,"ogSiteName":995,"ogType":996,"canonicalUrls":31450,"schema":31451},"5 things I wish I'd known about Kubernetes before I started","Looking to dive into Kubernetes? Here’s some advice on how to get started from a GitLab engineer.","https://about.gitlab.com/blog/five-things-i-wish-i-knew-about-kubernetes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"5 things I wish I'd known about Kubernetes before I started\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Plum\"}],\n        \"datePublished\": \"2018-04-16\",\n      }",{"title":31448,"description":31449,"authors":31453,"heroImage":27585,"date":31455,"category":858,"tags":31456},[31454],"Jason Plum","2018-04-16",[2908],{"slug":31458,"featured":6,"template":736},"five-things-i-wish-i-knew-about-kubernetes","content:en-us:blog:five-things-i-wish-i-knew-about-kubernetes.yml","Five Things I Wish I Knew About Kubernetes","en-us/blog/five-things-i-wish-i-knew-about-kubernetes.yml","en-us/blog/five-things-i-wish-i-knew-about-kubernetes",{"_path":31464,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31465,"content":31471,"config":31474,"_id":31476,"_type":16,"title":31477,"_source":17,"_file":31478,"_stem":31479,"_extension":20},"/en-us/blog/telstra-invests-in-gitlab",{"title":31466,"description":31467,"ogTitle":31466,"ogDescription":31467,"noIndex":6,"ogImage":31468,"ogUrl":31469,"ogSiteName":995,"ogType":996,"canonicalUrls":31469,"schema":31470},"Telstra Ventures invests in GitLab to boost innovation and collaboration","We’re excited to announce that Telstra Ventures has invested in GitLab!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671288/Blog/Hero%20Images/gitlab-live-event.png","https://about.gitlab.com/blog/telstra-invests-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Telstra Ventures invests in GitLab to boost innovation and collaboration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2018-04-16\",\n      }",{"title":31466,"description":31467,"authors":31472,"heroImage":31468,"date":31455,"category":301,"tags":31473},[1000],[1569,1049],{"slug":31475,"featured":6,"template":736},"telstra-invests-in-gitlab","content:en-us:blog:telstra-invests-in-gitlab.yml","Telstra Invests In Gitlab","en-us/blog/telstra-invests-in-gitlab.yml","en-us/blog/telstra-invests-in-gitlab",{"_path":31481,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31482,"content":31488,"config":31494,"_id":31496,"_type":16,"title":31497,"_source":17,"_file":31498,"_stem":31499,"_extension":20},"/en-us/blog/monitoring-your-gitlab-environment-with-the-elk-stack",{"title":31483,"description":31484,"ogTitle":31483,"ogDescription":31484,"noIndex":6,"ogImage":31485,"ogUrl":31486,"ogSiteName":995,"ogType":996,"canonicalUrls":31486,"schema":31487},"GitLab monitoring: Setting up Logz.io and ELK stack","ELK, together with GitLab’s logging framework, gives organizations a comprehensive view for monitoring, troubleshooting, and analyzing team activity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680160/Blog/Hero%20Images/gitlab-logz-io-cover.png","https://about.gitlab.com/blog/monitoring-your-gitlab-environment-with-the-elk-stack","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to set up advanced monitoring for your GitLab environment with Logz.io and the ELK stack\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Daniel Berman\"}],\n        \"datePublished\": \"2018-04-13\",\n      }",{"title":31489,"description":31484,"authors":31490,"heroImage":31485,"date":31492,"category":858,"tags":31493},"How to set up advanced monitoring for your GitLab environment with Logz.io and the ELK stack",[31491],"Daniel Berman","2018-04-13",[233],{"slug":31495,"featured":6,"template":736},"monitoring-your-gitlab-environment-with-the-elk-stack","content:en-us:blog:monitoring-your-gitlab-environment-with-the-elk-stack.yml","Monitoring Your Gitlab Environment With The Elk Stack","en-us/blog/monitoring-your-gitlab-environment-with-the-elk-stack.yml","en-us/blog/monitoring-your-gitlab-environment-with-the-elk-stack",{"_path":31501,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31502,"content":31507,"config":31511,"_id":31513,"_type":16,"title":31514,"_source":17,"_file":31515,"_stem":31516,"_extension":20},"/en-us/blog/contribute-to-open-source-land-jobs",{"title":31503,"description":31504,"ogTitle":31503,"ogDescription":31504,"noIndex":6,"ogImage":11172,"ogUrl":31505,"ogSiteName":995,"ogType":996,"canonicalUrls":31505,"schema":31506},"How contributing to open source can help you land your first job","Six compelling reasons why, warm fuzzy feelings aside, contributing to open source is good for your career.","https://about.gitlab.com/blog/contribute-to-open-source-land-jobs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How contributing to open source can help you land your first job\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ariel Camus\"}],\n        \"datePublished\": \"2018-04-06\",\n      }",{"title":31503,"description":31504,"authors":31508,"heroImage":11172,"date":31509,"category":1388,"tags":31510},[31347],"2018-04-06",[269,6980,1265],{"slug":31512,"featured":6,"template":736},"contribute-to-open-source-land-jobs","content:en-us:blog:contribute-to-open-source-land-jobs.yml","Contribute To Open Source Land Jobs","en-us/blog/contribute-to-open-source-land-jobs.yml","en-us/blog/contribute-to-open-source-land-jobs",{"_path":31518,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31519,"content":31524,"config":31528,"_id":31530,"_type":16,"title":31531,"_source":17,"_file":31532,"_stem":31533,"_extension":20},"/en-us/blog/gke-gitlab-integration",{"title":31520,"description":31521,"ogTitle":31520,"ogDescription":31521,"noIndex":6,"ogImage":27619,"ogUrl":31522,"ogSiteName":995,"ogType":996,"canonicalUrls":31522,"schema":31523},"GitLab + Google Cloud Platform = simplified, scalable deployment","We’ve teamed up with Google Cloud Platform – here’s what that means for you.","https://about.gitlab.com/blog/gke-gitlab-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab + Google Cloud Platform = simplified, scalable deployment\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-04-05\",\n      }",{"title":31520,"description":31521,"authors":31525,"heroImage":27619,"date":31526,"category":301,"tags":31527},[17684],"2018-04-05",[3346,1730,233,2908,564],{"slug":31529,"featured":6,"template":736},"gke-gitlab-integration","content:en-us:blog:gke-gitlab-integration.yml","Gke Gitlab Integration","en-us/blog/gke-gitlab-integration.yml","en-us/blog/gke-gitlab-integration",{"_path":31535,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31536,"content":31541,"config":31545,"_id":31547,"_type":16,"title":31548,"_source":17,"_file":31549,"_stem":31550,"_extension":20},"/en-us/blog/polishing-gitlabs-ui-a-new-color-system",{"title":31537,"description":31538,"ogTitle":31537,"ogDescription":31538,"noIndex":6,"ogImage":10957,"ogUrl":31539,"ogSiteName":995,"ogType":996,"canonicalUrls":31539,"schema":31540},"Polishing GitLab’s UI: A new color system","Senior UX Designer Pedro Moreira da Silva takes us on a deep dive into how the UX team improved the GitLab UI’s color palette.","https://about.gitlab.com/blog/polishing-gitlabs-ui-a-new-color-system","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Polishing GitLab’s UI: A new color system\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pedro Moreira da Silva\"}],\n        \"datePublished\": \"2018-03-29\",\n      }",{"title":31537,"description":31538,"authors":31542,"heroImage":10957,"date":31543,"category":858,"tags":31544},[18751],"2018-03-29",[1569,2702,2703,2704],{"slug":31546,"featured":6,"template":736},"polishing-gitlabs-ui-a-new-color-system","content:en-us:blog:polishing-gitlabs-ui-a-new-color-system.yml","Polishing Gitlabs Ui A New Color System","en-us/blog/polishing-gitlabs-ui-a-new-color-system.yml","en-us/blog/polishing-gitlabs-ui-a-new-color-system",{"_path":31552,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31553,"content":31559,"config":31565,"_id":31567,"_type":16,"title":31568,"_source":17,"_file":31569,"_stem":31570,"_extension":20},"/en-us/blog/high-efficiency-innovation",{"title":31554,"description":31555,"ogTitle":31554,"ogDescription":31555,"noIndex":6,"ogImage":31556,"ogUrl":31557,"ogSiteName":995,"ogType":996,"canonicalUrls":31557,"schema":31558},"3 lessons for innovation and rapid execution from GitLab","Guest author Jay Newman recently shadowed our CEO to discover how we move so quickly.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680169/Blog/Hero%20Images/high-efficiency-innovation.jpg","https://about.gitlab.com/blog/high-efficiency-innovation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"High-efficiency innovation: 3 lessons to learn from GitLab's culture of rapid execution\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jay Newman\"}],\n        \"datePublished\": \"2018-03-27\",\n      }",{"title":31560,"description":31555,"authors":31561,"heroImage":31556,"date":31563,"category":6121,"tags":31564},"High-efficiency innovation: 3 lessons to learn from GitLab's culture of rapid execution",[31562],"Jay Newman","2018-03-27",[1569,2815,1335],{"slug":31566,"featured":6,"template":736},"high-efficiency-innovation","content:en-us:blog:high-efficiency-innovation.yml","High Efficiency Innovation","en-us/blog/high-efficiency-innovation.yml","en-us/blog/high-efficiency-innovation",{"_path":31572,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31573,"content":31578,"config":31582,"_id":31584,"_type":16,"title":31585,"_source":17,"_file":31586,"_stem":31587,"_extension":20},"/en-us/blog/gitlabs-global-compensation-calculator-the-next-iteration",{"title":31574,"description":31575,"ogTitle":31574,"ogDescription":31575,"noIndex":6,"ogImage":11662,"ogUrl":31576,"ogSiteName":995,"ogType":996,"canonicalUrls":31576,"schema":31577},"GitLab’s Global Compensation Calculator: The next iteration","We released a new version of our Compensation Calculator in January – here’s what that means for new and existing GitLab team-members.","https://about.gitlab.com/blog/gitlabs-global-compensation-calculator-the-next-iteration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab’s Global Compensation Calculator: The next iteration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brittany Rohde\"}],\n        \"datePublished\": \"2018-03-23\",\n      }",{"title":31574,"description":31575,"authors":31579,"heroImage":11662,"date":31580,"category":301,"tags":31581},[21670],"2018-03-23",[3914,1569,6980],{"slug":31583,"featured":6,"template":736},"gitlabs-global-compensation-calculator-the-next-iteration","content:en-us:blog:gitlabs-global-compensation-calculator-the-next-iteration.yml","Gitlabs Global Compensation Calculator The Next Iteration","en-us/blog/gitlabs-global-compensation-calculator-the-next-iteration.yml","en-us/blog/gitlabs-global-compensation-calculator-the-next-iteration",{"_path":31589,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31590,"content":31596,"config":31600,"_id":31602,"_type":16,"title":31603,"_source":17,"_file":31604,"_stem":31605,"_extension":20},"/en-us/blog/avoiding-devops-tax-webcast",{"title":31591,"description":31592,"ogTitle":31591,"ogDescription":31592,"noIndex":6,"ogImage":31593,"ogUrl":31594,"ogSiteName":995,"ogType":996,"canonicalUrls":31594,"schema":31595},"How to avoid the DevOps tax","Realize a faster DevOps lifecycle with these best practices for integration and automation – watch our recent webcast with guest speaker Forrester Senior Analyst Christoper Condo and GitLab Head of Product Mark Pundsack.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670214/Blog/Hero%20Images/devops-nova-scotia-cover.jpg","https://about.gitlab.com/blog/avoiding-devops-tax-webcast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to avoid the DevOps tax\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2018-03-21\",\n      }",{"title":31591,"description":31592,"authors":31597,"heroImage":31593,"date":31598,"category":8140,"tags":31599},[17684],"2018-03-21",[564,3721],{"slug":31601,"featured":6,"template":736},"avoiding-devops-tax-webcast","content:en-us:blog:avoiding-devops-tax-webcast.yml","Avoiding Devops Tax Webcast","en-us/blog/avoiding-devops-tax-webcast.yml","en-us/blog/avoiding-devops-tax-webcast",{"_path":31607,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31608,"content":31613,"config":31617,"_id":31619,"_type":16,"title":31620,"_source":17,"_file":31621,"_stem":31622,"_extension":20},"/en-us/blog/managers-more-optimistic-than-developers",{"title":31609,"description":31610,"ogTitle":31609,"ogDescription":31610,"noIndex":6,"ogImage":14014,"ogUrl":31611,"ogSiteName":995,"ogType":996,"canonicalUrls":31611,"schema":31612},"How do developers and managers feel about their jobs?","How do you assess job satisfaction? Here's a look inside the findings and methods of our Global Developer Report.","https://about.gitlab.com/blog/managers-more-optimistic-than-developers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How do developers and managers feel about their jobs?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2018-03-20\",\n      }",{"title":31609,"description":31610,"authors":31614,"heroImage":14014,"date":31615,"category":8140,"tags":31616},[20500],"2018-03-20",[7788,6980,564],{"slug":31618,"featured":6,"template":736},"managers-more-optimistic-than-developers","content:en-us:blog:managers-more-optimistic-than-developers.yml","Managers More Optimistic Than Developers","en-us/blog/managers-more-optimistic-than-developers.yml","en-us/blog/managers-more-optimistic-than-developers",{"_path":31624,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31625,"content":31631,"config":31635,"_id":31637,"_type":16,"title":31638,"_source":17,"_file":31639,"_stem":31640,"_extension":20},"/en-us/blog/use-cases-for-epics",{"title":31626,"description":31627,"ogTitle":31626,"ogDescription":31627,"noIndex":6,"ogImage":31628,"ogUrl":31629,"ogSiteName":995,"ogType":996,"canonicalUrls":31629,"schema":31630},"How the GitLab UX team uses epics","UX Manager Sarrah Vesselov shares how the UX team is using epics to manage their workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680187/Blog/Hero%20Images/how-ux-team-uses-epics.jpg","https://about.gitlab.com/blog/use-cases-for-epics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How the GitLab UX team uses epics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarrah Vesselov\"}],\n        \"datePublished\": \"2018-03-19\",\n      }",{"title":31626,"description":31627,"authors":31632,"heroImage":31628,"date":31633,"category":858,"tags":31634},[29453],"2018-03-19",[729,1335,2815,2703],{"slug":31636,"featured":6,"template":736},"use-cases-for-epics","content:en-us:blog:use-cases-for-epics.yml","Use Cases For Epics","en-us/blog/use-cases-for-epics.yml","en-us/blog/use-cases-for-epics",{"_path":31642,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31643,"content":31649,"config":31654,"_id":31656,"_type":16,"title":31657,"_source":17,"_file":31658,"_stem":31659,"_extension":20},"/en-us/blog/remote-work-done-right",{"title":31644,"description":31645,"ogTitle":31644,"ogDescription":31645,"noIndex":6,"ogImage":31646,"ogUrl":31647,"ogSiteName":995,"ogType":996,"canonicalUrls":31647,"schema":31648},"Remote work, done right","Guest author Nolan Myers hated conference calls. Here's how we changed his mind.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679812/Blog/Hero%20Images/remote-work-done-right.jpg","https://about.gitlab.com/blog/remote-work-done-right","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Remote work, done right\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Nolan Myers\"}],\n        \"datePublished\": \"2018-03-16\",\n      }",{"title":31644,"description":31645,"authors":31650,"heroImage":31646,"date":31652,"category":6121,"tags":31653},[31651],"Nolan Myers","2018-03-16",[3914,1569,1335,2815,1265],{"slug":31655,"featured":6,"template":736},"remote-work-done-right","content:en-us:blog:remote-work-done-right.yml","Remote Work Done Right","en-us/blog/remote-work-done-right.yml","en-us/blog/remote-work-done-right",{"_path":31661,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31662,"content":31668,"config":31673,"_id":31675,"_type":16,"title":31676,"_source":17,"_file":31677,"_stem":31678,"_extension":20},"/en-us/blog/working-at-gitlab-affects-my-life",{"title":31663,"description":31664,"ogTitle":31663,"ogDescription":31664,"noIndex":6,"ogImage":31665,"ogUrl":31666,"ogSiteName":995,"ogType":996,"canonicalUrls":31666,"schema":31667},"How working at GitLab has changed my view on work and life","A glimpse of the things I've learned at GitLab since I joined.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678678/Blog/Hero%20Images/gitlab-effects.jpg","https://about.gitlab.com/blog/working-at-gitlab-affects-my-life","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How working at GitLab has changed my view on work and life\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hazel Yang\"}],\n        \"datePublished\": \"2018-03-15\",\n      }",{"title":31663,"description":31664,"authors":31669,"heroImage":31665,"date":31671,"category":6121,"tags":31672},[31670],"Hazel Yang","2018-03-15",[1569,2815,6980],{"slug":31674,"featured":6,"template":736},"working-at-gitlab-affects-my-life","content:en-us:blog:working-at-gitlab-affects-my-life.yml","Working At Gitlab Affects My Life","en-us/blog/working-at-gitlab-affects-my-life.yml","en-us/blog/working-at-gitlab-affects-my-life",{"_path":31680,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31681,"content":31687,"config":31691,"_id":31693,"_type":16,"title":31694,"_source":17,"_file":31695,"_stem":31696,"_extension":20},"/en-us/blog/the-on-call-handover-at-gitlab",{"title":31682,"description":31683,"ogTitle":31682,"ogDescription":31683,"noIndex":6,"ogImage":31684,"ogUrl":31685,"ogSiteName":995,"ogType":996,"canonicalUrls":31685,"schema":31686},"How our production team runs the weekly on-call handover","Senior Production Engineer John Jarvis explains our handover process for on-call incidents in a fully remote and distributed team.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678661/Blog/Hero%20Images/production-on-call-handover.jpg","https://about.gitlab.com/blog/the-on-call-handover-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How our production team runs the weekly on-call handover\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Jarvis\"}],\n        \"datePublished\": \"2018-03-14\",\n      }",{"title":31682,"description":31683,"authors":31688,"heroImage":31684,"date":31689,"category":858,"tags":31690},[20285],"2018-03-14",[1569,6376],{"slug":31692,"featured":6,"template":736},"the-on-call-handover-at-gitlab","content:en-us:blog:the-on-call-handover-at-gitlab.yml","The On Call Handover At Gitlab","en-us/blog/the-on-call-handover-at-gitlab.yml","en-us/blog/the-on-call-handover-at-gitlab",{"_path":31698,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31699,"content":31705,"config":31709,"_id":31711,"_type":16,"title":31712,"_source":17,"_file":31713,"_stem":31714,"_extension":20},"/en-us/blog/preventing-burnout",{"title":31700,"description":31701,"ogTitle":31700,"ogDescription":31701,"noIndex":6,"ogImage":31702,"ogUrl":31703,"ogSiteName":995,"ogType":996,"canonicalUrls":31703,"schema":31704},"GitLab team members share how to recognize burnout (and how to prevent it)","Burning out is a common feeling at startups – here's what we're doing to address it at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680178/Blog/Hero%20Images/gitlabbers-share-how-to-recognize-burnout.jpg","https://about.gitlab.com/blog/preventing-burnout","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab team members share how to recognize burnout (and how to prevent it)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Clement Ho\"}],\n        \"datePublished\": \"2018-03-08\",\n      }",{"title":31700,"description":31701,"authors":31706,"heroImage":31702,"date":31707,"category":6121,"tags":31708},[20589],"2018-03-08",[3914,6980,1569],{"slug":31710,"featured":6,"template":736},"preventing-burnout","content:en-us:blog:preventing-burnout.yml","Preventing Burnout","en-us/blog/preventing-burnout.yml","en-us/blog/preventing-burnout",{"_path":31716,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31717,"content":31722,"config":31727,"_id":31729,"_type":16,"title":31730,"_source":17,"_file":31731,"_stem":31732,"_extension":20},"/en-us/blog/2018-global-developer-report",{"title":31718,"description":31719,"ogTitle":31718,"ogDescription":31719,"noIndex":6,"ogImage":9899,"ogUrl":31720,"ogSiteName":995,"ogType":996,"canonicalUrls":31720,"schema":31721},"Global Developer Report - 2018 for Open Source & DevOps","We surveyed over 5,000 software professionals to examine current attitudes and perception of the state of culture, workflow, and tooling within IT organizations.","https://about.gitlab.com/blog/2018-global-developer-report","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Global Developer Report confirms 2018 is the year for open source and DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2018-03-07\",\n      }",{"title":31723,"description":31719,"authors":31724,"heroImage":9899,"date":31725,"category":8140,"tags":31726},"Global Developer Report confirms 2018 is the year for open source and DevOps",[27004],"2018-03-07",[7788,1265,564,1335],{"slug":31728,"featured":6,"template":736},"2018-global-developer-report","content:en-us:blog:2018-global-developer-report.yml","2018 Global Developer Report","en-us/blog/2018-global-developer-report.yml","en-us/blog/2018-global-developer-report",{"_path":31734,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31735,"content":31740,"config":31744,"_id":31746,"_type":16,"title":31747,"_source":17,"_file":31748,"_stem":31749,"_extension":20},"/en-us/blog/reconfigure-inbound-email-for-gitlab-notification",{"title":31736,"description":31737,"ogTitle":31736,"ogDescription":31737,"noIndex":6,"ogImage":11046,"ogUrl":31738,"ogSiteName":995,"ogType":996,"canonicalUrls":31738,"schema":31739},"GitLab inbound email issue notification","We've identified a potential risk impacting those using our email an issue to project, Reply by Email, and Service Desk features.","https://about.gitlab.com/blog/reconfigure-inbound-email-for-gitlab-notification","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab inbound email issue notification\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jim Thavisouk\"}],\n        \"datePublished\": \"2018-03-06\",\n      }",{"title":31736,"description":31737,"authors":31741,"heroImage":11046,"date":31742,"category":1049,"tags":31743},[30450],"2018-03-06",[790,1569],{"slug":31745,"featured":6,"template":736},"reconfigure-inbound-email-for-gitlab-notification","content:en-us:blog:reconfigure-inbound-email-for-gitlab-notification.yml","Reconfigure Inbound Email For Gitlab Notification","en-us/blog/reconfigure-inbound-email-for-gitlab-notification.yml","en-us/blog/reconfigure-inbound-email-for-gitlab-notification",{"_path":31751,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31752,"content":31758,"config":31762,"_id":31764,"_type":16,"title":31765,"_source":17,"_file":31766,"_stem":31767,"_extension":20},"/en-us/blog/gitlab-for-agile-software-development",{"title":31753,"description":31754,"ogTitle":31753,"ogDescription":31754,"noIndex":6,"ogImage":31755,"ogUrl":31756,"ogSiteName":995,"ogType":996,"canonicalUrls":31756,"schema":31757},"How to use GitLab for Agile software development","How Agile artifacts map to GitLab features and how an Agile iteration looks in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097459/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2821%29_2pdp2MNB7SoP4MhhiI1WIa_1750097459157.png","https://about.gitlab.com/blog/gitlab-for-agile-software-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab for Agile software development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"},{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2018-03-05\",\n      }",{"title":31753,"description":31754,"authors":31759,"heroImage":31755,"date":31760,"category":726,"tags":31761,"updatedDate":5109},[28472,734],"2018-03-05",[729,730,1335,2815],{"slug":31763,"featured":6,"template":736},"gitlab-for-agile-software-development","content:en-us:blog:gitlab-for-agile-software-development.yml","Gitlab For Agile Software Development","en-us/blog/gitlab-for-agile-software-development.yml","en-us/blog/gitlab-for-agile-software-development",{"_path":31769,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31770,"content":31776,"config":31780,"_id":31782,"_type":16,"title":31783,"_source":17,"_file":31784,"_stem":31785,"_extension":20},"/en-us/blog/gitlab-vscode-extension",{"title":31771,"description":31772,"ogTitle":31771,"ogDescription":31772,"noIndex":6,"ogImage":31773,"ogUrl":31774,"ogSiteName":995,"ogType":996,"canonicalUrls":31774,"schema":31775},"A VS Code extension for GitLab: GitLab Workflow","Senior Frontend Engineer Fatih Acet created a VS Code extension, GitLab Workflow, which allows you to do many GitLab-specific tasks quickly and easily.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680196/Blog/Hero%20Images/vs-code-extension-gitlab-workflow.jpg","https://about.gitlab.com/blog/gitlab-vscode-extension","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A VS Code extension for GitLab: GitLab Workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatih Acet\"}],\n        \"datePublished\": \"2018-03-01\",\n      }",{"title":31771,"description":31772,"authors":31777,"heroImage":31773,"date":31778,"category":858,"tags":31779},[28060],"2018-03-01",[4182,1265,233],{"slug":31781,"featured":6,"template":736},"gitlab-vscode-extension","content:en-us:blog:gitlab-vscode-extension.yml","Gitlab Vscode Extension","en-us/blog/gitlab-vscode-extension.yml","en-us/blog/gitlab-vscode-extension",{"_path":31787,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31788,"content":31794,"config":31798,"_id":31800,"_type":16,"title":31801,"_source":17,"_file":31802,"_stem":31803,"_extension":20},"/en-us/blog/coreos-acquisition",{"title":31789,"description":31790,"ogTitle":31789,"ogDescription":31790,"noIndex":6,"ogImage":31791,"ogUrl":31792,"ogSiteName":995,"ogType":996,"canonicalUrls":31792,"schema":31793},"Red Hat follows GitLab's lead in hybrid cloud technology","Red Hat’s recent acquisition of CoreOS proves that GitLab’s hybrid cloud strategy is worth the investment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680202/Blog/Hero%20Images/coreos.jpg","https://about.gitlab.com/blog/coreos-acquisition","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Red Hat follows GitLab's lead in hybrid cloud technology\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2018-02-27\",\n      }",{"title":31789,"description":31790,"authors":31795,"heroImage":31791,"date":31796,"category":8140,"tags":31797},[3701],"2018-02-27",[1049,1569],{"slug":31799,"featured":6,"template":736},"coreos-acquisition","content:en-us:blog:coreos-acquisition.yml","Coreos Acquisition","en-us/blog/coreos-acquisition.yml","en-us/blog/coreos-acquisition",{"_path":31805,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31806,"content":31811,"config":31815,"_id":31817,"_type":16,"title":31818,"_source":17,"_file":31819,"_stem":31820,"_extension":20},"/en-us/blog/gitlabs-2018-product-vision",{"title":31807,"description":31808,"ogTitle":31807,"ogDescription":31808,"noIndex":6,"ogImage":31468,"ogUrl":31809,"ogSiteName":995,"ogType":996,"canonicalUrls":31809,"schema":31810},"GitLab's 2018 Product Vision: Prototype demo","Take an early look at where we're heading this year.","https://about.gitlab.com/blog/gitlabs-2018-product-vision","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's 2018 Product Vision: Prototype demo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Pundsack\"}],\n        \"datePublished\": \"2018-02-26\",\n      }",{"title":31807,"description":31808,"authors":31812,"heroImage":31468,"date":31813,"category":301,"tags":31814},[24243],"2018-02-26",[1569,730],{"slug":31816,"featured":6,"template":736},"gitlabs-2018-product-vision","content:en-us:blog:gitlabs-2018-product-vision.yml","Gitlabs 2018 Product Vision","en-us/blog/gitlabs-2018-product-vision.yml","en-us/blog/gitlabs-2018-product-vision",{"_path":31822,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31823,"content":31829,"config":31833,"_id":31835,"_type":16,"title":31836,"_source":17,"_file":31837,"_stem":31838,"_extension":20},"/en-us/blog/whats-wrong-with-devops",{"title":31824,"description":31825,"ogTitle":31824,"ogDescription":31825,"noIndex":6,"ogImage":31826,"ogUrl":31827,"ogSiteName":995,"ogType":996,"canonicalUrls":31827,"schema":31828},"3 things that are wrong with DevOps today","Why are collaboration woes, shift-left waste, and tooling admin costs still plaguing DevOps?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680211/Blog/Hero%20Images/what-is-wrong-with-devops.jpg","https://about.gitlab.com/blog/whats-wrong-with-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 things that are wrong with DevOps today\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joel Krooswyk\"}],\n        \"datePublished\": \"2018-02-20\",\n      }",{"title":31824,"description":31825,"authors":31830,"heroImage":31826,"date":31831,"category":8140,"tags":31832},[5749],"2018-02-20",[564,1335,2815],{"slug":31834,"featured":6,"template":736},"whats-wrong-with-devops","content:en-us:blog:whats-wrong-with-devops.yml","Whats Wrong With Devops","en-us/blog/whats-wrong-with-devops.yml","en-us/blog/whats-wrong-with-devops",{"_path":31840,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31841,"content":31847,"config":31851,"_id":31853,"_type":16,"title":31854,"_source":17,"_file":31855,"_stem":31856,"_extension":20},"/en-us/blog/european-general-data-protection-regulation-law",{"title":31842,"description":31843,"ogTitle":31842,"ogDescription":31843,"noIndex":6,"ogImage":31844,"ogUrl":31845,"ogSiteName":995,"ogType":996,"canonicalUrls":31845,"schema":31846},"If you do business in Europe, you need to know about GDPR","You may be affected by European Union’s General Data Protection Regulation – here's what you need to know.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680218/Blog/Hero%20Images/gdpr-european-parliament.jpg","https://about.gitlab.com/blog/european-general-data-protection-regulation-law","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"If you do business in Europe, you need to know about GDPR\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Aricka Flowers\"}],\n        \"datePublished\": \"2018-02-16\",\n      }",{"title":31842,"description":31843,"authors":31848,"heroImage":31844,"date":31849,"category":301,"tags":31850},[27414],"2018-02-16",[1049],{"slug":31852,"featured":6,"template":736},"european-general-data-protection-regulation-law","content:en-us:blog:european-general-data-protection-regulation-law.yml","European General Data Protection Regulation Law","en-us/blog/european-general-data-protection-regulation-law.yml","en-us/blog/european-general-data-protection-regulation-law",{"_path":31858,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31859,"content":31864,"config":31868,"_id":31870,"_type":16,"title":31871,"_source":17,"_file":31872,"_stem":31873,"_extension":20},"/en-us/blog/gitlab-issue-bash-march-2018",{"title":31860,"description":31861,"ogTitle":31860,"ogDescription":31861,"noIndex":6,"ogImage":31287,"ogUrl":31862,"ogSiteName":995,"ogType":996,"canonicalUrls":31862,"schema":31863},"Join GitLab's March 2018 Issue Bash","Help us to squash some of the open issues in the GitLab Community Edition tracker!","https://about.gitlab.com/blog/gitlab-issue-bash-march-2018","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join GitLab's March 2018 Issue Bash\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Fletcher\"}],\n        \"datePublished\": \"2018-02-15\",\n      }",{"title":31860,"description":31861,"authors":31865,"heroImage":31287,"date":31866,"category":301,"tags":31867},[31292],"2018-02-15",[269,279,1265],{"slug":31869,"featured":6,"template":736},"gitlab-issue-bash-march-2018","content:en-us:blog:gitlab-issue-bash-march-2018.yml","Gitlab Issue Bash March 2018","en-us/blog/gitlab-issue-bash-march-2018.yml","en-us/blog/gitlab-issue-bash-march-2018",{"_path":31875,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31876,"content":31882,"config":31887,"_id":31889,"_type":16,"title":31890,"_source":17,"_file":31891,"_stem":31892,"_extension":20},"/en-us/blog/how-we-added-eslint-into-vue",{"title":31877,"description":31878,"ogTitle":31877,"ogDescription":31878,"noIndex":6,"ogImage":31879,"ogUrl":31880,"ogSiteName":995,"ogType":996,"canonicalUrls":31880,"schema":31881},"How eslint-plugin-vue improved our code reviews","A few months ago we felt the need to build a style guide for Vue and now are using eslint-vue-plugin, which is saving us time in our code reviews.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680227/Blog/Hero%20Images/code_cover_image.jpg","https://about.gitlab.com/blog/how-we-added-eslint-into-vue","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How eslint-plugin-vue improved our code reviews\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Filipa Lacerda\"}],\n        \"datePublished\": \"2018-02-13\",\n      }",{"title":31877,"description":31878,"authors":31883,"heroImage":31879,"date":31885,"category":858,"tags":31886},[31884],"Filipa Lacerda","2018-02-13",[1569,10121],{"slug":31888,"featured":6,"template":736},"how-we-added-eslint-into-vue","content:en-us:blog:how-we-added-eslint-into-vue.yml","How We Added Eslint Into Vue","en-us/blog/how-we-added-eslint-into-vue.yml","en-us/blog/how-we-added-eslint-into-vue",{"_path":31894,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31895,"content":31900,"config":31904,"_id":31906,"_type":16,"title":31907,"_source":17,"_file":31908,"_stem":31909,"_extension":20},"/en-us/blog/using-gitlab-to-manage-house-renovation-priorities",{"title":31896,"description":31897,"ogTitle":31896,"ogDescription":31897,"noIndex":6,"ogImage":9345,"ogUrl":31898,"ogSiteName":995,"ogType":996,"canonicalUrls":31898,"schema":31899},"Using GitLab to project manage home renovation priorities","Solutions Architect Brendan O'Leary shares how he and his family use GitLab Issue Boards for an unconventional purpose: home improvement prioritization!","https://about.gitlab.com/blog/using-gitlab-to-manage-house-renovation-priorities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using GitLab to project manage home renovation priorities\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brendan O'Leary\"}],\n        \"datePublished\": \"2018-02-08\",\n      }",{"title":31896,"description":31897,"authors":31901,"heroImage":9345,"date":31902,"category":301,"tags":31903},[10835],"2018-02-08",[1569,4665],{"slug":31905,"featured":6,"template":736},"using-gitlab-to-manage-house-renovation-priorities","content:en-us:blog:using-gitlab-to-manage-house-renovation-priorities.yml","Using Gitlab To Manage House Renovation Priorities","en-us/blog/using-gitlab-to-manage-house-renovation-priorities.yml","en-us/blog/using-gitlab-to-manage-house-renovation-priorities",{"_path":31911,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31912,"content":31918,"config":31923,"_id":31925,"_type":16,"title":31926,"_source":17,"_file":31927,"_stem":31928,"_extension":20},"/en-us/blog/crowdin-localization-for-agile-projects",{"title":31913,"description":31914,"ogTitle":31913,"ogDescription":31914,"noIndex":6,"ogImage":31915,"ogUrl":31916,"ogSiteName":995,"ogType":996,"canonicalUrls":31916,"schema":31917},"Automate your localization with GitLab + Crowdin","Complete your development workflow by integrating GitLab with Crowdin to help your product speak the same language as the people it’s built for.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680247/Blog/Hero%20Images/gitlab-crowdin-cover.png","https://about.gitlab.com/blog/crowdin-localization-for-agile-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automate your localization with GitLab + Crowdin\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Khrystyna Humenna\"}],\n        \"datePublished\": \"2018-02-06\",\n      }",{"title":31913,"description":31914,"authors":31919,"heroImage":31915,"date":31921,"category":858,"tags":31922},[31920],"Khrystyna Humenna","2018-02-06",[233],{"slug":31924,"featured":6,"template":736},"crowdin-localization-for-agile-projects","content:en-us:blog:crowdin-localization-for-agile-projects.yml","Crowdin Localization For Agile Projects","en-us/blog/crowdin-localization-for-agile-projects.yml","en-us/blog/crowdin-localization-for-agile-projects",{"_path":31930,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31931,"content":31937,"config":31942,"_id":31944,"_type":16,"title":31945,"_source":17,"_file":31946,"_stem":31947,"_extension":20},"/en-us/blog/test-all-the-things-gitlab-ci-docker-examples",{"title":31932,"description":31933,"ogTitle":31932,"ogDescription":31933,"noIndex":6,"ogImage":31934,"ogUrl":31935,"ogSiteName":995,"ogType":996,"canonicalUrls":31935,"schema":31936},"Test all the things in GitLab CI with Docker by example","Running tests is easier than you think – guest author Gabriel Le Breton shares his presentation about testing everything automatically with GitLab CI/CD.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680261/Blog/Hero%20Images/test-all-the-things-in-gitlab-ci-with-docker-by-example.jpg","https://about.gitlab.com/blog/test-all-the-things-gitlab-ci-docker-examples","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Test all the things in GitLab CI with Docker by example\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Gabriel Le Breton\"}],\n        \"datePublished\": \"2018-02-05\",\n      }",{"title":31932,"description":31933,"authors":31938,"heroImage":31934,"date":31940,"category":858,"tags":31941},[31939],"Gabriel Le Breton","2018-02-05",[4665,110],{"slug":31943,"featured":6,"template":736},"test-all-the-things-gitlab-ci-docker-examples","content:en-us:blog:test-all-the-things-gitlab-ci-docker-examples.yml","Test All The Things Gitlab Ci Docker Examples","en-us/blog/test-all-the-things-gitlab-ci-docker-examples.yml","en-us/blog/test-all-the-things-gitlab-ci-docker-examples",{"_path":31949,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31950,"content":31956,"config":31962,"_id":31964,"_type":16,"title":31965,"_source":17,"_file":31966,"_stem":31967,"_extension":20},"/en-us/blog/pick-your-brain-interview-vincent-jong",{"title":31951,"description":31952,"ogTitle":31951,"ogDescription":31952,"noIndex":6,"ogImage":31953,"ogUrl":31954,"ogSiteName":995,"ogType":996,"canonicalUrls":31954,"schema":31955},"Key decisions for building successful startups","Vincent Jong of SaaS.CEO sits down for a 'pick your brain' meeting with GitLab CEO Sid Sijbrandij.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680253/Blog/Hero%20Images/pick-your-brain-interview-thrive.jpg","https://about.gitlab.com/blog/pick-your-brain-interview-vincent-jong","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Saas.CEO and Sid Sijbrandij talk key decisions, influential connections, and strategic vision when building a startup\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vincent Jong\"}],\n        \"datePublished\": \"2018-01-26\",\n      }",{"title":31957,"description":31952,"authors":31958,"heroImage":31953,"date":31960,"category":6121,"tags":31961},"Saas.CEO and Sid Sijbrandij talk key decisions, influential connections, and strategic vision when building a startup",[31959],"Vincent Jong","2018-01-26",[582,10011],{"slug":31963,"featured":6,"template":736},"pick-your-brain-interview-vincent-jong","content:en-us:blog:pick-your-brain-interview-vincent-jong.yml","Pick Your Brain Interview Vincent Jong","en-us/blog/pick-your-brain-interview-vincent-jong.yml","en-us/blog/pick-your-brain-interview-vincent-jong",{"_path":31969,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31970,"content":31975,"config":31979,"_id":31981,"_type":16,"title":31982,"_source":17,"_file":31983,"_stem":31984,"_extension":20},"/en-us/blog/how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x",{"title":31971,"description":31972,"ogTitle":31971,"ogDescription":31972,"noIndex":6,"ogImage":10957,"ogUrl":31973,"ogSiteName":995,"ogType":996,"canonicalUrls":31973,"schema":31974},"How a fix in Go 1.9 sped up our Gitaly service by 30x","After noticing a worrying pattern in Gitaly's performance, we uncovered an issue with fork locking affecting virtual memory size. Here's how we figured out the problem and how to fix it.","https://about.gitlab.com/blog/how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How a fix in Go 1.9 sped up our Gitaly service by 30x\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Andrew Newdigate\"}],\n        \"datePublished\": \"2018-01-23\",\n      }",{"title":31971,"description":31972,"authors":31976,"heroImage":10957,"date":31977,"category":858,"tags":31978},[8242],"2018-01-23",[1569,1988],{"slug":31980,"featured":6,"template":736},"how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x","content:en-us:blog:how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x.yml","How A Fix In Go 19 Sped Up Our Gitaly Service By 30x","en-us/blog/how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x.yml","en-us/blog/how-a-fix-in-go-19-sped-up-our-gitaly-service-by-30x",{"_path":31986,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":31987,"content":31993,"config":31998,"_id":32000,"_type":16,"title":32001,"_source":17,"_file":32002,"_stem":32003,"_extension":20},"/en-us/blog/a-beginners-guide-to-continuous-integration",{"title":31988,"description":31989,"ogTitle":31988,"ogDescription":31989,"noIndex":6,"ogImage":31990,"ogUrl":31991,"ogSiteName":995,"ogType":996,"canonicalUrls":31991,"schema":31992},"A beginner's guide to continuous integration","Here's how to help everyone on your team, like designers and testers, get started with GitLab CI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679800/Blog/Hero%20Images/beginners-guide-to-ci.jpg","https://about.gitlab.com/blog/a-beginners-guide-to-continuous-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A beginner's guide to continuous integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Riccardo Padovani\"}],\n        \"datePublished\": \"2018-01-22\",\n      }",{"title":31988,"description":31989,"authors":31994,"heroImage":31990,"date":31996,"category":858,"tags":31997},[31995],"Riccardo Padovani","2018-01-22",[110,4665],{"slug":31999,"featured":6,"template":736},"a-beginners-guide-to-continuous-integration","content:en-us:blog:a-beginners-guide-to-continuous-integration.yml","A Beginners Guide To Continuous Integration","en-us/blog/a-beginners-guide-to-continuous-integration.yml","en-us/blog/a-beginners-guide-to-continuous-integration",{"_path":32005,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32006,"content":32011,"config":32015,"_id":32017,"_type":16,"title":32018,"_source":17,"_file":32019,"_stem":32020,"_extension":20},"/en-us/blog/craftsman-looks-at-continuous-integration",{"title":32007,"description":32008,"ogTitle":32007,"ogDescription":32008,"noIndex":6,"ogImage":11999,"ogUrl":32009,"ogSiteName":995,"ogType":996,"canonicalUrls":32009,"schema":32010},"A Craftsman looks at continuous integration","Guest author Steve Ropa shares his ideal continuous integration processes for catching errors early and shipping the best software possible.","https://about.gitlab.com/blog/craftsman-looks-at-continuous-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A Craftsman looks at continuous integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steve Ropa\"}],\n        \"datePublished\": \"2018-01-17\",\n      }",{"title":32007,"description":32008,"authors":32012,"heroImage":11999,"date":32013,"category":8140,"tags":32014},[31382],"2018-01-17",[2097],{"slug":32016,"featured":6,"template":736},"craftsman-looks-at-continuous-integration","content:en-us:blog:craftsman-looks-at-continuous-integration.yml","Craftsman Looks At Continuous Integration","en-us/blog/craftsman-looks-at-continuous-integration.yml","en-us/blog/craftsman-looks-at-continuous-integration",{"_path":32022,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32023,"content":32029,"config":32034,"_id":32036,"_type":16,"title":32037,"_source":17,"_file":32038,"_stem":32039,"_extension":20},"/en-us/blog/zapier-pick-your-brain-interview",{"title":32024,"description":32025,"ogTitle":32024,"ogDescription":32025,"noIndex":6,"ogImage":32026,"ogUrl":32027,"ogSiteName":995,"ogType":996,"canonicalUrls":32027,"schema":32028},"Scaling communication at Zapier","GitLab CEO Sid Sijbrandij sits down with Zapier team members to chat about communication challenges in each growing company.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680279/Blog/Hero%20Images/zapier-pyb-post.jpg","https://about.gitlab.com/blog/zapier-pick-your-brain-interview","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Scaling communication at Zapier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Noah Manger\"}],\n        \"datePublished\": \"2018-01-08\",\n      }",{"title":32024,"description":32025,"authors":32030,"heroImage":32026,"date":32032,"category":6121,"tags":32033},[32031],"Noah Manger","2018-01-08",[582,3914,2815],{"slug":32035,"featured":6,"template":736},"zapier-pick-your-brain-interview","content:en-us:blog:zapier-pick-your-brain-interview.yml","Zapier Pick Your Brain Interview","en-us/blog/zapier-pick-your-brain-interview.yml","en-us/blog/zapier-pick-your-brain-interview",{"_path":32041,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32042,"content":32048,"config":32052,"_id":32054,"_type":16,"title":32055,"_source":17,"_file":32056,"_stem":32057,"_extension":20},"/en-us/blog/comment-on-commits-feature-tutorial",{"title":32043,"description":32044,"ogTitle":32043,"ogDescription":32044,"noIndex":6,"ogImage":32045,"ogUrl":32046,"ogSiteName":995,"ogType":996,"canonicalUrls":32046,"schema":32047},"Demo: How to use Merge Request Commit Discussions","You can now hold discussions on specific commits within a merge request – check out how it works in this video.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680285/Blog/Hero%20Images/merge-request-commit-discussions.jpg","https://about.gitlab.com/blog/comment-on-commits-feature-tutorial","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo: How to use Merge Request Commit Discussions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2018-01-04\",\n      }",{"title":32043,"description":32044,"authors":32049,"heroImage":32045,"date":32050,"category":858,"tags":32051},[28472],"2018-01-04",[730,2815],{"slug":32053,"featured":6,"template":736},"comment-on-commits-feature-tutorial","content:en-us:blog:comment-on-commits-feature-tutorial.yml","Comment On Commits Feature Tutorial","en-us/blog/comment-on-commits-feature-tutorial.yml","en-us/blog/comment-on-commits-feature-tutorial",{"_path":32059,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32060,"content":32065,"config":32069,"_id":32071,"_type":16,"title":32072,"_source":17,"_file":32073,"_stem":32074,"_extension":20},"/en-us/blog/conducting-remote-ux-research",{"title":32061,"description":32062,"ogTitle":32061,"ogDescription":32062,"noIndex":6,"ogImage":10957,"ogUrl":32063,"ogSiteName":995,"ogType":996,"canonicalUrls":32063,"schema":32064},"Conducting remote UX research at GitLab","Learn about the different kinds of UX research we conduct at GitLab.","https://about.gitlab.com/blog/conducting-remote-ux-research","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Conducting remote UX research at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah O’Donnell\"}],\n        \"datePublished\": \"2017-12-20\",\n      }",{"title":32061,"description":32062,"authors":32066,"heroImage":10957,"date":32067,"category":858,"tags":32068},[26717],"2017-12-20",[3914,1569,2703],{"slug":32070,"featured":6,"template":736},"conducting-remote-ux-research","content:en-us:blog:conducting-remote-ux-research.yml","Conducting Remote Ux Research","en-us/blog/conducting-remote-ux-research.yml","en-us/blog/conducting-remote-ux-research",{"_path":32076,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32077,"content":32083,"config":32087,"_id":32089,"_type":16,"title":32090,"_source":17,"_file":32091,"_stem":32092,"_extension":20},"/en-us/blog/moving-to-headless-chrome",{"title":32078,"description":32079,"ogTitle":32078,"ogDescription":32079,"noIndex":6,"ogImage":32080,"ogUrl":32081,"ogSiteName":995,"ogType":996,"canonicalUrls":32081,"schema":32082},"How GitLab switched to Headless Chrome for testing","A detailed explanation with examples of how GitLab made the switch to headless Chrome.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680270/Blog/Hero%20Images/headless-chrome-cover.jpg","https://about.gitlab.com/blog/moving-to-headless-chrome","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab switched to Headless Chrome for testing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Greiling\"}],\n        \"datePublished\": \"2017-12-19\",\n      }",{"title":32078,"description":32079,"authors":32084,"heroImage":32080,"date":32085,"category":858,"tags":32086},[23680],"2017-12-19",[1569,10121,964],{"slug":32088,"featured":6,"template":736},"moving-to-headless-chrome","content:en-us:blog:moving-to-headless-chrome.yml","Moving To Headless Chrome","en-us/blog/moving-to-headless-chrome.yml","en-us/blog/moving-to-headless-chrome",{"_path":32094,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32095,"content":32100,"config":32105,"_id":32107,"_type":16,"title":32108,"_source":17,"_file":32109,"_stem":32110,"_extension":20},"/en-us/blog/balanced-piaa",{"title":32096,"description":32097,"ogTitle":32096,"ogDescription":32097,"noIndex":6,"ogImage":27918,"ogUrl":32098,"ogSiteName":995,"ogType":996,"canonicalUrls":32098,"schema":32099},"Announcing a more balanced Proprietary Information and Assignment Agreement","We've amended our PIAA to help our contributors maintain their ability to work on projects that are unrelated to GitLab business, including other open source projects.","https://about.gitlab.com/blog/balanced-piaa","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing a more balanced Proprietary Information and Assignment Agreement\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jamie Hurewitz\"}],\n        \"datePublished\": \"2017-12-18\",\n      }",{"title":32096,"description":32097,"authors":32101,"heroImage":27918,"date":32103,"category":301,"tags":32104},[32102],"Jamie Hurewitz","2017-12-18",[1049,1265,1569],{"slug":32106,"featured":6,"template":736},"balanced-piaa","content:en-us:blog:balanced-piaa.yml","Balanced Piaa","en-us/blog/balanced-piaa.yml","en-us/blog/balanced-piaa",{"_path":32112,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32113,"content":32118,"config":32123,"_id":32125,"_type":16,"title":32126,"_source":17,"_file":32127,"_stem":32128,"_extension":20},"/en-us/blog/an-agile-approach-to-documentation-and-structure",{"title":32114,"description":32115,"ogTitle":32114,"ogDescription":32115,"noIndex":6,"ogImage":27918,"ogUrl":32116,"ogSiteName":995,"ogType":996,"canonicalUrls":32116,"schema":32117},"An Agile approach to documentation and structure","Combining flexibility and structure: why we decided to use GitLab.com for all UnscrewMe documentation and code to keep an overview, always find the relevant information quickly, and easily track progress.","https://about.gitlab.com/blog/an-agile-approach-to-documentation-and-structure","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"An Agile approach to documentation and structure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Goetz Buerkle\"}],\n        \"datePublished\": \"2017-12-13\",\n      }",{"title":32114,"description":32115,"authors":32119,"heroImage":27918,"date":32121,"category":1388,"tags":32122},[32120],"Goetz Buerkle","2017-12-13",[729,1265,4665],{"slug":32124,"featured":6,"template":736},"an-agile-approach-to-documentation-and-structure","content:en-us:blog:an-agile-approach-to-documentation-and-structure.yml","An Agile Approach To Documentation And Structure","en-us/blog/an-agile-approach-to-documentation-and-structure.yml","en-us/blog/an-agile-approach-to-documentation-and-structure",{"_path":32130,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32131,"content":32136,"config":32140,"_id":32142,"_type":16,"title":32143,"_source":17,"_file":32144,"_stem":32145,"_extension":20},"/en-us/blog/gitlab-design-library",{"title":32132,"description":32133,"ogTitle":32132,"ogDescription":32133,"noIndex":6,"ogImage":10957,"ogUrl":32134,"ogSiteName":995,"ogType":996,"canonicalUrls":32134,"schema":32135},"Scaling design: The start of system thinking","How we began the process of introducing a design system to GitLab.","https://about.gitlab.com/blog/gitlab-design-library","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Scaling design: The start of system thinking\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2017-12-12\",\n      }",{"title":32132,"description":32133,"authors":32137,"heroImage":10957,"date":32138,"category":858,"tags":32139},[18295],"2017-12-12",[2702,2703,1569],{"slug":32141,"featured":6,"template":736},"gitlab-design-library","content:en-us:blog:gitlab-design-library.yml","Gitlab Design Library","en-us/blog/gitlab-design-library.yml","en-us/blog/gitlab-design-library",{"_path":32147,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32148,"content":32153,"config":32158,"_id":32160,"_type":16,"title":32161,"_source":17,"_file":32162,"_stem":32163,"_extension":20},"/en-us/blog/automate-to-accelerate-webcast-recap",{"title":32149,"description":32150,"ogTitle":32149,"ogDescription":32150,"noIndex":6,"ogImage":31468,"ogUrl":32151,"ogSiteName":995,"ogType":996,"canonicalUrls":32151,"schema":32152},"Testing & release automation: Accelerate development","If you’re not using automated testing, your competitors almost certainly are – catch up on our recent webcast to get started.","https://about.gitlab.com/blog/automate-to-accelerate-webcast-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automate to accelerate: What you need to know about test and release automation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-12-08\",\n      }",{"title":32154,"description":32150,"authors":32155,"heroImage":31468,"date":32156,"category":8140,"tags":32157},"Automate to accelerate: What you need to know about test and release automation",[17684],"2017-12-08",[564,964,2097,3721],{"slug":32159,"featured":6,"template":736},"automate-to-accelerate-webcast-recap","content:en-us:blog:automate-to-accelerate-webcast-recap.yml","Automate To Accelerate Webcast Recap","en-us/blog/automate-to-accelerate-webcast-recap.yml","en-us/blog/automate-to-accelerate-webcast-recap",{"_path":32165,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32166,"content":32171,"config":32175,"_id":32177,"_type":16,"title":32178,"_source":17,"_file":32179,"_stem":32180,"_extension":20},"/en-us/blog/illustrations-and-icons-on-gitlab-com",{"title":32167,"description":32168,"ogTitle":32167,"ogDescription":32168,"noIndex":6,"ogImage":18220,"ogUrl":32169,"ogSiteName":995,"ogType":996,"canonicalUrls":32169,"schema":32170},"Inside GitLab: Illustrations and icons on GitLab.com","Learn how our UX team creates icons and illustrations.","https://about.gitlab.com/blog/illustrations-and-icons-on-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside GitLab: Illustrations and icons on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hazel Yang\"}],\n        \"datePublished\": \"2017-12-04\",\n      }",{"title":32167,"description":32168,"authors":32172,"heroImage":18220,"date":32173,"category":858,"tags":32174},[31670],"2017-12-04",[2702,2703,1569],{"slug":32176,"featured":6,"template":736},"illustrations-and-icons-on-gitlab-com","content:en-us:blog:illustrations-and-icons-on-gitlab-com.yml","Illustrations And Icons On Gitlab Com","en-us/blog/illustrations-and-icons-on-gitlab-com.yml","en-us/blog/illustrations-and-icons-on-gitlab-com",{"_path":32182,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32183,"content":32188,"config":32192,"_id":32194,"_type":16,"title":32195,"_source":17,"_file":32196,"_stem":32197,"_extension":20},"/en-us/blog/support-engineering-at-gitlab",{"title":32184,"description":32185,"ogTitle":32184,"ogDescription":32185,"noIndex":6,"ogImage":28991,"ogUrl":32186,"ogSiteName":995,"ogType":996,"canonicalUrls":32186,"schema":32187},"At your service: Support Engineering at GitLab","A new series from GitLab Support Engineering about what we do and how we do it. All remotely of course!","https://about.gitlab.com/blog/support-engineering-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"At your service: Support Engineering at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Lee Matos\"}],\n        \"datePublished\": \"2017-12-01\",\n      }",{"title":32184,"description":32185,"authors":32189,"heroImage":28991,"date":32190,"category":858,"tags":32191},[18259],"2017-12-01",[1569],{"slug":32193,"featured":6,"template":736},"support-engineering-at-gitlab","content:en-us:blog:support-engineering-at-gitlab.yml","Support Engineering At Gitlab","en-us/blog/support-engineering-at-gitlab.yml","en-us/blog/support-engineering-at-gitlab",{"_path":32199,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32200,"content":32206,"config":32210,"_id":32212,"_type":16,"title":32213,"_source":17,"_file":32214,"_stem":32215,"_extension":20},"/en-us/blog/containers-kubernetes-basics",{"title":32201,"description":32202,"ogTitle":32201,"ogDescription":32202,"noIndex":6,"ogImage":32203,"ogUrl":32204,"ogSiteName":995,"ogType":996,"canonicalUrls":32204,"schema":32205},"Kubernetes & containers, and where cloud native fits in – the basics","Brush up on your understanding of these concepts key to modern development.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671296/Blog/Hero%20Images/containers-kubernetes-basics.jpg","https://about.gitlab.com/blog/containers-kubernetes-basics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Kubernetes & containers, and where cloud native fits in – the basics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-11-30\",\n      }",{"title":32201,"description":32202,"authors":32207,"heroImage":32203,"date":32208,"category":858,"tags":32209},[17684],"2017-11-30",[2908,582],{"slug":32211,"featured":6,"template":736},"containers-kubernetes-basics","content:en-us:blog:containers-kubernetes-basics.yml","Containers Kubernetes Basics","en-us/blog/containers-kubernetes-basics.yml","en-us/blog/containers-kubernetes-basics",{"_path":32217,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32218,"content":32223,"config":32228,"_id":32230,"_type":16,"title":32231,"_source":17,"_file":32232,"_stem":32233,"_extension":20},"/en-us/blog/go-tools-and-gitlab-how-to-do-continuous-integration-like-a-boss",{"title":32219,"description":32220,"ogTitle":32219,"ogDescription":32220,"noIndex":6,"ogImage":11892,"ogUrl":32221,"ogSiteName":995,"ogType":996,"canonicalUrls":32221,"schema":32222},"Go tools and GitLab: How to do continuous integration like a boss","How the team at Pantomath makes their lives easier with GitLab CI.","https://about.gitlab.com/blog/go-tools-and-gitlab-how-to-do-continuous-integration-like-a-boss","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Go tools and GitLab: How to do continuous integration like a boss\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Julien Andrieux\"}],\n        \"datePublished\": \"2017-11-27\",\n      }",{"title":32219,"description":32220,"authors":32224,"heroImage":11892,"date":32226,"category":858,"tags":32227},[32225],"Julien Andrieux","2017-11-27",[110,4665,772],{"slug":32229,"featured":6,"template":736},"go-tools-and-gitlab-how-to-do-continuous-integration-like-a-boss","content:en-us:blog:go-tools-and-gitlab-how-to-do-continuous-integration-like-a-boss.yml","Go Tools And Gitlab How To Do Continuous Integration Like A Boss","en-us/blog/go-tools-and-gitlab-how-to-do-continuous-integration-like-a-boss.yml","en-us/blog/go-tools-and-gitlab-how-to-do-continuous-integration-like-a-boss",{"_path":32235,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32236,"content":32242,"config":32247,"_id":32249,"_type":16,"title":32250,"_source":17,"_file":32251,"_stem":32252,"_extension":20},"/en-us/blog/autoscale-ci-runners",{"title":32237,"description":32238,"ogTitle":32237,"ogDescription":32238,"noIndex":6,"ogImage":32239,"ogUrl":32240,"ogSiteName":995,"ogType":996,"canonicalUrls":32240,"schema":32241},"Autoscale GitLab CI/CD runners and save 90% on EC2 costs","Guest author Max Woolf shows how his team makes big savings with an autoscaling cluster of GitLab CI/CD runners.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680305/Blog/Hero%20Images/autoscale-gitlab-ci-runners.jpg","https://about.gitlab.com/blog/autoscale-ci-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Autoscale GitLab CI/CD runners and save 90% on EC2 costs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Max Woolf\"}],\n        \"datePublished\": \"2017-11-23\",\n      }",{"title":32237,"description":32238,"authors":32243,"heroImage":32239,"date":32245,"category":858,"tags":32246},[32244],"Max Woolf","2017-11-23",[4665,110],{"slug":32248,"featured":6,"template":736},"autoscale-ci-runners","content:en-us:blog:autoscale-ci-runners.yml","Autoscale Ci Runners","en-us/blog/autoscale-ci-runners.yml","en-us/blog/autoscale-ci-runners",{"_path":32254,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32255,"content":32260,"config":32264,"_id":32266,"_type":16,"title":32267,"_source":17,"_file":32268,"_stem":32269,"_extension":20},"/en-us/blog/gitlab-issue-bash-december-2017",{"title":32256,"description":32257,"ogTitle":32256,"ogDescription":32257,"noIndex":6,"ogImage":31287,"ogUrl":32258,"ogSiteName":995,"ogType":996,"canonicalUrls":32258,"schema":32259},"Join GitLab's December Issue Bash","Join us December 2017 and help us to squash some of the open issues in the GitLab Community Edition tracker!","https://about.gitlab.com/blog/gitlab-issue-bash-december-2017","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join GitLab's December Issue Bash\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Fletcher\"}],\n        \"datePublished\": \"2017-11-20\",\n      }",{"title":32256,"description":32257,"authors":32261,"heroImage":31287,"date":32262,"category":301,"tags":32263},[31292],"2017-11-20",[279,269,1265],{"slug":32265,"featured":6,"template":736},"gitlab-issue-bash-december-2017","content:en-us:blog:gitlab-issue-bash-december-2017.yml","Gitlab Issue Bash December 2017","en-us/blog/gitlab-issue-bash-december-2017.yml","en-us/blog/gitlab-issue-bash-december-2017",{"_path":32271,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32272,"content":32278,"config":32282,"_id":32284,"_type":16,"title":32285,"_source":17,"_file":32286,"_stem":32287,"_extension":20},"/en-us/blog/working-with-yaml-gitlab-ci-android",{"title":32273,"description":32274,"ogTitle":32273,"ogDescription":32274,"noIndex":6,"ogImage":32275,"ogUrl":32276,"ogSiteName":995,"ogType":996,"canonicalUrls":32276,"schema":32277},"Working with YAML in GitLab CI from the Android perspective","Guest author Renato Stanic shares a sample YAML configuration for Android projects, which helps his team with faster, more iterative development.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665524/Blog/Hero%20Images/yaml-gitlab-ci-android.png","https://about.gitlab.com/blog/working-with-yaml-gitlab-ci-android","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Working with YAML in GitLab CI from the Android perspective\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Renato Stanic\"}],\n        \"datePublished\": \"2017-11-20\",\n      }",{"title":32273,"description":32274,"authors":32279,"heroImage":32275,"date":32262,"category":858,"tags":32281},[32280],"Renato Stanic",[110,4665],{"slug":32283,"featured":6,"template":736},"working-with-yaml-gitlab-ci-android","content:en-us:blog:working-with-yaml-gitlab-ci-android.yml","Working With Yaml Gitlab Ci Android","en-us/blog/working-with-yaml-gitlab-ci-android.yml","en-us/blog/working-with-yaml-gitlab-ci-android",{"_path":32289,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32290,"content":32295,"config":32300,"_id":32302,"_type":16,"title":32303,"_source":17,"_file":32304,"_stem":32305,"_extension":20},"/en-us/blog/2018-global-developer-survey",{"title":32291,"description":32292,"ogTitle":32291,"ogDescription":32292,"noIndex":6,"ogImage":11301,"ogUrl":32293,"ogSiteName":995,"ogType":996,"canonicalUrls":32293,"schema":32294},"2018 Developer Survey: Uncovering needs & preferences","Take the 2018 Global Developer Survey and be entered to win a Nintendo Switch and GitLab swag.","https://about.gitlab.com/blog/2018-global-developer-survey","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2018 Global Developer Survey aims to uncover developer needs and preferences at work\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2017-11-17\",\n      }",{"title":32296,"description":32292,"authors":32297,"heroImage":11301,"date":32298,"category":8140,"tags":32299},"2018 Global Developer Survey aims to uncover developer needs and preferences at work",[27004],"2017-11-17",[7788],{"slug":32301,"featured":6,"template":736},"2018-global-developer-survey","content:en-us:blog:2018-global-developer-survey.yml","2018 Global Developer Survey","en-us/blog/2018-global-developer-survey.yml","en-us/blog/2018-global-developer-survey",{"_path":32307,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32308,"content":32314,"config":32318,"_id":32320,"_type":16,"title":32321,"_source":17,"_file":32322,"_stem":32323,"_extension":20},"/en-us/blog/humangeo-switches-jenkins-gitlab-ci",{"title":32309,"description":32310,"ogTitle":32309,"ogDescription":32310,"noIndex":6,"ogImage":32311,"ogUrl":32312,"ogSiteName":995,"ogType":996,"canonicalUrls":32312,"schema":32313},"HumanGeo switched from Jenkins to GitLab and cut costs by 1/3","Management overhead was bogging down the team at HumanGeo. GitLab freed up more than just cash.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680315/Blog/Hero%20Images/humangeo-switches-jenkins-to-gitlab.jpg","https://about.gitlab.com/blog/humangeo-switches-jenkins-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"HumanGeo switched from Jenkins to GitLab and cut costs by 1/3\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"William Chia\"}],\n        \"datePublished\": \"2017-11-14\",\n      }",{"title":32309,"description":32310,"authors":32315,"heroImage":32311,"date":32316,"category":858,"tags":32317},[15730],"2017-11-14",[3075,2097,4665],{"slug":32319,"featured":6,"template":736},"humangeo-switches-jenkins-gitlab-ci","content:en-us:blog:humangeo-switches-jenkins-gitlab-ci.yml","Humangeo Switches Jenkins Gitlab Ci","en-us/blog/humangeo-switches-jenkins-gitlab-ci.yml","en-us/blog/humangeo-switches-jenkins-gitlab-ci",{"_path":32325,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32326,"content":32332,"config":32336,"_id":32338,"_type":16,"title":32339,"_source":17,"_file":32340,"_stem":32341,"_extension":20},"/en-us/blog/gitlab-vue-one-year-later",{"title":32327,"description":32328,"ogTitle":32327,"ogDescription":32328,"noIndex":6,"ogImage":32329,"ogUrl":32330,"ogSiteName":995,"ogType":996,"canonicalUrls":32330,"schema":32331},"How we do Vue: one year later","How we, at GitLab, write VueJS, one year later.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680321/Blog/Hero%20Images/vue-title.jpg","https://about.gitlab.com/blog/gitlab-vue-one-year-later","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we do Vue: one year later\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2017-11-09\",\n      }",{"title":32327,"description":32328,"authors":32333,"heroImage":32329,"date":32334,"category":858,"tags":32335},[29783],"2017-11-09",[10121,1569],{"slug":32337,"featured":6,"template":736},"gitlab-vue-one-year-later","content:en-us:blog:gitlab-vue-one-year-later.yml","Gitlab Vue One Year Later","en-us/blog/gitlab-vue-one-year-later.yml","en-us/blog/gitlab-vue-one-year-later",{"_path":32343,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32344,"content":32350,"config":32354,"_id":32356,"_type":16,"title":32357,"_source":17,"_file":32358,"_stem":32359,"_extension":20},"/en-us/blog/tasktop-webcast-recap",{"title":32345,"description":32346,"ogTitle":32345,"ogDescription":32346,"noIndex":6,"ogImage":32347,"ogUrl":32348,"ogSiteName":995,"ogType":996,"canonicalUrls":32348,"schema":32349},"Cross-functional ≠ dysfunctional","Don't let process hold you back – here are our best practices for working cross-functionally.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671305/Blog/Hero%20Images/tasktop-integration-cover.png","https://about.gitlab.com/blog/tasktop-webcast-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Cross-functional ≠ dysfunctional\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-11-08\",\n      }",{"title":32345,"description":32346,"authors":32351,"heroImage":32347,"date":32352,"category":6121,"tags":32353},[17684],"2017-11-08",[3721,233,2815,1335],{"slug":32355,"featured":6,"template":736},"tasktop-webcast-recap","content:en-us:blog:tasktop-webcast-recap.yml","Tasktop Webcast Recap","en-us/blog/tasktop-webcast-recap.yml","en-us/blog/tasktop-webcast-recap",{"_path":32361,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32362,"content":32368,"config":32373,"_id":32375,"_type":16,"title":32376,"_source":17,"_file":32377,"_stem":32378,"_extension":20},"/en-us/blog/automating-boring-git-operations-gitlab-ci",{"title":32363,"description":32364,"ogTitle":32363,"ogDescription":32364,"noIndex":6,"ogImage":32365,"ogUrl":32366,"ogSiteName":995,"ogType":996,"canonicalUrls":32366,"schema":32367},"GitBot – automating boring Git operations with CI","Guest author Kristian Larsson shares how he automates some common Git operations, like rebase, using GitLab CI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672374/Blog/Hero%20Images/gitbot-automate-git-operations.jpg","https://about.gitlab.com/blog/automating-boring-git-operations-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitBot – automating boring Git operations with CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kristian Larsson\"}],\n        \"datePublished\": \"2017-11-02\",\n      }",{"title":32363,"description":32364,"authors":32369,"heroImage":32365,"date":32371,"category":858,"tags":32372},[32370],"Kristian Larsson","2017-11-02",[110,4665,1195],{"slug":32374,"featured":6,"template":736},"automating-boring-git-operations-gitlab-ci","content:en-us:blog:automating-boring-git-operations-gitlab-ci.yml","Automating Boring Git Operations Gitlab Ci","en-us/blog/automating-boring-git-operations-gitlab-ci.yml","en-us/blog/automating-boring-git-operations-gitlab-ci",{"_path":32380,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32381,"content":32386,"config":32390,"_id":32392,"_type":16,"title":32393,"_source":17,"_file":32394,"_stem":32395,"_extension":20},"/en-us/blog/gitlab-switches-to-dco-license",{"title":32382,"description":32383,"ogTitle":32382,"ogDescription":32383,"noIndex":6,"ogImage":27918,"ogUrl":32384,"ogSiteName":995,"ogType":996,"canonicalUrls":32384,"schema":32385},"We're switching to a DCO for source code contributions","We want to make it even easier for everyone to contribute, by doing away with our Contributor License Agreement in favor of the Developer's Certificate of Origin.","https://about.gitlab.com/blog/gitlab-switches-to-dco-license","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're switching to a DCO for source code contributions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jamie Hurewitz\"}],\n        \"datePublished\": \"2017-11-01\",\n      }",{"title":32382,"description":32383,"authors":32387,"heroImage":27918,"date":32388,"category":301,"tags":32389},[32102],"2017-11-01",[1265,1049,269],{"slug":32391,"featured":6,"template":736},"gitlab-switches-to-dco-license","content:en-us:blog:gitlab-switches-to-dco-license.yml","Gitlab Switches To Dco License","en-us/blog/gitlab-switches-to-dco-license.yml","en-us/blog/gitlab-switches-to-dco-license",{"_path":32397,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32398,"content":32403,"config":32409,"_id":32411,"_type":16,"title":32412,"_source":17,"_file":32413,"_stem":32414,"_extension":20},"/en-us/blog/triage-issues-gitmate",{"title":32399,"description":32400,"ogTitle":32399,"ogDescription":32400,"noIndex":6,"ogImage":27315,"ogUrl":32401,"ogSiteName":995,"ogType":996,"canonicalUrls":32401,"schema":32402},"Triage issues in 7 simple steps","Guest authors Lasse Shuirmann and Sebastian Latacz walk us through how to work through your issue backlog and triage effectively.","https://about.gitlab.com/blog/triage-issues-gitmate","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Triage issues in 7 simple steps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sebastian Latacz\"},{\"@type\":\"Person\",\"name\":\"Lasse Schuirmann\"}],\n        \"datePublished\": \"2017-10-26\",\n      }",{"title":32399,"description":32400,"authors":32404,"heroImage":27315,"date":32407,"category":6121,"tags":32408},[32405,32406],"Sebastian Latacz","Lasse Schuirmann","2017-10-26",[1335,233],{"slug":32410,"featured":6,"template":736},"triage-issues-gitmate","content:en-us:blog:triage-issues-gitmate.yml","Triage Issues Gitmate","en-us/blog/triage-issues-gitmate.yml","en-us/blog/triage-issues-gitmate",{"_path":32416,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32417,"content":32423,"config":32427,"_id":32429,"_type":16,"title":32430,"_source":17,"_file":32431,"_stem":32432,"_extension":20},"/en-us/blog/gitlab-summit-greece-recap",{"title":32418,"description":32419,"ogTitle":32418,"ogDescription":32419,"noIndex":6,"ogImage":32420,"ogUrl":32421,"ogSiteName":995,"ogType":996,"canonicalUrls":32421,"schema":32422},"αντίο (Goodbye) and thanks for a great GitLab summit – Crete edition","That's a wrap! Check out the keynote from our summit in Greece below.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671644/Blog/Hero%20Images/gitlab-summit-crete.jpg","https://about.gitlab.com/blog/gitlab-summit-greece-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"αντίο (Goodbye) and thanks for a great GitLab summit – Crete edition\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2017-10-25\",\n      }",{"title":32418,"description":32419,"authors":32424,"heroImage":32420,"date":32425,"category":301,"tags":32426},[27004],"2017-10-25",[3914,1569],{"slug":32428,"featured":6,"template":736},"gitlab-summit-greece-recap","content:en-us:blog:gitlab-summit-greece-recap.yml","Gitlab Summit Greece Recap","en-us/blog/gitlab-summit-greece-recap.yml","en-us/blog/gitlab-summit-greece-recap",{"_path":32434,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32435,"content":32441,"config":32445,"_id":32447,"_type":16,"title":32448,"_source":17,"_file":32449,"_stem":32450,"_extension":20},"/en-us/blog/watch-the-gitlab-summit-from-your-desk",{"title":32436,"description":32437,"ogTitle":32436,"ogDescription":32437,"noIndex":6,"ogImage":32438,"ogUrl":32439,"ogSiteName":995,"ogType":996,"canonicalUrls":32439,"schema":32440},"We're coming to you live from Crete, at the GitLab Summit!","Read on for all the events you can watch and participate in.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680330/Blog/Hero%20Images/greece-summit-2017.png","https://about.gitlab.com/blog/watch-the-gitlab-summit-from-your-desk","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're coming to you live from Crete, at the GitLab Summit!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-10-17\",\n      }",{"title":32436,"description":32437,"authors":32442,"heroImage":32438,"date":32443,"category":301,"tags":32444},[20500],"2017-10-17",[3914,1569],{"slug":32446,"featured":6,"template":736},"watch-the-gitlab-summit-from-your-desk","content:en-us:blog:watch-the-gitlab-summit-from-your-desk.yml","Watch The Gitlab Summit From Your Desk","en-us/blog/watch-the-gitlab-summit-from-your-desk.yml","en-us/blog/watch-the-gitlab-summit-from-your-desk",{"_path":32452,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32453,"content":32459,"config":32464,"_id":32466,"_type":16,"title":32467,"_source":17,"_file":32468,"_stem":32469,"_extension":20},"/en-us/blog/how-to-spot-development-issues",{"title":32454,"description":32455,"ogTitle":32454,"ogDescription":32455,"noIndex":6,"ogImage":32456,"ogUrl":32457,"ogSiteName":995,"ogType":996,"canonicalUrls":32457,"schema":32458},"How to spot development issues and fix them fast","Guest author Patrick Foster shares how to get things back on track when a development project starts to go awry.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680343/Blog/Hero%20Images/spot-dev-issues.jpg","https://about.gitlab.com/blog/how-to-spot-development-issues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to spot development issues and fix them fast\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patrick Foster\"}],\n        \"datePublished\": \"2017-10-16\",\n      }",{"title":32454,"description":32455,"authors":32460,"heroImage":32456,"date":32462,"category":6121,"tags":32463},[32461],"Patrick Foster","2017-10-16",[1335],{"slug":32465,"featured":6,"template":736},"how-to-spot-development-issues","content:en-us:blog:how-to-spot-development-issues.yml","How To Spot Development Issues","en-us/blog/how-to-spot-development-issues.yml","en-us/blog/how-to-spot-development-issues",{"_path":32471,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32472,"content":32477,"config":32483,"_id":32485,"_type":16,"title":32486,"_source":17,"_file":32487,"_stem":32488,"_extension":20},"/en-us/blog/collaborative-course-environment-gitlab-grav",{"title":32473,"description":32474,"ogTitle":32473,"ogDescription":32474,"noIndex":6,"ogImage":26712,"ogUrl":32475,"ogSiteName":995,"ogType":996,"canonicalUrls":32475,"schema":32476},"Creating open course environments with GitLab and Grav CMS","Guest author Paul Hibbitts shares how he combines GitLab with the flat-file CMS Grav to provide an open, collaborative and flexible environment that partners with his institution's LMS.","https://about.gitlab.com/blog/collaborative-course-environment-gitlab-grav","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Enabling an open and collaborative course environment with GitLab and the Grav CMS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Paul Hibbitts\"}],\n        \"datePublished\": \"2017-10-12\",\n      }",{"title":32478,"description":32474,"authors":32479,"heroImage":26712,"date":32481,"category":1388,"tags":32482},"Enabling an open and collaborative course environment with GitLab and the Grav CMS",[32480],"Paul Hibbitts","2017-10-12",[1265,2815],{"slug":32484,"featured":6,"template":736},"collaborative-course-environment-gitlab-grav","content:en-us:blog:collaborative-course-environment-gitlab-grav.yml","Collaborative Course Environment Gitlab Grav","en-us/blog/collaborative-course-environment-gitlab-grav.yml","en-us/blog/collaborative-course-environment-gitlab-grav",{"_path":32490,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32491,"content":32496,"config":32500,"_id":32502,"_type":16,"title":32503,"_source":17,"_file":32504,"_stem":32505,"_extension":20},"/en-us/blog/from-dev-to-devops",{"title":32492,"description":32493,"ogTitle":32492,"ogDescription":32493,"noIndex":6,"ogImage":24966,"ogUrl":32494,"ogSiteName":995,"ogType":996,"canonicalUrls":32494,"schema":32495},"Complete DevOps is DevOps reimagined. Here's what that looks like","It's all systems go on Complete DevOps! We've re-imagined the scope of DevOps to bring development and operations work into a single application.","https://about.gitlab.com/blog/from-dev-to-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Complete DevOps is DevOps reimagined. Here's what that looks like\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2017-10-11\",\n      }",{"title":32492,"description":32493,"authors":32497,"heroImage":24966,"date":32498,"category":301,"tags":32499},[3701],"2017-10-11",[1569,564,1049],{"slug":32501,"featured":6,"template":736},"from-dev-to-devops","content:en-us:blog:from-dev-to-devops.yml","From Dev To Devops","en-us/blog/from-dev-to-devops.yml","en-us/blog/from-dev-to-devops",{"_path":32507,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32508,"content":32513,"config":32518,"_id":32520,"_type":16,"title":32521,"_source":17,"_file":32522,"_stem":32523,"_extension":20},"/en-us/blog/gitlab-raises-20-million-to-complete-devops",{"title":32509,"description":32510,"ogTitle":32509,"ogDescription":32510,"noIndex":6,"ogImage":31468,"ogUrl":32511,"ogSiteName":995,"ogType":996,"canonicalUrls":32511,"schema":32512},"GV leads $20M series C funding for GitLab to complete DevOps","We went live today with The Changelog’s Adam Stacoviak and Jerod Santo to announce $20M in new funding, a new board member, and our vision for Complete DevOps.","https://about.gitlab.com/blog/gitlab-raises-20-million-to-complete-devops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing $20 million in Series C round funding led by GV to complete DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2017-10-09\",\n      }",{"title":32514,"description":32510,"authors":32515,"heroImage":31468,"date":32516,"category":301,"tags":32517},"Announcing $20 million in Series C round funding led by GV to complete DevOps",[1000],"2017-10-09",[1049,1569,10011],{"slug":32519,"featured":6,"template":736},"gitlab-raises-20-million-to-complete-devops","content:en-us:blog:gitlab-raises-20-million-to-complete-devops.yml","Gitlab Raises 20 Million To Complete Devops","en-us/blog/gitlab-raises-20-million-to-complete-devops.yml","en-us/blog/gitlab-raises-20-million-to-complete-devops",{"_path":32525,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32526,"content":32531,"config":32535,"_id":32537,"_type":16,"title":32538,"_source":17,"_file":32539,"_stem":32540,"_extension":20},"/en-us/blog/devops-strategy",{"title":32527,"description":32528,"ogTitle":32527,"ogDescription":32528,"noIndex":6,"ogImage":31593,"ogUrl":32529,"ogSiteName":995,"ogType":996,"canonicalUrls":32529,"schema":32530},"Beyond CI/CD: GitLab's DevOps vision","How we're building GitLab into the complete DevOps toolchain.","https://about.gitlab.com/blog/devops-strategy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Beyond CI/CD: GitLab's DevOps vision\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Pundsack\"}],\n        \"datePublished\": \"2017-10-04\",\n      }",{"title":32527,"description":32528,"authors":32532,"heroImage":31593,"date":32533,"category":301,"tags":32534},[24243],"2017-10-04",[1569,564,2097],{"slug":32536,"featured":6,"template":736},"devops-strategy","content:en-us:blog:devops-strategy.yml","Devops Strategy","en-us/blog/devops-strategy.yml","en-us/blog/devops-strategy",{"_path":32542,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32543,"content":32548,"config":32552,"_id":32554,"_type":16,"title":32555,"_source":17,"_file":32556,"_stem":32557,"_extension":20},"/en-us/blog/scaling-the-gitlab-database",{"title":32544,"description":32545,"ogTitle":32544,"ogDescription":32545,"noIndex":6,"ogImage":25301,"ogUrl":32546,"ogSiteName":995,"ogType":996,"canonicalUrls":32546,"schema":32547},"Scaling the GitLab database","An in-depth look at the challenges faced when scaling the GitLab database and the solutions we applied to help solve the problems with our database setup.","https://about.gitlab.com/blog/scaling-the-gitlab-database","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Scaling the GitLab database\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yorick Peterse\"}],\n        \"datePublished\": \"2017-10-02\",\n      }",{"title":32544,"description":32545,"authors":32549,"heroImage":25301,"date":32550,"category":858,"tags":32551},[25959],"2017-10-02",[1569,6376],{"slug":32553,"featured":6,"template":736},"scaling-the-gitlab-database","content:en-us:blog:scaling-the-gitlab-database.yml","Scaling The Gitlab Database","en-us/blog/scaling-the-gitlab-database.yml","en-us/blog/scaling-the-gitlab-database",{"_path":32559,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32560,"content":32566,"config":32570,"_id":32572,"_type":16,"title":32573,"_source":17,"_file":32574,"_stem":32575,"_extension":20},"/en-us/blog/gitlab-leader-continuous-integration-forrester-wave",{"title":32561,"description":32562,"ogTitle":32561,"ogDescription":32562,"noIndex":6,"ogImage":32563,"ogUrl":32564,"ogSiteName":995,"ogType":996,"canonicalUrls":32564,"schema":32565},"GitLab Continuous Integration named a Leader in the Forrester Wave™","GitLab cited as a Leader in The Forrester Wave™&#58; Continuous Integration Tools, Q3 2017 report released today.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683243/Blog/Hero%20Images/gitlab-ci-wave-cover.png","https://about.gitlab.com/blog/gitlab-leader-continuous-integration-forrester-wave","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Continuous Integration named a Leader in the Forrester Wave™\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2017-09-27\",\n      }",{"title":32561,"description":32562,"authors":32567,"heroImage":32563,"date":32568,"category":301,"tags":32569},[1000],"2017-09-27",[1049,2097],{"slug":32571,"featured":6,"template":736},"gitlab-leader-continuous-integration-forrester-wave","content:en-us:blog:gitlab-leader-continuous-integration-forrester-wave.yml","Gitlab Leader Continuous Integration Forrester Wave","en-us/blog/gitlab-leader-continuous-integration-forrester-wave.yml","en-us/blog/gitlab-leader-continuous-integration-forrester-wave",{"_path":32577,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32578,"content":32583,"config":32589,"_id":32591,"_type":16,"title":32592,"_source":17,"_file":32593,"_stem":32594,"_extension":20},"/en-us/blog/how-to-create-a-ci-cd-pipeline-with-auto-deploy-to-kubernetes-using-gitlab",{"title":32579,"description":32580,"ogTitle":32579,"ogDescription":32580,"noIndex":6,"ogImage":6170,"ogUrl":32581,"ogSiteName":995,"ogType":996,"canonicalUrls":32581,"schema":32582},"CI/CD pipeline: GitLab & Helm for Kubernetes Auto Deploy","One user walks through how he tried GitLab caching and split the job into multiple steps to get better feedback.","https://about.gitlab.com/blog/how-to-create-a-ci-cd-pipeline-with-auto-deploy-to-kubernetes-using-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to create a CI/CD pipeline with Auto Deploy to Kubernetes using GitLab and Helm\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sergey Nuzhdin\"}],\n        \"datePublished\": \"2017-09-21\",\n      }",{"title":32584,"description":32580,"authors":32585,"heroImage":6170,"date":32587,"category":858,"tags":32588},"How to create a CI/CD pipeline with Auto Deploy to Kubernetes using GitLab and Helm",[32586],"Sergey Nuzhdin","2017-09-21",[2097,2098,772,4665],{"slug":32590,"featured":6,"template":736},"how-to-create-a-ci-cd-pipeline-with-auto-deploy-to-kubernetes-using-gitlab","content:en-us:blog:how-to-create-a-ci-cd-pipeline-with-auto-deploy-to-kubernetes-using-gitlab.yml","How To Create A Ci Cd Pipeline With Auto Deploy To Kubernetes Using Gitlab","en-us/blog/how-to-create-a-ci-cd-pipeline-with-auto-deploy-to-kubernetes-using-gitlab.yml","en-us/blog/how-to-create-a-ci-cd-pipeline-with-auto-deploy-to-kubernetes-using-gitlab",{"_path":32596,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32597,"content":32603,"config":32609,"_id":32611,"_type":16,"title":32612,"_source":17,"_file":32613,"_stem":32614,"_extension":20},"/en-us/blog/pick-your-brain-interview-kwan-lee",{"title":32598,"description":32599,"ogTitle":32598,"ogDescription":32599,"noIndex":6,"ogImage":32600,"ogUrl":32601,"ogSiteName":995,"ogType":996,"canonicalUrls":32601,"schema":32602},"GitLab CEO interview: Building the best distributed Dev team","FineTune CTO Kwan Lee sits down for a 'pick your brain' meeting with GitLab CEO Sid Sijbrandij.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680355/Blog/Hero%20Images/pyb-kwan-lee.jpg","https://about.gitlab.com/blog/pick-your-brain-interview-kwan-lee","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to become the best distributed software development team? My interview with GitLab's CEO\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kwan Lee\"}],\n        \"datePublished\": \"2017-09-15\",\n      }",{"title":32604,"description":32599,"authors":32605,"heroImage":32600,"date":32607,"category":6121,"tags":32608},"How to become the best distributed software development team? My interview with GitLab's CEO",[32606],"Kwan Lee","2017-09-15",[582,3914,2815],{"slug":32610,"featured":6,"template":736},"pick-your-brain-interview-kwan-lee","content:en-us:blog:pick-your-brain-interview-kwan-lee.yml","Pick Your Brain Interview Kwan Lee","en-us/blog/pick-your-brain-interview-kwan-lee.yml","en-us/blog/pick-your-brain-interview-kwan-lee",{"_path":32616,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32617,"content":32622,"config":32625,"_id":32627,"_type":16,"title":32628,"_source":17,"_file":32629,"_stem":32630,"_extension":20},"/en-us/blog/tasktop-gitlab-integration",{"title":32618,"description":32619,"ogTitle":32618,"ogDescription":32619,"noIndex":6,"ogImage":32347,"ogUrl":32620,"ogSiteName":995,"ogType":996,"canonicalUrls":32620,"schema":32621},"One step closer to DevOps success with GitLab + Tasktop","Good news for enterprise devs: flow GitLab Issues into your Agile tool for greater visibility and collaboration.","https://about.gitlab.com/blog/tasktop-gitlab-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"One step closer to DevOps success with GitLab + Tasktop\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-09-15\",\n      }",{"title":32618,"description":32619,"authors":32623,"heroImage":32347,"date":32607,"category":301,"tags":32624},[17684],[233,564],{"slug":32626,"featured":6,"template":736},"tasktop-gitlab-integration","content:en-us:blog:tasktop-gitlab-integration.yml","Tasktop Gitlab Integration","en-us/blog/tasktop-gitlab-integration.yml","en-us/blog/tasktop-gitlab-integration",{"_path":32632,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32633,"content":32638,"config":32642,"_id":32644,"_type":16,"title":32645,"_source":17,"_file":32646,"_stem":32647,"_extension":20},"/en-us/blog/unveiling-gitlabs-new-navigation",{"title":32634,"description":32635,"ogTitle":32634,"ogDescription":32635,"noIndex":6,"ogImage":26363,"ogUrl":32636,"ogSiteName":995,"ogType":996,"canonicalUrls":32636,"schema":32637},"Unveiling GitLab's new navigation","A whole new way to navigate.","https://about.gitlab.com/blog/unveiling-gitlabs-new-navigation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unveiling GitLab's new navigation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarrah Vesselov\"}],\n        \"datePublished\": \"2017-09-13\",\n      }",{"title":32634,"description":32635,"authors":32639,"heroImage":26363,"date":32640,"category":301,"tags":32641},[29453],"2017-09-13",[2703,1569],{"slug":32643,"featured":6,"template":736},"unveiling-gitlabs-new-navigation","content:en-us:blog:unveiling-gitlabs-new-navigation.yml","Unveiling Gitlabs New Navigation","en-us/blog/unveiling-gitlabs-new-navigation.yml","en-us/blog/unveiling-gitlabs-new-navigation",{"_path":32649,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32650,"content":32656,"config":32661,"_id":32663,"_type":16,"title":32664,"_source":17,"_file":32665,"_stem":32666,"_extension":20},"/en-us/blog/vuejs-app-gitlab",{"title":32651,"description":32652,"ogTitle":32651,"ogDescription":32652,"noIndex":6,"ogImage":32653,"ogUrl":32654,"ogSiteName":995,"ogType":996,"canonicalUrls":32654,"schema":32655},"How to use GitLab CI/CD for Vue.js","Learn how to get the most out of GitLab CI/CD with this guide.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680363/Blog/Hero%20Images/build-test-deploy-vue.jpg","https://about.gitlab.com/blog/vuejs-app-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab CI/CD for Vue.js\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Simon Tarchichi\"}],\n        \"datePublished\": \"2017-09-12\",\n      }",{"title":32651,"description":32652,"authors":32657,"heroImage":32653,"date":32659,"category":858,"tags":32660},[32658],"Simon Tarchichi","2017-09-12",[110,4665],{"slug":32662,"featured":6,"template":736},"vuejs-app-gitlab","content:en-us:blog:vuejs-app-gitlab.yml","Vuejs App Gitlab","en-us/blog/vuejs-app-gitlab.yml","en-us/blog/vuejs-app-gitlab",{"_path":32668,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32669,"content":32675,"config":32680,"_id":32682,"_type":16,"title":32683,"_source":17,"_file":32684,"_stem":32685,"_extension":20},"/en-us/blog/what-is-a-vp-of-scaling",{"title":32670,"description":32671,"ogTitle":32670,"ogDescription":32671,"noIndex":6,"ogImage":32672,"ogUrl":32673,"ogSiteName":995,"ogType":996,"canonicalUrls":32673,"schema":32674},"VP of Scaling: What it is and how it works at GitLab","At GitLab we introduced the role of VP of Scaling early on. But what does that role mean and how has it worked at GitLab?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680369/Blog/Hero%20Images/vp-of-scaling.jpg","https://about.gitlab.com/blog/what-is-a-vp-of-scaling","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"VP of Scaling: What it is and how it works at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ernst van Nierop\"}],\n        \"datePublished\": \"2017-09-08\",\n      }",{"title":32670,"description":32671,"authors":32676,"heroImage":32672,"date":32678,"category":301,"tags":32679},[32677],"Ernst van Nierop","2017-09-08",[1569,6980],{"slug":32681,"featured":6,"template":736},"what-is-a-vp-of-scaling","content:en-us:blog:what-is-a-vp-of-scaling.yml","What Is A Vp Of Scaling","en-us/blog/what-is-a-vp-of-scaling.yml","en-us/blog/what-is-a-vp-of-scaling",{"_path":32687,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32688,"content":32694,"config":32698,"_id":32700,"_type":16,"title":32701,"_source":17,"_file":32702,"_stem":32703,"_extension":20},"/en-us/blog/gitlab-fan-profile",{"title":32689,"description":32690,"ogTitle":32689,"ogDescription":32690,"noIndex":6,"ogImage":32691,"ogUrl":32692,"ogSiteName":995,"ogType":996,"canonicalUrls":32692,"schema":32693},"Today is GitLab Fan Day","Join us in celebrating our most mysterious evangelist, GitLab Fan.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671316/Blog/Hero%20Images/gitlab-fan-day.png","https://about.gitlab.com/blog/gitlab-fan-profile","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Today is GitLab Fan Day\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-09-07\",\n      }",{"title":32689,"description":32690,"authors":32695,"heroImage":32691,"date":32696,"category":1388,"tags":32697},[17684],"2017-09-07",[269,1265],{"slug":32699,"featured":6,"template":736},"gitlab-fan-profile","content:en-us:blog:gitlab-fan-profile.yml","Gitlab Fan Profile","en-us/blog/gitlab-fan-profile.yml","en-us/blog/gitlab-fan-profile",{"_path":32705,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32706,"content":32712,"config":32716,"_id":32718,"_type":16,"title":32719,"_source":17,"_file":32720,"_stem":32721,"_extension":20},"/en-us/blog/how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci",{"title":32707,"description":32708,"ogTitle":32707,"ogDescription":32708,"noIndex":6,"ogImage":32709,"ogUrl":32710,"ogSiteName":995,"ogType":996,"canonicalUrls":32710,"schema":32711},"How to automatically create a new MR on GitLab with GitLab CI","With this script, every time we push a commit, GitLab CI checks if the branch that commit belongs to already has an open MR and, if not, creates one.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679783/Blog/Hero%20Images/whats-next-for-gitlab-ci.jpg","https://about.gitlab.com/blog/how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to automatically create a new MR on GitLab with GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Riccardo Padovani\"}],\n        \"datePublished\": \"2017-09-05\",\n      }",{"title":32707,"description":32708,"authors":32713,"heroImage":32709,"date":32714,"category":858,"tags":32715},[31995],"2017-09-05",[110,4665,772],{"slug":32717,"featured":6,"template":736},"how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci","content:en-us:blog:how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci.yml","How To Automatically Create A New Mr On Gitlab With Gitlab Ci","en-us/blog/how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci.yml","en-us/blog/how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci",{"_path":32723,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32724,"content":32729,"config":32734,"_id":32736,"_type":16,"title":32737,"_source":17,"_file":32738,"_stem":32739,"_extension":20},"/en-us/blog/old-runners-stop-working",{"title":32725,"description":32726,"ogTitle":32725,"ogDescription":32726,"noIndex":6,"ogImage":11046,"ogUrl":32727,"ogSiteName":995,"ogType":996,"canonicalUrls":32727,"schema":32728},"Breaking change: Support ending for runners Prior to 9.0","With the removal of deprecated CI API v1, runners older than 9.0 will stop working with GitLab 10.0","https://about.gitlab.com/blog/old-runners-stop-working","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Breaking change: Support for Runners prior to 9.0 will be removed imminently\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabio Busatto\"}],\n        \"datePublished\": \"2017-09-04\",\n      }",{"title":32730,"description":32726,"authors":32731,"heroImage":11046,"date":32732,"category":1049,"tags":32733},"Breaking change: Support for Runners prior to 9.0 will be removed imminently",[29206],"2017-09-04",[892,1049,1569],{"slug":32735,"featured":6,"template":736},"old-runners-stop-working","content:en-us:blog:old-runners-stop-working.yml","Old Runners Stop Working","en-us/blog/old-runners-stop-working.yml","en-us/blog/old-runners-stop-working",{"_path":32741,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32742,"content":32747,"config":32751,"_id":32753,"_type":16,"title":32754,"_source":17,"_file":32755,"_stem":32756,"_extension":20},"/en-us/blog/gitlab-com-paid-features",{"title":32743,"description":32744,"ogTitle":32743,"ogDescription":32744,"noIndex":6,"ogImage":11046,"ogUrl":32745,"ogSiteName":995,"ogType":996,"canonicalUrls":32745,"schema":32746},"Introducing exclusive features to GitLab.com Bronze, Silver and Gold plans","New features are coming exclusively to GitLab.com paid plans – find out why and how to upgrade.","https://about.gitlab.com/blog/gitlab-com-paid-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing exclusive features to GitLab.com Bronze, Silver and Gold plans\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2017-09-01\",\n      }",{"title":32743,"description":32744,"authors":32748,"heroImage":11046,"date":32749,"category":301,"tags":32750},[1000],"2017-09-01",[1049,1569],{"slug":32752,"featured":6,"template":736},"gitlab-com-paid-features","content:en-us:blog:gitlab-com-paid-features.yml","Gitlab Com Paid Features","en-us/blog/gitlab-com-paid-features.yml","en-us/blog/gitlab-com-paid-features",{"_path":32758,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32759,"content":32765,"config":32769,"_id":32771,"_type":16,"title":32772,"_source":17,"_file":32773,"_stem":32774,"_extension":20},"/en-us/blog/email-opt-in-policy-announcement",{"title":32760,"description":32761,"ogTitle":32760,"ogDescription":32761,"noIndex":6,"ogImage":32762,"ogUrl":32763,"ogSiteName":995,"ogType":996,"canonicalUrls":32763,"schema":32764},"New email policy: Let us know if you want to hear from us!","We're changing our email policy, and you'll only hear from us if you explicitly opt in.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683564/Blog/Hero%20Images/email-policy-change.jpg","https://about.gitlab.com/blog/email-opt-in-policy-announcement","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"New email policy: Let us know if you want to hear from us!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2017-08-31\",\n      }",{"title":32760,"description":32761,"authors":32766,"heroImage":32762,"date":32767,"category":301,"tags":32768},[1000],"2017-08-31",[1049,1569],{"slug":32770,"featured":6,"template":736},"email-opt-in-policy-announcement","content:en-us:blog:email-opt-in-policy-announcement.yml","Email Opt In Policy Announcement","en-us/blog/email-opt-in-policy-announcement.yml","en-us/blog/email-opt-in-policy-announcement",{"_path":32776,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32777,"content":32783,"config":32788,"_id":32790,"_type":16,"title":32791,"_source":17,"_file":32792,"_stem":32793,"_extension":20},"/en-us/blog/gitlab-and-reproducibility",{"title":32778,"description":32779,"ogTitle":32778,"ogDescription":32779,"noIndex":6,"ogImage":32780,"ogUrl":32781,"ogSiteName":995,"ogType":996,"canonicalUrls":32781,"schema":32782},"How GitLab can help in research reproducibility","NYU reproducibility librarian Vicky Steeves shares why GitLab is her choice for ongoing collaborative research, and how it can help overcome challenges with sharing code in academia.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672928/Blog/Hero%20Images/gitlab-and-reproducibility.jpg","https://about.gitlab.com/blog/gitlab-and-reproducibility","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab can help in research reproducibility\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Vicky Steeves\"}],\n        \"datePublished\": \"2017-08-25\",\n      }",{"title":32778,"description":32779,"authors":32784,"heroImage":32780,"date":32786,"category":1388,"tags":32787},[32785],"Vicky Steeves","2017-08-25",[1265,2815,4665],{"slug":32789,"featured":6,"template":736},"gitlab-and-reproducibility","content:en-us:blog:gitlab-and-reproducibility.yml","Gitlab And Reproducibility","en-us/blog/gitlab-and-reproducibility.yml","en-us/blog/gitlab-and-reproducibility",{"_path":32795,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32796,"content":32802,"config":32806,"_id":32808,"_type":16,"title":32809,"_source":17,"_file":32810,"_stem":32811,"_extension":20},"/en-us/blog/gitlab-zapier-integration",{"title":32797,"description":32798,"ogTitle":32797,"ogDescription":32798,"noIndex":6,"ogImage":32799,"ogUrl":32800,"ogSiteName":995,"ogType":996,"canonicalUrls":32800,"schema":32801},"There's a Zap for that. Automate your workflows with GitLab + Zapier","With Zapier's GitLab integration you can create new Issues directly from within Gmail, get Slack notifications for new Issues and much more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671323/Blog/Hero%20Images/zapier-gitlab-integration.jpg","https://about.gitlab.com/blog/gitlab-zapier-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"There's a Zap for that. Automate your workflows with GitLab + Zapier\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-08-23\",\n      }",{"title":32797,"description":32798,"authors":32803,"heroImage":32799,"date":32804,"category":301,"tags":32805},[17684],"2017-08-23",[233,1335],{"slug":32807,"featured":6,"template":736},"gitlab-zapier-integration","content:en-us:blog:gitlab-zapier-integration.yml","Gitlab Zapier Integration","en-us/blog/gitlab-zapier-integration.yml","en-us/blog/gitlab-zapier-integration",{"_path":32813,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32814,"content":32820,"config":32823,"_id":32825,"_type":16,"title":32826,"_source":17,"_file":32827,"_stem":32828,"_extension":20},"/en-us/blog/issue-boards-anniversary",{"title":32815,"description":32816,"ogTitle":32815,"ogDescription":32816,"noIndex":6,"ogImage":32817,"ogUrl":32818,"ogSiteName":995,"ogType":996,"canonicalUrls":32818,"schema":32819},"The evolution of the GitLab Issue Board","Celebrating one year of flexible, integrated project and release management workflows inside GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680378/Blog/Hero%20Images/issue-boards-anniversary.jpg","https://about.gitlab.com/blog/issue-boards-anniversary","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The evolution of the GitLab Issue Board\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2017-08-23\",\n      }",{"title":32815,"description":32816,"authors":32821,"heroImage":32817,"date":32804,"category":301,"tags":32822},[27004],[730,1335],{"slug":32824,"featured":6,"template":736},"issue-boards-anniversary","content:en-us:blog:issue-boards-anniversary.yml","Issue Boards Anniversary","en-us/blog/issue-boards-anniversary.yml","en-us/blog/issue-boards-anniversary",{"_path":32830,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32831,"content":32836,"config":32841,"_id":32843,"_type":16,"title":32844,"_source":17,"_file":32845,"_stem":32846,"_extension":20},"/en-us/blog/migrating-your-jira-issues-into-gitlab",{"title":32832,"description":32833,"ogTitle":32832,"ogDescription":32833,"noIndex":6,"ogImage":13642,"ogUrl":32834,"ogSiteName":995,"ogType":996,"canonicalUrls":32834,"schema":32835},"Migrating your JIRA issues to GitLab","We're migrating all of our working tools to open-source ones, and moving to GitLab has made all the difference.","https://about.gitlab.com/blog/migrating-your-jira-issues-into-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Migrating your JIRA issues to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abdulkader Benchi\"}],\n        \"datePublished\": \"2017-08-21\",\n      }",{"title":32832,"description":32833,"authors":32837,"heroImage":13642,"date":32839,"category":858,"tags":32840},[32838],"Abdulkader Benchi","2017-08-21",[233,1335],{"slug":32842,"featured":6,"template":736},"migrating-your-jira-issues-into-gitlab","content:en-us:blog:migrating-your-jira-issues-into-gitlab.yml","Migrating Your Jira Issues Into Gitlab","en-us/blog/migrating-your-jira-issues-into-gitlab.yml","en-us/blog/migrating-your-jira-issues-into-gitlab",{"_path":32848,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32849,"content":32855,"config":32860,"_id":32862,"_type":16,"title":32863,"_source":17,"_file":32864,"_stem":32865,"_extension":20},"/en-us/blog/pick-your-brain-interview-jake-stein",{"title":32850,"description":32851,"ogTitle":32850,"ogDescription":32851,"noIndex":6,"ogImage":32852,"ogUrl":32853,"ogSiteName":995,"ogType":996,"canonicalUrls":32853,"schema":32854},"Open source lessons learned: My interview with GitLab’s CEO","Stitch CEO and co-founder Jake Stein sits down for a pick your brain meeting with GitLab CEO Sid Sijbrandij.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680388/Blog/Hero%20Images/pyb-jake-stein.jpg","https://about.gitlab.com/blog/pick-your-brain-interview-jake-stein","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Open source lessons learned: My interview with GitLab’s CEO\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jake Stein\"}],\n        \"datePublished\": \"2017-08-18\",\n      }",{"title":32850,"description":32851,"authors":32856,"heroImage":32852,"date":32858,"category":1388,"tags":32859},[32857],"Jake Stein","2017-08-18",[582,1265],{"slug":32861,"featured":6,"template":736},"pick-your-brain-interview-jake-stein","content:en-us:blog:pick-your-brain-interview-jake-stein.yml","Pick Your Brain Interview Jake Stein","en-us/blog/pick-your-brain-interview-jake-stein.yml","en-us/blog/pick-your-brain-interview-jake-stein",{"_path":32867,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32868,"content":32873,"config":32879,"_id":32881,"_type":16,"title":32882,"_source":17,"_file":32883,"_stem":32884,"_extension":20},"/en-us/blog/devops-at-nova-scotia-province",{"title":32869,"description":32870,"ogTitle":32869,"ogDescription":32870,"noIndex":6,"ogImage":31593,"ogUrl":32871,"ogSiteName":995,"ogType":996,"canonicalUrls":32871,"schema":32872},"How we introduced DevOps at the province of Nova Scotia","The Linux Ops team and one of the Development teams at the Government of Nova Scotia introduced DevOps practices to their workflow – find out how they did it and what benefits they're now enjoying.","https://about.gitlab.com/blog/devops-at-nova-scotia-province","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we introduced DevOps at the province of Nova Scotia\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steven Zinck\"},{\"@type\":\"Person\",\"name\":\"Paul Badcock\"}],\n        \"datePublished\": \"2017-08-14\",\n      }",{"title":32869,"description":32870,"authors":32874,"heroImage":31593,"date":32877,"category":8140,"tags":32878},[32875,32876],"Steven Zinck","Paul Badcock","2017-08-14",[564,1335],{"slug":32880,"featured":6,"template":736},"devops-at-nova-scotia-province","content:en-us:blog:devops-at-nova-scotia-province.yml","Devops At Nova Scotia Province","en-us/blog/devops-at-nova-scotia-province.yml","en-us/blog/devops-at-nova-scotia-province",{"_path":32886,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32887,"content":32893,"config":32898,"_id":32900,"_type":16,"title":32901,"_source":17,"_file":32902,"_stem":32903,"_extension":20},"/en-us/blog/pick-your-brain-interview-cedric-savarese",{"title":32888,"description":32889,"ogTitle":32888,"ogDescription":32889,"noIndex":6,"ogImage":32890,"ogUrl":32891,"ogSiteName":995,"ogType":996,"canonicalUrls":32891,"schema":32892},"Pick Your Brain interview: FormAssembly CEO Cedric Savarese","GitLab CEO Sid Sijbrandij and FormAssembly CEO Cedric Savarese met online to talk remote culture, hiring and scaling.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680396/Blog/Hero%20Images/pick-your-brain-with-cedric-savarese.jpg","https://about.gitlab.com/blog/pick-your-brain-interview-cedric-savarese","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pick Your Brain interview: FormAssembly CEO Cedric Savarese\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ashley McAlpin\"}],\n        \"datePublished\": \"2017-08-11\",\n      }",{"title":32888,"description":32889,"authors":32894,"heroImage":32890,"date":32896,"category":6121,"tags":32897},[32895],"Ashley McAlpin","2017-08-11",[582,3914],{"slug":32899,"featured":6,"template":736},"pick-your-brain-interview-cedric-savarese","content:en-us:blog:pick-your-brain-interview-cedric-savarese.yml","Pick Your Brain Interview Cedric Savarese","en-us/blog/pick-your-brain-interview-cedric-savarese.yml","en-us/blog/pick-your-brain-interview-cedric-savarese",{"_path":32905,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32906,"content":32911,"config":32915,"_id":32917,"_type":16,"title":32918,"_source":17,"_file":32919,"_stem":32920,"_extension":20},"/en-us/blog/how-to-auto-deploy-a-gitlab-dot-com-project-to-google-cloud",{"title":32907,"description":32908,"ogTitle":32907,"ogDescription":32908,"noIndex":6,"ogImage":10849,"ogUrl":32909,"ogSiteName":995,"ogType":996,"canonicalUrls":32909,"schema":32910},"Auto Deploy a GitLab.com project to Google Cloud","How to get started with our auto deploy feature using Google Kubernetes Engine.","https://about.gitlab.com/blog/how-to-auto-deploy-a-gitlab-dot-com-project-to-google-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Auto Deploy a GitLab.com project to Google Cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dmitriy Zaporozhets\"}],\n        \"datePublished\": \"2017-08-10\",\n      }",{"title":32907,"description":32908,"authors":32912,"heroImage":10849,"date":32913,"category":858,"tags":32914},[15363],"2017-08-10",[1730,3346],{"slug":32916,"featured":6,"template":736},"how-to-auto-deploy-a-gitlab-dot-com-project-to-google-cloud","content:en-us:blog:how-to-auto-deploy-a-gitlab-dot-com-project-to-google-cloud.yml","How To Auto Deploy A Gitlab Dot Com Project To Google Cloud","en-us/blog/how-to-auto-deploy-a-gitlab-dot-com-project-to-google-cloud.yml","en-us/blog/how-to-auto-deploy-a-gitlab-dot-com-project-to-google-cloud",{"_path":32922,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32923,"content":32928,"config":32932,"_id":32934,"_type":16,"title":32935,"_source":17,"_file":32936,"_stem":32937,"_extension":20},"/en-us/blog/gitlab-issue-bash-september-2017",{"title":32924,"description":32925,"ogTitle":32924,"ogDescription":32925,"noIndex":6,"ogImage":31287,"ogUrl":32926,"ogSiteName":995,"ogType":996,"canonicalUrls":32926,"schema":32927},"Join GitLab's September Issue Bash","Join us September 2017 and help us to squash some of the open issues in the GitLab Community Edition tracker!","https://about.gitlab.com/blog/gitlab-issue-bash-september-2017","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join GitLab's September Issue Bash\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Fletcher\"}],\n        \"datePublished\": \"2017-08-08\",\n      }",{"title":32924,"description":32925,"authors":32929,"heroImage":31287,"date":32930,"category":301,"tags":32931},[31292],"2017-08-08",[279,269,1265],{"slug":32933,"featured":6,"template":736},"gitlab-issue-bash-september-2017","content:en-us:blog:gitlab-issue-bash-september-2017.yml","Gitlab Issue Bash September 2017","en-us/blog/gitlab-issue-bash-september-2017.yml","en-us/blog/gitlab-issue-bash-september-2017",{"_path":32939,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32940,"content":32946,"config":32951,"_id":32953,"_type":16,"title":32954,"_source":17,"_file":32955,"_stem":32956,"_extension":20},"/en-us/blog/how-startups-build-it-infrastructure",{"title":32941,"description":32942,"ogTitle":32941,"ogDescription":32942,"noIndex":6,"ogImage":32943,"ogUrl":32944,"ogSiteName":995,"ogType":996,"canonicalUrls":32944,"schema":32945},"A way for startups to build a solid IT infrastructure","Seven free software solutions to cover your most important use cases.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679216/Blog/Hero%20Images/startups-it-infrastructure.jpg","https://about.gitlab.com/blog/how-startups-build-it-infrastructure","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A way for startups to build a solid IT infrastructure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"plapadoo\"}],\n        \"datePublished\": \"2017-08-07\",\n      }",{"title":32941,"description":32942,"authors":32947,"heroImage":32943,"date":32949,"category":1388,"tags":32950},[32948],"plapadoo","2017-08-07",[1265,10011,4665],{"slug":32952,"featured":6,"template":736},"how-startups-build-it-infrastructure","content:en-us:blog:how-startups-build-it-infrastructure.yml","How Startups Build It Infrastructure","en-us/blog/how-startups-build-it-infrastructure.yml","en-us/blog/how-startups-build-it-infrastructure",{"_path":32958,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32959,"content":32965,"config":32969,"_id":32971,"_type":16,"title":32972,"_source":17,"_file":32973,"_stem":32974,"_extension":20},"/en-us/blog/let-s-talk-swag",{"title":32960,"description":32961,"ogTitle":32960,"ogDescription":32961,"noIndex":6,"ogImage":32962,"ogUrl":32963,"ogSiteName":995,"ogType":996,"canonicalUrls":32963,"schema":32964},"Let's talk swag","The GitLab swag store is live with all new swag goodies, and we've got a 25% code to share.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671738/Blog/Hero%20Images/swag-cover.jpg","https://about.gitlab.com/blog/let-s-talk-swag","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Let's talk swag\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2017-08-04\",\n      }",{"title":32960,"description":32961,"authors":32966,"heroImage":32962,"date":32967,"category":301,"tags":32968},[25520],"2017-08-04",[1569],{"slug":32970,"featured":6,"template":736},"let-s-talk-swag","content:en-us:blog:let-s-talk-swag.yml","Let S Talk Swag","en-us/blog/let-s-talk-swag.yml","en-us/blog/let-s-talk-swag",{"_path":32976,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32977,"content":32983,"config":32987,"_id":32989,"_type":16,"title":32990,"_source":17,"_file":32991,"_stem":32992,"_extension":20},"/en-us/blog/stackpoint-webcast-recording-highlights",{"title":32978,"description":32979,"ogTitle":32978,"ogDescription":32979,"noIndex":6,"ogImage":32980,"ogUrl":32981,"ogSiteName":995,"ogType":996,"canonicalUrls":32981,"schema":32982},"Demo: Turn-key Kubernetes with StackPoint.io","StackPointCloud CEO Matt Baldwin shows how GitLab users can now go even faster from idea to production with an integration that takes the pain out of building Kubernetes clusters.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671181/Blog/Hero%20Images/stackpoint-gitlab-integration.png","https://about.gitlab.com/blog/stackpoint-webcast-recording-highlights","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo: Turn-key Kubernetes with StackPoint.io\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-08-03\",\n      }",{"title":32978,"description":32979,"authors":32984,"heroImage":32980,"date":32985,"category":301,"tags":32986},[17684],"2017-08-03",[2908,233],{"slug":32988,"featured":6,"template":736},"stackpoint-webcast-recording-highlights","content:en-us:blog:stackpoint-webcast-recording-highlights.yml","Stackpoint Webcast Recording Highlights","en-us/blog/stackpoint-webcast-recording-highlights.yml","en-us/blog/stackpoint-webcast-recording-highlights",{"_path":32994,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":32995,"content":33000,"config":33004,"_id":33006,"_type":16,"title":33007,"_source":17,"_file":33008,"_stem":33009,"_extension":20},"/en-us/blog/docker-my-precious",{"title":32996,"description":32997,"ogTitle":32996,"ogDescription":32997,"noIndex":6,"ogImage":13642,"ogUrl":32998,"ogSiteName":995,"ogType":996,"canonicalUrls":32998,"schema":32999},"Continuous integration: From Jenkins to GitLab using Docker","We're migrating all of our working tools to open source ones, and moving to GitLab has made all the difference.","https://about.gitlab.com/blog/docker-my-precious","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Continuous integration: From Jenkins to GitLab using Docker\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abdulkader Benchi\"}],\n        \"datePublished\": \"2017-07-27\",\n      }",{"title":32996,"description":32997,"authors":33001,"heroImage":13642,"date":33002,"category":1388,"tags":33003},[32838],"2017-07-27",[1265,2097],{"slug":33005,"featured":6,"template":736},"docker-my-precious","content:en-us:blog:docker-my-precious.yml","Docker My Precious","en-us/blog/docker-my-precious.yml","en-us/blog/docker-my-precious",{"_path":33011,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33012,"content":33018,"config":33022,"_id":33024,"_type":16,"title":33025,"_source":17,"_file":33026,"_stem":33027,"_extension":20},"/en-us/blog/why-your-code-review-process-is-broken-and-how-to-fix-it",{"title":33013,"description":33014,"ogTitle":33013,"ogDescription":33014,"noIndex":6,"ogImage":33015,"ogUrl":33016,"ogSiteName":995,"ogType":996,"canonicalUrls":33016,"schema":33017},"Why your code review process is broken, and how to fix it","What do you do when you follow your code review process, and you’re still rudely greeted by code full of bugs, or a flood of user complaints?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679775/Blog/Hero%20Images/why-your-code-review-process-is-broken-and-how-to-fix-it.jpg","https://about.gitlab.com/blog/why-your-code-review-process-is-broken-and-how-to-fix-it","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why your code review process is broken, and how to fix it\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-07-25\",\n      }",{"title":33013,"description":33014,"authors":33019,"heroImage":33015,"date":33020,"category":6121,"tags":33021},[20500],"2017-07-25",[2815,1335],{"slug":33023,"featured":6,"template":736},"why-your-code-review-process-is-broken-and-how-to-fix-it","content:en-us:blog:why-your-code-review-process-is-broken-and-how-to-fix-it.yml","Why Your Code Review Process Is Broken And How To Fix It","en-us/blog/why-your-code-review-process-is-broken-and-how-to-fix-it.yml","en-us/blog/why-your-code-review-process-is-broken-and-how-to-fix-it",{"_path":33029,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33030,"content":33036,"config":33040,"_id":33042,"_type":16,"title":33043,"_source":17,"_file":33044,"_stem":33045,"_extension":20},"/en-us/blog/gitlab-trello-power-up-launch",{"title":33031,"description":33032,"ogTitle":33031,"ogDescription":33032,"noIndex":6,"ogImage":33033,"ogUrl":33034,"ogSiteName":995,"ogType":996,"canonicalUrls":33034,"schema":33035},"You asked, you got it: GitLab Power-Up comes to Trello","With 9.4 we shipped a GitLab Power-Up for Trello – attach a merge request to a Trello card and enjoy an even more seamless workflow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671369/Blog/Hero%20Images/trello-power-up-blog-cover.png","https://about.gitlab.com/blog/gitlab-trello-power-up-launch","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"You asked, you got it: GitLab Power-Up comes to Trello\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-07-22\",\n      }",{"title":33031,"description":33032,"authors":33037,"heroImage":33033,"date":33038,"category":301,"tags":33039},[17684],"2017-07-22",[233],{"slug":33041,"featured":6,"template":736},"gitlab-trello-power-up-launch","content:en-us:blog:gitlab-trello-power-up-launch.yml","Gitlab Trello Power Up Launch","en-us/blog/gitlab-trello-power-up-launch.yml","en-us/blog/gitlab-trello-power-up-launch",{"_path":33047,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33048,"content":33054,"config":33059,"_id":33061,"_type":16,"title":33062,"_source":17,"_file":33063,"_stem":33064,"_extension":20},"/en-us/blog/git-wars-switching-to-gitlab",{"title":33049,"description":33050,"ogTitle":33049,"ogDescription":33050,"noIndex":6,"ogImage":33051,"ogUrl":33052,"ogSiteName":995,"ogType":996,"canonicalUrls":33052,"schema":33053},"Git Wars: Why I'm switching to GitLab","New GitLab user Christopher Watson puts us through our paces and weighs up his Git hosting options.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680411/Blog/Hero%20Images/git-wars-switching-to-gitlab.jpg","https://about.gitlab.com/blog/git-wars-switching-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git Wars: Why I'm switching to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Christopher Watson\"}],\n        \"datePublished\": \"2017-07-19\",\n      }",{"title":33049,"description":33050,"authors":33055,"heroImage":33051,"date":33057,"category":858,"tags":33058},[33056],"Christopher Watson","2017-07-19",[1195,1265,4665],{"slug":33060,"featured":6,"template":736},"git-wars-switching-to-gitlab","content:en-us:blog:git-wars-switching-to-gitlab.yml","Git Wars Switching To Gitlab","en-us/blog/git-wars-switching-to-gitlab.yml","en-us/blog/git-wars-switching-to-gitlab",{"_path":33066,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33067,"content":33073,"config":33077,"_id":33079,"_type":16,"title":33080,"_source":17,"_file":33081,"_stem":33082,"_extension":20},"/en-us/blog/how-we-use-gitlab-at-the-province-of-nova-scotia",{"title":33068,"description":33069,"ogTitle":33068,"ogDescription":33069,"noIndex":6,"ogImage":33070,"ogUrl":33071,"ogSiteName":995,"ogType":996,"canonicalUrls":33071,"schema":33072},"How we use GitLab at the Province of Nova Scotia","The Unix operations team at the Province of Nova Scotia decided to implement GitLab for source control and CI/CD. Here's how we started exploring DevOps.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670226/Blog/Hero%20Images/how-we-use-gitlab-at-nova-scotia.jpg","https://about.gitlab.com/blog/how-we-use-gitlab-at-the-province-of-nova-scotia","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we use GitLab at the Province of Nova Scotia\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Steven Zinck\"},{\"@type\":\"Person\",\"name\":\"Paul Badcock\"}],\n        \"datePublished\": \"2017-07-18\",\n      }",{"title":33068,"description":33069,"authors":33074,"heroImage":33070,"date":33075,"category":858,"tags":33076},[32875,32876],"2017-07-18",[564,110,1335],{"slug":33078,"featured":6,"template":736},"how-we-use-gitlab-at-the-province-of-nova-scotia","content:en-us:blog:how-we-use-gitlab-at-the-province-of-nova-scotia.yml","How We Use Gitlab At The Province Of Nova Scotia","en-us/blog/how-we-use-gitlab-at-the-province-of-nova-scotia.yml","en-us/blog/how-we-use-gitlab-at-the-province-of-nova-scotia",{"_path":33084,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33085,"content":33091,"config":33095,"_id":33097,"_type":16,"title":33098,"_source":17,"_file":33099,"_stem":33100,"_extension":20},"/en-us/blog/redesigning-gitlabs-navigation",{"title":33086,"description":33087,"ogTitle":33086,"ogDescription":33087,"noIndex":6,"ogImage":33088,"ogUrl":33089,"ogSiteName":995,"ogType":996,"canonicalUrls":33089,"schema":33090},"Redesigning GitLab's navigation","After a series of research and brainstorming sessions, we are excited to share with the community our redesign of GitLab's navigation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679771/Blog/Hero%20Images/redesign-navigation-cover-image.jpg","https://about.gitlab.com/blog/redesigning-gitlabs-navigation","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Redesigning GitLab's navigation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2017-07-17\",\n      }",{"title":33086,"description":33087,"authors":33092,"heroImage":33088,"date":33093,"category":858,"tags":33094},[18295],"2017-07-17",[2703],{"slug":33096,"featured":6,"template":736},"redesigning-gitlabs-navigation","content:en-us:blog:redesigning-gitlabs-navigation.yml","Redesigning Gitlabs Navigation","en-us/blog/redesigning-gitlabs-navigation.yml","en-us/blog/redesigning-gitlabs-navigation",{"_path":33102,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33103,"content":33109,"config":33114,"_id":33116,"_type":16,"title":33117,"_source":17,"_file":33118,"_stem":33119,"_extension":20},"/en-us/blog/making-ci-easier-with-gitlab",{"title":33104,"description":33105,"ogTitle":33104,"ogDescription":33105,"noIndex":6,"ogImage":33106,"ogUrl":33107,"ogSiteName":995,"ogType":996,"canonicalUrls":33107,"schema":33108},"Making CI/CD easier with GitLab","The team at Trek10 tries to consider the need for automation and repeatability with everything they do. One team member gives a crash course in GitLab CI/CD and explains how they use it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680423/Blog/Hero%20Images/making-ci-easier-with-gitlab.jpg","https://about.gitlab.com/blog/making-ci-easier-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Making CI/CD easier with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rob Ribeiro\"}],\n        \"datePublished\": \"2017-07-13\",\n      }",{"title":33104,"description":33105,"authors":33110,"heroImage":33106,"date":33112,"category":858,"tags":33113},[33111],"Rob Ribeiro","2017-07-13",[110,4665],{"slug":33115,"featured":6,"template":736},"making-ci-easier-with-gitlab","content:en-us:blog:making-ci-easier-with-gitlab.yml","Making Ci Easier With Gitlab","en-us/blog/making-ci-easier-with-gitlab.yml","en-us/blog/making-ci-easier-with-gitlab",{"_path":33121,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33122,"content":33128,"config":33133,"_id":33135,"_type":16,"title":33136,"_source":17,"_file":33137,"_stem":33138,"_extension":20},"/en-us/blog/dockerizing-review-apps",{"title":33123,"description":33124,"ogTitle":33123,"ogDescription":33124,"noIndex":6,"ogImage":33125,"ogUrl":33126,"ogSiteName":995,"ogType":996,"canonicalUrls":33126,"schema":33127},"Dockerizing GitLab Review Apps","A GitLab user shows us how to deploy Docker containers as a Review App.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680430/Blog/Hero%20Images/dockerizing-review-apps.jpg","https://about.gitlab.com/blog/dockerizing-review-apps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Dockerizing GitLab Review Apps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Stephan Hochdörfer\"}],\n        \"datePublished\": \"2017-07-11\",\n      }",{"title":33123,"description":33124,"authors":33129,"heroImage":33125,"date":33131,"category":858,"tags":33132},[33130],"Stephan Hochdörfer","2017-07-11",[4665,110],{"slug":33134,"featured":6,"template":736},"dockerizing-review-apps","content:en-us:blog:dockerizing-review-apps.yml","Dockerizing Review Apps","en-us/blog/dockerizing-review-apps.yml","en-us/blog/dockerizing-review-apps",{"_path":33140,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33141,"content":33146,"config":33152,"_id":33154,"_type":16,"title":33155,"_source":17,"_file":33156,"_stem":33157,"_extension":20},"/en-us/blog/stackpoint-gitlab-integration",{"title":33142,"description":33143,"ogTitle":33142,"ogDescription":33143,"noIndex":6,"ogImage":32980,"ogUrl":33144,"ogSiteName":995,"ogType":996,"canonicalUrls":33144,"schema":33145},"GitLab K8s clusters: Backup and trusted charts in 10 min","StackPointCloud partners with GitLab to create a simple, turn-key experience for developers who want to move faster into production with their apps.","https://about.gitlab.com/blog/stackpoint-gitlab-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Turn-Key GitLab Enterprise Kubernetes clusters, backup, trusted charts — all in less than 10 minutes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Matt Baldwin\"}],\n        \"datePublished\": \"2017-07-10\",\n      }",{"title":33147,"description":33143,"authors":33148,"heroImage":32980,"date":33150,"category":301,"tags":33151},"Turn-Key GitLab Enterprise Kubernetes clusters, backup, trusted charts — all in less than 10 minutes",[33149],"Matt Baldwin","2017-07-10",[2908,3721,233],{"slug":33153,"featured":6,"template":736},"stackpoint-gitlab-integration","content:en-us:blog:stackpoint-gitlab-integration.yml","Stackpoint Gitlab Integration","en-us/blog/stackpoint-gitlab-integration.yml","en-us/blog/stackpoint-gitlab-integration",{"_path":33159,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33160,"content":33166,"config":33170,"_id":33172,"_type":16,"title":33173,"_source":17,"_file":33174,"_stem":33175,"_extension":20},"/en-us/blog/gitlab-top-30-highest-velocity-open-source",{"title":33161,"description":33162,"ogTitle":33161,"ogDescription":33162,"noIndex":6,"ogImage":33163,"ogUrl":33164,"ogSiteName":995,"ogType":996,"canonicalUrls":33164,"schema":33165},"We're one of the 30 Highest Velocity Open Source Projects","With a magical combination of number of commits, authors, issues and merge requests, we're in great company with other open source projects with momentum.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671330/Blog/Hero%20Images/highest-velocity-open-source-projects.jpg","https://about.gitlab.com/blog/gitlab-top-30-highest-velocity-open-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"We're one of the 30 Highest Velocity Open Source Projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-07-06\",\n      }",{"title":33161,"description":33162,"authors":33167,"heroImage":33163,"date":33168,"category":1388,"tags":33169},[17684],"2017-07-06",[1265,1049],{"slug":33171,"featured":6,"template":736},"gitlab-top-30-highest-velocity-open-source","content:en-us:blog:gitlab-top-30-highest-velocity-open-source.yml","Gitlab Top 30 Highest Velocity Open Source","en-us/blog/gitlab-top-30-highest-velocity-open-source.yml","en-us/blog/gitlab-top-30-highest-velocity-open-source",{"_path":33177,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33178,"content":33183,"config":33187,"_id":33189,"_type":16,"title":33190,"_source":17,"_file":33191,"_stem":33192,"_extension":20},"/en-us/blog/there-and-back-again-in-one-release",{"title":33179,"description":33180,"ogTitle":33179,"ogDescription":33180,"noIndex":6,"ogImage":10957,"ogUrl":33181,"ogSiteName":995,"ogType":996,"canonicalUrls":33181,"schema":33182},"There and back again in one release","One GitLab team-member spent 5 weeks visiting and working with 6 different colleagues in 5 cities, in 4 countries across Europe and Asia","https://about.gitlab.com/blog/there-and-back-again-in-one-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"There and back again in one release\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dimitrie Hoekstra\"}],\n        \"datePublished\": \"2017-06-30\",\n      }",{"title":33179,"description":33180,"authors":33184,"heroImage":10957,"date":33185,"category":301,"tags":33186},[30905],"2017-06-30",[1569,3914],{"slug":33188,"featured":6,"template":736},"there-and-back-again-in-one-release","content:en-us:blog:there-and-back-again-in-one-release.yml","There And Back Again In One Release","en-us/blog/there-and-back-again-in-one-release.yml","en-us/blog/there-and-back-again-in-one-release",{"_path":33194,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33195,"content":33201,"config":33205,"_id":33207,"_type":16,"title":33208,"_source":17,"_file":33209,"_stem":33210,"_extension":20},"/en-us/blog/gitlab-at-vue-conf",{"title":33196,"description":33197,"ogTitle":33196,"ogDescription":33197,"noIndex":6,"ogImage":33198,"ogUrl":33199,"ogSiteName":995,"ogType":996,"canonicalUrls":33199,"schema":33200},"GitLab was at VueConf 2017!","GitLab was at VueConf 2017 sharing how we use Vue.js.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682980/Blog/Hero%20Images/cover_image.jpg","https://about.gitlab.com/blog/gitlab-at-vue-conf","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab was at VueConf 2017!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Filipa Lacerda\"}],\n        \"datePublished\": \"2017-06-29\",\n      }",{"title":33196,"description":33197,"authors":33202,"heroImage":33198,"date":33203,"category":301,"tags":33204},[31884],"2017-06-29",[10121,279],{"slug":33206,"featured":6,"template":736},"gitlab-at-vue-conf","content:en-us:blog:gitlab-at-vue-conf.yml","Gitlab At Vue Conf","en-us/blog/gitlab-at-vue-conf.yml","en-us/blog/gitlab-at-vue-conf",{"_path":33212,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33213,"content":33218,"config":33222,"_id":33224,"_type":16,"title":33225,"_source":17,"_file":33226,"_stem":33227,"_extension":20},"/en-us/blog/whats-next-for-gitlab-ci",{"title":33214,"description":33215,"ogTitle":33214,"ogDescription":33215,"noIndex":6,"ogImage":32709,"ogUrl":33216,"ogSiteName":995,"ogType":996,"canonicalUrls":33216,"schema":33217},"From 2/3 of Git market to next-Gen CI system & auto DevOps","GitLab first became the standard for self hosting git with two-thirds of the market, then became the next generation CI system, and the next step is creating Auto DevOps.","https://about.gitlab.com/blog/whats-next-for-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"From 2/3 of the self-managed Git market, to the next-generation CI system, to Auto DevOps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2017-06-29\",\n      }",{"title":33219,"description":33215,"authors":33220,"heroImage":32709,"date":33203,"category":8140,"tags":33221},"From 2/3 of the self-managed Git market, to the next-generation CI system, to Auto DevOps",[3701],[1195,564,1049,110],{"slug":33223,"featured":6,"template":736},"whats-next-for-gitlab-ci","content:en-us:blog:whats-next-for-gitlab-ci.yml","Whats Next For Gitlab Ci","en-us/blog/whats-next-for-gitlab-ci.yml","en-us/blog/whats-next-for-gitlab-ci",{"_path":33229,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33230,"content":33236,"config":33240,"_id":33242,"_type":16,"title":33243,"_source":17,"_file":33244,"_stem":33245,"_extension":20},"/en-us/blog/biggest-obstacles-to-getting-work-done",{"title":33231,"description":33232,"ogTitle":33231,"ogDescription":33232,"noIndex":6,"ogImage":33233,"ogUrl":33234,"ogSiteName":995,"ogType":996,"canonicalUrls":33234,"schema":33235},"Why deadlines get missed (and how to fix it)","These are the biggest obstacles preventing developers from getting work done – and how to tackle them.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671344/Blog/Hero%20Images/obstacles-to-getting-work-done.jpg","https://about.gitlab.com/blog/biggest-obstacles-to-getting-work-done","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why deadlines get missed (and how to fix it)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-06-27\",\n      }",{"title":33231,"description":33232,"authors":33237,"heroImage":33233,"date":33238,"category":8140,"tags":33239},[17684],"2017-06-27",[3721,1335,2815],{"slug":33241,"featured":6,"template":736},"biggest-obstacles-to-getting-work-done","content:en-us:blog:biggest-obstacles-to-getting-work-done.yml","Biggest Obstacles To Getting Work Done","en-us/blog/biggest-obstacles-to-getting-work-done.yml","en-us/blog/biggest-obstacles-to-getting-work-done",{"_path":33247,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33248,"content":33254,"config":33258,"_id":33260,"_type":16,"title":33261,"_source":17,"_file":33262,"_stem":33263,"_extension":20},"/en-us/blog/how-to-shorten-conversation-cycle",{"title":33249,"description":33250,"ogTitle":33249,"ogDescription":33250,"noIndex":6,"ogImage":33251,"ogUrl":33252,"ogSiteName":995,"ogType":996,"canonicalUrls":33252,"schema":33253},"How to shorten the conversation cycle","Four simple steps to move faster from idea to production.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671350/Blog/Hero%20Images/shorten-conversation-cycle.jpg","https://about.gitlab.com/blog/how-to-shorten-conversation-cycle","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to shorten the conversation cycle\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-06-19\",\n      }",{"title":33249,"description":33250,"authors":33255,"heroImage":33251,"date":33256,"category":6121,"tags":33257},[17684],"2017-06-19",[2815,1335],{"slug":33259,"featured":6,"template":736},"how-to-shorten-conversation-cycle","content:en-us:blog:how-to-shorten-conversation-cycle.yml","How To Shorten Conversation Cycle","en-us/blog/how-to-shorten-conversation-cycle.yml","en-us/blog/how-to-shorten-conversation-cycle",{"_path":33265,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33266,"content":33272,"config":33277,"_id":33279,"_type":16,"title":33280,"_source":17,"_file":33281,"_stem":33282,"_extension":20},"/en-us/blog/on-calliday-unsucking-your-on-call-experience",{"title":33267,"description":33268,"ogTitle":33267,"ogDescription":33268,"noIndex":6,"ogImage":33269,"ogUrl":33270,"ogSiteName":995,"ogType":996,"canonicalUrls":33270,"schema":33271},"On-Calliday: A guide to unsucking your on-call experience","Being on-call can be rough because you're likely losing sleep, which can impact your personal and professional life. Here are some tips on how to make on-call shifts less painful for your team and company.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680447/Blog/Hero%20Images/on-calliday.jpg","https://about.gitlab.com/blog/on-calliday-unsucking-your-on-call-experience","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"On-Calliday: A guide to unsucking your on-call experience\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Folson\"}],\n        \"datePublished\": \"2017-06-14\",\n      }",{"title":33267,"description":33268,"authors":33273,"heroImage":33269,"date":33275,"category":6121,"tags":33276},[33274],"Amanda Folson","2017-06-14",[1335,3914,6980],{"slug":33278,"featured":6,"template":736},"on-calliday-unsucking-your-on-call-experience","content:en-us:blog:on-calliday-unsucking-your-on-call-experience.yml","On Calliday Unsucking Your On Call Experience","en-us/blog/on-calliday-unsucking-your-on-call-experience.yml","en-us/blog/on-calliday-unsucking-your-on-call-experience",{"_path":33284,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33285,"content":33290,"config":33294,"_id":33296,"_type":16,"title":33297,"_source":17,"_file":33298,"_stem":33299,"_extension":20},"/en-us/blog/ways-to-encourage-collaboration",{"title":33286,"description":33287,"ogTitle":33286,"ogDescription":33287,"noIndex":6,"ogImage":15430,"ogUrl":33288,"ogSiteName":995,"ogType":996,"canonicalUrls":33288,"schema":33289},"3 Ways to foster collaboration","Want to know how we encourage everyone to contribute?","https://about.gitlab.com/blog/ways-to-encourage-collaboration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Ways to foster collaboration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-06-12\",\n      }",{"title":33286,"description":33287,"authors":33291,"heroImage":15430,"date":33292,"category":6121,"tags":33293},[17684],"2017-06-12",[3721,2815,1335,564],{"slug":33295,"featured":6,"template":736},"ways-to-encourage-collaboration","content:en-us:blog:ways-to-encourage-collaboration.yml","Ways To Encourage Collaboration","en-us/blog/ways-to-encourage-collaboration.yml","en-us/blog/ways-to-encourage-collaboration",{"_path":33301,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33302,"content":33307,"config":33311,"_id":33313,"_type":16,"title":33314,"_source":17,"_file":33315,"_stem":33316,"_extension":20},"/en-us/blog/discovering-gitlabs-personas",{"title":33303,"description":33304,"ogTitle":33303,"ogDescription":33304,"noIndex":6,"ogImage":30326,"ogUrl":33305,"ogSiteName":995,"ogType":996,"canonicalUrls":33305,"schema":33306},"Discovering GitLab’s personas","Our User Experience (UX) Researcher updates us on the progress of GitLab’s personas","https://about.gitlab.com/blog/discovering-gitlabs-personas","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Discovering GitLab’s personas\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah O’Donnell\"}],\n        \"datePublished\": \"2017-06-08\",\n      }",{"title":33303,"description":33304,"authors":33308,"heroImage":30326,"date":33309,"category":858,"tags":33310},[26717],"2017-06-08",[2703],{"slug":33312,"featured":6,"template":736},"discovering-gitlabs-personas","content:en-us:blog:discovering-gitlabs-personas.yml","Discovering Gitlabs Personas","en-us/blog/discovering-gitlabs-personas.yml","en-us/blog/discovering-gitlabs-personas",{"_path":33318,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33319,"content":33325,"config":33330,"_id":33332,"_type":16,"title":33333,"_source":17,"_file":33334,"_stem":33335,"_extension":20},"/en-us/blog/continuous-integration-ticketmaster",{"title":33320,"description":33321,"ogTitle":33320,"ogDescription":33321,"noIndex":6,"ogImage":33322,"ogUrl":33323,"ogSiteName":995,"ogType":996,"canonicalUrls":33323,"schema":33324},"How GitLab CI supported Ticketmaster's ramp up to weekly mobile releases","Ticketmaster Android developer Jeff Kelsey shares why GitLab CI was a game changer for his team.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682946/Blog/Hero%20Images/tm-cover-image-small.jpg","https://about.gitlab.com/blog/continuous-integration-ticketmaster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab CI supported Ticketmaster's ramp up to weekly mobile releases\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeff Kelsey\"}],\n        \"datePublished\": \"2017-06-07\",\n      }",{"title":33320,"description":33321,"authors":33326,"heroImage":33322,"date":33328,"category":858,"tags":33329},[33327],"Jeff Kelsey","2017-06-07",[3075,110,4665],{"slug":33331,"featured":6,"template":736},"continuous-integration-ticketmaster","content:en-us:blog:continuous-integration-ticketmaster.yml","Continuous Integration Ticketmaster","en-us/blog/continuous-integration-ticketmaster.yml","en-us/blog/continuous-integration-ticketmaster",{"_path":33337,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33338,"content":33343,"config":33347,"_id":33349,"_type":16,"title":33350,"_source":17,"_file":33351,"_stem":33352,"_extension":20},"/en-us/blog/speed-security-quality-with-hackerone",{"title":33339,"description":33340,"ogTitle":33339,"ogDescription":33340,"noIndex":6,"ogImage":11927,"ogUrl":33341,"ogSiteName":995,"ogType":996,"canonicalUrls":33341,"schema":33342},"Workflow tips to ship faster without sacrificing security or quality","We partnered up with HackerOne to explain how to ship faster with a security-first development mindset. Watch the recording and check out the slides here.","https://about.gitlab.com/blog/speed-security-quality-with-hackerone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Workflow tips to ship faster without sacrificing security or quality\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2017-06-05\",\n      }",{"title":33339,"description":33340,"authors":33344,"heroImage":11927,"date":33345,"category":6121,"tags":33346},[27004],"2017-06-05",[790,1335],{"slug":33348,"featured":6,"template":736},"speed-security-quality-with-hackerone","content:en-us:blog:speed-security-quality-with-hackerone.yml","Speed Security Quality With Hackerone","en-us/blog/speed-security-quality-with-hackerone.yml","en-us/blog/speed-security-quality-with-hackerone",{"_path":33354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33355,"content":33361,"config":33366,"_id":33368,"_type":16,"title":33369,"_source":17,"_file":33370,"_stem":33371,"_extension":20},"/en-us/blog/pick-your-brain-interview-brandon-foo",{"title":33356,"description":33357,"ogTitle":33356,"ogDescription":33357,"noIndex":6,"ogImage":33358,"ogUrl":33359,"ogSiteName":995,"ogType":996,"canonicalUrls":33359,"schema":33360},"Pick Your Brain interview with CEO Sid Sijbrandij","Brandon Foo, co-founder and CEO of Polymail (YC S16), recently sat down with GitLab CEO Sid Sijbrandij.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680453/Blog/Hero%20Images/pick-your-brain-interview.jpg","https://about.gitlab.com/blog/pick-your-brain-interview-brandon-foo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pick Your Brain interview with CEO Sid Sijbrandij\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brandon Foo\"}],\n        \"datePublished\": \"2017-06-02\",\n      }",{"title":33356,"description":33357,"authors":33362,"heroImage":33358,"date":33364,"category":8140,"tags":33365},[33363],"Brandon Foo","2017-06-02",[582,10011,1569],{"slug":33367,"featured":6,"template":736},"pick-your-brain-interview-brandon-foo","content:en-us:blog:pick-your-brain-interview-brandon-foo.yml","Pick Your Brain Interview Brandon Foo","en-us/blog/pick-your-brain-interview-brandon-foo.yml","en-us/blog/pick-your-brain-interview-brandon-foo",{"_path":33373,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33374,"content":33380,"config":33383,"_id":33385,"_type":16,"title":33386,"_source":17,"_file":33387,"_stem":33388,"_extension":20},"/en-us/blog/attributes-of-successful-development-teams",{"title":33375,"description":33376,"ogTitle":33375,"ogDescription":33376,"noIndex":6,"ogImage":33377,"ogUrl":33378,"ogSiteName":995,"ogType":996,"canonicalUrls":33378,"schema":33379},"9 Attributes of successful development teams","What makes a good development team? Here's what we think.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671496/Blog/Hero%20Images/attributes-successful-dev-teams.jpg","https://about.gitlab.com/blog/attributes-of-successful-development-teams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"9 Attributes of successful development teams\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-05-23\",\n      }",{"title":33375,"description":33376,"authors":33381,"heroImage":33377,"date":33382,"category":6121},[17684],"2017-05-23",{"slug":33384,"featured":6,"template":736},"attributes-of-successful-development-teams","content:en-us:blog:attributes-of-successful-development-teams.yml","Attributes Of Successful Development Teams","en-us/blog/attributes-of-successful-development-teams.yml","en-us/blog/attributes-of-successful-development-teams",{"_path":33390,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33391,"content":33397,"config":33401,"_id":33403,"_type":16,"title":33404,"_source":17,"_file":33405,"_stem":33406,"_extension":20},"/en-us/blog/fast-and-natural-continuous-integration-with-gitlab-ci",{"title":33392,"description":33393,"ogTitle":33392,"ogDescription":33393,"noIndex":6,"ogImage":33394,"ogUrl":33395,"ogSiteName":995,"ogType":996,"canonicalUrls":33395,"schema":33396},"Fast and natural continuous integration with GitLab CI","An overview of GitLab Continuous Integration and Delivery, and the main features of the tool.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684106/Blog/Hero%20Images/fast-and-natural-continuous-integration-with-gitlab-ci.jpg","https://about.gitlab.com/blog/fast-and-natural-continuous-integration-with-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Fast and natural continuous integration with GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Samuel Alfageme\"}],\n        \"datePublished\": \"2017-05-22\",\n      }",{"title":33392,"description":33393,"authors":33398,"heroImage":33394,"date":33400,"category":858},[33399],"Samuel Alfageme","2017-05-22",{"slug":33402,"featured":6,"template":736},"fast-and-natural-continuous-integration-with-gitlab-ci","content:en-us:blog:fast-and-natural-continuous-integration-with-gitlab-ci.yml","Fast And Natural Continuous Integration With Gitlab Ci","en-us/blog/fast-and-natural-continuous-integration-with-gitlab-ci.yml","en-us/blog/fast-and-natural-continuous-integration-with-gitlab-ci",{"_path":33408,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33409,"content":33415,"config":33418,"_id":33420,"_type":16,"title":33421,"_source":17,"_file":33422,"_stem":33423,"_extension":20},"/en-us/blog/learning-curve-is-the-biggest-challenge-developers-face-with-git",{"title":33410,"description":33411,"ogTitle":33410,"ogDescription":33411,"noIndex":6,"ogImage":33412,"ogUrl":33413,"ogSiteName":995,"ogType":996,"canonicalUrls":33413,"schema":33414},"Why Git is worth the learning curve","Although the learning curve can pose a challenge, teams have a real incentive to transition to Git.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684078/Blog/Hero%20Images/why-git-is-worth-the-learning-curve.jpg","https://about.gitlab.com/blog/learning-curve-is-the-biggest-challenge-developers-face-with-git","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why Git is worth the learning curve\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-05-17\",\n      }",{"title":33410,"description":33411,"authors":33416,"heroImage":33412,"date":33417,"category":8140},[20500],"2017-05-17",{"slug":33419,"featured":6,"template":736},"learning-curve-is-the-biggest-challenge-developers-face-with-git","content:en-us:blog:learning-curve-is-the-biggest-challenge-developers-face-with-git.yml","Learning Curve Is The Biggest Challenge Developers Face With Git","en-us/blog/learning-curve-is-the-biggest-challenge-developers-face-with-git.yml","en-us/blog/learning-curve-is-the-biggest-challenge-developers-face-with-git",{"_path":33425,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33426,"content":33432,"config":33435,"_id":33437,"_type":16,"title":33438,"_source":17,"_file":33439,"_stem":33440,"_extension":20},"/en-us/blog/devops-containers-gitlab-openshift",{"title":33427,"description":33428,"ogTitle":33427,"ogDescription":33428,"noIndex":6,"ogImage":33429,"ogUrl":33430,"ogSiteName":995,"ogType":996,"canonicalUrls":33430,"schema":33431},"Demo - Auto Deploy from GitLab to an OpenShift container cluster","See how to reliably and repeatably build, test, and deploy an application in a container from GitLab to the OpenShift container cluster.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671657/Blog/Hero%20Images/devops-openshift-webcast-blog-cover.png","https://about.gitlab.com/blog/devops-containers-gitlab-openshift","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo - Auto Deploy from GitLab to an OpenShift container cluster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2017-05-16\",\n      }",{"title":33427,"description":33428,"authors":33433,"heroImage":33429,"date":33434,"category":858},[27004],"2017-05-16",{"slug":33436,"featured":6,"template":736},"devops-containers-gitlab-openshift","content:en-us:blog:devops-containers-gitlab-openshift.yml","Devops Containers Gitlab Openshift","en-us/blog/devops-containers-gitlab-openshift.yml","en-us/blog/devops-containers-gitlab-openshift",{"_path":33442,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33443,"content":33449,"config":33453,"_id":33455,"_type":16,"title":33456,"_source":17,"_file":33457,"_stem":33458,"_extension":20},"/en-us/blog/how-to-use-macstadium-and-gitlab-ci-to-build-your-macos-or-ios-projects",{"title":33444,"description":33445,"ogTitle":33444,"ogDescription":33445,"noIndex":6,"ogImage":33446,"ogUrl":33447,"ogSiteName":995,"ogType":996,"canonicalUrls":33447,"schema":33448},"How to use GitLab CI and MacStadium to build your macOS or iOS projects","Learn how to use GitLab CI on MacStadium's mini servers to build your macOS or iOS projects.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671709/Blog/Hero%20Images/macstadium-datacenter.jpg","https://about.gitlab.com/blog/how-to-use-macstadium-and-gitlab-ci-to-build-your-macos-or-ios-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to use GitLab CI and MacStadium to build your macOS or iOS projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2017-05-15\",\n      }",{"title":33444,"description":33445,"authors":33450,"heroImage":33446,"date":33452,"category":858},[33451],"Achilleas Pipinellis","2017-05-15",{"slug":33454,"featured":6,"template":736},"how-to-use-macstadium-and-gitlab-ci-to-build-your-macos-or-ios-projects","content:en-us:blog:how-to-use-macstadium-and-gitlab-ci-to-build-your-macos-or-ios-projects.yml","How To Use Macstadium And Gitlab Ci To Build Your Macos Or Ios Projects","en-us/blog/how-to-use-macstadium-and-gitlab-ci-to-build-your-macos-or-ios-projects.yml","en-us/blog/how-to-use-macstadium-and-gitlab-ci-to-build-your-macos-or-ios-projects",{"_path":33460,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33461,"content":33466,"config":33469,"_id":33471,"_type":16,"title":33472,"_source":17,"_file":33473,"_stem":33474,"_extension":20},"/en-us/blog/gitlab-issue-bash-june-2017",{"title":33462,"description":33463,"ogTitle":33462,"ogDescription":33463,"noIndex":6,"ogImage":31287,"ogUrl":33464,"ogSiteName":995,"ogType":996,"canonicalUrls":33464,"schema":33465},"Join GitLab's 3rd Issue Bash this June","Juion us June 2017 and help us to squash some of the open issues in the GitLab Community Edition tracker!","https://about.gitlab.com/blog/gitlab-issue-bash-june-2017","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join GitLab's 3rd Issue Bash this June\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Fletcher\"}],\n        \"datePublished\": \"2017-05-11\",\n      }",{"title":33462,"description":33463,"authors":33467,"heroImage":31287,"date":33468,"category":301},[31292],"2017-05-11",{"slug":33470,"featured":6,"template":736},"gitlab-issue-bash-june-2017","content:en-us:blog:gitlab-issue-bash-june-2017.yml","Gitlab Issue Bash June 2017","en-us/blog/gitlab-issue-bash-june-2017.yml","en-us/blog/gitlab-issue-bash-june-2017",{"_path":33476,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33477,"content":33483,"config":33486,"_id":33488,"_type":16,"title":33489,"_source":17,"_file":33490,"_stem":33491,"_extension":20},"/en-us/blog/demo-service-desk",{"title":33478,"description":33479,"ogTitle":33478,"ogDescription":33479,"noIndex":6,"ogImage":33480,"ogUrl":33481,"ogSiteName":995,"ogType":996,"canonicalUrls":33481,"schema":33482},"Demo - GitLab Service Desk","In 9.1, we introduced our new Service Desk feature, allowing your customers to reach you inside GitLab simply by using a support email address.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684042/Blog/Hero%20Images/demo-service-desk.jpg","https://about.gitlab.com/blog/demo-service-desk","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo - GitLab Service Desk\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2017-05-09\",\n      }",{"title":33478,"description":33479,"authors":33484,"heroImage":33480,"date":33485,"category":858},[28472],"2017-05-09",{"slug":33487,"featured":6,"template":736},"demo-service-desk","content:en-us:blog:demo-service-desk.yml","Demo Service Desk","en-us/blog/demo-service-desk.yml","en-us/blog/demo-service-desk",{"_path":33493,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33494,"content":33500,"config":33503,"_id":33505,"_type":16,"title":33506,"_source":17,"_file":33507,"_stem":33508,"_extension":20},"/en-us/blog/what-to-look-for-in-ci-cd-solution",{"title":33495,"description":33496,"ogTitle":33495,"ogDescription":33496,"noIndex":6,"ogImage":33497,"ogUrl":33498,"ogSiteName":995,"ogType":996,"canonicalUrls":33498,"schema":33499},"What to look for in a continuous integration tool","With so many options out there, here's what you need to weigh up when deciding on a CI/CD tool.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671489/Blog/Hero%20Images/what-to-look-for-ci-cd.jpg","https://about.gitlab.com/blog/what-to-look-for-in-ci-cd-solution","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What to look for in a continuous integration tool\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-05-08\",\n      }",{"title":33495,"description":33496,"authors":33501,"heroImage":33497,"date":33502,"category":8140},[17684],"2017-05-08",{"slug":33504,"featured":6,"template":736},"what-to-look-for-in-ci-cd-solution","content:en-us:blog:what-to-look-for-in-ci-cd-solution.yml","What To Look For In Ci Cd Solution","en-us/blog/what-to-look-for-in-ci-cd-solution.yml","en-us/blog/what-to-look-for-in-ci-cd-solution",{"_path":33510,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33511,"content":33517,"config":33520,"_id":33522,"_type":16,"title":33523,"_source":17,"_file":33524,"_stem":33525,"_extension":20},"/en-us/blog/oscon-and-gitlab-training-in-may",{"title":33512,"description":33513,"ogTitle":33512,"ogDescription":33513,"noIndex":6,"ogImage":33514,"ogUrl":33515,"ogSiteName":995,"ogType":996,"canonicalUrls":33515,"schema":33516},"Come see us at OSCON and GitLab training in May","Meet the GitLab team at an event near you this month.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684037/Blog/Hero%20Images/write-gitlab.jpg","https://about.gitlab.com/blog/oscon-and-gitlab-training-in-may","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Come see us at OSCON and GitLab training in May\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Folson\"}],\n        \"datePublished\": \"2017-05-04\",\n      }",{"title":33512,"description":33513,"authors":33518,"heroImage":33514,"date":33519,"category":301},[33274],"2017-05-04",{"slug":33521,"featured":6,"template":736},"oscon-and-gitlab-training-in-may","content:en-us:blog:oscon-and-gitlab-training-in-may.yml","Oscon And Gitlab Training In May","en-us/blog/oscon-and-gitlab-training-in-may.yml","en-us/blog/oscon-and-gitlab-training-in-may",{"_path":33527,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33528,"content":33533,"config":33536,"_id":33538,"_type":16,"title":33539,"_source":17,"_file":33540,"_stem":33541,"_extension":20},"/en-us/blog/inside-gitlabs-code-review-flow",{"title":33529,"description":33530,"ogTitle":33529,"ogDescription":33530,"noIndex":6,"ogImage":12372,"ogUrl":33531,"ogSiteName":995,"ogType":996,"canonicalUrls":33531,"schema":33532},"Inside GitLab’s code review flow","We keep a quality-conscious mindset throughout the development process, sharing the responsibility among everyone instead of seeing review as an obstacle at the end.","https://about.gitlab.com/blog/inside-gitlabs-code-review-flow","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Inside GitLab’s code review flow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-05-02\",\n      }",{"title":33529,"description":33530,"authors":33534,"heroImage":12372,"date":33535,"category":6121},[20500],"2017-05-02",{"slug":33537,"featured":6,"template":736},"inside-gitlabs-code-review-flow","content:en-us:blog:inside-gitlabs-code-review-flow.yml","Inside Gitlabs Code Review Flow","en-us/blog/inside-gitlabs-code-review-flow.yml","en-us/blog/inside-gitlabs-code-review-flow",{"_path":33543,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33544,"content":33550,"config":33553,"_id":33555,"_type":16,"title":33556,"_source":17,"_file":33557,"_stem":33558,"_extension":20},"/en-us/blog/why-code-is-released-too-early",{"title":33545,"description":33546,"ogTitle":33545,"ogDescription":33546,"noIndex":6,"ogImage":33547,"ogUrl":33548,"ogSiteName":995,"ogType":996,"canonicalUrls":33548,"schema":33549},"Why code gets released too early (and how to fix it)","More than half of developers say they release code prematurely. What can you do about it?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671476/Blog/Hero%20Images/code-released-too-early.jpg","https://about.gitlab.com/blog/why-code-is-released-too-early","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why code gets released too early (and how to fix it)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-04-27\",\n      }",{"title":33545,"description":33546,"authors":33551,"heroImage":33547,"date":33552,"category":8140},[17684],"2017-04-27",{"slug":33554,"featured":6,"template":736},"why-code-is-released-too-early","content:en-us:blog:why-code-is-released-too-early.yml","Why Code Is Released Too Early","en-us/blog/why-code-is-released-too-early.yml","en-us/blog/why-code-is-released-too-early",{"_path":33560,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33561,"content":33567,"config":33570,"_id":33572,"_type":16,"title":33573,"_source":17,"_file":33574,"_stem":33575,"_extension":20},"/en-us/blog/mapping-work-to-do-versus-time-with-burndown-charts",{"title":33562,"description":33563,"ogTitle":33562,"ogDescription":33563,"noIndex":6,"ogImage":33564,"ogUrl":33565,"ogSiteName":995,"ogType":996,"canonicalUrls":33565,"schema":33566},"Demo - Mapping work versus time, with burndown charts","Our Frontend Lead Jacob Schatz explains how managers and ICs can benefit from our burndown chart feature, released in GitLab 9.1.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666633/Blog/Hero%20Images/gitlab-2016-in-review-cover.png","https://about.gitlab.com/blog/mapping-work-to-do-versus-time-with-burndown-charts","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo - Mapping work versus time, with burndown charts\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-04-25\",\n      }",{"title":33562,"description":33563,"authors":33568,"heroImage":33564,"date":33569,"category":858},[20500],"2017-04-25",{"slug":33571,"featured":6,"template":736},"mapping-work-to-do-versus-time-with-burndown-charts","content:en-us:blog:mapping-work-to-do-versus-time-with-burndown-charts.yml","Mapping Work To Do Versus Time With Burndown Charts","en-us/blog/mapping-work-to-do-versus-time-with-burndown-charts.yml","en-us/blog/mapping-work-to-do-versus-time-with-burndown-charts",{"_path":33577,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33578,"content":33584,"config":33587,"_id":33589,"_type":16,"title":33590,"_source":17,"_file":33591,"_stem":33592,"_extension":20},"/en-us/blog/choosing-git-management-solution",{"title":33579,"description":33580,"ogTitle":33579,"ogDescription":33580,"noIndex":6,"ogImage":33581,"ogUrl":33582,"ogSiteName":995,"ogType":996,"canonicalUrls":33582,"schema":33583},"What to look for in a Git management solution","You've decided to make the move to Git. Now what?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671466/Blog/Hero%20Images/how-to-choose-a-git-management-system.jpg","https://about.gitlab.com/blog/choosing-git-management-solution","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What to look for in a Git management solution\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-04-20\",\n      }",{"title":33579,"description":33580,"authors":33585,"heroImage":33581,"date":33586,"category":8140},[17684],"2017-04-20",{"slug":33588,"featured":6,"template":736},"choosing-git-management-solution","content:en-us:blog:choosing-git-management-solution.yml","Choosing Git Management Solution","en-us/blog/choosing-git-management-solution.yml","en-us/blog/choosing-git-management-solution",{"_path":33594,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33595,"content":33601,"config":33604,"_id":33606,"_type":16,"title":33607,"_source":17,"_file":33608,"_stem":33609,"_extension":20},"/en-us/blog/how-innersourcing-can-help-your-security-team",{"title":33596,"description":33597,"ogTitle":33596,"ogDescription":33597,"noIndex":6,"ogImage":33598,"ogUrl":33599,"ogSiteName":995,"ogType":996,"canonicalUrls":33599,"schema":33600},"How innersourcing can help your security team","Security is a major concern during the development process — innersourcing can help.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749676117/Blog/Hero%20Images/data.png","https://about.gitlab.com/blog/how-innersourcing-can-help-your-security-team","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How innersourcing can help your security team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-04-19\",\n      }",{"title":33596,"description":33597,"authors":33602,"heroImage":33598,"date":33603,"category":8140},[20500],"2017-04-19",{"slug":33605,"featured":6,"template":736},"how-innersourcing-can-help-your-security-team","content:en-us:blog:how-innersourcing-can-help-your-security-team.yml","How Innersourcing Can Help Your Security Team","en-us/blog/how-innersourcing-can-help-your-security-team.yml","en-us/blog/how-innersourcing-can-help-your-security-team",{"_path":33611,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33612,"content":33618,"config":33621,"_id":33623,"_type":16,"title":33624,"_source":17,"_file":33625,"_stem":33626,"_extension":20},"/en-us/blog/cloud-native-demo",{"title":33613,"description":33614,"ogTitle":33613,"ogDescription":33614,"noIndex":6,"ogImage":33615,"ogUrl":33616,"ogSiteName":995,"ogType":996,"canonicalUrls":33616,"schema":33617},"Demo: cloud native development with GitLab","See how you can leverage the power of the cloud with GitLab 9.0.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671482/Blog/Hero%20Images/cloud-native-demo.png","https://about.gitlab.com/blog/cloud-native-demo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo: cloud native development with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-04-18\",\n      }",{"title":33613,"description":33614,"authors":33619,"heroImage":33615,"date":33620,"category":858},[17684],"2017-04-18",{"slug":33622,"featured":6,"template":736},"cloud-native-demo","content:en-us:blog:cloud-native-demo.yml","Cloud Native Demo","en-us/blog/cloud-native-demo.yml","en-us/blog/cloud-native-demo",{"_path":33628,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33629,"content":33635,"config":33638,"_id":33640,"_type":16,"title":33641,"_source":17,"_file":33642,"_stem":33643,"_extension":20},"/en-us/blog/ways-ci-cd-helps",{"title":33630,"description":33631,"ogTitle":33630,"ogDescription":33631,"noIndex":6,"ogImage":33632,"ogUrl":33633,"ogSiteName":995,"ogType":996,"canonicalUrls":33633,"schema":33634},"3 Ways CI/CD helps your team","CI/CD frees up your team to spend their time on developing features customers want.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671461/Blog/Hero%20Images/ways-ci-cd-helps.jpg","https://about.gitlab.com/blog/ways-ci-cd-helps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Ways CI/CD helps your team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-04-12\",\n      }",{"title":33630,"description":33631,"authors":33636,"heroImage":33632,"date":33637,"category":8140},[17684],"2017-04-12",{"slug":33639,"featured":6,"template":736},"ways-ci-cd-helps","content:en-us:blog:ways-ci-cd-helps.yml","Ways Ci Cd Helps","en-us/blog/ways-ci-cd-helps.yml","en-us/blog/ways-ci-cd-helps",{"_path":33645,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33646,"content":33651,"config":33655,"_id":33657,"_type":16,"title":33658,"_source":17,"_file":33659,"_stem":33660,"_extension":20},"/en-us/blog/introducing-subscriptions-on-gitlab-dot-com",{"title":33647,"description":33648,"ogTitle":33647,"ogDescription":33648,"noIndex":6,"ogImage":11046,"ogUrl":33649,"ogSiteName":995,"ogType":996,"canonicalUrls":33649,"schema":33650},"Introducing paid subscriptions on GitLab.com","Subscriptions and limits to private CI minutes on shared runners are coming to GitLab.com","https://about.gitlab.com/blog/introducing-subscriptions-on-gitlab-dot-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing paid subscriptions on GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Bartlett\"}],\n        \"datePublished\": \"2017-04-11\",\n      }",{"title":33647,"description":33648,"authors":33652,"heroImage":11046,"date":33654,"category":301},[33653],"Mike Bartlett","2017-04-11",{"slug":33656,"featured":6,"template":736},"introducing-subscriptions-on-gitlab-dot-com","content:en-us:blog:introducing-subscriptions-on-gitlab-dot-com.yml","Introducing Subscriptions On Gitlab Dot Com","en-us/blog/introducing-subscriptions-on-gitlab-dot-com.yml","en-us/blog/introducing-subscriptions-on-gitlab-dot-com",{"_path":33662,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33663,"content":33669,"config":33672,"_id":33674,"_type":16,"title":33675,"_source":17,"_file":33676,"_stem":33677,"_extension":20},"/en-us/blog/our-secret-to-tackling-thousands-of-open-issues",{"title":33664,"description":33665,"ogTitle":33664,"ogDescription":33665,"noIndex":6,"ogImage":33666,"ogUrl":33667,"ogSiteName":995,"ogType":996,"canonicalUrls":33667,"schema":33668},"3 Rules for tackling thousands of open issues","Keep your DevOps teams focused and productive with these three simple rules.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684021/Blog/Hero%20Images/how-our-engineers-tackle-thousands-of-open-issues.jpg","https://about.gitlab.com/blog/our-secret-to-tackling-thousands-of-open-issues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Rules for tackling thousands of open issues\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2017-04-10\",\n      }",{"title":33664,"description":33665,"authors":33670,"heroImage":33666,"date":33671,"category":6121},[29783],"2017-04-10",{"slug":33673,"featured":6,"template":736},"our-secret-to-tackling-thousands-of-open-issues","content:en-us:blog:our-secret-to-tackling-thousands-of-open-issues.yml","Our Secret To Tackling Thousands Of Open Issues","en-us/blog/our-secret-to-tackling-thousands-of-open-issues.yml","en-us/blog/our-secret-to-tackling-thousands-of-open-issues",{"_path":33679,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33680,"content":33686,"config":33689,"_id":33691,"_type":16,"title":33692,"_source":17,"_file":33693,"_stem":33694,"_extension":20},"/en-us/blog/why-collaboration-tools-matter",{"title":33681,"description":33682,"ogTitle":33681,"ogDescription":33682,"noIndex":6,"ogImage":33683,"ogUrl":33684,"ogSiteName":995,"ogType":996,"canonicalUrls":33684,"schema":33685},"Why collaboration tools matter more than ever","Nearly two-thirds of developers say that chat and collaboration tools are integral to their everyday work. Here’s why.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671447/Blog/Hero%20Images/collaboration-tools-matter.jpg","https://about.gitlab.com/blog/why-collaboration-tools-matter","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why collaboration tools matter more than ever\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-04-04\",\n      }",{"title":33681,"description":33682,"authors":33687,"heroImage":33683,"date":33688,"category":8140},[17684],"2017-04-04",{"slug":33690,"featured":6,"template":736},"why-collaboration-tools-matter","content:en-us:blog:why-collaboration-tools-matter.yml","Why Collaboration Tools Matter","en-us/blog/why-collaboration-tools-matter.yml","en-us/blog/why-collaboration-tools-matter",{"_path":33696,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33697,"content":33702,"config":33705,"_id":33707,"_type":16,"title":33708,"_source":17,"_file":33709,"_stem":33710,"_extension":20},"/en-us/blog/gitlab-in-action-part-2",{"title":33698,"description":33699,"ogTitle":33698,"ogDescription":33699,"noIndex":6,"ogImage":11643,"ogUrl":33700,"ogSiteName":995,"ogType":996,"canonicalUrls":33700,"schema":33701},"GitLab in action: Part 2","The conclusion to our six-month trip around the world!","https://about.gitlab.com/blog/gitlab-in-action-part-2","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab in action: Part 2\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Robert Speicher\"}],\n        \"datePublished\": \"2017-03-31\",\n      }",{"title":33698,"description":33699,"authors":33703,"heroImage":11643,"date":33704,"category":301},[18788],"2017-03-31",{"slug":33706,"featured":6,"template":736},"gitlab-in-action-part-2","content:en-us:blog:gitlab-in-action-part-2.yml","Gitlab In Action Part 2","en-us/blog/gitlab-in-action-part-2.yml","en-us/blog/gitlab-in-action-part-2",{"_path":33712,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33713,"content":33719,"config":33722,"_id":33724,"_type":16,"title":33725,"_source":17,"_file":33726,"_stem":33727,"_extension":20},"/en-us/blog/review-apps-continuous-case-study",{"title":33714,"description":33715,"ogTitle":33714,"ogDescription":33715,"noIndex":6,"ogImage":33716,"ogUrl":33717,"ogSiteName":995,"ogType":996,"canonicalUrls":33717,"schema":33718},"Complete, but never finished/:/ Review Apps","Find out how we used a continuous approach to release Review Apps early and improve on it in small iterations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671443/Blog/Hero%20Images/review_apps_cover.png","https://about.gitlab.com/blog/review-apps-continuous-case-study","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Complete, but never finished/:/ Review Apps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-03-21\",\n      }",{"title":33714,"description":33715,"authors":33720,"heroImage":33716,"date":33721,"category":8140},[17684],"2017-03-21",{"slug":33723,"featured":6,"template":736},"review-apps-continuous-case-study","content:en-us:blog:review-apps-continuous-case-study.yml","Review Apps Continuous Case Study","en-us/blog/review-apps-continuous-case-study.yml","en-us/blog/review-apps-continuous-case-study",{"_path":33729,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33730,"content":33736,"config":33739,"_id":33741,"_type":16,"title":33742,"_source":17,"_file":33743,"_stem":33744,"_extension":20},"/en-us/blog/demo-mastering-code-review-with-gitlab",{"title":33731,"description":33732,"ogTitle":33731,"ogDescription":33732,"noIndex":6,"ogImage":33733,"ogUrl":33734,"ogSiteName":995,"ogType":996,"canonicalUrls":33734,"schema":33735},"Demo: Mastering code review with GitLab","Code review shouldn't be a burden, it should make your team better and faster so you can keep delivering new features on time.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670664/Blog/Hero%20Images/code.png","https://about.gitlab.com/blog/demo-mastering-code-review-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo: Mastering code review with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-03-17\",\n      }",{"title":33731,"description":33732,"authors":33737,"heroImage":33733,"date":33738,"category":6121},[20500],"2017-03-17",{"slug":33740,"featured":6,"template":736},"demo-mastering-code-review-with-gitlab","content:en-us:blog:demo-mastering-code-review-with-gitlab.yml","Demo Mastering Code Review With Gitlab","en-us/blog/demo-mastering-code-review-with-gitlab.yml","en-us/blog/demo-mastering-code-review-with-gitlab",{"_path":33746,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33747,"content":33753,"config":33756,"_id":33758,"_type":16,"title":33759,"_source":17,"_file":33760,"_stem":33761,"_extension":20},"/en-us/blog/how-is-team-member-1-doing",{"title":33748,"description":33749,"ogTitle":33748,"ogDescription":33749,"noIndex":6,"ogImage":33750,"ogUrl":33751,"ogSiteName":995,"ogType":996,"canonicalUrls":33751,"schema":33752},"How is team-member-1 doing?","People asked how team-member-1 is doing after the DB incident of Jan 31st - Feb 1st. We're here to tell you that.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666665/Blog/Hero%20Images/man-standing.jpg","https://about.gitlab.com/blog/how-is-team-member-1-doing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How is team-member-1 doing?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2017-03-17\",\n      }",{"title":33748,"description":33749,"authors":33754,"heroImage":33750,"date":33738,"category":301},[33755],"Marcia Ramos",{"slug":33757,"featured":6,"template":736},"how-is-team-member-1-doing","content:en-us:blog:how-is-team-member-1-doing.yml","How Is Team Member 1 Doing","en-us/blog/how-is-team-member-1-doing.yml","en-us/blog/how-is-team-member-1-doing",{"_path":33763,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33764,"content":33770,"config":33773,"_id":33775,"_type":16,"title":33776,"_source":17,"_file":33777,"_stem":33778,"_extension":20},"/en-us/blog/gitter-acquisition",{"title":33765,"description":33766,"ogTitle":33765,"ogDescription":33766,"noIndex":6,"ogImage":33767,"ogUrl":33768,"ogSiteName":995,"ogType":996,"canonicalUrls":33768,"schema":33769},"Gitter is joining the GitLab team","We're excited to announce that Gitter has been acquired by GitLab!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684005/Blog/Hero%20Images/gitter-gitlab-blog-cover.png","https://about.gitlab.com/blog/gitter-acquisition","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Gitter is joining the GitLab team\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2017-03-15\",\n      }",{"title":33765,"description":33766,"authors":33771,"heroImage":33767,"date":33772,"category":301},[3701],"2017-03-15",{"slug":33774,"featured":6,"template":736},"gitter-acquisition","content:en-us:blog:gitter-acquisition.yml","Gitter Acquisition","en-us/blog/gitter-acquisition.yml","en-us/blog/gitter-acquisition",{"_path":33780,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33781,"content":33787,"config":33791,"_id":33793,"_type":16,"title":33794,"_source":17,"_file":33795,"_stem":33796,"_extension":20},"/en-us/blog/axosoft-launches-gitkraken-integration-with-gitlab",{"title":33782,"description":33783,"ogTitle":33782,"ogDescription":33783,"noIndex":6,"ogImage":33784,"ogUrl":33785,"ogSiteName":995,"ogType":996,"canonicalUrls":33785,"schema":33786},"Axosoft launches GitKraken integration with GitLab","Manage GitLab repositories directly from GitKraken — get a 20% discount on GitKraken Pro","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684119/Blog/Hero%20Images/gitlab-gitkraken-cover-image.png","https://about.gitlab.com/blog/axosoft-launches-gitkraken-integration-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Axosoft launches GitKraken integration with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"John Sparrow\"}],\n        \"datePublished\": \"2017-03-14\",\n      }",{"title":33782,"description":33783,"authors":33788,"heroImage":33784,"date":33790,"category":301},[33789],"John Sparrow","2017-03-14",{"slug":33792,"featured":6,"template":736},"axosoft-launches-gitkraken-integration-with-gitlab","content:en-us:blog:axosoft-launches-gitkraken-integration-with-gitlab.yml","Axosoft Launches Gitkraken Integration With Gitlab","en-us/blog/axosoft-launches-gitkraken-integration-with-gitlab.yml","en-us/blog/axosoft-launches-gitkraken-integration-with-gitlab",{"_path":33798,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33799,"content":33805,"config":33807,"_id":33809,"_type":16,"title":33810,"_source":17,"_file":33811,"_stem":33812,"_extension":20},"/en-us/blog/buffer-and-gitlab-ceos-talk-transparency",{"title":33800,"description":33801,"ogTitle":33800,"ogDescription":33801,"noIndex":6,"ogImage":33802,"ogUrl":33803,"ogSiteName":995,"ogType":996,"canonicalUrls":33803,"schema":33804},"GitLab & Buffer CEOs talk transparency at scale","The two transparency advocates recently met to talk about openness in business, what they keep confidential, and some things they've learned as their companies grow.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683999/Blog/Hero%20Images/ee-products-hero-image.jpg","https://about.gitlab.com/blog/buffer-and-gitlab-ceos-talk-transparency","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab & Buffer CEOs talk transparency at scale\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-03-14\",\n      }",{"title":33800,"description":33801,"authors":33806,"heroImage":33802,"date":33790,"category":6121},[20500],{"slug":33808,"featured":6,"template":736},"buffer-and-gitlab-ceos-talk-transparency","content:en-us:blog:buffer-and-gitlab-ceos-talk-transparency.yml","Buffer And Gitlab Ceos Talk Transparency","en-us/blog/buffer-and-gitlab-ceos-talk-transparency.yml","en-us/blog/buffer-and-gitlab-ceos-talk-transparency",{"_path":33814,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33815,"content":33820,"config":33823,"_id":33825,"_type":16,"title":33826,"_source":17,"_file":33827,"_stem":33828,"_extension":20},"/en-us/blog/ci-cd-demo",{"title":33816,"description":33817,"ogTitle":33816,"ogDescription":33817,"noIndex":6,"ogImage":9813,"ogUrl":33818,"ogSiteName":995,"ogType":996,"canonicalUrls":33818,"schema":33819},"Demo: CI/CD with GitLab in action","Watch our video to see how to get started using CI/CD with GitLab.","https://about.gitlab.com/blog/ci-cd-demo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Demo: CI/CD with GitLab in action\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-03-13\",\n      }",{"title":33816,"description":33817,"authors":33821,"heroImage":9813,"date":33822,"category":858},[17684],"2017-03-13",{"slug":33824,"featured":6,"template":736},"ci-cd-demo","content:en-us:blog:ci-cd-demo.yml","Ci Cd Demo","en-us/blog/ci-cd-demo.yml","en-us/blog/ci-cd-demo",{"_path":33830,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33831,"content":33837,"config":33840,"_id":33842,"_type":16,"title":33843,"_source":17,"_file":33844,"_stem":33845,"_extension":20},"/en-us/blog/your-engineers-need-to-understand-your-business-heres-why",{"title":33832,"description":33833,"ogTitle":33832,"ogDescription":33833,"noIndex":6,"ogImage":33834,"ogUrl":33835,"ogSiteName":995,"ogType":996,"canonicalUrls":33835,"schema":33836},"Invite your engineers to talk business. Here's why.","Traditionally, engineers may have been shielded from the \"business parts\" of the organization. In today’s technology landscape, that’s no longer a viable option.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683990/Blog/Hero%20Images/invite-your-engineers-to-talk-business-heres-why.jpg","https://about.gitlab.com/blog/your-engineers-need-to-understand-your-business-heres-why","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Invite your engineers to talk business. Here's why.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"}],\n        \"datePublished\": \"2017-03-07\",\n      }",{"title":33832,"description":33833,"authors":33838,"heroImage":33834,"date":33839,"category":8140},[28472],"2017-03-07",{"slug":33841,"featured":6,"template":736},"your-engineers-need-to-understand-your-business-heres-why","content:en-us:blog:your-engineers-need-to-understand-your-business-heres-why.yml","Your Engineers Need To Understand Your Business Heres Why","en-us/blog/your-engineers-need-to-understand-your-business-heres-why.yml","en-us/blog/your-engineers-need-to-understand-your-business-heres-why",{"_path":33847,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33848,"content":33853,"config":33856,"_id":33858,"_type":16,"title":33859,"_source":17,"_file":33860,"_stem":33861,"_extension":20},"/en-us/blog/introduce-continuous-workflows",{"title":33849,"description":33850,"ogTitle":33849,"ogDescription":33850,"noIndex":6,"ogImage":11874,"ogUrl":33851,"ogSiteName":995,"ogType":996,"canonicalUrls":33851,"schema":33852},"3 Tips for introducing continuous workflows to your development process","Continuous doesn’t stop at integration – here's how to use it to your advantage throughout your development process.","https://about.gitlab.com/blog/introduce-continuous-workflows","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 Tips for introducing continuous workflows to your development process\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-03-06\",\n      }",{"title":33849,"description":33850,"authors":33854,"heroImage":11874,"date":33855,"category":6121},[17684],"2017-03-06",{"slug":33857,"featured":6,"template":736},"introduce-continuous-workflows","content:en-us:blog:introduce-continuous-workflows.yml","Introduce Continuous Workflows","en-us/blog/introduce-continuous-workflows.yml","en-us/blog/introduce-continuous-workflows",{"_path":33863,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33864,"content":33869,"config":33873,"_id":33875,"_type":16,"title":33876,"_source":17,"_file":33877,"_stem":33878,"_extension":20},"/en-us/blog/why-choose-open-source",{"title":33865,"description":33866,"ogTitle":33865,"ogDescription":33866,"noIndex":6,"ogImage":14293,"ogUrl":33867,"ogSiteName":995,"ogType":996,"canonicalUrls":33867,"schema":33868},"Why more companies are adopting open source technology","The results are in – our 2016 Global Developer Survey revealed that open source tools are most preferred by developers the world over. Why?","https://about.gitlab.com/blog/why-choose-open-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why more companies are adopting open source technology\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-03-03\",\n      }",{"title":33865,"description":33866,"authors":33870,"heroImage":14293,"date":33871,"category":1388,"tags":33872},[17684],"2017-03-03",[1265],{"slug":33874,"featured":6,"template":736},"why-choose-open-source","content:en-us:blog:why-choose-open-source.yml","Why Choose Open Source","en-us/blog/why-choose-open-source.yml","en-us/blog/why-choose-open-source",{"_path":33880,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33881,"content":33886,"config":33890,"_id":33892,"_type":16,"title":33893,"_source":17,"_file":33894,"_stem":33895,"_extension":20},"/en-us/blog/why-we-are-not-leaving-the-cloud",{"title":33882,"description":33883,"ogTitle":33882,"ogDescription":33883,"noIndex":6,"ogImage":11046,"ogUrl":33884,"ogSiteName":995,"ogType":996,"canonicalUrls":33884,"schema":33885},"Why we are not leaving the cloud","What we learned from our community vetting our proposal to leave the cloud.","https://about.gitlab.com/blog/why-we-are-not-leaving-the-cloud","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we are not leaving the cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean Packham\"}],\n        \"datePublished\": \"2017-03-02\",\n      }",{"title":33882,"description":33883,"authors":33887,"heroImage":11046,"date":33889,"category":858},[33888],"Sean Packham","2017-03-02",{"slug":33891,"featured":6,"template":736},"why-we-are-not-leaving-the-cloud","content:en-us:blog:why-we-are-not-leaving-the-cloud.yml","Why We Are Not Leaving The Cloud","en-us/blog/why-we-are-not-leaving-the-cloud.yml","en-us/blog/why-we-are-not-leaving-the-cloud",{"_path":33897,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33898,"content":33903,"config":33906,"_id":33908,"_type":16,"title":33909,"_source":17,"_file":33910,"_stem":33911,"_extension":20},"/en-us/blog/developers-crave-modern-tools",{"title":33899,"description":33900,"ogTitle":33899,"ogDescription":33900,"noIndex":6,"ogImage":13361,"ogUrl":33901,"ogSiteName":995,"ogType":996,"canonicalUrls":33901,"schema":33902},"The secret to developer happiness? Use better tools","The way developers work has changed, and they’re opting to leave behind outdated tools.","https://about.gitlab.com/blog/developers-crave-modern-tools","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The secret to developer happiness? Use better tools\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-02-27\",\n      }",{"title":33899,"description":33900,"authors":33904,"heroImage":13361,"date":33905,"category":8140},[20500],"2017-02-27",{"slug":33907,"featured":6,"template":736},"developers-crave-modern-tools","content:en-us:blog:developers-crave-modern-tools.yml","Developers Crave Modern Tools","en-us/blog/developers-crave-modern-tools.yml","en-us/blog/developers-crave-modern-tools",{"_path":33913,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33914,"content":33920,"config":33923,"_id":33925,"_type":16,"title":33926,"_source":17,"_file":33927,"_stem":33928,"_extension":20},"/en-us/blog/how-our-ux-team-worked-through-ideation-using-the-four-step-sketch",{"title":33915,"description":33916,"ogTitle":33915,"ogDescription":33916,"noIndex":6,"ogImage":33917,"ogUrl":33918,"ogSiteName":995,"ogType":996,"canonicalUrls":33918,"schema":33919},"How our UX team worked through ideation using the Four-Step Sketch","During our recent Summit, the UX team customized the Google Ventures Design Sprint process to tackle some of our larger feature proposals.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684097/Blog/Hero%20Images/facilitating-ideas--overview.jpg","https://about.gitlab.com/blog/how-our-ux-team-worked-through-ideation-using-the-four-step-sketch","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How our UX team worked through ideation using the Four-Step Sketch\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2017-02-23\",\n      }",{"title":33915,"description":33916,"authors":33921,"heroImage":33917,"date":33922,"category":858},[18295],"2017-02-23",{"slug":33924,"featured":6,"template":736},"how-our-ux-team-worked-through-ideation-using-the-four-step-sketch","content:en-us:blog:how-our-ux-team-worked-through-ideation-using-the-four-step-sketch.yml","How Our Ux Team Worked Through Ideation Using The Four Step Sketch","en-us/blog/how-our-ux-team-worked-through-ideation-using-the-four-step-sketch.yml","en-us/blog/how-our-ux-team-worked-through-ideation-using-the-four-step-sketch",{"_path":33930,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33931,"content":33937,"config":33940,"_id":33942,"_type":16,"title":33943,"_source":17,"_file":33944,"_stem":33945,"_extension":20},"/en-us/blog/ci-integral-to-everyday-work",{"title":33932,"description":33933,"ogTitle":33932,"ogDescription":33933,"noIndex":6,"ogImage":33934,"ogUrl":33935,"ogSiteName":995,"ogType":996,"canonicalUrls":33935,"schema":33936},"Continuous integration: A tool developers expect","77% of developers say Continuous Integration is integral to their everyday work – we break down what that means.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671420/Blog/Hero%20Images/ci-nice-to-have-post.png","https://about.gitlab.com/blog/ci-integral-to-everyday-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Continuous integration: A tool developers expect\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-02-22\",\n      }",{"title":33932,"description":33933,"authors":33938,"heroImage":33934,"date":33939,"category":8140},[17684],"2017-02-22",{"slug":33941,"featured":6,"template":736},"ci-integral-to-everyday-work","content:en-us:blog:ci-integral-to-everyday-work.yml","Ci Integral To Everyday Work","en-us/blog/ci-integral-to-everyday-work.yml","en-us/blog/ci-integral-to-everyday-work",{"_path":33947,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33948,"content":33954,"config":33957,"_id":33959,"_type":16,"title":33960,"_source":17,"_file":33961,"_stem":33962,"_extension":20},"/en-us/blog/our-retrospective-and-kickoff-are-public",{"title":33949,"description":33950,"ogTitle":33949,"ogDescription":33950,"noIndex":6,"ogImage":33951,"ogUrl":33952,"ogSiteName":995,"ogType":996,"canonicalUrls":33952,"schema":33953},"Our retrospectives and kickoffs are now public","GitLab's release retrospectives and kickoffs are now open to our community!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684092/Blog/Hero%20Images/drone-camera.png","https://about.gitlab.com/blog/our-retrospective-and-kickoff-are-public","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our retrospectives and kickoffs are now public\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rémy Coutable\"}],\n        \"datePublished\": \"2017-02-14\",\n      }",{"title":33949,"description":33950,"authors":33955,"heroImage":33951,"date":33956,"category":301},[20144],"2017-02-14",{"slug":33958,"featured":6,"template":736},"our-retrospective-and-kickoff-are-public","content:en-us:blog:our-retrospective-and-kickoff-are-public.yml","Our Retrospective And Kickoff Are Public","en-us/blog/our-retrospective-and-kickoff-are-public.yml","en-us/blog/our-retrospective-and-kickoff-are-public",{"_path":33964,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33965,"content":33971,"config":33974,"_id":33976,"_type":16,"title":33977,"_source":17,"_file":33978,"_stem":33979,"_extension":20},"/en-us/blog/gitlab-issue-bash-march-2017",{"title":33966,"description":33967,"ogTitle":33966,"ogDescription":33967,"noIndex":6,"ogImage":33968,"ogUrl":33969,"ogSiteName":995,"ogType":996,"canonicalUrls":33969,"schema":33970},"Join GitLab's March 2017 Issue Bash","We're on a mission to blitz GitLab's open issues and we need your help!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671105/Blog/Hero%20Images/gitlab-issue-bash-march-2017-cover.png","https://about.gitlab.com/blog/gitlab-issue-bash-march-2017","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join GitLab's March 2017 Issue Bash\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2017-02-10\",\n      }",{"title":33966,"description":33967,"authors":33972,"heroImage":33968,"date":33973,"category":301},[33755],"2017-02-10",{"slug":33975,"featured":6,"template":736},"gitlab-issue-bash-march-2017","content:en-us:blog:gitlab-issue-bash-march-2017.yml","Gitlab Issue Bash March 2017","en-us/blog/gitlab-issue-bash-march-2017.yml","en-us/blog/gitlab-issue-bash-march-2017",{"_path":33981,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33982,"content":33987,"config":33989,"_id":33991,"_type":16,"title":33992,"_source":17,"_file":33993,"_stem":33994,"_extension":20},"/en-us/blog/postmortem-of-database-outage-of-january-31",{"title":33983,"description":33984,"ogTitle":33983,"ogDescription":33984,"noIndex":6,"ogImage":11046,"ogUrl":33985,"ogSiteName":995,"ogType":996,"canonicalUrls":33985,"schema":33986},"Postmortem of database outage of January 31","Postmortem on the database outage of January 31 2017 with the lessons we learned.","https://about.gitlab.com/blog/postmortem-of-database-outage-of-january-31","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Postmortem of database outage of January 31\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2017-02-10\",\n      }",{"title":33983,"description":33984,"authors":33988,"heroImage":11046,"date":33973,"category":301},[1000],{"slug":33990,"featured":6,"template":736},"postmortem-of-database-outage-of-january-31","content:en-us:blog:postmortem-of-database-outage-of-january-31.yml","Postmortem Of Database Outage Of January 31","en-us/blog/postmortem-of-database-outage-of-january-31.yml","en-us/blog/postmortem-of-database-outage-of-january-31",{"_path":33996,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":33997,"content":34003,"config":34007,"_id":34009,"_type":16,"title":34010,"_source":17,"_file":34011,"_stem":34012,"_extension":20},"/en-us/blog/gitlab-mexico-summit-2017",{"title":33998,"description":33999,"ogTitle":33998,"ogDescription":33999,"noIndex":6,"ogImage":34000,"ogUrl":34001,"ogSiteName":995,"ogType":996,"canonicalUrls":34001,"schema":34002},"GitLab Mexico Summit 2017","The largest remote-only organization in the world takes over Cancún for a week full of joy!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671507/Blog/Hero%20Images/akumal.jpg","https://about.gitlab.com/blog/gitlab-mexico-summit-2017","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Mexico Summit 2017\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kirsten Abma\"}],\n        \"datePublished\": \"2017-02-08\",\n      }",{"title":33998,"description":33999,"authors":34004,"heroImage":34000,"date":34006,"category":301},[34005],"Kirsten Abma","2017-02-08",{"slug":34008,"featured":6,"template":736},"gitlab-mexico-summit-2017","content:en-us:blog:gitlab-mexico-summit-2017.yml","Gitlab Mexico Summit 2017","en-us/blog/gitlab-mexico-summit-2017.yml","en-us/blog/gitlab-mexico-summit-2017",{"_path":34014,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34015,"content":34020,"config":34023,"_id":34025,"_type":16,"title":34026,"_source":17,"_file":34027,"_stem":34028,"_extension":20},"/en-us/blog/setting-up-gitlab-pages-with-cloudflare-certificates",{"title":34016,"description":34017,"ogTitle":34016,"ogDescription":34017,"noIndex":6,"ogImage":10220,"ogUrl":34018,"ogSiteName":995,"ogType":996,"canonicalUrls":34018,"schema":34019},"Setting up GitLab Pages with Cloudflare Certificates","How to set up GitLab Pages with a Cloudflare SSL/TLS Certificate for your (sub)domain","https://about.gitlab.com/blog/setting-up-gitlab-pages-with-cloudflare-certificates","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Setting up GitLab Pages with Cloudflare Certificates\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2017-02-07\",\n      }",{"title":34016,"description":34017,"authors":34021,"heroImage":10220,"date":34022,"category":858},[33755],"2017-02-07",{"slug":34024,"featured":6,"template":736},"setting-up-gitlab-pages-with-cloudflare-certificates","content:en-us:blog:setting-up-gitlab-pages-with-cloudflare-certificates.yml","Setting Up Gitlab Pages With Cloudflare Certificates","en-us/blog/setting-up-gitlab-pages-with-cloudflare-certificates.yml","en-us/blog/setting-up-gitlab-pages-with-cloudflare-certificates",{"_path":34030,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34031,"content":34037,"config":34040,"_id":34042,"_type":16,"title":34043,"_source":17,"_file":34044,"_stem":34045,"_extension":20},"/en-us/blog/vue-big-plan",{"title":34032,"description":34033,"ogTitle":34032,"ogDescription":34033,"noIndex":6,"ogImage":34034,"ogUrl":34035,"ogSiteName":995,"ogType":996,"canonicalUrls":34035,"schema":34036},"Our big Frontend plan revealed","Our long term plan to make GitLab as fast and performant as possible with Vue and webpack.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683983/Blog/Hero%20Images/vue-big-plan-cover.png","https://about.gitlab.com/blog/vue-big-plan","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our big Frontend plan revealed\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2017-02-06\",\n      }",{"title":34032,"description":34033,"authors":34038,"heroImage":34034,"date":34039,"category":858},[29783],"2017-02-06",{"slug":34041,"featured":6,"template":736},"vue-big-plan","content:en-us:blog:vue-big-plan.yml","Vue Big Plan","en-us/blog/vue-big-plan.yml","en-us/blog/vue-big-plan",{"_path":34047,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34048,"content":34053,"config":34056,"_id":34058,"_type":16,"title":34059,"_source":17,"_file":34060,"_stem":34061,"_extension":20},"/en-us/blog/gitlab-dot-com-database-incident",{"title":34049,"description":34050,"ogTitle":34049,"ogDescription":34050,"noIndex":6,"ogImage":11046,"ogUrl":34051,"ogSiteName":995,"ogType":996,"canonicalUrls":34051,"schema":34052},"GitLab.com database incident","Yesterday we had a serious incident with one of our databases. We lost six hours of database data (issues, merge requests, users, comments, snippets, etc.) for GitLab.com.","https://about.gitlab.com/blog/gitlab-dot-com-database-incident","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com database incident\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2017-02-01\",\n      }",{"title":34049,"description":34050,"authors":34054,"heroImage":11046,"date":34055,"category":858},[1000],"2017-02-01",{"slug":34057,"featured":6,"template":736},"gitlab-dot-com-database-incident","content:en-us:blog:gitlab-dot-com-database-incident.yml","Gitlab Dot Com Database Incident","en-us/blog/gitlab-dot-com-database-incident.yml","en-us/blog/gitlab-dot-com-database-incident",{"_path":34063,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34064,"content":34070,"config":34073,"_id":34075,"_type":16,"title":34076,"_source":17,"_file":34077,"_stem":34078,"_extension":20},"/en-us/blog/around-the-world-in-6-releases",{"title":34065,"description":34066,"ogTitle":34065,"ogDescription":34066,"noIndex":6,"ogImage":34067,"ogUrl":34068,"ogSiteName":995,"ogType":996,"canonicalUrls":34068,"schema":34069},"Around the world in 6 releases","Two GitLab team-members spent 6 months visiting and working with 49 different colleagues in 14 countries","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684126/Blog/Hero%20Images/cover.png","https://about.gitlab.com/blog/around-the-world-in-6-releases","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Around the world in 6 releases\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Douwe Maan\"}],\n        \"datePublished\": \"2017-01-31\",\n      }",{"title":34065,"description":34066,"authors":34071,"heroImage":34067,"date":34072,"category":301},[21843],"2017-01-31",{"slug":34074,"featured":6,"template":736},"around-the-world-in-6-releases","content:en-us:blog:around-the-world-in-6-releases.yml","Around The World In 6 Releases","en-us/blog/around-the-world-in-6-releases.yml","en-us/blog/around-the-world-in-6-releases",{"_path":34080,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34081,"content":34087,"config":34090,"_id":34092,"_type":16,"title":34093,"_source":17,"_file":34094,"_stem":34095,"_extension":20},"/en-us/blog/getting-started-with-git-lfs-tutorial",{"title":34082,"description":34083,"ogTitle":34082,"ogDescription":34083,"noIndex":6,"ogImage":34084,"ogUrl":34085,"ogSiteName":995,"ogType":996,"canonicalUrls":34085,"schema":34086},"Getting started with Git LFS","Managing large files efficiently with Git LFS","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683977/Blog/Hero%20Images/lfs-website.png","https://about.gitlab.com/blog/getting-started-with-git-lfs-tutorial","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with Git LFS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tobias Günther\"}],\n        \"datePublished\": \"2017-01-30\",\n      }",{"title":34082,"description":34083,"authors":34088,"heroImage":34084,"date":34089,"category":858},[19261],"2017-01-30",{"slug":34091,"featured":6,"template":736},"getting-started-with-git-lfs-tutorial","content:en-us:blog:getting-started-with-git-lfs-tutorial.yml","Getting Started With Git Lfs Tutorial","en-us/blog/getting-started-with-git-lfs-tutorial.yml","en-us/blog/getting-started-with-git-lfs-tutorial",{"_path":34097,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34098,"content":34104,"config":34107,"_id":34109,"_type":16,"title":34110,"_source":17,"_file":34111,"_stem":34112,"_extension":20},"/en-us/blog/codepen-welcome-to-gitlab",{"title":34099,"description":34100,"ogTitle":34099,"ogDescription":34100,"noIndex":6,"ogImage":34101,"ogUrl":34102,"ogSiteName":995,"ogType":996,"canonicalUrls":34102,"schema":34103},"CodePen, welcome to GitLab!","Yes, it's worth it - CodePen has moved to GitLab!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666619/Blog/Hero%20Images/codepen-welcome-to-gitlab-cover.png","https://about.gitlab.com/blog/codepen-welcome-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"CodePen, welcome to GitLab!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2017-01-27\",\n      }",{"title":34099,"description":34100,"authors":34105,"heroImage":34101,"date":34106,"category":1388},[33755],"2017-01-27",{"slug":34108,"featured":6,"template":736},"codepen-welcome-to-gitlab","content:en-us:blog:codepen-welcome-to-gitlab.yml","Codepen Welcome To Gitlab","en-us/blog/codepen-welcome-to-gitlab.yml","en-us/blog/codepen-welcome-to-gitlab",{"_path":34114,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34115,"content":34121,"config":34124,"_id":34126,"_type":16,"title":34127,"_source":17,"_file":34128,"_stem":34129,"_extension":20},"/en-us/blog/designing-for-the-modern-developer-recap",{"title":34116,"description":34117,"ogTitle":34116,"ogDescription":34117,"noIndex":6,"ogImage":34118,"ogUrl":34119,"ogSiteName":995,"ogType":996,"canonicalUrls":34119,"schema":34120},"Designing for the modern developer","Recap and recording from our recent webcast featuring the GitLab user experience (UX) team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683970/Blog/Hero%20Images/designing-for-the-modern-developer.jpg","https://about.gitlab.com/blog/designing-for-the-modern-developer-recap","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Designing for the modern developer\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2017-01-24\",\n      }",{"title":34116,"description":34117,"authors":34122,"heroImage":34118,"date":34123,"category":858},[20500],"2017-01-24",{"slug":34125,"featured":6,"template":736},"designing-for-the-modern-developer-recap","content:en-us:blog:designing-for-the-modern-developer-recap.yml","Designing For The Modern Developer Recap","en-us/blog/designing-for-the-modern-developer-recap.yml","en-us/blog/designing-for-the-modern-developer-recap",{"_path":34131,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34132,"content":34137,"config":34140,"_id":34142,"_type":16,"title":34143,"_source":17,"_file":34144,"_stem":34145,"_extension":20},"/en-us/blog/gitlab-2016-year-in-review",{"title":34133,"description":34134,"ogTitle":34133,"ogDescription":34134,"noIndex":6,"ogImage":33564,"ogUrl":34135,"ogSiteName":995,"ogType":996,"canonicalUrls":34135,"schema":34136},"GitLab 2016 year in review","We’re proud to announce that we closed 2016 with the entire idea-to-production workflow, as promised! These are the highlights!","https://about.gitlab.com/blog/gitlab-2016-year-in-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 2016 year in review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Connor Shea\"}],\n        \"datePublished\": \"2017-01-24\",\n      }",{"title":34133,"description":34134,"authors":34138,"heroImage":33564,"date":34123,"category":301},[34139],"Connor Shea",{"slug":34141,"featured":6,"template":736},"gitlab-2016-year-in-review","content:en-us:blog:gitlab-2016-year-in-review.yml","Gitlab 2016 Year In Review","en-us/blog/gitlab-2016-year-in-review.yml","en-us/blog/gitlab-2016-year-in-review",{"_path":34147,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34148,"content":34154,"config":34157,"_id":34159,"_type":16,"title":34160,"_source":17,"_file":34161,"_stem":34162,"_extension":20},"/en-us/blog/video-tutorial-idea-to-production-on-google-container-engine-gke",{"title":34149,"description":34150,"ogTitle":34149,"ogDescription":34150,"noIndex":6,"ogImage":34151,"ogUrl":34152,"ogSiteName":995,"ogType":996,"canonicalUrls":34152,"schema":34153},"Video tutorial: Idea to Production on Google Kubernetes Engine (GKE)","Watch the complete video tutorial to find out how you can take your team's productivity to the next level.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671572/Blog/Hero%20Images/idea-to-production-gke.jpg","https://about.gitlab.com/blog/video-tutorial-idea-to-production-on-google-container-engine-gke","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Video tutorial: Idea to Production on Google Kubernetes Engine (GKE)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean Packham\"}],\n        \"datePublished\": \"2017-01-23\",\n      }",{"title":34149,"description":34150,"authors":34155,"heroImage":34151,"date":34156,"category":858},[33888],"2017-01-23",{"slug":34158,"featured":6,"template":736},"video-tutorial-idea-to-production-on-google-container-engine-gke","content:en-us:blog:video-tutorial-idea-to-production-on-google-container-engine-gke.yml","Video Tutorial Idea To Production On Google Container Engine Gke","en-us/blog/video-tutorial-idea-to-production-on-google-container-engine-gke.yml","en-us/blog/video-tutorial-idea-to-production-on-google-container-engine-gke",{"_path":34164,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34165,"content":34171,"config":34174,"_id":34176,"_type":16,"title":34177,"_source":17,"_file":34178,"_stem":34179,"_extension":20},"/en-us/blog/gitlab-tower-integration-coupon-code",{"title":34166,"description":34167,"ogTitle":34166,"ogDescription":34167,"noIndex":6,"ogImage":34168,"ogUrl":34169,"ogSiteName":995,"ogType":996,"canonicalUrls":34169,"schema":34170},"Tower launches GitLab integration on Windows","Windows users can now manage their GitLab accounts right within Tower – give it a try with 20% off.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671402/Blog/Hero%20Images/gitlab-tower-integration-puzzle.jpg","https://about.gitlab.com/blog/gitlab-tower-integration-coupon-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tower launches GitLab integration on Windows\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2017-01-20\",\n      }",{"title":34166,"description":34167,"authors":34172,"heroImage":34168,"date":34173,"category":301},[17684],"2017-01-20",{"slug":34175,"featured":6,"template":736},"gitlab-tower-integration-coupon-code","content:en-us:blog:gitlab-tower-integration-coupon-code.yml","Gitlab Tower Integration Coupon Code","en-us/blog/gitlab-tower-integration-coupon-code.yml","en-us/blog/gitlab-tower-integration-coupon-code",{"_path":34181,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34182,"content":34187,"config":34190,"_id":34192,"_type":16,"title":34193,"_source":17,"_file":34194,"_stem":34195,"_extension":20},"/en-us/blog/product-update",{"title":34183,"description":34184,"ogTitle":34183,"ogDescription":34184,"noIndex":6,"ogImage":11046,"ogUrl":34185,"ogSiteName":995,"ogType":996,"canonicalUrls":34185,"schema":34186},"Functional Group Update: Product","Watch the recording from our Product team update.","https://about.gitlab.com/blog/product-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Functional Group Update: Product\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2017-01-19\",\n      }",{"title":34183,"description":34184,"authors":34188,"heroImage":11046,"date":34189,"category":301},[27004],"2017-01-19",{"slug":34191,"featured":6,"template":736},"product-update","content:en-us:blog:product-update.yml","Product Update","en-us/blog/product-update.yml","en-us/blog/product-update",{"_path":34197,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34198,"content":34204,"config":34207,"_id":34209,"_type":16,"title":34210,"_source":17,"_file":34211,"_stem":34212,"_extension":20},"/en-us/blog/the-importance-of-ux-personas",{"title":34199,"description":34200,"ogTitle":34199,"ogDescription":34200,"noIndex":6,"ogImage":34201,"ogUrl":34202,"ogSiteName":995,"ogType":996,"canonicalUrls":34202,"schema":34203},"Why we use personas in product development","Our User Experience (UX) Researcher explains what personas are and how they change the way teams work","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683959/Blog/Hero%20Images/the-importance-of-ux-personas.jpg","https://about.gitlab.com/blog/the-importance-of-ux-personas","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we use personas in product development\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sarah O’Donnell\"}],\n        \"datePublished\": \"2017-01-09\",\n      }",{"title":34199,"description":34200,"authors":34205,"heroImage":34201,"date":34206,"category":858},[26717],"2017-01-09",{"slug":34208,"featured":6,"template":736},"the-importance-of-ux-personas","content:en-us:blog:the-importance-of-ux-personas.yml","The Importance Of Ux Personas","en-us/blog/the-importance-of-ux-personas.yml","en-us/blog/the-importance-of-ux-personas",{"_path":34214,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34215,"content":34221,"config":34224,"_id":34226,"_type":16,"title":34227,"_source":17,"_file":34228,"_stem":34229,"_extension":20},"/en-us/blog/prometheus-and-gitlab",{"title":34216,"description":34217,"ogTitle":34216,"ogDescription":34217,"noIndex":6,"ogImage":34218,"ogUrl":34219,"ogSiteName":995,"ogType":996,"canonicalUrls":34219,"schema":34220},"Prometheus and GitLab","Completing the application lifecycle with monitoring","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677903/Blog/Hero%20Images/data.png","https://about.gitlab.com/blog/prometheus-and-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Prometheus and GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Pundsack\"}],\n        \"datePublished\": \"2017-01-05\",\n      }",{"title":34216,"description":34217,"authors":34222,"heroImage":34218,"date":34223,"category":301},[24243],"2017-01-05",{"slug":34225,"featured":6,"template":736},"prometheus-and-gitlab","content:en-us:blog:prometheus-and-gitlab.yml","Prometheus And Gitlab","en-us/blog/prometheus-and-gitlab.yml","en-us/blog/prometheus-and-gitlab",{"_path":34231,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34232,"content":34237,"config":34240,"_id":34242,"_type":16,"title":34243,"_source":17,"_file":34244,"_stem":34245,"_extension":20},"/en-us/blog/behind-the-scenes-how-we-built-review-apps",{"title":34233,"description":34234,"ogTitle":34233,"ogDescription":34234,"noIndex":6,"ogImage":13361,"ogUrl":34235,"ogSiteName":995,"ogType":996,"canonicalUrls":34235,"schema":34236},"Behind the scenes: How we built Review Apps","GitLab's Head of Product shares an inside look at iterating on one of our latest features","https://about.gitlab.com/blog/behind-the-scenes-how-we-built-review-apps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Behind the scenes: How we built Review Apps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Pundsack\"}],\n        \"datePublished\": \"2017-01-04\",\n      }",{"title":34233,"description":34234,"authors":34238,"heroImage":13361,"date":34239,"category":858},[24243],"2017-01-04",{"slug":34241,"featured":6,"template":736},"behind-the-scenes-how-we-built-review-apps","content:en-us:blog:behind-the-scenes-how-we-built-review-apps.yml","Behind The Scenes How We Built Review Apps","en-us/blog/behind-the-scenes-how-we-built-review-apps.yml","en-us/blog/behind-the-scenes-how-we-built-review-apps",{"_path":34247,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34248,"content":34254,"config":34258,"_id":34260,"_type":16,"title":34261,"_source":17,"_file":34262,"_stem":34263,"_extension":20},"/en-us/blog/how-to-prepare-for-a-virtual-interview",{"title":34249,"description":34250,"ogTitle":34249,"ogDescription":34250,"noIndex":6,"ogImage":34251,"ogUrl":34252,"ogSiteName":995,"ogType":996,"canonicalUrls":34252,"schema":34253},"How to prepare for a virtual interview at GitLab","Our Global Recruiter shares a few tips on how to get ready for a job interview that's *not* irl.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683946/Blog/Hero%20Images/how-to-prepare-for-a-virtual-interview.jpg","https://about.gitlab.com/blog/how-to-prepare-for-a-virtual-interview","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to prepare for a virtual interview at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sasha Bannister\"}],\n        \"datePublished\": \"2017-01-03\",\n      }",{"title":34249,"description":34250,"authors":34255,"heroImage":34251,"date":34257,"category":301},[34256],"Sasha Bannister","2017-01-03",{"slug":34259,"featured":6,"template":736},"how-to-prepare-for-a-virtual-interview","content:en-us:blog:how-to-prepare-for-a-virtual-interview.yml","How To Prepare For A Virtual Interview","en-us/blog/how-to-prepare-for-a-virtual-interview.yml","en-us/blog/how-to-prepare-for-a-virtual-interview",{"_path":34265,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34266,"content":34272,"config":34275,"_id":34277,"_type":16,"title":34278,"_source":17,"_file":34279,"_stem":34280,"_extension":20},"/en-us/blog/set-expectations",{"title":34267,"description":34268,"ogTitle":34267,"ogDescription":34268,"noIndex":6,"ogImage":34269,"ogUrl":34270,"ogSiteName":995,"ogType":996,"canonicalUrls":34270,"schema":34271},"Set expectations, manage better","Creating overhead with meetings and reviews is a risk to the efficiency and remote culture of organisations and should be actively avoided for an organisation to succeed remote at scale.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683955/Blog/Hero%20Images/set-expectations-manage-better.jpg","https://about.gitlab.com/blog/set-expectations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Set expectations, manage better\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2017-01-03\",\n      }",{"title":34267,"description":34268,"authors":34273,"heroImage":34269,"date":34257,"category":6121},[34274],"Job van der Voort",{"slug":34276,"featured":6,"template":736},"set-expectations","content:en-us:blog:set-expectations.yml","Set Expectations","en-us/blog/set-expectations.yml","en-us/blog/set-expectations",{"_path":34282,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34283,"content":34288,"config":34291,"_id":34293,"_type":16,"title":34294,"_source":17,"_file":34295,"_stem":34296,"_extension":20},"/en-us/blog/how-to-keep-remote-teams-engaged",{"title":34284,"description":34285,"ogTitle":34284,"ogDescription":34285,"noIndex":6,"ogImage":8506,"ogUrl":34286,"ogSiteName":995,"ogType":996,"canonicalUrls":34286,"schema":34287},"How to keep remote (volunteer) teams engaged","Our Director of Strategic Partnerships chats about remote engagement challenges at a charity that encourages kids to get interested in space, finding interesting parallels with open source projects.","https://about.gitlab.com/blog/how-to-keep-remote-teams-engaged","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to keep remote (volunteer) teams engaged\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-12-21\",\n      }",{"title":34284,"description":34285,"authors":34289,"heroImage":8506,"date":34290,"category":6121},[20500],"2016-12-21",{"slug":34292,"featured":6,"template":736},"how-to-keep-remote-teams-engaged","content:en-us:blog:how-to-keep-remote-teams-engaged.yml","How To Keep Remote Teams Engaged","en-us/blog/how-to-keep-remote-teams-engaged.yml","en-us/blog/how-to-keep-remote-teams-engaged",{"_path":34298,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34299,"content":34304,"config":34307,"_id":34309,"_type":16,"title":34310,"_source":17,"_file":34311,"_stem":34312,"_extension":20},"/en-us/blog/a-creative-agencys-gitlab-wishlist",{"title":34300,"description":34301,"ogTitle":34300,"ogDescription":34301,"noIndex":6,"ogImage":11355,"ogUrl":34302,"ogSiteName":995,"ogType":996,"canonicalUrls":34302,"schema":34303},"Customer story: A creative agency's GitLab wishlist","A Lukkien developer shares his team's challenges with Git and GitLab for their UX designs, and requests a few tweaks they'd find useful.","https://about.gitlab.com/blog/a-creative-agencys-gitlab-wishlist","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer story: A creative agency's GitLab wishlist\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-12-15\",\n      }",{"title":34300,"description":34301,"authors":34305,"heroImage":11355,"date":34306,"category":858},[20500],"2016-12-15",{"slug":34308,"featured":6,"template":736},"a-creative-agencys-gitlab-wishlist","content:en-us:blog:a-creative-agencys-gitlab-wishlist.yml","A Creative Agencys Gitlab Wishlist","en-us/blog/a-creative-agencys-gitlab-wishlist.yml","en-us/blog/a-creative-agencys-gitlab-wishlist",{"_path":34314,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34315,"content":34321,"config":34326,"_id":34328,"_type":16,"title":34329,"_source":17,"_file":34330,"_stem":34331,"_extension":20},"/en-us/blog/continuous-delivery-of-a-spring-boot-application-with-gitlab-ci-and-kubernetes",{"title":34316,"description":34317,"ogTitle":34316,"ogDescription":34317,"noIndex":6,"ogImage":34318,"ogUrl":34319,"ogSiteName":995,"ogType":996,"canonicalUrls":34319,"schema":34320},"Spring Boot delivery with GitLab CI and Kubernetes","Create a Continuous Delivery pipeline to deploy a Spring Boot app with GitLab CI and Kubernetes to Google Cloud Container Engine","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672314/Blog/Hero%20Images/dew-leaf.jpg","https://about.gitlab.com/blog/continuous-delivery-of-a-spring-boot-application-with-gitlab-ci-and-kubernetes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Continuous delivery of a Spring Boot application with GitLab CI and Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marco Lenzo\"}],\n        \"datePublished\": \"2016-12-14\",\n      }",{"title":34322,"description":34317,"authors":34323,"heroImage":34318,"date":34325,"category":858},"Continuous delivery of a Spring Boot application with GitLab CI and Kubernetes",[34324],"Marco Lenzo","2016-12-14",{"slug":34327,"featured":6,"template":736},"continuous-delivery-of-a-spring-boot-application-with-gitlab-ci-and-kubernetes","content:en-us:blog:continuous-delivery-of-a-spring-boot-application-with-gitlab-ci-and-kubernetes.yml","Continuous Delivery Of A Spring Boot Application With Gitlab Ci And Kubernetes","en-us/blog/continuous-delivery-of-a-spring-boot-application-with-gitlab-ci-and-kubernetes.yml","en-us/blog/continuous-delivery-of-a-spring-boot-application-with-gitlab-ci-and-kubernetes",{"_path":34333,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34334,"content":34340,"config":34343,"_id":34345,"_type":16,"title":34346,"_source":17,"_file":34347,"_stem":34348,"_extension":20},"/en-us/blog/gitlab-joins-forces-with-gravitational",{"title":34335,"description":34336,"ogTitle":34335,"ogDescription":34336,"noIndex":6,"ogImage":34337,"ogUrl":34338,"ogSiteName":995,"ogType":996,"canonicalUrls":34338,"schema":34339},"GitLab and Gravitational discuss Kubernetes","Is Kubernetes the way forward? We chatted to Ev Kontsevoy, CEO of Gravitational and unofficial Kubernetes cheerleader, to get the lowdown","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683941/Blog/Hero%20Images/ship-steering-wheel-kubernetes.jpg","https://about.gitlab.com/blog/gitlab-joins-forces-with-gravitational","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab and Gravitational discuss Kubernetes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2016-12-12\",\n      }",{"title":34335,"description":34336,"authors":34341,"heroImage":34337,"date":34342,"category":8140},[17684],"2016-12-12",{"slug":34344,"featured":6,"template":736},"gitlab-joins-forces-with-gravitational","content:en-us:blog:gitlab-joins-forces-with-gravitational.yml","Gitlab Joins Forces With Gravitational","en-us/blog/gitlab-joins-forces-with-gravitational.yml","en-us/blog/gitlab-joins-forces-with-gravitational",{"_path":34350,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34351,"content":34356,"config":34359,"_id":34361,"_type":16,"title":34362,"_source":17,"_file":34363,"_stem":34364,"_extension":20},"/en-us/blog/proposed-server-purchase-for-gitlab-com",{"title":34352,"description":34353,"ogTitle":34352,"ogDescription":34353,"noIndex":6,"ogImage":16110,"ogUrl":34354,"ogSiteName":995,"ogType":996,"canonicalUrls":34354,"schema":34355},"Proposed server purchase for GitLab.com","What hardware we're considering purchasing now that we have to move GitLab.com to metal.","https://about.gitlab.com/blog/proposed-server-purchase-for-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Proposed server purchase for GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-12-11\",\n      }",{"title":34352,"description":34353,"authors":34357,"heroImage":16110,"date":34358,"category":858},[3701],"2016-12-11",{"slug":34360,"featured":6,"template":736},"proposed-server-purchase-for-gitlab-com","content:en-us:blog:proposed-server-purchase-for-gitlab-com.yml","Proposed Server Purchase For Gitlab Com","en-us/blog/proposed-server-purchase-for-gitlab-com.yml","en-us/blog/proposed-server-purchase-for-gitlab-com",{"_path":34366,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34367,"content":34373,"config":34376,"_id":34378,"_type":16,"title":34379,"_source":17,"_file":34380,"_stem":34381,"_extension":20},"/en-us/blog/how-to-evaluate-gitlab-during-ee-trial",{"title":34368,"description":34369,"ogTitle":34368,"ogDescription":34369,"noIndex":6,"ogImage":34370,"ogUrl":34371,"ogSiteName":995,"ogType":996,"canonicalUrls":34371,"schema":34372},"How to evaluate GitLab during an EE trial","Find out if GitLab EE is the right fit for your company by evaluating your free trial with this handy spreadsheet","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683936/Blog/Hero%20Images/i-love-spreadsheets-trial-evaluation.jpg","https://about.gitlab.com/blog/how-to-evaluate-gitlab-during-ee-trial","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to evaluate GitLab during an EE trial\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2016-12-09\",\n      }",{"title":34368,"description":34369,"authors":34374,"heroImage":34370,"date":34375,"category":301},[17684],"2016-12-09",{"slug":34377,"featured":6,"template":736},"how-to-evaluate-gitlab-during-ee-trial","content:en-us:blog:how-to-evaluate-gitlab-during-ee-trial.yml","How To Evaluate Gitlab During Ee Trial","en-us/blog/how-to-evaluate-gitlab-during-ee-trial.yml","en-us/blog/how-to-evaluate-gitlab-during-ee-trial",{"_path":34383,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34384,"content":34390,"config":34395,"_id":34397,"_type":16,"title":34398,"_source":17,"_file":34399,"_stem":34400,"_extension":20},"/en-us/blog/announcing-gitlab-enterprise-edition-premium",{"title":34385,"description":34386,"ogTitle":34385,"ogDescription":34386,"noIndex":6,"ogImage":34387,"ogUrl":34388,"ogSiteName":995,"ogType":996,"canonicalUrls":34388,"schema":34389},"Expanding our enterprise: GitLab Enterprise edition premium","We've added a new enterprise plan, GitLab Enterprise Edition Premium","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683929/Blog/Hero%20Images/announcing-ee-premium-cover.jpg","https://about.gitlab.com/blog/announcing-gitlab-enterprise-edition-premium","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Expanding our Enterprise offering: Announcing GitLab Enterprise Edition Premium\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amara Nwaigwe\"}],\n        \"datePublished\": \"2016-12-08\",\n      }",{"title":34391,"description":34386,"authors":34392,"heroImage":34387,"date":34394,"category":301},"Expanding our Enterprise offering: Announcing GitLab Enterprise Edition Premium",[34393],"Amara Nwaigwe","2016-12-08",{"slug":34396,"featured":6,"template":736},"announcing-gitlab-enterprise-edition-premium","content:en-us:blog:announcing-gitlab-enterprise-edition-premium.yml","Announcing Gitlab Enterprise Edition Premium","en-us/blog/announcing-gitlab-enterprise-edition-premium.yml","en-us/blog/announcing-gitlab-enterprise-edition-premium",{"_path":34402,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34403,"content":34408,"config":34410,"_id":34412,"_type":16,"title":34413,"_source":17,"_file":34414,"_stem":34415,"_extension":20},"/en-us/blog/git-tips-and-tricks",{"title":34404,"description":34405,"ogTitle":34404,"ogDescription":34405,"noIndex":6,"ogImage":28630,"ogUrl":34406,"ogSiteName":995,"ogType":996,"canonicalUrls":34406,"schema":34407},"Git tips and tricks","Handy Git commands for everyday use","https://about.gitlab.com/blog/git-tips-and-tricks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Git tips and tricks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2016-12-08\",\n      }",{"title":34404,"description":34405,"authors":34409,"heroImage":28630,"date":34394,"category":858},[33451],{"slug":34411,"featured":6,"template":736},"git-tips-and-tricks","content:en-us:blog:git-tips-and-tricks.yml","Git Tips And Tricks","en-us/blog/git-tips-and-tricks.yml","en-us/blog/git-tips-and-tricks",{"_path":34417,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34418,"content":34423,"config":34426,"_id":34428,"_type":16,"title":34429,"_source":17,"_file":34430,"_stem":34431,"_extension":20},"/en-us/blog/building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages",{"title":34419,"description":34420,"ogTitle":34419,"ogDescription":34420,"noIndex":6,"ogImage":22066,"ogUrl":34421,"ogSiteName":995,"ogType":996,"canonicalUrls":34421,"schema":34422},"Building a new GitLab Docs site with Nanoc, GitLab CI, and GitLab Pages","How we built the new GitLab Docs portal from the ground up","https://about.gitlab.com/blog/building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building a new GitLab Docs site with Nanoc, GitLab CI, and GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Connor Shea\"}],\n        \"datePublished\": \"2016-12-07\",\n      }",{"title":34419,"description":34420,"authors":34424,"heroImage":22066,"date":34425,"category":858},[34139],"2016-12-07",{"slug":34427,"featured":6,"template":736},"building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages","content:en-us:blog:building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages.yml","Building A New Gitlab Docs Site With Nanoc Gitlab Ci And Gitlab Pages","en-us/blog/building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages.yml","en-us/blog/building-a-new-gitlab-docs-site-with-nanoc-gitlab-ci-and-gitlab-pages",{"_path":34433,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34434,"content":34439,"config":34441,"_id":34443,"_type":16,"title":34444,"_source":17,"_file":34445,"_stem":34446,"_extension":20},"/en-us/blog/heres-how-new-programmers-can-learn-by-contributing-to-gitlab",{"title":34435,"description":34436,"ogTitle":34435,"ogDescription":34436,"noIndex":6,"ogImage":6170,"ogUrl":34437,"ogSiteName":995,"ogType":996,"canonicalUrls":34437,"schema":34438},"Here's how new programmers can learn by contributing to GitLab","Everyone starts somewhere.","https://about.gitlab.com/blog/heres-how-new-programmers-can-learn-by-contributing-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Here's how new programmers can learn by contributing to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-12-07\",\n      }",{"title":34435,"description":34436,"authors":34440,"heroImage":6170,"date":34425,"category":1388},[1000],{"slug":34442,"featured":6,"template":736},"heres-how-new-programmers-can-learn-by-contributing-to-gitlab","content:en-us:blog:heres-how-new-programmers-can-learn-by-contributing-to-gitlab.yml","Heres How New Programmers Can Learn By Contributing To Gitlab","en-us/blog/heres-how-new-programmers-can-learn-by-contributing-to-gitlab.yml","en-us/blog/heres-how-new-programmers-can-learn-by-contributing-to-gitlab",{"_path":34448,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34449,"content":34455,"config":34458,"_id":34460,"_type":16,"title":34461,"_source":17,"_file":34462,"_stem":34463,"_extension":20},"/en-us/blog/gitlab-at-does-2016",{"title":34450,"description":34451,"ogTitle":34450,"ogDescription":34451,"noIndex":6,"ogImage":34452,"ogUrl":34453,"ogSiteName":995,"ogType":996,"canonicalUrls":34453,"schema":34454},"GitLab at DOES San Francisco 2016","We're the new kids on the block in the Git space. Here are some other things about us you should know, in a segment of DevOpsTV.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670702/Blog/Hero%20Images/party.jpg","https://about.gitlab.com/blog/gitlab-at-does-2016","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab at DOES San Francisco 2016\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-12-06\",\n      }",{"title":34450,"description":34451,"authors":34456,"heroImage":34452,"date":34457,"category":301},[20500],"2016-12-06",{"slug":34459,"featured":6,"template":736},"gitlab-at-does-2016","content:en-us:blog:gitlab-at-does-2016.yml","Gitlab At Does 2016","en-us/blog/gitlab-at-does-2016.yml","en-us/blog/gitlab-at-does-2016",{"_path":34465,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34466,"content":34472,"config":34475,"_id":34477,"_type":16,"title":34478,"_source":17,"_file":34479,"_stem":34480,"_extension":20},"/en-us/blog/how-we-stay-connected-as-a-remote-company",{"title":34467,"description":34468,"ogTitle":34467,"ogDescription":34468,"noIndex":6,"ogImage":34469,"ogUrl":34470,"ogSiteName":995,"ogType":996,"canonicalUrls":34470,"schema":34471},"How we stay connected as a remote company","Open communication and strong relationships are key to our company culture – here's how we achieve these remotely","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684130/Blog/Hero%20Images/how-we-stay-connected-as-a-remote-company-globe.jpg","https://about.gitlab.com/blog/how-we-stay-connected-as-a-remote-company","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we stay connected as a remote company\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2016-12-05\",\n      }",{"title":34467,"description":34468,"authors":34473,"heroImage":34469,"date":34474,"category":6121},[17684],"2016-12-05",{"slug":34476,"featured":6,"template":736},"how-we-stay-connected-as-a-remote-company","content:en-us:blog:how-we-stay-connected-as-a-remote-company.yml","How We Stay Connected As A Remote Company","en-us/blog/how-we-stay-connected-as-a-remote-company.yml","en-us/blog/how-we-stay-connected-as-a-remote-company",{"_path":34482,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34483,"content":34489,"config":34491,"_id":34493,"_type":16,"title":34494,"_source":17,"_file":34495,"_stem":34496,"_extension":20},"/en-us/blog/why-vaadin-chose-gitlab",{"title":34484,"description":34485,"ogTitle":34484,"ogDescription":34485,"noIndex":6,"ogImage":34486,"ogUrl":34487,"ogSiteName":995,"ogType":996,"canonicalUrls":34487,"schema":34488},"Customer Story: Why Vaadin chose GitLab","Vaadin needed a new solution after their multiple platforms began costing too much time and frustration.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670710/Blog/Hero%20Images/why-vaadin-chose-gitlab-cover.png","https://about.gitlab.com/blog/why-vaadin-chose-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer Story: Why Vaadin chose GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-12-05\",\n      }",{"title":34484,"description":34485,"authors":34490,"heroImage":34486,"date":34474,"category":1388},[20500],{"slug":34492,"featured":6,"template":736},"why-vaadin-chose-gitlab","content:en-us:blog:why-vaadin-chose-gitlab.yml","Why Vaadin Chose Gitlab","en-us/blog/why-vaadin-chose-gitlab.yml","en-us/blog/why-vaadin-chose-gitlab",{"_path":34498,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34499,"content":34505,"config":34508,"_id":34510,"_type":16,"title":34511,"_source":17,"_file":34512,"_stem":34513,"_extension":20},"/en-us/blog/how-to-keep-your-fork-up-to-date-with-its-origin",{"title":34500,"description":34501,"ogTitle":34500,"ogDescription":34501,"noIndex":6,"ogImage":34502,"ogUrl":34503,"ogSiteName":995,"ogType":996,"canonicalUrls":34503,"schema":34504},"How to keep your fork up to date with its origin","GitLab Repository Mirroring: the best way to keep your fork up-to-date!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666587/Blog/Hero%20Images/fork.png","https://about.gitlab.com/blog/how-to-keep-your-fork-up-to-date-with-its-origin","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to keep your fork up to date with its origin\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-12-01\",\n      }",{"title":34500,"description":34501,"authors":34506,"heroImage":34502,"date":34507,"category":858},[33755],"2016-12-01",{"slug":34509,"featured":6,"template":736},"how-to-keep-your-fork-up-to-date-with-its-origin","content:en-us:blog:how-to-keep-your-fork-up-to-date-with-its-origin.yml","How To Keep Your Fork Up To Date With Its Origin","en-us/blog/how-to-keep-your-fork-up-to-date-with-its-origin.yml","en-us/blog/how-to-keep-your-fork-up-to-date-with-its-origin",{"_path":34515,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34516,"content":34522,"config":34525,"_id":34527,"_type":16,"title":34528,"_source":17,"_file":34529,"_stem":34530,"_extension":20},"/en-us/blog/how-to-explain-gitlab-to-anyone",{"title":34517,"description":34518,"ogTitle":34517,"ogDescription":34518,"noIndex":6,"ogImage":34519,"ogUrl":34520,"ogSiteName":995,"ogType":996,"canonicalUrls":34520,"schema":34521},"How to explain GitLab to anyone","How do you explain what GitLab is and how it works to a non-technical person?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684725/Blog/Hero%20Images/explain-gitlab-cover.jpg","https://about.gitlab.com/blog/how-to-explain-gitlab-to-anyone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to explain GitLab to anyone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2016-11-30\",\n      }",{"title":34517,"description":34518,"authors":34523,"heroImage":34519,"date":34524,"category":301},[17684],"2016-11-30",{"slug":34526,"featured":6,"template":736},"how-to-explain-gitlab-to-anyone","content:en-us:blog:how-to-explain-gitlab-to-anyone.yml","How To Explain Gitlab To Anyone","en-us/blog/how-to-explain-gitlab-to-anyone.yml","en-us/blog/how-to-explain-gitlab-to-anyone",{"_path":34532,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34533,"content":34539,"config":34542,"_id":34544,"_type":16,"title":34545,"_source":17,"_file":34546,"_stem":34547,"_extension":20},"/en-us/blog/join-our-december-issue-bash",{"title":34534,"description":34535,"ogTitle":34534,"ogDescription":34535,"noIndex":6,"ogImage":34536,"ogUrl":34537,"ogSiteName":995,"ogType":996,"canonicalUrls":34537,"schema":34538},"Join our December Issue Bash","We’re on a mission to blitz GitLab’s open issues and we need your help!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684134/Blog/Hero%20Images/issue-bash.jpg","https://about.gitlab.com/blog/join-our-december-issue-bash","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join our December Issue Bash\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rebecca Dodd\"}],\n        \"datePublished\": \"2016-11-28\",\n      }",{"title":34534,"description":34535,"authors":34540,"heroImage":34536,"date":34541,"category":301},[17684],"2016-11-28",{"slug":34543,"featured":6,"template":736},"join-our-december-issue-bash","content:en-us:blog:join-our-december-issue-bash.yml","Join Our December Issue Bash","en-us/blog/join-our-december-issue-bash.yml","en-us/blog/join-our-december-issue-bash",{"_path":34549,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34550,"content":34556,"config":34559,"_id":34561,"_type":16,"title":34562,"_source":17,"_file":34563,"_stem":34564,"_extension":20},"/en-us/blog/gitlab-is-a-slam-dunk",{"title":34551,"description":34552,"ogTitle":34551,"ogDescription":34552,"noIndex":6,"ogImage":34553,"ogUrl":34554,"ogSiteName":995,"ogType":996,"canonicalUrls":34554,"schema":34555},"'GitLab is a slam dunk': One team lead weighs his options","Developer Warren Postma shares his opinions on VCS, after years of trying out all the alternatives.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663798/Blog/Hero%20Images/gitlab-is-a-slam-dunk.jpg","https://about.gitlab.com/blog/gitlab-is-a-slam-dunk","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"'GitLab is a slam dunk': One team lead weighs his options\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-11-27\",\n      }",{"title":34551,"description":34552,"authors":34557,"heroImage":34553,"date":34558,"category":858},[20500],"2016-11-27",{"slug":34560,"featured":6,"template":736},"gitlab-is-a-slam-dunk","content:en-us:blog:gitlab-is-a-slam-dunk.yml","Gitlab Is A Slam Dunk","en-us/blog/gitlab-is-a-slam-dunk.yml","en-us/blog/gitlab-is-a-slam-dunk",{"_path":34566,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34567,"content":34572,"config":34575,"_id":34577,"_type":16,"title":34578,"_source":17,"_file":34579,"_stem":34580,"_extension":20},"/en-us/blog/gitlab-adoption-growing-at-cern",{"title":34568,"description":34569,"ogTitle":34568,"ogDescription":34569,"noIndex":6,"ogImage":29676,"ogUrl":34570,"ogSiteName":995,"ogType":996,"canonicalUrls":34570,"schema":34571},"Customer Story: GitLab adoption growing at CERN","CERN, the European Organization for Nuclear Research, is increasingly using GitLab to host software projects and code for configuration management.","https://about.gitlab.com/blog/gitlab-adoption-growing-at-cern","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer Story: GitLab adoption growing at CERN\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-11-23\",\n      }",{"title":34568,"description":34569,"authors":34573,"heroImage":29676,"date":34574,"category":301},[20500],"2016-11-23",{"slug":34576,"featured":6,"template":736},"gitlab-adoption-growing-at-cern","content:en-us:blog:gitlab-adoption-growing-at-cern.yml","Gitlab Adoption Growing At Cern","en-us/blog/gitlab-adoption-growing-at-cern.yml","en-us/blog/gitlab-adoption-growing-at-cern",{"_path":34582,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34583,"content":34589,"config":34591,"_id":34593,"_type":16,"title":34594,"_source":17,"_file":34595,"_stem":34596,"_extension":20},"/en-us/blog/how-to-build-a-strong-dev-community",{"title":34584,"description":34585,"ogTitle":34584,"ogDescription":34585,"noIndex":6,"ogImage":34586,"ogUrl":34587,"ogSiteName":995,"ogType":996,"canonicalUrls":34587,"schema":34588},"How to build a strong developer community","Our developer advocate Amanda Folson shares some community building tips with Jasmine Anteunis, co-founder of startup Recast.ai","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670726/Blog/Hero%20Images/how-to-build-a-strong-developer-community.jpg","https://about.gitlab.com/blog/how-to-build-a-strong-dev-community","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to build a strong developer community\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-11-23\",\n      }",{"title":34584,"description":34585,"authors":34590,"heroImage":34586,"date":34574,"category":1388},[20500],{"slug":34592,"featured":6,"template":736},"how-to-build-a-strong-dev-community","content:en-us:blog:how-to-build-a-strong-dev-community.yml","How To Build A Strong Dev Community","en-us/blog/how-to-build-a-strong-dev-community.yml","en-us/blog/how-to-build-a-strong-dev-community",{"_path":34598,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34599,"content":34604,"config":34607,"_id":34609,"_type":16,"title":34610,"_source":17,"_file":34611,"_stem":34612,"_extension":20},"/en-us/blog/cognitive-logic-talks-migrating-to-gitlab",{"title":34600,"description":34601,"ogTitle":34600,"ogDescription":34601,"noIndex":6,"ogImage":11338,"ogUrl":34602,"ogSiteName":995,"ogType":996,"canonicalUrls":34602,"schema":34603},"Customer Story: Data startup Cognitive Logic talks migrating to GitLab","Data analytics startup Cognitive Logic helps companies store, share, and examine consumer information without compromising security.","https://about.gitlab.com/blog/cognitive-logic-talks-migrating-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer Story: Data startup Cognitive Logic talks migrating to GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-11-22\",\n      }",{"title":34600,"description":34601,"authors":34605,"heroImage":11338,"date":34606,"category":301},[20500],"2016-11-22",{"slug":34608,"featured":6,"template":736},"cognitive-logic-talks-migrating-to-gitlab","content:en-us:blog:cognitive-logic-talks-migrating-to-gitlab.yml","Cognitive Logic Talks Migrating To Gitlab","en-us/blog/cognitive-logic-talks-migrating-to-gitlab.yml","en-us/blog/cognitive-logic-talks-migrating-to-gitlab",{"_path":34614,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34615,"content":34620,"config":34622,"_id":34624,"_type":16,"title":34616,"_source":17,"_file":34625,"_stem":34626,"_extension":20},"/en-us/blog/introducing-review-apps",{"title":34616,"description":34617,"ogTitle":34616,"ogDescription":34617,"noIndex":6,"ogImage":33716,"ogUrl":34618,"ogSiteName":995,"ogType":996,"canonicalUrls":34618,"schema":34619},"Introducing Review Apps","Transform your development flow with temporary review apps","https://about.gitlab.com/blog/introducing-review-apps","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing Review Apps\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Pundsack\"}],\n        \"datePublished\": \"2016-11-22\",\n      }",{"title":34616,"description":34617,"authors":34621,"heroImage":33716,"date":34606,"category":301},[24243],{"slug":34623,"featured":6,"template":736},"introducing-review-apps","content:en-us:blog:introducing-review-apps.yml","en-us/blog/introducing-review-apps.yml","en-us/blog/introducing-review-apps",{"_path":34628,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34629,"content":34635,"config":34639,"_id":34641,"_type":16,"title":34642,"_source":17,"_file":34643,"_stem":34644,"_extension":20},"/en-us/blog/why-choose-bare-metal",{"title":34630,"description":34631,"ogTitle":34630,"ogDescription":34631,"noIndex":6,"ogImage":34632,"ogUrl":34633,"ogSiteName":995,"ogType":996,"canonicalUrls":34633,"schema":34634},"How we knew it was time to leave the cloud","How we're solving storage and performance issues as we scale.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683600/Blog/Hero%20Images/data.png","https://about.gitlab.com/blog/why-choose-bare-metal","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we knew it was time to leave the cloud\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pablo Carranza\"}],\n        \"datePublished\": \"2016-11-10\",\n      }",{"title":34630,"description":34631,"authors":34636,"heroImage":34632,"date":34638,"category":858},[34637],"Pablo Carranza","2016-11-10",{"slug":34640,"featured":6,"template":736},"why-choose-bare-metal","content:en-us:blog:why-choose-bare-metal.yml","Why Choose Bare Metal","en-us/blog/why-choose-bare-metal.yml","en-us/blog/why-choose-bare-metal",{"_path":34646,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34647,"content":34652,"config":34655,"_id":34657,"_type":16,"title":34658,"_source":17,"_file":34659,"_stem":34660,"_extension":20},"/en-us/blog/publish-code-coverage-report-with-gitlab-pages",{"title":34648,"description":34648,"ogTitle":34648,"ogDescription":34648,"noIndex":6,"ogImage":34649,"ogUrl":34650,"ogSiteName":995,"ogType":996,"canonicalUrls":34650,"schema":34651},"Publish code coverage report with GitLab Pages","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672293/Blog/Hero%20Images/code-coverage-report-stats.png","https://about.gitlab.com/blog/publish-code-coverage-report-with-gitlab-pages","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Publish code coverage report with GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grzegorz Bizon\"}],\n        \"datePublished\": \"2016-11-03\",\n      }",{"title":34648,"description":34648,"authors":34653,"heroImage":34649,"date":34654,"category":858},[3109],"2016-11-03",{"slug":34656,"featured":6,"template":736},"publish-code-coverage-report-with-gitlab-pages","content:en-us:blog:publish-code-coverage-report-with-gitlab-pages.yml","Publish Code Coverage Report With Gitlab Pages","en-us/blog/publish-code-coverage-report-with-gitlab-pages.yml","en-us/blog/publish-code-coverage-report-with-gitlab-pages",{"_path":34662,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34663,"content":34669,"config":34672,"_id":34674,"_type":16,"title":34675,"_source":17,"_file":34676,"_stem":34677,"_extension":20},"/en-us/blog/track-your-time-in-the-same-tool-you-do-your-work",{"title":34664,"description":34665,"ogTitle":34664,"ogDescription":34665,"noIndex":6,"ogImage":34666,"ogUrl":34667,"ogSiteName":995,"ogType":996,"canonicalUrls":34667,"schema":34668},"Track your time in the same tool you do your work","Announcing Time Tracking in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684139/Blog/Hero%20Images/track-your-time-in-the-same-tool-you-do-your-work.jpg","https://about.gitlab.com/blog/track-your-time-in-the-same-tool-you-do-your-work","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Track your time in the same tool you do your work\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Regis Freyd\"}],\n        \"datePublished\": \"2016-11-03\",\n      }",{"title":34664,"description":34665,"authors":34670,"heroImage":34666,"date":34654,"category":301},[34671],"Regis Freyd",{"slug":34673,"featured":6,"template":736},"track-your-time-in-the-same-tool-you-do-your-work","content:en-us:blog:track-your-time-in-the-same-tool-you-do-your-work.yml","Track Your Time In The Same Tool You Do Your Work","en-us/blog/track-your-time-in-the-same-tool-you-do-your-work.yml","en-us/blog/track-your-time-in-the-same-tool-you-do-your-work",{"_path":34679,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34680,"content":34684,"config":34686,"_id":34688,"_type":16,"title":34689,"_source":17,"_file":34690,"_stem":34691,"_extension":20},"/en-us/blog/working-at-gitlab-30-days-later",{"title":34681,"description":34681,"ogTitle":34681,"ogDescription":34681,"noIndex":6,"ogImage":16110,"ogUrl":34682,"ogSiteName":995,"ogType":996,"canonicalUrls":34682,"schema":34683},"Working at GitLab - 30 days later","https://about.gitlab.com/blog/working-at-gitlab-30-days-later","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Working at GitLab - 30 days later\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Clement Ho\"}],\n        \"datePublished\": \"2016-11-03\",\n      }",{"title":34681,"description":34681,"authors":34685,"heroImage":16110,"date":34654,"category":6121},[20589],{"slug":34687,"featured":6,"template":736},"working-at-gitlab-30-days-later","content:en-us:blog:working-at-gitlab-30-days-later.yml","Working At Gitlab 30 Days Later","en-us/blog/working-at-gitlab-30-days-later.yml","en-us/blog/working-at-gitlab-30-days-later",{"_path":34693,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34694,"content":34700,"config":34703,"_id":34705,"_type":16,"title":34706,"_source":17,"_file":34707,"_stem":34708,"_extension":20},"/en-us/blog/global-developer-survey-2016",{"title":34695,"description":34696,"ogTitle":34695,"ogDescription":34696,"noIndex":6,"ogImage":34697,"ogUrl":34698,"ogSiteName":995,"ogType":996,"canonicalUrls":34698,"schema":34699},"Global Developer Survey reveals need for more collaborative workflows","New survey examines how modern developers prefer to work.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683917/Blog/Hero%20Images/ee-survey-2016-cover-3.png","https://about.gitlab.com/blog/global-developer-survey-2016","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Global Developer Survey reveals need for more collaborative workflows\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2016-11-02\",\n      }",{"title":34695,"description":34696,"authors":34701,"heroImage":34697,"date":34702,"category":8140},[27004],"2016-11-02",{"slug":34704,"featured":6,"template":736},"global-developer-survey-2016","content:en-us:blog:global-developer-survey-2016.yml","Global Developer Survey 2016","en-us/blog/global-developer-survey-2016.yml","en-us/blog/global-developer-survey-2016",{"_path":34710,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34711,"content":34716,"config":34718,"_id":34720,"_type":16,"title":34721,"_source":17,"_file":34722,"_stem":34723,"_extension":20},"/en-us/blog/three-things-i-learned-in-my-first-month-at-gitlab",{"title":34712,"description":34713,"ogTitle":34712,"ogDescription":34713,"noIndex":6,"ogImage":11609,"ogUrl":34714,"ogSiteName":995,"ogType":996,"canonicalUrls":34714,"schema":34715},"3 things I learned in my first month at GitLab","Adapting to life at GitLab--marketing edition!","https://about.gitlab.com/blog/three-things-i-learned-in-my-first-month-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 things I learned in my first month at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily von Hoffmann\"}],\n        \"datePublished\": \"2016-11-02\",\n      }",{"title":34712,"description":34713,"authors":34717,"heroImage":11609,"date":34702,"category":6121},[20500],{"slug":34719,"featured":6,"template":736},"three-things-i-learned-in-my-first-month-at-gitlab","content:en-us:blog:three-things-i-learned-in-my-first-month-at-gitlab.yml","Three Things I Learned In My First Month At Gitlab","en-us/blog/three-things-i-learned-in-my-first-month-at-gitlab.yml","en-us/blog/three-things-i-learned-in-my-first-month-at-gitlab",{"_path":34725,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34726,"content":34731,"config":34734,"_id":34736,"_type":16,"title":34737,"_source":17,"_file":34738,"_stem":34739,"_extension":20},"/en-us/blog/how-we-ship-so-quickly",{"title":34727,"description":34728,"ogTitle":34727,"ogDescription":34728,"noIndex":6,"ogImage":16110,"ogUrl":34729,"ogSiteName":995,"ogType":996,"canonicalUrls":34729,"schema":34730},"My first weeks at GitLab: How we ship so quickly","How we move so quickly and create so much at GitLab","https://about.gitlab.com/blog/how-we-ship-so-quickly","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"My first weeks at GitLab: How we ship so quickly\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean Packham\"}],\n        \"datePublished\": \"2016-10-24\",\n      }",{"title":34727,"description":34728,"authors":34732,"heroImage":16110,"date":34733,"category":6121},[33888],"2016-10-24",{"slug":34735,"featured":6,"template":736},"how-we-ship-so-quickly","content:en-us:blog:how-we-ship-so-quickly.yml","How We Ship So Quickly","en-us/blog/how-we-ship-so-quickly.yml","en-us/blog/how-we-ship-so-quickly",{"_path":34741,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34742,"content":34747,"config":34750,"_id":34752,"_type":16,"title":34753,"_source":17,"_file":34754,"_stem":34755,"_extension":20},"/en-us/blog/why-we-chose-vue",{"title":34743,"description":34744,"ogTitle":34743,"ogDescription":34744,"noIndex":6,"ogImage":16110,"ogUrl":34745,"ogSiteName":995,"ogType":996,"canonicalUrls":34745,"schema":34746},"Why we chose Vue.js","Why GitLab went with Vue.js","https://about.gitlab.com/blog/why-we-chose-vue","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we chose Vue.js\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2016-10-20\",\n      }",{"title":34743,"description":34744,"authors":34748,"heroImage":16110,"date":34749,"category":858},[29783],"2016-10-20",{"slug":34751,"featured":6,"template":736},"why-we-chose-vue","content:en-us:blog:why-we-chose-vue.yml","Why We Chose Vue","en-us/blog/why-we-chose-vue.yml","en-us/blog/why-we-chose-vue",{"_path":34757,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34758,"content":34764,"config":34768,"_id":34770,"_type":16,"title":34771,"_source":17,"_file":34772,"_stem":34773,"_extension":20},"/en-us/blog/gitlab-ux-update",{"title":34759,"description":34760,"ogTitle":34759,"ogDescription":34760,"noIndex":6,"ogImage":34761,"ogUrl":34762,"ogSiteName":995,"ogType":996,"canonicalUrls":34762,"schema":34763},"GitLab UX update","Inside GitLab: Sneak peek of what the UX Team is working on","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684147/Blog/Hero%20Images/gitlabdesign-cover-image.jpg","https://about.gitlab.com/blog/gitlab-ux-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab UX update\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Allison Whilden\"}],\n        \"datePublished\": \"2016-10-19\",\n      }",{"title":34759,"description":34760,"authors":34765,"heroImage":34761,"date":34767,"category":301},[34766],"Allison Whilden","2016-10-19",{"slug":34769,"featured":6,"template":736},"gitlab-ux-update","content:en-us:blog:gitlab-ux-update.yml","Gitlab Ux Update","en-us/blog/gitlab-ux-update.yml","en-us/blog/gitlab-ux-update",{"_path":34775,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34776,"content":34782,"config":34786,"_id":34788,"_type":16,"title":34789,"_source":17,"_file":34790,"_stem":34791,"_extension":20},"/en-us/blog/gitlab-ci-oohlala",{"title":34777,"description":34778,"ogTitle":34777,"ogDescription":34778,"noIndex":6,"ogImage":34779,"ogUrl":34780,"ogSiteName":995,"ogType":996,"canonicalUrls":34780,"schema":34781},"Why we chose GitLab CI for our CI/CD solution","Find out why we choose GitLab CI and what we've found through our experience using it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684084/Blog/Hero%20Images/gitlab-ci-oohlala-cover.png","https://about.gitlab.com/blog/gitlab-ci-oohlala","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we chose GitLab CI for our CI/CD solution\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"James Dang\"}],\n        \"datePublished\": \"2016-10-17\",\n      }",{"title":34777,"description":34778,"authors":34783,"heroImage":34779,"date":34785,"category":301},[34784],"James Dang","2016-10-17",{"slug":34787,"featured":6,"template":736},"gitlab-ci-oohlala","content:en-us:blog:gitlab-ci-oohlala.yml","Gitlab Ci Oohlala","en-us/blog/gitlab-ci-oohlala.yml","en-us/blog/gitlab-ci-oohlala",{"_path":34793,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34794,"content":34798,"config":34801,"_id":34803,"_type":16,"title":34804,"_source":17,"_file":34805,"_stem":34806,"_extension":20},"/en-us/blog/gitlab-reinstates-list-of-servers-that-have-malware",{"title":34795,"description":34795,"ogTitle":34795,"ogDescription":34795,"noIndex":6,"ogImage":11046,"ogUrl":34796,"ogSiteName":995,"ogType":996,"canonicalUrls":34796,"schema":34797},"GitLab reinstates list of servers that have malware","https://about.gitlab.com/blog/gitlab-reinstates-list-of-servers-that-have-malware","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab reinstates list of servers that have malware\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-10-15\",\n      }",{"title":34795,"description":34795,"authors":34799,"heroImage":11046,"date":34800,"category":301},[3701],"2016-10-15",{"slug":34802,"featured":6,"template":736},"gitlab-reinstates-list-of-servers-that-have-malware","content:en-us:blog:gitlab-reinstates-list-of-servers-that-have-malware.yml","Gitlab Reinstates List Of Servers That Have Malware","en-us/blog/gitlab-reinstates-list-of-servers-that-have-malware.yml","en-us/blog/gitlab-reinstates-list-of-servers-that-have-malware",{"_path":34808,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34809,"content":34815,"config":34818,"_id":34820,"_type":16,"title":34821,"_source":17,"_file":34822,"_stem":34823,"_extension":20},"/en-us/blog/fundraising-tips-ceo",{"title":34810,"description":34811,"ogTitle":34810,"ogDescription":34811,"noIndex":6,"ogImage":34812,"ogUrl":34813,"ogSiteName":995,"ogType":996,"canonicalUrls":34813,"schema":34814},"30 Fundraising Tips from the CEO","30 fundraising tips from GitLab CEO Sid Sijbrandij","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683779/Blog/Hero%20Images/fundraising-tips-ceo.jpg","https://about.gitlab.com/blog/fundraising-tips-ceo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"30 Fundraising Tips from the CEO\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-10-14\",\n      }",{"title":34810,"description":34811,"authors":34816,"heroImage":34812,"date":34817,"category":8140},[3701],"2016-10-14",{"slug":34819,"featured":6,"template":736},"fundraising-tips-ceo","content:en-us:blog:fundraising-tips-ceo.yml","Fundraising Tips Ceo","en-us/blog/fundraising-tips-ceo.yml","en-us/blog/fundraising-tips-ceo",{"_path":34825,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34826,"content":34832,"config":34836,"_id":34838,"_type":16,"title":34839,"_source":17,"_file":34840,"_stem":34841,"_extension":20},"/en-us/blog/automated-debian-package-build-with-gitlab-ci",{"title":34827,"description":34828,"ogTitle":34827,"ogDescription":34828,"noIndex":6,"ogImage":34829,"ogUrl":34830,"ogSiteName":995,"ogType":996,"canonicalUrls":34830,"schema":34831},"Automated Debian Package Build with GitLab CI","Continuous Deployment with GitLab: how to build and deploy a Debian Package with GitLab CI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684154/Blog/Hero%20Images/adfinis-sygroup-cover.png","https://about.gitlab.com/blog/automated-debian-package-build-with-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Automated Debian Package Build with GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Adfinis SyGroup\"}],\n        \"datePublished\": \"2016-10-12\",\n      }",{"title":34827,"description":34828,"authors":34833,"heroImage":34829,"date":34835,"category":858},[34834],"Adfinis SyGroup","2016-10-12",{"slug":34837,"featured":6,"template":736},"automated-debian-package-build-with-gitlab-ci","content:en-us:blog:automated-debian-package-build-with-gitlab-ci.yml","Automated Debian Package Build With Gitlab Ci","en-us/blog/automated-debian-package-build-with-gitlab-ci.yml","en-us/blog/automated-debian-package-build-with-gitlab-ci",{"_path":34843,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34844,"content":34850,"config":34853,"_id":34855,"_type":16,"title":34856,"_source":17,"_file":34857,"_stem":34858,"_extension":20},"/en-us/blog/wrapping-text",{"title":34845,"description":34846,"ogTitle":34845,"ogDescription":34846,"noIndex":6,"ogImage":34847,"ogUrl":34848,"ogSiteName":995,"ogType":996,"canonicalUrls":34848,"schema":34849},"To Wrap or Not to Wrap: One of Life's Greatest Questions","Breaking lines: useful or painful?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683906/Blog/Hero%20Images/wrap-not-to-wrap-text.png","https://about.gitlab.com/blog/wrapping-text","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"To Wrap or Not to Wrap: One of Life's Greatest Questions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-10-11\",\n      }",{"title":34845,"description":34846,"authors":34851,"heroImage":34847,"date":34852,"category":858},[33755],"2016-10-11",{"slug":34854,"featured":6,"template":736},"wrapping-text","content:en-us:blog:wrapping-text.yml","Wrapping Text","en-us/blog/wrapping-text.yml","en-us/blog/wrapping-text",{"_path":34860,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34861,"content":34866,"config":34870,"_id":34872,"_type":16,"title":34873,"_source":17,"_file":34874,"_stem":34875,"_extension":20},"/en-us/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab",{"title":34862,"description":34863,"ogTitle":34862,"ogDescription":34863,"noIndex":6,"ogImage":34067,"ogUrl":34864,"ogSiteName":995,"ogType":996,"canonicalUrls":34864,"schema":34865},"GitPitch Slideshow Presentations for Developers on GitLab","Learn how PITCHME.md can help you present your ideas and code to any audience.","https://about.gitlab.com/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitPitch Slideshow Presentations for Developers on GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David Russell\"}],\n        \"datePublished\": \"2016-10-03\",\n      }",{"title":34862,"description":34863,"authors":34867,"heroImage":34067,"date":34869,"category":1388},[34868],"David Russell","2016-10-03",{"slug":34871,"featured":6,"template":736},"gitpitch-slideshow-presentations-for-developers-on-gitlab","content:en-us:blog:gitpitch-slideshow-presentations-for-developers-on-gitlab.yml","Gitpitch Slideshow Presentations For Developers On Gitlab","en-us/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab.yml","en-us/blog/gitpitch-slideshow-presentations-for-developers-on-gitlab",{"_path":34877,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34878,"content":34883,"config":34885,"_id":34887,"_type":16,"title":34888,"_source":17,"_file":34889,"_stem":34890,"_extension":20},"/en-us/blog/yc-application-office-hours",{"title":34879,"description":34880,"ogTitle":34879,"ogDescription":34880,"noIndex":6,"ogImage":16110,"ogUrl":34881,"ogSiteName":995,"ogType":996,"canonicalUrls":34881,"schema":34882},"YC application office hours","The 25 YC application questions discussed with GitLab's CEO","https://about.gitlab.com/blog/yc-application-office-hours","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"YC application office hours\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kirsten Abma\"}],\n        \"datePublished\": \"2016-10-03\",\n      }",{"title":34879,"description":34880,"authors":34884,"heroImage":16110,"date":34869,"category":301},[34005],{"slug":34886,"featured":6,"template":736},"yc-application-office-hours","content:en-us:blog:yc-application-office-hours.yml","Yc Application Office Hours","en-us/blog/yc-application-office-hours.yml","en-us/blog/yc-application-office-hours",{"_path":34892,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34893,"content":34899,"config":34902,"_id":34904,"_type":16,"title":34905,"_source":17,"_file":34906,"_stem":34907,"_extension":20},"/en-us/blog/gitlabs-application-for-y-combinator-winter-2015",{"title":34894,"description":34895,"ogTitle":34894,"ogDescription":34895,"noIndex":6,"ogImage":34896,"ogUrl":34897,"ogSiteName":995,"ogType":996,"canonicalUrls":34897,"schema":34898},"GitLab's Application for Y Combinator Winter 2015","We just released our Y Combinator W2015 application!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683744/Blog/Hero%20Images/gitlabs-application-for-y-combinator-winter-2015-cover.jpg","https://about.gitlab.com/blog/gitlabs-application-for-y-combinator-winter-2015","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's Application for Y Combinator Winter 2015\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-09-30\",\n      }",{"title":34894,"description":34895,"authors":34900,"heroImage":34896,"date":34901,"category":301},[3701],"2016-09-30",{"slug":34903,"featured":6,"template":736},"gitlabs-application-for-y-combinator-winter-2015","content:en-us:blog:gitlabs-application-for-y-combinator-winter-2015.yml","Gitlabs Application For Y Combinator Winter 2015","en-us/blog/gitlabs-application-for-y-combinator-winter-2015.yml","en-us/blog/gitlabs-application-for-y-combinator-winter-2015",{"_path":34909,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34910,"content":34916,"config":34918,"_id":34920,"_type":16,"title":34921,"_source":17,"_file":34922,"_stem":34923,"_extension":20},"/en-us/blog/what-founders-ask-founders-about-getting-into-yc",{"title":34911,"description":34912,"ogTitle":34911,"ogDescription":34912,"noIndex":6,"ogImage":34913,"ogUrl":34914,"ogSiteName":995,"ogType":996,"canonicalUrls":34914,"schema":34915},"What Founders Ask Founders About Getting Into Y Combinator","5 questions a founder asked our founder about applying to YC!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683902/Blog/Hero%20Images/what-fouders-ask-founders-about-getting-into-yc-cover.png","https://about.gitlab.com/blog/what-founders-ask-founders-about-getting-into-yc","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What Founders Ask Founders About Getting Into Y Combinator\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kirsten Abma\"}],\n        \"datePublished\": \"2016-09-30\",\n      }",{"title":34911,"description":34912,"authors":34917,"heroImage":34913,"date":34901,"category":8140},[34005],{"slug":34919,"featured":6,"template":736},"what-founders-ask-founders-about-getting-into-yc","content:en-us:blog:what-founders-ask-founders-about-getting-into-yc.yml","What Founders Ask Founders About Getting Into Yc","en-us/blog/what-founders-ask-founders-about-getting-into-yc.yml","en-us/blog/what-founders-ask-founders-about-getting-into-yc",{"_path":34925,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34926,"content":34932,"config":34935,"_id":34937,"_type":16,"title":34938,"_source":17,"_file":34939,"_stem":34940,"_extension":20},"/en-us/blog/world-tour-amplify-your-code",{"title":34927,"description":34928,"ogTitle":34927,"ogDescription":34928,"noIndex":6,"ogImage":34929,"ogUrl":34930,"ogSiteName":995,"ogType":996,"canonicalUrls":34930,"schema":34931},"GitLab World Tour: Amplify Your Code","Rock out with us and amplify your code on our World Tour! See where we'll be.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683580/Blog/Hero%20Images/world-tour-amplify-your-code-cover.png","https://about.gitlab.com/blog/world-tour-amplify-your-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab World Tour: Amplify Your Code\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2016-09-28\",\n      }",{"title":34927,"description":34928,"authors":34933,"heroImage":34929,"date":34934,"category":301},[25520],"2016-09-28",{"slug":34936,"featured":6,"template":736},"world-tour-amplify-your-code","content:en-us:blog:world-tour-amplify-your-code.yml","World Tour Amplify Your Code","en-us/blog/world-tour-amplify-your-code.yml","en-us/blog/world-tour-amplify-your-code",{"_path":34942,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34943,"content":34949,"config":34952,"_id":34954,"_type":16,"title":34955,"_source":17,"_file":34956,"_stem":34957,"_extension":20},"/en-us/blog/infrastructure-update",{"title":34944,"description":34945,"ogTitle":34944,"ogDescription":34945,"noIndex":6,"ogImage":34946,"ogUrl":34947,"ogSiteName":995,"ogType":996,"canonicalUrls":34947,"schema":34948},"GitLab Infrastructure Update","Hear how we're working through infrastructure challenges as we scale.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683895/Blog/Hero%20Images/infrastructure.jpg","https://about.gitlab.com/blog/infrastructure-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Infrastructure Update\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pablo Carranza\"}],\n        \"datePublished\": \"2016-09-26\",\n      }",{"title":34944,"description":34945,"authors":34950,"heroImage":34946,"date":34951,"category":858},[34637],"2016-09-26",{"slug":34953,"featured":6,"template":736},"infrastructure-update","content:en-us:blog:infrastructure-update.yml","Infrastructure Update","en-us/blog/infrastructure-update.yml","en-us/blog/infrastructure-update",{"_path":34959,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34960,"content":34966,"config":34969,"_id":34971,"_type":16,"title":34972,"_source":17,"_file":34973,"_stem":34974,"_extension":20},"/en-us/blog/cycle-analytics-feature-highlight",{"title":34961,"description":34962,"ogTitle":34961,"ogDescription":34962,"noIndex":6,"ogImage":34963,"ogUrl":34964,"ogSiteName":995,"ogType":996,"canonicalUrls":34964,"schema":34965},"Feature Highlight: Cycle Analytics","See how GitLab's Cycle Analytics can help measure your team's velocity.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683605/Blog/Hero%20Images/cycle-analytics-feature-highlight-cover.png","https://about.gitlab.com/blog/cycle-analytics-feature-highlight","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Cycle Analytics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amara Nwaigwe\"}],\n        \"datePublished\": \"2016-09-21\",\n      }",{"title":34961,"description":34962,"authors":34967,"heroImage":34963,"date":34968,"category":301},[34393],"2016-09-21",{"slug":34970,"featured":6,"template":736},"cycle-analytics-feature-highlight","content:en-us:blog:cycle-analytics-feature-highlight.yml","Cycle Analytics Feature Highlight","en-us/blog/cycle-analytics-feature-highlight.yml","en-us/blog/cycle-analytics-feature-highlight",{"_path":34976,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34977,"content":34983,"config":34987,"_id":34989,"_type":16,"title":34990,"_source":17,"_file":34991,"_stem":34992,"_extension":20},"/en-us/blog/announcing-gitlab-and-mesosphere",{"title":34978,"description":34979,"ogTitle":34978,"ogDescription":34979,"noIndex":6,"ogImage":34980,"ogUrl":34981,"ogSiteName":995,"ogType":996,"canonicalUrls":34981,"schema":34982},"Announcing GitLab + Mesosphere: 5 reasons to get excited","GitLab is now available on DC/OS!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683612/Blog/Hero%20Images/announcing-gitlab-and-mesosphere-cover.png","https://about.gitlab.com/blog/announcing-gitlab-and-mesosphere","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing GitLab + Mesosphere: Five Reasons You Should Be Excited About This Integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amara Nwaigwe\"}],\n        \"datePublished\": \"2016-09-16\",\n      }",{"title":34984,"description":34979,"authors":34985,"heroImage":34980,"date":34986,"category":301},"Announcing GitLab + Mesosphere: Five Reasons You Should Be Excited About This Integration",[34393],"2016-09-16",{"slug":34988,"featured":6,"template":736},"announcing-gitlab-and-mesosphere","content:en-us:blog:announcing-gitlab-and-mesosphere.yml","Announcing Gitlab And Mesosphere","en-us/blog/announcing-gitlab-and-mesosphere.yml","en-us/blog/announcing-gitlab-and-mesosphere",{"_path":34994,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":34995,"content":35000,"config":35002,"_id":35004,"_type":16,"title":35005,"_source":17,"_file":35006,"_stem":35007,"_extension":20},"/en-us/blog/feature-preview-introducing-cycle-analytics",{"title":34996,"description":34997,"ogTitle":34996,"ogDescription":34997,"noIndex":6,"ogImage":34632,"ogUrl":34998,"ogSiteName":995,"ogType":996,"canonicalUrls":34998,"schema":34999},"Feature Preview: Introducing Cycle Analytics","Cycle Analytics allows you to measure the time it takes you to move from idea to production!","https://about.gitlab.com/blog/feature-preview-introducing-cycle-analytics","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Preview: Introducing Cycle Analytics\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Erica Lindberg\"}],\n        \"datePublished\": \"2016-09-16\",\n      }",{"title":34996,"description":34997,"authors":35001,"heroImage":34632,"date":34986,"category":301},[27004],{"slug":35003,"featured":6,"template":736},"feature-preview-introducing-cycle-analytics","content:en-us:blog:feature-preview-introducing-cycle-analytics.yml","Feature Preview Introducing Cycle Analytics","en-us/blog/feature-preview-introducing-cycle-analytics.yml","en-us/blog/feature-preview-introducing-cycle-analytics",{"_path":35009,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35010,"content":35016,"config":35019,"_id":35021,"_type":16,"title":35022,"_source":17,"_file":35023,"_stem":35024,"_extension":20},"/en-us/blog/gitlab-master-plan",{"title":35011,"description":35012,"ogTitle":35011,"ogDescription":35012,"noIndex":6,"ogImage":35013,"ogUrl":35014,"ogSiteName":995,"ogType":996,"canonicalUrls":35014,"schema":35015},"GitLab Master Plan","GitLab announces $20M in Series B funding, and its Master Plan to build an integrated toolset for the modern developer!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683617/Blog/Hero%20Images/gitlab-master-plan-cover.png","https://about.gitlab.com/blog/gitlab-master-plan","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Master Plan\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-09-13\",\n      }",{"title":35011,"description":35012,"authors":35017,"heroImage":35013,"date":35018,"category":301},[3701],"2016-09-13",{"slug":35020,"featured":6,"template":736},"gitlab-master-plan","content:en-us:blog:gitlab-master-plan.yml","Gitlab Master Plan","en-us/blog/gitlab-master-plan.yml","en-us/blog/gitlab-master-plan",{"_path":35026,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35027,"content":35033,"config":35037,"_id":35039,"_type":16,"title":35040,"_source":17,"_file":35041,"_stem":35042,"_extension":20},"/en-us/blog/gitlab-special-event",{"title":35028,"description":35029,"ogTitle":35028,"ogDescription":35029,"noIndex":6,"ogImage":35030,"ogUrl":35031,"ogSiteName":995,"ogType":996,"canonicalUrls":35031,"schema":35032},"Live Event: Unveiling the GitLab Master Plan","Tune in Tuesday, September 13th at 1pm ET - 5pm GMT for a special live event with GitLab CEO Sid Sijbrandij","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683880/Blog/Hero%20Images/gitlab-special-event-cover.jpg","https://about.gitlab.com/blog/gitlab-special-event","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Live Event: Unveiling the GitLab Master Plan\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ashley Smith\"}],\n        \"datePublished\": \"2016-09-07\",\n      }",{"title":35028,"description":35029,"authors":35034,"heroImage":35030,"date":35036,"category":301},[35035],"Ashley Smith","2016-09-07",{"slug":35038,"featured":6,"template":736},"gitlab-special-event","content:en-us:blog:gitlab-special-event.yml","Gitlab Special Event","en-us/blog/gitlab-special-event.yml","en-us/blog/gitlab-special-event",{"_path":35044,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35045,"content":35051,"config":35054,"_id":35056,"_type":16,"title":35057,"_source":17,"_file":35058,"_stem":35059,"_extension":20},"/en-us/blog/resolving-merge-conflicts-from-the-gitlab-ui",{"title":35046,"description":35047,"ogTitle":35046,"ogDescription":35047,"noIndex":6,"ogImage":35048,"ogUrl":35049,"ogSiteName":995,"ogType":996,"canonicalUrls":35049,"schema":35050},"Resolving Merge Conflicts from the GitLab UI","Learn how GitLab's merge conflict resolution feature works and why we introduced it.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666760/Blog/Hero%20Images/merge-conflicts.png","https://about.gitlab.com/blog/resolving-merge-conflicts-from-the-gitlab-ui","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Resolving Merge Conflicts from the GitLab UI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sean McGivern\"}],\n        \"datePublished\": \"2016-09-06\",\n      }",{"title":35046,"description":35047,"authors":35052,"heroImage":35048,"date":35053,"category":301},[18858],"2016-09-06",{"slug":35055,"featured":6,"template":736},"resolving-merge-conflicts-from-the-gitlab-ui","content:en-us:blog:resolving-merge-conflicts-from-the-gitlab-ui.yml","Resolving Merge Conflicts From The Gitlab Ui","en-us/blog/resolving-merge-conflicts-from-the-gitlab-ui.yml","en-us/blog/resolving-merge-conflicts-from-the-gitlab-ui",{"_path":35061,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35062,"content":35068,"config":35071,"_id":35073,"_type":16,"title":35074,"_source":17,"_file":35075,"_stem":35076,"_extension":20},"/en-us/blog/designing-issue-boards",{"title":35063,"description":35064,"ogTitle":35063,"ogDescription":35064,"noIndex":6,"ogImage":35065,"ogUrl":35066,"ogSiteName":995,"ogType":996,"canonicalUrls":35066,"schema":35067},"Feature Highlight: Designing Issue Boards","Feature Highlight: Learn how the UX team worked together on the creation of Issue Boards.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671516/Blog/Hero%20Images/header-image.png","https://about.gitlab.com/blog/designing-issue-boards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Designing Issue Boards\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Taurie Davis\"}],\n        \"datePublished\": \"2016-08-31\",\n      }",{"title":35063,"description":35064,"authors":35069,"heroImage":35065,"date":35070,"category":301},[18295],"2016-08-31",{"slug":35072,"featured":6,"template":736},"designing-issue-boards","content:en-us:blog:designing-issue-boards.yml","Designing Issue Boards","en-us/blog/designing-issue-boards.yml","en-us/blog/designing-issue-boards",{"_path":35078,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35079,"content":35085,"config":35087,"_id":35089,"_type":16,"title":35090,"_source":17,"_file":35091,"_stem":35092,"_extension":20},"/en-us/blog/gitlab-and-yubico-security-webcast",{"title":35080,"description":35081,"ogTitle":35080,"ogDescription":35081,"noIndex":6,"ogImage":35082,"ogUrl":35083,"ogSiteName":995,"ogType":996,"canonicalUrls":35083,"schema":35084},"Security Webcast with Yubico","GitLab and Yubico discuss security best practices for Git users.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666581/Blog/Hero%20Images/fido-u2f-yubikey.jpg","https://about.gitlab.com/blog/gitlab-and-yubico-security-webcast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Security Webcast with Yubico\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amara Nwaigwe\"}],\n        \"datePublished\": \"2016-08-31\",\n      }",{"title":35080,"description":35081,"authors":35086,"heroImage":35082,"date":35070,"category":8140},[34393],{"slug":35088,"featured":6,"template":736},"gitlab-and-yubico-security-webcast","content:en-us:blog:gitlab-and-yubico-security-webcast.yml","Gitlab And Yubico Security Webcast","en-us/blog/gitlab-and-yubico-security-webcast.yml","en-us/blog/gitlab-and-yubico-security-webcast",{"_path":35094,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35095,"content":35101,"config":35104,"_id":35106,"_type":16,"title":35107,"_source":17,"_file":35108,"_stem":35109,"_extension":20},"/en-us/blog/trends-in-version-control-land-open-source",{"title":35096,"description":35097,"ogTitle":35096,"ogDescription":35097,"noIndex":6,"ogImage":35098,"ogUrl":35099,"ogSiteName":995,"ogType":996,"canonicalUrls":35099,"schema":35100},"Trends in Version Control Land: Open Source","In this final post, I’d like to share my thoughts on an exciting new trend: open source practices expanding into a variety of industries.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683589/Blog/Hero%20Images/sunset.jpg","https://about.gitlab.com/blog/trends-in-version-control-land-open-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Trends in Version Control Land: Open Source\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-08-29\",\n      }",{"title":35096,"description":35097,"authors":35102,"heroImage":35098,"date":35103,"category":1388},[3701],"2016-08-29",{"slug":35105,"featured":6,"template":736},"trends-in-version-control-land-open-source","content:en-us:blog:trends-in-version-control-land-open-source.yml","Trends In Version Control Land Open Source","en-us/blog/trends-in-version-control-land-open-source.yml","en-us/blog/trends-in-version-control-land-open-source",{"_path":35111,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35112,"content":35118,"config":35121,"_id":35123,"_type":16,"title":35124,"_source":17,"_file":35125,"_stem":35126,"_extension":20},"/en-us/blog/gitlab-in-action",{"title":35113,"description":35114,"ogTitle":35113,"ogDescription":35114,"noIndex":6,"ogImage":35115,"ogUrl":35116,"ogSiteName":995,"ogType":996,"canonicalUrls":35116,"schema":35117},"GitLab in Action","GitLab team-members on the road!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684165/Blog/Hero%20Images/map.jpg","https://about.gitlab.com/blog/gitlab-in-action","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab in Action\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2016-08-24\",\n      }",{"title":35113,"description":35114,"authors":35119,"heroImage":35115,"date":35120,"category":6121},[25520],"2016-08-24",{"slug":35122,"featured":6,"template":736},"gitlab-in-action","content:en-us:blog:gitlab-in-action.yml","Gitlab In Action","en-us/blog/gitlab-in-action.yml","en-us/blog/gitlab-in-action",{"_path":35128,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35129,"content":35134,"config":35137,"_id":35139,"_type":16,"title":35140,"_source":17,"_file":35141,"_stem":35142,"_extension":20},"/en-us/blog/announcing-the-gitlab-issue-board",{"title":35130,"description":35131,"ogTitle":35130,"ogDescription":35131,"noIndex":6,"ogImage":30599,"ogUrl":35132,"ogSiteName":995,"ogType":996,"canonicalUrls":35132,"schema":35133},"Announcing The GitLab Issue Board","Strengthen your Release Management Process: announcing the GitLab Issue Board!","https://about.gitlab.com/blog/announcing-the-gitlab-issue-board","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing The GitLab Issue Board\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-08-22\",\n      }",{"title":35130,"description":35131,"authors":35135,"heroImage":30599,"date":35136,"category":301},[3701],"2016-08-22",{"slug":35138,"featured":6,"template":736},"announcing-the-gitlab-issue-board","content:en-us:blog:announcing-the-gitlab-issue-board.yml","Announcing The Gitlab Issue Board","en-us/blog/announcing-the-gitlab-issue-board.yml","en-us/blog/announcing-the-gitlab-issue-board",{"_path":35144,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35145,"content":35151,"config":35155,"_id":35157,"_type":16,"title":35158,"_source":17,"_file":35159,"_stem":35160,"_extension":20},"/en-us/blog/applying-gitlab-labels-automatically",{"title":35146,"description":35147,"ogTitle":35146,"ogDescription":35147,"noIndex":6,"ogImage":35148,"ogUrl":35149,"ogSiteName":995,"ogType":996,"canonicalUrls":35149,"schema":35150},"Applying GitLab Labels Automatically","Learn how to use GitLab Webhooks to apply labels automatically to MRs.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672498/Blog/Hero%20Images/applying-gitlab-labels-automatically-cover.jpg","https://about.gitlab.com/blog/applying-gitlab-labels-automatically","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Applying GitLab Labels Automatically\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brian O'Connell\"}],\n        \"datePublished\": \"2016-08-19\",\n      }",{"title":35146,"description":35147,"authors":35152,"heroImage":35148,"date":35154,"category":301},[35153],"Brian O'Connell","2016-08-19",{"slug":35156,"featured":6,"template":736},"applying-gitlab-labels-automatically","content:en-us:blog:applying-gitlab-labels-automatically.yml","Applying Gitlab Labels Automatically","en-us/blog/applying-gitlab-labels-automatically.yml","en-us/blog/applying-gitlab-labels-automatically",{"_path":35162,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35163,"content":35169,"config":35172,"_id":35174,"_type":16,"title":35175,"_source":17,"_file":35176,"_stem":35177,"_extension":20},"/en-us/blog/posting-to-your-gitlab-pages-blog-from-ios",{"title":35164,"description":35165,"ogTitle":35164,"ogDescription":35165,"noIndex":6,"ogImage":35166,"ogUrl":35167,"ogSiteName":995,"ogType":996,"canonicalUrls":35167,"schema":35168},"Posting to your GitLab Pages blog from iOS","Tutorial: Learn how to post to your GitLab Pages blog from anywhere, using your iOS device.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684176/Blog/Hero%20Images/ios-writing-anywhere.png","https://about.gitlab.com/blog/posting-to-your-gitlab-pages-blog-from-ios","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Posting to your GitLab Pages blog from iOS\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Angelo Stavrow\"}],\n        \"datePublished\": \"2016-08-19\",\n      }",{"title":35164,"description":35165,"authors":35170,"heroImage":35166,"date":35154,"category":858},[35171],"Angelo Stavrow",{"slug":35173,"featured":6,"template":736},"posting-to-your-gitlab-pages-blog-from-ios","content:en-us:blog:posting-to-your-gitlab-pages-blog-from-ios.yml","Posting To Your Gitlab Pages Blog From Ios","en-us/blog/posting-to-your-gitlab-pages-blog-from-ios.yml","en-us/blog/posting-to-your-gitlab-pages-blog-from-ios",{"_path":35179,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35180,"content":35186,"config":35189,"_id":35191,"_type":16,"title":35192,"_source":17,"_file":35193,"_stem":35194,"_extension":20},"/en-us/blog/using-gitlab-labels",{"title":35181,"description":35182,"ogTitle":35181,"ogDescription":35182,"noIndex":6,"ogImage":35183,"ogUrl":35184,"ogSiteName":995,"ogType":996,"canonicalUrls":35184,"schema":35185},"Using GitLab Labels","Learn how Brian uses GitLab Labels for his workflow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684871/Blog/Hero%20Images/gitlab-labels-cover.jpg","https://about.gitlab.com/blog/using-gitlab-labels","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using GitLab Labels\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Brian O'Connell\"}],\n        \"datePublished\": \"2016-08-17\",\n      }",{"title":35181,"description":35182,"authors":35187,"heroImage":35183,"date":35188,"category":8140},[35153],"2016-08-17",{"slug":35190,"featured":6,"template":736},"using-gitlab-labels","content:en-us:blog:using-gitlab-labels.yml","Using Gitlab Labels","en-us/blog/using-gitlab-labels.yml","en-us/blog/using-gitlab-labels",{"_path":35196,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35197,"content":35202,"config":35205,"_id":35207,"_type":16,"title":35208,"_source":17,"_file":35209,"_stem":35210,"_extension":20},"/en-us/blog/trends-in-version-control-land-microservices",{"title":35198,"description":35199,"ogTitle":35198,"ogDescription":35199,"noIndex":6,"ogImage":11536,"ogUrl":35200,"ogSiteName":995,"ogType":996,"canonicalUrls":35200,"schema":35201},"Trends in Version Control Land: Microservices","The benefits and drawbacks of microservices and how to decide if it is right for your team.","https://about.gitlab.com/blog/trends-in-version-control-land-microservices","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Trends in Version Control Land: Microservices\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-08-16\",\n      }",{"title":35198,"description":35199,"authors":35203,"heroImage":11536,"date":35204,"category":8140},[3701],"2016-08-16",{"slug":35206,"featured":6,"template":736},"trends-in-version-control-land-microservices","content:en-us:blog:trends-in-version-control-land-microservices.yml","Trends In Version Control Land Microservices","en-us/blog/trends-in-version-control-land-microservices.yml","en-us/blog/trends-in-version-control-land-microservices",{"_path":35212,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35213,"content":35218,"config":35221,"_id":35223,"_type":16,"title":35224,"_source":17,"_file":35225,"_stem":35226,"_extension":20},"/en-us/blog/five-principles-that-make-it-easier-for-people-to-love-your-company-culture",{"title":35214,"description":35214,"ogTitle":35214,"ogDescription":35214,"noIndex":6,"ogImage":35215,"ogUrl":35216,"ogSiteName":995,"ogType":996,"canonicalUrls":35216,"schema":35217},"Five principles that make it easier for people to love your company culture","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683656/Blog/Hero%20Images/million_downloads.jpg","https://about.gitlab.com/blog/five-principles-that-make-it-easier-for-people-to-love-your-company-culture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Five principles that make it easier for people to love your company culture\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-08-12\",\n      }",{"title":35214,"description":35214,"authors":35219,"heroImage":35215,"date":35220,"category":6121},[3701],"2016-08-12",{"slug":35222,"featured":6,"template":736},"five-principles-that-make-it-easier-for-people-to-love-your-company-culture","content:en-us:blog:five-principles-that-make-it-easier-for-people-to-love-your-company-culture.yml","Five Principles That Make It Easier For People To Love Your Company Culture","en-us/blog/five-principles-that-make-it-easier-for-people-to-love-your-company-culture.yml","en-us/blog/five-principles-that-make-it-easier-for-people-to-love-your-company-culture",{"_path":35228,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35229,"content":35235,"config":35237,"_id":35239,"_type":16,"title":35240,"_source":17,"_file":35241,"_stem":35242,"_extension":20},"/en-us/blog/moving-from-ops-to-infrastructure",{"title":35230,"description":35231,"ogTitle":35230,"ogDescription":35231,"noIndex":6,"ogImage":35232,"ogUrl":35233,"ogSiteName":995,"ogType":996,"canonicalUrls":35233,"schema":35234},"Why we switched our philosophy from Ops to Infrastructure","Why and how GitLab moved from an Ops mindset to an Infrastructure mindset","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683873/Blog/Hero%20Images/infrastructure-cover-image.jpg","https://about.gitlab.com/blog/moving-from-ops-to-infrastructure","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we switched our philosophy from Ops to Infrastructure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pablo Carranza\"}],\n        \"datePublished\": \"2016-08-12\",\n      }",{"title":35230,"description":35231,"authors":35236,"heroImage":35232,"date":35220,"category":6121},[34637],{"slug":35238,"featured":6,"template":736},"moving-from-ops-to-infrastructure","content:en-us:blog:moving-from-ops-to-infrastructure.yml","Moving From Ops To Infrastructure","en-us/blog/moving-from-ops-to-infrastructure.yml","en-us/blog/moving-from-ops-to-infrastructure",{"_path":35244,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35245,"content":35251,"config":35255,"_id":35257,"_type":16,"title":35258,"_source":17,"_file":35259,"_stem":35260,"_extension":20},"/en-us/blog/building-an-elixir-release-into-docker-image-using-gitlab-ci-part-1",{"title":35246,"description":35247,"ogTitle":35246,"ogDescription":35247,"noIndex":6,"ogImage":35248,"ogUrl":35249,"ogSiteName":995,"ogType":996,"canonicalUrls":35249,"schema":35250},"Building an Elixir Release into a Docker image using GitLab CI - Part 1","Deploying projects written in Elixir/Erlang to production with Docker Containers and GitLab CI!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665223/Blog/Hero%20Images/containers.jpg","https://about.gitlab.com/blog/building-an-elixir-release-into-docker-image-using-gitlab-ci-part-1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building an Elixir Release into a Docker image using GitLab CI - Part 1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Alexander Malaev\"}],\n        \"datePublished\": \"2016-08-11\",\n      }",{"title":35246,"description":35247,"authors":35252,"heroImage":35248,"date":35254,"category":858},[35253],"Alexander Malaev","2016-08-11",{"slug":35256,"featured":6,"template":736},"building-an-elixir-release-into-docker-image-using-gitlab-ci-part-1","content:en-us:blog:building-an-elixir-release-into-docker-image-using-gitlab-ci-part-1.yml","Building An Elixir Release Into Docker Image Using Gitlab Ci Part 1","en-us/blog/building-an-elixir-release-into-docker-image-using-gitlab-ci-part-1.yml","en-us/blog/building-an-elixir-release-into-docker-image-using-gitlab-ci-part-1",{"_path":35262,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35263,"content":35267,"config":35270,"_id":35272,"_type":16,"title":35273,"_source":17,"_file":35274,"_stem":35275,"_extension":20},"/en-us/blog/continuous-integration-delivery-and-deployment-with-gitlab",{"title":35264,"ogTitle":35264,"noIndex":6,"ogImage":13642,"ogUrl":35265,"ogSiteName":995,"ogType":996,"canonicalUrls":35265,"schema":35266},"Continuous Integration, Delivery, and Deployment with GitLab","https://about.gitlab.com/blog/continuous-integration-delivery-and-deployment-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Continuous Integration, Delivery, and Deployment with GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-08-05\",\n      }",{"title":35264,"authors":35268,"heroImage":13642,"date":35269,"category":858},[33755],"2016-08-05",{"slug":35271,"featured":6,"template":736},"continuous-integration-delivery-and-deployment-with-gitlab","content:en-us:blog:continuous-integration-delivery-and-deployment-with-gitlab.yml","Continuous Integration Delivery And Deployment With Gitlab","en-us/blog/continuous-integration-delivery-and-deployment-with-gitlab.yml","en-us/blog/continuous-integration-delivery-and-deployment-with-gitlab",{"_path":35277,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35278,"content":35284,"config":35286,"_id":35288,"_type":16,"title":35289,"_source":17,"_file":35290,"_stem":35291,"_extension":20},"/en-us/blog/feature-highlight-set-dates-for-issues",{"title":35279,"description":35280,"ogTitle":35279,"ogDescription":35280,"noIndex":6,"ogImage":35281,"ogUrl":35282,"ogSiteName":995,"ogType":996,"canonicalUrls":35282,"schema":35283},"Feature Highlight: Set Due Dates for Issues and Create Milestones","Feature Highlight: Learn how you can leverage issue due dates and milestones to help manage your projects with GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683857/Blog/Hero%20Images/gitlab-milestones-cover.png","https://about.gitlab.com/blog/feature-highlight-set-dates-for-issues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Set Due Dates for Issues and Create Milestones\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Folson\"}],\n        \"datePublished\": \"2016-08-05\",\n      }",{"title":35279,"description":35280,"authors":35285,"heroImage":35281,"date":35269,"category":301},[33274],{"slug":35287,"featured":6,"template":736},"feature-highlight-set-dates-for-issues","content:en-us:blog:feature-highlight-set-dates-for-issues.yml","Feature Highlight Set Dates For Issues","en-us/blog/feature-highlight-set-dates-for-issues.yml","en-us/blog/feature-highlight-set-dates-for-issues",{"_path":35293,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35294,"content":35300,"config":35304,"_id":35306,"_type":16,"title":35307,"_source":17,"_file":35308,"_stem":35309,"_extension":20},"/en-us/blog/moving-to-gitlab-yes-its-worth-it",{"title":35295,"description":35296,"ogTitle":35295,"ogDescription":35296,"noIndex":6,"ogImage":35297,"ogUrl":35298,"ogSiteName":995,"ogType":996,"canonicalUrls":35298,"schema":35299},"Customer Story: Moving to GitLab! Yes, it's worth it!","Migrating from GitHub to GitLab and setting up your own GitLab instance","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665885/Blog/Hero%20Images/love-the-sun-gitlab.jpg","https://about.gitlab.com/blog/moving-to-gitlab-yes-its-worth-it","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer Story: Moving to GitLab! Yes, it's worth it!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fabio Akita\"}],\n        \"datePublished\": \"2016-08-04\",\n      }",{"title":35295,"description":35296,"authors":35301,"heroImage":35297,"date":35303,"category":1388},[35302],"Fabio Akita","2016-08-04",{"slug":35305,"featured":6,"template":736},"moving-to-gitlab-yes-its-worth-it","content:en-us:blog:moving-to-gitlab-yes-its-worth-it.yml","Moving To Gitlab Yes Its Worth It","en-us/blog/moving-to-gitlab-yes-its-worth-it.yml","en-us/blog/moving-to-gitlab-yes-its-worth-it",{"_path":35311,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35312,"content":35318,"config":35321,"_id":35323,"_type":16,"title":35324,"_source":17,"_file":35325,"_stem":35326,"_extension":20},"/en-us/blog/koding-and-gitlab-integrated",{"title":35313,"description":35314,"ogTitle":35313,"ogDescription":35314,"noIndex":6,"ogImage":35315,"ogUrl":35316,"ogSiteName":995,"ogType":996,"canonicalUrls":35316,"schema":35317},"Koding + GitLab: Contribute code faster","Koding and GitLab are integrated to make contributing code faster!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683769/Blog/Hero%20Images/koding-and-gitlab-integrated-cover.png","https://about.gitlab.com/blog/koding-and-gitlab-integrated","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Koding + GitLab: Contribute code faster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-07-26\",\n      }",{"title":35313,"description":35314,"authors":35319,"heroImage":35315,"date":35320,"category":301},[3701],"2016-07-26",{"slug":35322,"featured":6,"template":736},"koding-and-gitlab-integrated","content:en-us:blog:koding-and-gitlab-integrated.yml","Koding And Gitlab Integrated","en-us/blog/koding-and-gitlab-integrated.yml","en-us/blog/koding-and-gitlab-integrated",{"_path":35328,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35329,"content":35335,"config":35339,"_id":35341,"_type":16,"title":35342,"_source":17,"_file":35343,"_stem":35344,"_extension":20},"/en-us/blog/building-our-web-app-on-gitlab-ci",{"title":35330,"description":35331,"ogTitle":35330,"ogDescription":35331,"noIndex":6,"ogImage":35332,"ogUrl":35333,"ogSiteName":995,"ogType":996,"canonicalUrls":35333,"schema":35334},"Building our web-app on GitLab CI","5 reasons why Captain Train migrated from Jenkins to GitLab CI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684187/Blog/Hero%20Images/building-our-web-app-on-gitlab-ci-cover.jpg","https://about.gitlab.com/blog/building-our-web-app-on-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building our web-app on GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pierre de La Morinerie\"}],\n        \"datePublished\": \"2016-07-22\",\n      }",{"title":35330,"description":35331,"authors":35336,"heroImage":35332,"date":35338,"category":858},[35337],"Pierre de La Morinerie","2016-07-22",{"slug":35340,"featured":6,"template":736},"building-our-web-app-on-gitlab-ci","content:en-us:blog:building-our-web-app-on-gitlab-ci.yml","Building Our Web App On Gitlab Ci","en-us/blog/building-our-web-app-on-gitlab-ci.yml","en-us/blog/building-our-web-app-on-gitlab-ci",{"_path":35346,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35347,"content":35353,"config":35356,"_id":35358,"_type":16,"title":35359,"_source":17,"_file":35360,"_stem":35361,"_extension":20},"/en-us/blog/release-early-release-often",{"title":35348,"description":35349,"ogTitle":35348,"ogDescription":35349,"noIndex":6,"ogImage":35350,"ogUrl":35351,"ogSiteName":995,"ogType":996,"canonicalUrls":35351,"schema":35352},"Release Early, Release Often","Let’s explore the rise of releasing early and often!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683752/Blog/Hero%20Images/release-early-release-often-cover.jpg","https://about.gitlab.com/blog/release-early-release-often","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Release Early, Release Often\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-07-21\",\n      }",{"title":35348,"description":35349,"authors":35354,"heroImage":35350,"date":35355,"category":8140},[3701],"2016-07-21",{"slug":35357,"featured":6,"template":736},"release-early-release-often","content:en-us:blog:release-early-release-often.yml","Release Early Release Often","en-us/blog/release-early-release-often.yml","en-us/blog/release-early-release-often",{"_path":35363,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35364,"content":35370,"config":35373,"_id":35375,"_type":16,"title":35376,"_source":17,"_file":35377,"_stem":35378,"_extension":20},"/en-us/blog/gitlab-is-open-core-github-is-closed-source",{"title":35365,"description":35366,"ogTitle":35365,"ogDescription":35366,"noIndex":6,"ogImage":35367,"ogUrl":35368,"ogSiteName":995,"ogType":996,"canonicalUrls":35368,"schema":35369},"GitLab is open core, GitHub is closed source","We think of ourselves as an open source company. But today paxcoder on Hacker News rightly remarked that calling it an open core company is more accurate.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683647/Blog/Hero%20Images/sailing-5.jpg","https://about.gitlab.com/blog/gitlab-is-open-core-github-is-closed-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is open core, GitHub is closed source\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-07-20\",\n      }",{"title":35365,"description":35366,"authors":35371,"heroImage":35367,"date":35372,"category":8140},[3701],"2016-07-20",{"slug":35374,"featured":6,"template":736},"gitlab-is-open-core-github-is-closed-source","content:en-us:blog:gitlab-is-open-core-github-is-closed-source.yml","Gitlab Is Open Core Github Is Closed Source","en-us/blog/gitlab-is-open-core-github-is-closed-source.yml","en-us/blog/gitlab-is-open-core-github-is-closed-source",{"_path":35380,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35381,"content":35387,"config":35390,"_id":35392,"_type":16,"title":35393,"_source":17,"_file":35394,"_stem":35395,"_extension":20},"/en-us/blog/markdown-kramdown-tips-and-tricks",{"title":35382,"description":35383,"ogTitle":35382,"ogDescription":35383,"noIndex":6,"ogImage":35384,"ogUrl":35385,"ogSiteName":995,"ogType":996,"canonicalUrls":35385,"schema":35386},"Markdown Kramdown Tips and Tricks","Learn how to apply classes to markdown, create ToCs, embed iframes and much more!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671850/Blog/Hero%20Images/markdown-kramdown-tips-and-tricks-cover.png","https://about.gitlab.com/blog/markdown-kramdown-tips-and-tricks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Markdown Kramdown Tips and Tricks\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-07-19\",\n      }",{"title":35382,"description":35383,"authors":35388,"heroImage":35384,"date":35389,"category":858},[33755],"2016-07-19",{"slug":35391,"featured":6,"template":736},"markdown-kramdown-tips-and-tricks","content:en-us:blog:markdown-kramdown-tips-and-tricks.yml","Markdown Kramdown Tips And Tricks","en-us/blog/markdown-kramdown-tips-and-tricks.yml","en-us/blog/markdown-kramdown-tips-and-tricks",{"_path":35397,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35398,"content":35403,"config":35407,"_id":35409,"_type":16,"title":35410,"_source":17,"_file":35411,"_stem":35412,"_extension":20},"/en-us/blog/building-an-open-source-company-interview-with-gitlabs-ceo",{"title":35399,"description":35399,"ogTitle":35399,"ogDescription":35399,"noIndex":6,"ogImage":35400,"ogUrl":35401,"ogSiteName":995,"ogType":996,"canonicalUrls":35401,"schema":35402},"Building an Open Source Company: Interview with GitLab's CEO","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684717/Blog/Hero%20Images/team_gitlab.png","https://about.gitlab.com/blog/building-an-open-source-company-interview-with-gitlabs-ceo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Building an Open Source Company: Interview with GitLab's CEO\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jason Chen\"}],\n        \"datePublished\": \"2016-07-14\",\n      }",{"title":35399,"description":35399,"authors":35404,"heroImage":35400,"date":35406,"category":8140},[35405],"Jason Chen","2016-07-14",{"slug":35408,"featured":6,"template":736},"building-an-open-source-company-interview-with-gitlabs-ceo","content:en-us:blog:building-an-open-source-company-interview-with-gitlabs-ceo.yml","Building An Open Source Company Interview With Gitlabs Ceo","en-us/blog/building-an-open-source-company-interview-with-gitlabs-ceo.yml","en-us/blog/building-an-open-source-company-interview-with-gitlabs-ceo",{"_path":35414,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35415,"content":35421,"config":35425,"_id":35427,"_type":16,"title":35428,"_source":17,"_file":35429,"_stem":35430,"_extension":20},"/en-us/blog/how-to-setup-a-gitlab-instance-on-microsoft-azure",{"title":35416,"description":35417,"ogTitle":35416,"ogDescription":35417,"noIndex":6,"ogImage":35418,"ogUrl":35419,"ogSiteName":995,"ogType":996,"canonicalUrls":35419,"schema":35420},"How to Set Up a GitLab Instance on Microsoft Azure","Learn how to set up a GitLab Instance on Microsoft Azure with this tutorial","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672257/Blog/Hero%20Images/gitlab-on-azure-cover.jpg","https://about.gitlab.com/blog/how-to-setup-a-gitlab-instance-on-microsoft-azure","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to Set Up a GitLab Instance on Microsoft Azure\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Wentzel\"}],\n        \"datePublished\": \"2016-07-13\",\n      }",{"title":35416,"description":35417,"authors":35422,"heroImage":35418,"date":35424,"category":858},[35423],"Dave Wentzel","2016-07-13",{"slug":35426,"featured":6,"template":736},"how-to-setup-a-gitlab-instance-on-microsoft-azure","content:en-us:blog:how-to-setup-a-gitlab-instance-on-microsoft-azure.yml","How To Setup A Gitlab Instance On Microsoft Azure","en-us/blog/how-to-setup-a-gitlab-instance-on-microsoft-azure.yml","en-us/blog/how-to-setup-a-gitlab-instance-on-microsoft-azure",{"_path":35432,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35433,"content":35438,"config":35441,"_id":35443,"_type":16,"title":35444,"_source":17,"_file":35445,"_stem":35446,"_extension":20},"/en-us/blog/our-handbook-is-open-source-heres-why",{"title":35434,"description":35435,"ogTitle":35434,"ogDescription":35435,"noIndex":6,"ogImage":35297,"ogUrl":35436,"ogSiteName":995,"ogType":996,"canonicalUrls":35436,"schema":35437},"Our Handbook is open source: here's why","In this post we’re explaining the reasons why having an open source Handbook works for us and how it can help you.","https://about.gitlab.com/blog/our-handbook-is-open-source-heres-why","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our Handbook is open source: here's why\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-07-12\",\n      }",{"title":35434,"description":35435,"authors":35439,"heroImage":35297,"date":35440,"category":6121},[3701],"2016-07-12",{"slug":35442,"featured":6,"template":736},"our-handbook-is-open-source-heres-why","content:en-us:blog:our-handbook-is-open-source-heres-why.yml","Our Handbook Is Open Source Heres Why","en-us/blog/our-handbook-is-open-source-heres-why.yml","en-us/blog/our-handbook-is-open-source-heres-why",{"_path":35448,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35449,"content":35454,"config":35457,"_id":35459,"_type":16,"title":35460,"_source":17,"_file":35461,"_stem":35462,"_extension":20},"/en-us/blog/7-myths-about-open-source",{"title":35450,"description":35451,"ogTitle":35450,"ogDescription":35451,"noIndex":6,"ogImage":13361,"ogUrl":35452,"ogSiteName":995,"ogType":996,"canonicalUrls":35452,"schema":35453},"7 Myths About Open Sourcing Your Company's Software","Here are some common misconceptions about what happens when you open source your code.","https://about.gitlab.com/blog/7-myths-about-open-source","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"7 Myths About Open Sourcing Your Company's Software\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Folson\"}],\n        \"datePublished\": \"2016-07-08\",\n      }",{"title":35450,"description":35451,"authors":35455,"heroImage":13361,"date":35456,"category":1388},[33274],"2016-07-08",{"slug":35458,"featured":6,"template":736},"7-myths-about-open-source","content:en-us:blog:7-myths-about-open-source.yml","7 Myths About Open Source","en-us/blog/7-myths-about-open-source.yml","en-us/blog/7-myths-about-open-source",{"_path":35464,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35465,"content":35470,"config":35473,"_id":35475,"_type":16,"title":35476,"_source":17,"_file":35477,"_stem":35478,"_extension":20},"/en-us/blog/get-started-with-openshift-origin-3-and-gitlab",{"title":35466,"description":35467,"ogTitle":35466,"ogDescription":35467,"noIndex":6,"ogImage":16110,"ogUrl":35468,"ogSiteName":995,"ogType":996,"canonicalUrls":35468,"schema":35469},"Get started with OpenShift Origin 3 and GitLab","In this tutorial, we will see how to deploy GitLab in OpenShift using GitLab's official Docker image","https://about.gitlab.com/blog/get-started-with-openshift-origin-3-and-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get started with OpenShift Origin 3 and GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2016-06-28\",\n      }",{"title":35466,"description":35467,"authors":35471,"heroImage":16110,"date":35472,"category":858},[33451],"2016-06-28",{"slug":35474,"featured":6,"template":736},"get-started-with-openshift-origin-3-and-gitlab","content:en-us:blog:get-started-with-openshift-origin-3-and-gitlab.yml","Get Started With Openshift Origin 3 And Gitlab","en-us/blog/get-started-with-openshift-origin-3-and-gitlab.yml","en-us/blog/get-started-with-openshift-origin-3-and-gitlab",{"_path":35480,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35481,"content":35487,"config":35490,"_id":35492,"_type":16,"title":35493,"_source":17,"_file":35494,"_stem":35495,"_extension":20},"/en-us/blog/secure-gitlab-pages-with-startssl",{"title":35482,"description":35483,"ogTitle":35482,"ogDescription":35483,"noIndex":6,"ogImage":35484,"ogUrl":35485,"ogSiteName":995,"ogType":996,"canonicalUrls":35485,"schema":35486},"Secure GitLab Pages with StartSSL","A quick overview on SSL/TLS certificates and StartCom CA and a comparison between StartSSL Class 1 and Let's Encrypt.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684890/Blog/Hero%20Images/startssl-gitlab-pages-cover.jpg","https://about.gitlab.com/blog/secure-gitlab-pages-with-startssl","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Secure GitLab Pages with StartSSL\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-06-24\",\n      }",{"title":35482,"description":35483,"authors":35488,"heroImage":35484,"date":35489,"category":858},[33755],"2016-06-24",{"slug":35491,"featured":6,"template":736},"secure-gitlab-pages-with-startssl","content:en-us:blog:secure-gitlab-pages-with-startssl.yml","Secure Gitlab Pages With Startssl","en-us/blog/secure-gitlab-pages-with-startssl.yml","en-us/blog/secure-gitlab-pages-with-startssl",{"_path":35497,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35498,"content":35503,"config":35506,"_id":35508,"_type":16,"title":35509,"_source":17,"_file":35510,"_stem":35511,"_extension":20},"/en-us/blog/gitlab-adds-support-for-u2f",{"title":35499,"description":35500,"ogTitle":35499,"ogDescription":35500,"noIndex":6,"ogImage":35082,"ogUrl":35501,"ogSiteName":995,"ogType":996,"canonicalUrls":35501,"schema":35502},"Support for Universal 2nd Factor Authentication","GitLab now supports the FIDO Universal 2nd Factor (U2F) protocol for user authentication with hardware security from YubiKey.","https://about.gitlab.com/blog/gitlab-adds-support-for-u2f","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Support for Universal 2nd Factor Authentication\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amara Nwaigwe\"}],\n        \"datePublished\": \"2016-06-22\",\n      }",{"title":35499,"description":35500,"authors":35504,"heroImage":35082,"date":35505,"category":301},[34393],"2016-06-22",{"slug":35507,"featured":6,"template":736},"gitlab-adds-support-for-u2f","content:en-us:blog:gitlab-adds-support-for-u2f.yml","Gitlab Adds Support For U2f","en-us/blog/gitlab-adds-support-for-u2f.yml","en-us/blog/gitlab-adds-support-for-u2f",{"_path":35513,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35514,"content":35520,"config":35524,"_id":35526,"_type":16,"title":35527,"_source":17,"_file":35528,"_stem":35529,"_extension":20},"/en-us/blog/how-we-scale-gitlab-by-having-docker-built-in",{"title":35515,"description":35516,"ogTitle":35515,"ogDescription":35516,"noIndex":6,"ogImage":35517,"ogUrl":35518,"ogSiteName":995,"ogType":996,"canonicalUrls":35518,"schema":35519},"How we scale GitLab by having Docker built in","Read on for more details on how we scale GitLab by having Docker built in.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684707/Blog/Hero%20Images/scale-GitLab-Docker-built-in-cover.png","https://about.gitlab.com/blog/how-we-scale-gitlab-by-having-docker-built-in","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we scale GitLab by having Docker built in\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"DJ Mountney\"}],\n        \"datePublished\": \"2016-06-21\",\n      }",{"title":35515,"description":35516,"authors":35521,"heroImage":35517,"date":35523,"category":858},[35522],"DJ Mountney","2016-06-21",{"slug":35525,"featured":6,"template":736},"how-we-scale-gitlab-by-having-docker-built-in","content:en-us:blog:how-we-scale-gitlab-by-having-docker-built-in.yml","How We Scale Gitlab By Having Docker Built In","en-us/blog/how-we-scale-gitlab-by-having-docker-built-in.yml","en-us/blog/how-we-scale-gitlab-by-having-docker-built-in",{"_path":35531,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35532,"content":35538,"config":35541,"_id":35543,"_type":16,"title":35544,"_source":17,"_file":35545,"_stem":35546,"_extension":20},"/en-us/blog/ssg-overview-gitlab-pages-part-3-examples-ci",{"title":35533,"description":35534,"ogTitle":35533,"ogDescription":35534,"noIndex":6,"ogImage":35535,"ogUrl":35536,"ogSiteName":995,"ogType":996,"canonicalUrls":35536,"schema":35537},"SSGs Part 3: Build any SSG site with GitLab Pages","Which SSGs can I use with GitLab Pages? How to set up GitLab CI to build my SSG site? Where can I find some examples?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684858/Blog/Hero%20Images/ssg-overview-gitlab-pages-part-3-cover.jpg","https://about.gitlab.com/blog/ssg-overview-gitlab-pages-part-3-examples-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SSGs Part 3: Build any SSG site with GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-06-17\",\n      }",{"title":35533,"description":35534,"authors":35539,"heroImage":35535,"date":35540,"category":858},[33755],"2016-06-17",{"slug":35542,"featured":6,"template":736},"ssg-overview-gitlab-pages-part-3-examples-ci","content:en-us:blog:ssg-overview-gitlab-pages-part-3-examples-ci.yml","Ssg Overview Gitlab Pages Part 3 Examples Ci","en-us/blog/ssg-overview-gitlab-pages-part-3-examples-ci.yml","en-us/blog/ssg-overview-gitlab-pages-part-3-examples-ci",{"_path":35548,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35549,"content":35555,"config":35559,"_id":35561,"_type":16,"title":35562,"_source":17,"_file":35563,"_stem":35564,"_extension":20},"/en-us/blog/fearless-contribution-a-guide-for-first-timers",{"title":35550,"description":35551,"ogTitle":35550,"ogDescription":35551,"noIndex":6,"ogImage":35552,"ogUrl":35553,"ogSiteName":995,"ogType":996,"canonicalUrls":35553,"schema":35554},"Fearless Contribution: A Guide for First-Timers","First time contributions can be scary. If you're worried your skills are not up to par, you're not alone.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672230/Blog/Hero%20Images/fearless-contribution-a-guide-for-first-timers.jpg","https://about.gitlab.com/blog/fearless-contribution-a-guide-for-first-timers","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Fearless Contribution: A Guide for First-Timers\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Drew Blessing\"}],\n        \"datePublished\": \"2016-06-16\",\n      }",{"title":35550,"description":35551,"authors":35556,"heroImage":35552,"date":35558,"category":8140},[35557],"Drew Blessing","2016-06-16",{"slug":35560,"featured":6,"template":736},"fearless-contribution-a-guide-for-first-timers","content:en-us:blog:fearless-contribution-a-guide-for-first-timers.yml","Fearless Contribution A Guide For First Timers","en-us/blog/fearless-contribution-a-guide-for-first-timers.yml","en-us/blog/fearless-contribution-a-guide-for-first-timers",{"_path":35566,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35567,"content":35573,"config":35576,"_id":35578,"_type":16,"title":35579,"_source":17,"_file":35580,"_stem":35581,"_extension":20},"/en-us/blog/ssg-overview-gitlab-pages-part-2",{"title":35568,"description":35569,"ogTitle":35568,"ogDescription":35569,"noIndex":6,"ogImage":35570,"ogUrl":35571,"ogSiteName":995,"ogType":996,"canonicalUrls":35571,"schema":35572},"SSGs Part 2: What are modern static site generators","This is Part 2: Modern Static Site Generators, where we provide you with an overview on the subject.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684846/Blog/Hero%20Images/ssg-overview-gitlab-pages-cover.jpg","https://about.gitlab.com/blog/ssg-overview-gitlab-pages-part-2","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SSGs Part 2: What are modern static site generators\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-06-10\",\n      }",{"title":35568,"description":35569,"authors":35574,"heroImage":35570,"date":35575,"category":858},[33755],"2016-06-10",{"slug":35577,"featured":6,"template":736},"ssg-overview-gitlab-pages-part-2","content:en-us:blog:ssg-overview-gitlab-pages-part-2.yml","Ssg Overview Gitlab Pages Part 2","en-us/blog/ssg-overview-gitlab-pages-part-2.yml","en-us/blog/ssg-overview-gitlab-pages-part-2",{"_path":35583,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35584,"content":35590,"config":35594,"_id":35596,"_type":16,"title":35597,"_source":17,"_file":35598,"_stem":35599,"_extension":20},"/en-us/blog/continuous-delivery-with-gitlab-and-convox",{"title":35585,"description":35586,"ogTitle":35585,"ogDescription":35586,"noIndex":6,"ogImage":35587,"ogUrl":35588,"ogSiteName":995,"ogType":996,"canonicalUrls":35588,"schema":35589},"Continuous Delivery with GitLab and Convox","This tutorial will show you how to use GitLab and Convox together to ship software quickly and reliably.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684833/Blog/Hero%20Images/gitlab-convox-cover.jpg","https://about.gitlab.com/blog/continuous-delivery-with-gitlab-and-convox","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Continuous Delivery with GitLab and Convox\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Noah Zoschke\"}],\n        \"datePublished\": \"2016-06-09\",\n      }",{"title":35585,"description":35586,"authors":35591,"heroImage":35587,"date":35593,"category":1388},[35592],"Noah Zoschke","2016-06-09",{"slug":35595,"featured":6,"template":736},"continuous-delivery-with-gitlab-and-convox","content:en-us:blog:continuous-delivery-with-gitlab-and-convox.yml","Continuous Delivery With Gitlab And Convox","en-us/blog/continuous-delivery-with-gitlab-and-convox.yml","en-us/blog/continuous-delivery-with-gitlab-and-convox",{"_path":35601,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35602,"content":35608,"config":35611,"_id":35613,"_type":16,"title":35614,"_source":17,"_file":35615,"_stem":35616,"_extension":20},"/en-us/blog/getting-started-with-gitlab-development-kit",{"title":35603,"description":35604,"ogTitle":35603,"ogDescription":35604,"noIndex":6,"ogImage":35605,"ogUrl":35606,"ogSiteName":995,"ogType":996,"canonicalUrls":35606,"schema":35607},"Getting Started with GitLab Development Kit","This post is helpful if you've considered developing a feature or fix for GitLab but are unsure how to set up a development environment.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684698/Blog/Hero%20Images/getting-started-with-gitlab-development-kit.jpg","https://about.gitlab.com/blog/getting-started-with-gitlab-development-kit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting Started with GitLab Development Kit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Drew Blessing\"}],\n        \"datePublished\": \"2016-06-08\",\n      }",{"title":35603,"description":35604,"authors":35609,"heroImage":35605,"date":35610,"category":858},[35557],"2016-06-08",{"slug":35612,"featured":6,"template":736},"getting-started-with-gitlab-development-kit","content:en-us:blog:getting-started-with-gitlab-development-kit.yml","Getting Started With Gitlab Development Kit","en-us/blog/getting-started-with-gitlab-development-kit.yml","en-us/blog/getting-started-with-gitlab-development-kit",{"_path":35618,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35619,"content":35625,"config":35628,"_id":35630,"_type":16,"title":35631,"_source":17,"_file":35632,"_stem":35633,"_extension":20},"/en-us/blog/navigation-redesign",{"title":35620,"description":35621,"ogTitle":35620,"ogDescription":35621,"noIndex":6,"ogImage":35622,"ogUrl":35623,"ogSiteName":995,"ogType":996,"canonicalUrls":35623,"schema":35624},"Navigation redesign","After GitLab 8.5 was released, we looked for a way to improve the current user interface for both new and experienced users.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684693/Blog/Hero%20Images/gitlab-blog-cover.png","https://about.gitlab.com/blog/navigation-redesign","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Navigation redesign\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dmitriy Zaporozhets\"}],\n        \"datePublished\": \"2016-06-06\",\n      }",{"title":35620,"description":35621,"authors":35626,"heroImage":35622,"date":35627,"category":301},[15363],"2016-06-06",{"slug":35629,"featured":6,"template":736},"navigation-redesign","content:en-us:blog:navigation-redesign.yml","Navigation Redesign","en-us/blog/navigation-redesign.yml","en-us/blog/navigation-redesign",{"_path":35635,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35636,"content":35642,"config":35645,"_id":35647,"_type":16,"title":35648,"_source":17,"_file":35649,"_stem":35650,"_extension":20},"/en-us/blog/ssg-overview-gitlab-pages-part-1-dynamic-x-static",{"title":35637,"description":35638,"ogTitle":35637,"ogDescription":35638,"noIndex":6,"ogImage":35639,"ogUrl":35640,"ogSiteName":995,"ogType":996,"canonicalUrls":35640,"schema":35641},"SSGs Part 1: A Static vs Dynamic Website","This is Part 1: A Dynamic vs Static Website, where we go over their differences, pros and cons.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684818/Blog/Hero%20Images/part-1-static-x-dynamic-cover.jpg","https://about.gitlab.com/blog/ssg-overview-gitlab-pages-part-1-dynamic-x-static","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SSGs Part 1: A Static vs Dynamic Website\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-06-03\",\n      }",{"title":35637,"description":35638,"authors":35643,"heroImage":35639,"date":35644,"category":858},[33755],"2016-06-03",{"slug":35646,"featured":6,"template":736},"ssg-overview-gitlab-pages-part-1-dynamic-x-static","content:en-us:blog:ssg-overview-gitlab-pages-part-1-dynamic-x-static.yml","Ssg Overview Gitlab Pages Part 1 Dynamic X Static","en-us/blog/ssg-overview-gitlab-pages-part-1-dynamic-x-static.yml","en-us/blog/ssg-overview-gitlab-pages-part-1-dynamic-x-static",{"_path":35652,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35653,"content":35659,"config":35662,"_id":35664,"_type":16,"title":35665,"_source":17,"_file":35666,"_stem":35667,"_extension":20},"/en-us/blog/june-events",{"title":35654,"description":35655,"ogTitle":35654,"ogDescription":35655,"noIndex":6,"ogImage":35656,"ogUrl":35657,"ogSiteName":995,"ogType":996,"canonicalUrls":35657,"schema":35658},"Meet GitLab - June Events","If you have been following along last month the entire GitLab team met, many for the first time, in Austin, TX.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684686/Blog/Hero%20Images/SHU_4933.jpg","https://about.gitlab.com/blog/june-events","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Meet GitLab - June Events\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2016-06-01\",\n      }",{"title":35654,"description":35655,"authors":35660,"heroImage":35656,"date":35661,"category":301},[25520],"2016-06-01",{"slug":35663,"featured":6,"template":736},"june-events","content:en-us:blog:june-events.yml","June Events","en-us/blog/june-events.yml","en-us/blog/june-events",{"_path":35669,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35670,"content":35676,"config":35679,"_id":35681,"_type":16,"title":35682,"_source":17,"_file":35683,"_stem":35684,"_extension":20},"/en-us/blog/customer-story-charge-communications",{"title":35671,"description":35672,"ogTitle":35671,"ogDescription":35672,"noIndex":6,"ogImage":35673,"ogUrl":35674,"ogSiteName":995,"ogType":996,"canonicalUrls":35674,"schema":35675},"Customer Story: Charge","In this post we will share how Charge, a telecommunications company uses GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684736/Blog/Hero%20Images/person-on-phone.jpg","https://about.gitlab.com/blog/customer-story-charge-communications","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer Story: Charge\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-05-31\",\n      }",{"title":35671,"description":35672,"authors":35677,"heroImage":35673,"date":35678,"category":8140},[1000],"2016-05-31",{"slug":35680,"featured":6,"template":736},"customer-story-charge-communications","content:en-us:blog:customer-story-charge-communications.yml","Customer Story Charge Communications","en-us/blog/customer-story-charge-communications.yml","en-us/blog/customer-story-charge-communications",{"_path":35686,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35687,"content":35693,"config":35696,"_id":35698,"_type":16,"title":35699,"_source":17,"_file":35700,"_stem":35701,"_extension":20},"/en-us/blog/1k-contributors",{"title":35688,"description":35689,"ogTitle":35688,"ogDescription":35689,"noIndex":6,"ogImage":35690,"ogUrl":35691,"ogSiteName":995,"ogType":996,"canonicalUrls":35691,"schema":35692},"Celebrating 1000 Contributors","We are very excited to announce that we recently welcomed our 1,000th contributor!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684731/Blog/Hero%20Images/1K_contributors_cards.jpg","https://about.gitlab.com/blog/1k-contributors","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Celebrating 1000 Contributors\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-05-24\",\n      }",{"title":35688,"description":35689,"authors":35694,"heroImage":35690,"date":35695,"category":301},[1000],"2016-05-24",{"slug":35697,"featured":6,"template":736},"1k-contributors","content:en-us:blog:1k-contributors.yml","1k Contributors","en-us/blog/1k-contributors.yml","en-us/blog/1k-contributors",{"_path":35703,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35704,"content":35709,"config":35712,"_id":35714,"_type":16,"title":35715,"_source":17,"_file":35716,"_stem":35717,"_extension":20},"/en-us/blog/gitlab-container-registry",{"title":35705,"description":35706,"ogTitle":35705,"ogDescription":35706,"noIndex":6,"ogImage":35248,"ogUrl":35707,"ogSiteName":995,"ogType":996,"canonicalUrls":35707,"schema":35708},"Introducing GitLab Container Registry","Built on open source software, GitLab Container Registry isn't just a standalone registry; it's completely integrated with GitLab.","https://about.gitlab.com/blog/gitlab-container-registry","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Introducing GitLab Container Registry\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mark Pundsack\"}],\n        \"datePublished\": \"2016-05-23\",\n      }",{"title":35705,"description":35706,"authors":35710,"heroImage":35248,"date":35711,"category":858},[24243],"2016-05-23",{"slug":35713,"featured":6,"template":736},"gitlab-container-registry","content:en-us:blog:gitlab-container-registry.yml","Gitlab Container Registry","en-us/blog/gitlab-container-registry.yml","en-us/blog/gitlab-container-registry",{"_path":35719,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35720,"content":35726,"config":35729,"_id":35731,"_type":16,"title":35732,"_source":17,"_file":35733,"_stem":35734,"_extension":20},"/en-us/blog/git-repository-pricing",{"title":35721,"description":35722,"ogTitle":35721,"ogDescription":35722,"noIndex":6,"ogImage":35723,"ogUrl":35724,"ogSiteName":995,"ogType":996,"canonicalUrls":35724,"schema":35725},"The future of SaaS hosted Git repository pricing","At GitLab, we think per-user pricing is the best pricing model because it is more predictable, less restrictive on code, and aligned with value the organization gets.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683732/Blog/Hero%20Images/stars.png","https://about.gitlab.com/blog/git-repository-pricing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The future of SaaS hosted Git repository pricing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-05-11\",\n      }",{"title":35721,"description":35722,"authors":35727,"heroImage":35723,"date":35728,"category":301},[3701],"2016-05-11",{"slug":35730,"featured":6,"template":736},"git-repository-pricing","content:en-us:blog:git-repository-pricing.yml","Git Repository Pricing","en-us/blog/git-repository-pricing.yml","en-us/blog/git-repository-pricing",{"_path":35736,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35737,"content":35742,"config":35745,"_id":35747,"_type":16,"title":35748,"_source":17,"_file":35749,"_stem":35750,"_extension":20},"/en-us/blog/feature-highlight-push-to-remote-repository",{"title":35738,"description":35739,"ogTitle":35738,"ogDescription":35739,"noIndex":6,"ogImage":11046,"ogUrl":35740,"ogSiteName":995,"ogType":996,"canonicalUrls":35740,"schema":35741},"Feature highlight: Push to a remote repository","In GitLab 8.7 we introduced the second part of the mirroring functionality: the ability to push changes to an external repository from GitLab.","https://about.gitlab.com/blog/feature-highlight-push-to-remote-repository","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature highlight: Push to a remote repository\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ivan Nemytchenko\"}],\n        \"datePublished\": \"2016-05-10\",\n      }",{"title":35738,"description":35739,"authors":35743,"heroImage":11046,"date":35744,"category":8140},[18417],"2016-05-10",{"slug":35746,"featured":6,"template":736},"feature-highlight-push-to-remote-repository","content:en-us:blog:feature-highlight-push-to-remote-repository.yml","Feature Highlight Push To Remote Repository","en-us/blog/feature-highlight-push-to-remote-repository.yml","en-us/blog/feature-highlight-push-to-remote-repository",{"_path":35752,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35753,"content":35759,"config":35762,"_id":35764,"_type":16,"title":35765,"_source":17,"_file":35766,"_stem":35767,"_extension":20},"/en-us/blog/getting-started-gitlab-and-shippable",{"title":35754,"description":35755,"ogTitle":35754,"ogDescription":35755,"noIndex":6,"ogImage":35756,"ogUrl":35757,"ogSiteName":995,"ogType":996,"canonicalUrls":35757,"schema":35758},"Getting Started with GitLab and Shippable Continuous Integration"," To know more about how to set up Shippable CI with GitLab, read on.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672330/Blog/Hero%20Images/1-aye_aye_gitlab.png","https://about.gitlab.com/blog/getting-started-gitlab-and-shippable","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting Started with GitLab and Shippable Continuous Integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-05-05\",\n      }",{"title":35754,"description":35755,"authors":35760,"heroImage":35756,"date":35761,"category":858},[1000],"2016-05-05",{"slug":35763,"featured":6,"template":736},"getting-started-gitlab-and-shippable","content:en-us:blog:getting-started-gitlab-and-shippable.yml","Getting Started Gitlab And Shippable","en-us/blog/getting-started-gitlab-and-shippable.yml","en-us/blog/getting-started-gitlab-and-shippable",{"_path":35769,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35770,"content":35776,"config":35779,"_id":35781,"_type":16,"title":35782,"_source":17,"_file":35783,"_stem":35784,"_extension":20},"/en-us/blog/look-into-gitlab-infrastructure",{"title":35771,"description":35772,"ogTitle":35771,"ogDescription":35772,"noIndex":6,"ogImage":35773,"ogUrl":35774,"ogSiteName":995,"ogType":996,"canonicalUrls":35774,"schema":35775},"An inside look at the infrastructure of GitLab.com","In this post, you'll find out just how many servers we use. You'll gain some perspective on what those servers are up to.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684519/Blog/Hero%20Images/goal.jpg","https://about.gitlab.com/blog/look-into-gitlab-infrastructure","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"An inside look at the infrastructure of GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tomasz Maczukin\"}],\n        \"datePublished\": \"2016-04-29\",\n      }",{"title":35771,"description":35772,"authors":35777,"heroImage":35773,"date":35778,"category":858},[16308],"2016-04-29",{"slug":35780,"featured":6,"template":736},"look-into-gitlab-infrastructure","content:en-us:blog:look-into-gitlab-infrastructure.yml","Look Into Gitlab Infrastructure","en-us/blog/look-into-gitlab-infrastructure.yml","en-us/blog/look-into-gitlab-infrastructure",{"_path":35786,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35787,"content":35793,"config":35797,"_id":35799,"_type":16,"title":35800,"_source":17,"_file":35801,"_stem":35802,"_extension":20},"/en-us/blog/getting-started-with-gitlab-and-digitalocean",{"title":35788,"description":35789,"ogTitle":35788,"ogDescription":35789,"noIndex":6,"ogImage":35790,"ogUrl":35791,"ogSiteName":995,"ogType":996,"canonicalUrls":35791,"schema":35792},"Getting started with GitLab and DigitalOcean","This tutorial is adapted from the How To Use the GitLab One-Click Install Image to Manage Git Repositories tutorial on DigitalOcean.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672941/Blog/Hero%20Images/sharks-paper.jpg","https://about.gitlab.com/blog/getting-started-with-gitlab-and-digitalocean","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab and DigitalOcean\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2016-04-27\",\n      }",{"title":35788,"description":35789,"authors":35794,"heroImage":35790,"date":35795,"category":858,"tags":35796},[33451],"2016-04-27",[233],{"slug":35798,"featured":6,"template":736},"getting-started-with-gitlab-and-digitalocean","content:en-us:blog:getting-started-with-gitlab-and-digitalocean.yml","Getting Started With Gitlab And Digitalocean","en-us/blog/getting-started-with-gitlab-and-digitalocean.yml","en-us/blog/getting-started-with-gitlab-and-digitalocean",{"_path":35804,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35805,"content":35811,"config":35815,"_id":35817,"_type":16,"title":35818,"_source":17,"_file":35819,"_stem":35820,"_extension":20},"/en-us/blog/gitlab-employees-on-working-at-gitlab",{"title":35806,"description":35807,"ogTitle":35806,"ogDescription":35807,"noIndex":6,"ogImage":35808,"ogUrl":35809,"ogSiteName":995,"ogType":996,"canonicalUrls":35809,"schema":35810},"What GitLab employees like about working at GitLab","We're often asked about what it's like to work at GitLab. Every GitLab team member answers this question a little differently.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679222/Blog/Hero%20Images/2015_amsterdam_team.jpg","https://about.gitlab.com/blog/gitlab-employees-on-working-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What GitLab employees like about working at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-04-26\",\n      }",{"title":35806,"description":35807,"authors":35812,"heroImage":35808,"date":35813,"category":6121,"tags":35814},[1000],"2016-04-26",[3914,1569],{"slug":35816,"featured":6,"template":736},"gitlab-employees-on-working-at-gitlab","content:en-us:blog:gitlab-employees-on-working-at-gitlab.yml","Gitlab Employees On Working At Gitlab","en-us/blog/gitlab-employees-on-working-at-gitlab.yml","en-us/blog/gitlab-employees-on-working-at-gitlab",{"_path":35822,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35823,"content":35829,"config":35832,"_id":35834,"_type":16,"title":35835,"_source":17,"_file":35836,"_stem":35837,"_extension":20},"/en-us/blog/feature-highlight-move-issues",{"title":35824,"description":35825,"ogTitle":35824,"ogDescription":35825,"noIndex":6,"ogImage":35826,"ogUrl":35827,"ogSiteName":995,"ogType":996,"canonicalUrls":35827,"schema":35828},"Feature highlight: Move issues between projects","In GitLab 8.6 we added a feature allowing you to move issues between projects.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684674/Blog/Hero%20Images/truck.jpg","https://about.gitlab.com/blog/feature-highlight-move-issues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature highlight: Move issues between projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Grzegorz Bizon\"}],\n        \"datePublished\": \"2016-04-20\",\n      }",{"title":35824,"description":35825,"authors":35830,"heroImage":35826,"date":35831,"category":8140},[3109],"2016-04-20",{"slug":35833,"featured":6,"template":736},"feature-highlight-move-issues","content:en-us:blog:feature-highlight-move-issues.yml","Feature Highlight Move Issues","en-us/blog/feature-highlight-move-issues.yml","en-us/blog/feature-highlight-move-issues",{"_path":35839,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35840,"content":35846,"config":35850,"_id":35852,"_type":16,"title":35853,"_source":17,"_file":35854,"_stem":35855,"_extension":20},"/en-us/blog/gitlab-partners-with-digitalocean-to-make-continuous-integration-faster-safer-and-more-affordable",{"title":35841,"description":35842,"ogTitle":35841,"ogDescription":35842,"noIndex":6,"ogImage":35843,"ogUrl":35844,"ogSiteName":995,"ogType":996,"canonicalUrls":35844,"schema":35845},"GitLab & DigitalOcean: Faster, safer & affordable CI","We are excited to announce our partnership with DigitalOcean, the world’s simplest cloud infrastructure provider.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684195/Blog/Hero%20Images/ios-development.jpg","https://about.gitlab.com/blog/gitlab-partners-with-digitalocean-to-make-continuous-integration-faster-safer-and-more-affordable","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Partners with DigitalOcean to make Continuous Integration faster, safer, and more affordable\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amara Nwaigwe\"}],\n        \"datePublished\": \"2016-04-19\",\n      }",{"title":35847,"description":35842,"authors":35848,"heroImage":35843,"date":35849,"category":301},"GitLab Partners with DigitalOcean to make Continuous Integration faster, safer, and more affordable",[34393],"2016-04-19",{"slug":35851,"featured":6,"template":736},"gitlab-partners-with-digitalocean-to-make-continuous-integration-faster-safer-and-more-affordable","content:en-us:blog:gitlab-partners-with-digitalocean-to-make-continuous-integration-faster-safer-and-more-affordable.yml","Gitlab Partners With Digitalocean To Make Continuous Integration Faster Safer And More Affordable","en-us/blog/gitlab-partners-with-digitalocean-to-make-continuous-integration-faster-safer-and-more-affordable.yml","en-us/blog/gitlab-partners-with-digitalocean-to-make-continuous-integration-faster-safer-and-more-affordable",{"_path":35857,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35858,"content":35864,"config":35866,"_id":35868,"_type":16,"title":35869,"_source":17,"_file":35870,"_stem":35871,"_extension":20},"/en-us/blog/how-to-set-up-gitlab-runner-on-digitalocean",{"title":35859,"description":35860,"ogTitle":35859,"ogDescription":35860,"noIndex":6,"ogImage":35861,"ogUrl":35862,"ogSiteName":995,"ogType":996,"canonicalUrls":35862,"schema":35863},"How to set up GitLab Runner on DigitalOcean","In this tutorial we will explore how easy it is to install and set up your own Runner on DigitalOcean.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684667/Blog/Hero%20Images/runners.jpg","https://about.gitlab.com/blog/how-to-set-up-gitlab-runner-on-digitalocean","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to set up GitLab Runner on DigitalOcean\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2016-04-19\",\n      }",{"title":35859,"description":35860,"authors":35865,"heroImage":35861,"date":35849,"category":858},[33451],{"slug":35867,"featured":6,"template":736},"how-to-set-up-gitlab-runner-on-digitalocean","content:en-us:blog:how-to-set-up-gitlab-runner-on-digitalocean.yml","How To Set Up Gitlab Runner On Digitalocean","en-us/blog/how-to-set-up-gitlab-runner-on-digitalocean.yml","en-us/blog/how-to-set-up-gitlab-runner-on-digitalocean",{"_path":35873,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35874,"content":35879,"config":35882,"_id":35884,"_type":16,"title":35885,"_source":17,"_file":35886,"_stem":35887,"_extension":20},"/en-us/blog/feature-highlight-subscribe-to-label",{"title":35875,"description":35876,"ogTitle":35875,"ogDescription":35876,"noIndex":6,"ogImage":35843,"ogUrl":35877,"ogSiteName":995,"ogType":996,"canonicalUrls":35877,"schema":35878},"Feature Highlight: Subscribe to Label","In GitLab 8.6 and up, you can subscribe to a label. Whenever an issue is tagged with the label you subscribed to, you will get a notification.","https://about.gitlab.com/blog/feature-highlight-subscribe-to-label","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Subscribe to Label\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2016-04-13\",\n      }",{"title":35875,"description":35876,"authors":35880,"heroImage":35843,"date":35881,"category":8140},[34274],"2016-04-13",{"slug":35883,"featured":6,"template":736},"feature-highlight-subscribe-to-label","content:en-us:blog:feature-highlight-subscribe-to-label.yml","Feature Highlight Subscribe To Label","en-us/blog/feature-highlight-subscribe-to-label.yml","en-us/blog/feature-highlight-subscribe-to-label",{"_path":35889,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35890,"content":35896,"config":35899,"_id":35901,"_type":16,"title":35902,"_source":17,"_file":35903,"_stem":35904,"_extension":20},"/en-us/blog/a-brief-history-of-gitlab-workhorse",{"title":35891,"description":35892,"ogTitle":35891,"ogDescription":35892,"noIndex":6,"ogImage":35893,"ogUrl":35894,"ogSiteName":995,"ogType":996,"canonicalUrls":35894,"schema":35895},"A Brief History of GitLab Workhorse","A Brief History of GitLab Workhorse - in this blog post I will reflect on how we got there.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684809/Blog/Hero%20Images/gopher.jpg","https://about.gitlab.com/blog/a-brief-history-of-gitlab-workhorse","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A Brief History of GitLab Workhorse\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2016-04-12\",\n      }",{"title":35891,"description":35892,"authors":35897,"heroImage":35893,"date":35898,"category":858},[14315],"2016-04-12",{"slug":35900,"featured":6,"template":736},"a-brief-history-of-gitlab-workhorse","content:en-us:blog:a-brief-history-of-gitlab-workhorse.yml","A Brief History Of Gitlab Workhorse","en-us/blog/a-brief-history-of-gitlab-workhorse.yml","en-us/blog/a-brief-history-of-gitlab-workhorse",{"_path":35906,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35907,"content":35913,"config":35917,"_id":35919,"_type":16,"title":35920,"_source":17,"_file":35921,"_stem":35922,"_extension":20},"/en-us/blog/tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt",{"title":35908,"description":35909,"ogTitle":35908,"ogDescription":35909,"noIndex":6,"ogImage":35910,"ogUrl":35911,"ogSiteName":995,"ogType":996,"canonicalUrls":35911,"schema":35912},"Tutorial: Securing your GitLab Pages with TLS and Let's Encrypt","In this post we will talk about HTTPS and how to add it to your GitLab Pages site with Let's Encrypt","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672214/Blog/Hero%20Images/altssh.jpg","https://about.gitlab.com/blog/tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: Securing your GitLab Pages with TLS and Let's Encrypt\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Guest author André Miranda\"}],\n        \"datePublished\": \"2016-04-11\",\n      }",{"title":35908,"description":35909,"authors":35914,"heroImage":35910,"date":35916,"category":858},[35915],"Guest author André Miranda","2016-04-11",{"slug":35918,"featured":6,"template":736},"tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt","content:en-us:blog:tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt.yml","Tutorial Securing Your Gitlab Pages With Tls And Letsencrypt","en-us/blog/tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt.yml","en-us/blog/tutorial-securing-your-gitlab-pages-with-tls-and-letsencrypt",{"_path":35924,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35925,"content":35931,"config":35934,"_id":35936,"_type":16,"title":35937,"_source":17,"_file":35938,"_stem":35939,"_extension":20},"/en-us/blog/remote-working-parents",{"title":35926,"description":35927,"ogTitle":35926,"ogDescription":35927,"noIndex":6,"ogImage":35928,"ogUrl":35929,"ogSiteName":995,"ogType":996,"canonicalUrls":35929,"schema":35930},"What’s It Like to Be a Working Parent at GitLab?","In this post, we’re giving you a view into our experiences of remote working as parents.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684745/Blog/Hero%20Images/crayons-kids.jpg","https://about.gitlab.com/blog/remote-working-parents","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"What’s It Like to Be a Working Parent at GitLab?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-04-08\",\n      }",{"title":35926,"description":35927,"authors":35932,"heroImage":35928,"date":35933,"category":6121},[1000],"2016-04-08",{"slug":35935,"featured":6,"template":736},"remote-working-parents","content:en-us:blog:remote-working-parents.yml","Remote Working Parents","en-us/blog/remote-working-parents.yml","en-us/blog/remote-working-parents",{"_path":35941,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35942,"content":35948,"config":35951,"_id":35953,"_type":16,"title":35954,"_source":17,"_file":35955,"_stem":35956,"_extension":20},"/en-us/blog/gitlab-pages-setup",{"title":35943,"description":35944,"ogTitle":35943,"ogDescription":35944,"noIndex":6,"ogImage":35945,"ogUrl":35946,"ogSiteName":995,"ogType":996,"canonicalUrls":35946,"schema":35947},"Hosting on GitLab.com with GitLab Pages","Learn how to host your website on GitLab.com with GitLab Pages","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671069/Blog/Hero%20Images/gitlab-pages-setup-cover.jpg","https://about.gitlab.com/blog/gitlab-pages-setup","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Hosting on GitLab.com with GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marcia Ramos\"}],\n        \"datePublished\": \"2016-04-07\",\n      }",{"title":35943,"description":35944,"authors":35949,"heroImage":35945,"date":35950,"category":858},[33755],"2016-04-07",{"slug":35952,"featured":6,"template":736},"gitlab-pages-setup","content:en-us:blog:gitlab-pages-setup.yml","Gitlab Pages Setup","en-us/blog/gitlab-pages-setup.yml","en-us/blog/gitlab-pages-setup",{"_path":35958,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35959,"content":35965,"config":35967,"_id":35969,"_type":16,"title":35970,"_source":17,"_file":35971,"_stem":35972,"_extension":20},"/en-us/blog/stack-overflow-support-network",{"title":35960,"description":35961,"ogTitle":35960,"ogDescription":35961,"noIndex":6,"ogImage":35962,"ogUrl":35963,"ogSiteName":995,"ogType":996,"canonicalUrls":35963,"schema":35964},"Customer Story: Stack Overflow","In this post we'll look at how Stack Overflow uses GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684759/Blog/Hero%20Images/stack.jpg","https://about.gitlab.com/blog/stack-overflow-support-network","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Customer Story: Stack Overflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-04-07\",\n      }",{"title":35960,"description":35961,"authors":35966,"heroImage":35962,"date":35950,"category":8140},[1000],{"slug":35968,"featured":6,"template":736},"stack-overflow-support-network","content:en-us:blog:stack-overflow-support-network.yml","Stack Overflow Support Network","en-us/blog/stack-overflow-support-network.yml","en-us/blog/stack-overflow-support-network",{"_path":35974,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35975,"content":35981,"config":35984,"_id":35986,"_type":16,"title":35987,"_source":17,"_file":35988,"_stem":35989,"_extension":20},"/en-us/blog/git-contributors-summit",{"title":35976,"description":35977,"ogTitle":35976,"ogDescription":35977,"noIndex":6,"ogImage":35978,"ogUrl":35979,"ogSiteName":995,"ogType":996,"canonicalUrls":35979,"schema":35980},"Notes from the Git Merge Core Contributors Summit","Sytse, Job and Marin attended to represent GitLab and learn more about what is happening in the core Git community. Here are our notes and impressions from this event.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684654/Blog/Hero%20Images/notes.jpg","https://about.gitlab.com/blog/git-contributors-summit","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Notes from the Git Merge Core Contributors Summit\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-04-06\",\n      }",{"title":35976,"description":35977,"authors":35982,"heroImage":35978,"date":35983,"category":8140},[1000],"2016-04-06",{"slug":35985,"featured":6,"template":736},"git-contributors-summit","content:en-us:blog:git-contributors-summit.yml","Git Contributors Summit","en-us/blog/git-contributors-summit.yml","en-us/blog/git-contributors-summit",{"_path":35991,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":35992,"content":35998,"config":36002,"_id":36004,"_type":16,"title":36005,"_source":17,"_file":36006,"_stem":36007,"_extension":20},"/en-us/blog/shared-runners",{"title":35993,"description":35994,"ogTitle":35993,"ogDescription":35994,"noIndex":6,"ogImage":35995,"ogUrl":35996,"ogSiteName":995,"ogType":996,"canonicalUrls":35996,"schema":35997},"GitLab.com Shared Runners use Autoscaling","With the latest release of GitLab Runner 1.1, we've introduced autoscaling to help us meet the growing demand","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684484/Blog/Hero%20Images/agile.jpg","https://about.gitlab.com/blog/shared-runners","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com Shared Runners use Autoscaling\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kamil Trzciński\"}],\n        \"datePublished\": \"2016-04-05\",\n      }",{"title":35993,"description":35994,"authors":35999,"heroImage":35995,"date":36001,"category":858},[36000],"Kamil Trzciński","2016-04-05",{"slug":36003,"featured":6,"template":736},"shared-runners","content:en-us:blog:shared-runners.yml","Shared Runners","en-us/blog/shared-runners.yml","en-us/blog/shared-runners",{"_path":36009,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36010,"content":36015,"config":36018,"_id":36020,"_type":16,"title":36021,"_source":17,"_file":36022,"_stem":36023,"_extension":20},"/en-us/blog/gitlab-pages-get-started",{"title":36011,"description":36012,"ogTitle":36011,"ogDescription":36012,"noIndex":6,"ogImage":35843,"ogUrl":36013,"ogSiteName":995,"ogType":996,"canonicalUrls":36013,"schema":36014},"Get Started with GitLab Pages","We've since added some great resources to help you get started with Gitlab Pages, including this handy quickstart guide.","https://about.gitlab.com/blog/gitlab-pages-get-started","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Get Started with GitLab Pages\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2016-04-04\",\n      }",{"title":36011,"description":36012,"authors":36016,"heroImage":35843,"date":36017,"category":858},[33451],"2016-04-04",{"slug":36019,"featured":6,"template":736},"gitlab-pages-get-started","content:en-us:blog:gitlab-pages-get-started.yml","Gitlab Pages Get Started","en-us/blog/gitlab-pages-get-started.yml","en-us/blog/gitlab-pages-get-started",{"_path":36025,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36026,"content":36032,"config":36035,"_id":36037,"_type":16,"title":36038,"_source":17,"_file":36039,"_stem":36040,"_extension":20},"/en-us/blog/feature-highlihght-confidential-issues",{"title":36027,"description":36028,"ogTitle":36027,"ogDescription":36028,"noIndex":6,"ogImage":36029,"ogUrl":36030,"ogSiteName":995,"ogType":996,"canonicalUrls":36030,"schema":36031},"Feature Highlight: Confidential issues","Since GitLab 8.6, in both Community and Enterprise edition, there is a small checkbox available when you create or edit an issue, allowing you to mark an issue as confidential.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684753/Blog/Hero%20Images/door.jpg","https://about.gitlab.com/blog/feature-highlihght-confidential-issues","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Confidential issues\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Douglas Alexandre\"}],\n        \"datePublished\": \"2016-03-31\",\n      }",{"title":36027,"description":36028,"authors":36033,"heroImage":36029,"date":36034,"category":8140},[12769],"2016-03-31",{"slug":36036,"featured":6,"template":736},"feature-highlihght-confidential-issues","content:en-us:blog:feature-highlihght-confidential-issues.yml","Feature Highlihght Confidential Issues","en-us/blog/feature-highlihght-confidential-issues.yml","en-us/blog/feature-highlihght-confidential-issues",{"_path":36042,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36043,"content":36049,"config":36053,"_id":36055,"_type":16,"title":36056,"_source":17,"_file":36057,"_stem":36058,"_extension":20},"/en-us/blog/feature-highlight-saml",{"title":36044,"description":36045,"ogTitle":36044,"ogDescription":36045,"noIndex":6,"ogImage":36046,"ogUrl":36047,"ogSiteName":995,"ogType":996,"canonicalUrls":36047,"schema":36048},"Feature Highlight: SAML and its future within GitLab","In this blog post I'll give you an overview of what I've been working on, how it affects GitLab, and what we plan to do with SAML in the future.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684764/Blog/Hero%20Images/galaxy-small.jpg","https://about.gitlab.com/blog/feature-highlight-saml","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: SAML and its future within GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patricio Cano\"}],\n        \"datePublished\": \"2016-03-30\",\n      }",{"title":36044,"description":36045,"authors":36050,"heroImage":36046,"date":36052,"category":8140},[36051],"Patricio Cano","2016-03-30",{"slug":36054,"featured":6,"template":736},"feature-highlight-saml","content:en-us:blog:feature-highlight-saml.yml","Feature Highlight Saml","en-us/blog/feature-highlight-saml.yml","en-us/blog/feature-highlight-saml",{"_path":36060,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36061,"content":36066,"config":36070,"_id":36072,"_type":16,"title":36073,"_source":17,"_file":36074,"_stem":36075,"_extension":20},"/en-us/blog/webcast-continuous-integration",{"title":36062,"description":36063,"ogTitle":36062,"ogDescription":36063,"noIndex":6,"ogImage":35723,"ogUrl":36064,"ogSiteName":995,"ogType":996,"canonicalUrls":36064,"schema":36065},"Join us for a live tutorial about GitLab CI","Join the GitLab CI team to ask questions and find out how to get the most out of the built-in continuous integration with GitLab.","https://about.gitlab.com/blog/webcast-continuous-integration","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Join us for a live tutorial about GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-03-28\",\n      }",{"title":36062,"description":36063,"authors":36067,"heroImage":35723,"date":36069,"category":301},[36068],"Heather McNamee","2016-03-28",{"slug":36071,"featured":6,"template":736},"webcast-continuous-integration","content:en-us:blog:webcast-continuous-integration.yml","Webcast Continuous Integration","en-us/blog/webcast-continuous-integration.yml","en-us/blog/webcast-continuous-integration",{"_path":36077,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36078,"content":36083,"config":36086,"_id":36088,"_type":16,"title":36089,"_source":17,"_file":36090,"_stem":36091,"_extension":20},"/en-us/blog/webcast-gitlab-86",{"title":36079,"description":36080,"ogTitle":36079,"ogDescription":36080,"noIndex":6,"ogImage":35723,"ogUrl":36081,"ogSiteName":995,"ogType":996,"canonicalUrls":36081,"schema":36082},"Webcast Recording and Slides: GitLab 8.6","If you're new to GitLab, this webcast will give you a good overview of using GitLab, and if you're experienced you get to see the new features in action.","https://about.gitlab.com/blog/webcast-gitlab-86","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Webcast Recording and Slides: GitLab 8.6\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-03-25\",\n      }",{"title":36079,"description":36080,"authors":36084,"heroImage":35723,"date":36085,"category":8140},[36068],"2016-03-25",{"slug":36087,"featured":6,"template":736},"webcast-gitlab-86","content:en-us:blog:webcast-gitlab-86.yml","Webcast Gitlab 86","en-us/blog/webcast-gitlab-86.yml","en-us/blog/webcast-gitlab-86",{"_path":36093,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36094,"content":36099,"config":36103,"_id":36105,"_type":16,"title":36106,"_source":17,"_file":36107,"_stem":36108,"_extension":20},"/en-us/blog/gitlab-look-at-the-fair-source-license",{"title":36095,"description":36096,"ogTitle":36095,"ogDescription":36096,"noIndex":6,"ogImage":35723,"ogUrl":36097,"ogSiteName":995,"ogType":996,"canonicalUrls":36097,"schema":36098},"GitLab Looked at the Fair Source License","At GitLab we have taken a close look at the Fair Source license to determine if it could apply to our situation.","https://about.gitlab.com/blog/gitlab-look-at-the-fair-source-license","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Looked at the Fair Source License\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Paul Machle\"}],\n        \"datePublished\": \"2016-03-24\",\n      }",{"title":36095,"description":36096,"authors":36100,"heroImage":35723,"date":36102,"category":301},[36101],"Paul Machle","2016-03-24",{"slug":36104,"featured":6,"template":736},"gitlab-look-at-the-fair-source-license","content:en-us:blog:gitlab-look-at-the-fair-source-license.yml","Gitlab Look At The Fair Source License","en-us/blog/gitlab-look-at-the-fair-source-license.yml","en-us/blog/gitlab-look-at-the-fair-source-license",{"_path":36110,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36111,"content":36116,"config":36118,"_id":36120,"_type":16,"title":36121,"_source":17,"_file":36122,"_stem":36123,"_extension":20},"/en-us/blog/sponsorship-update",{"title":36112,"description":36113,"ogTitle":36112,"ogDescription":36113,"noIndex":6,"ogImage":35297,"ogUrl":36114,"ogSiteName":995,"ogType":996,"canonicalUrls":36114,"schema":36115},"GitLab Sponsorship Update","In this post, I'll give you an update of what we've sponsored recently as well as some insight into our priorities as we welcome more requests for sponsorship.","https://about.gitlab.com/blog/sponsorship-update","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Sponsorship Update\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2016-03-24\",\n      }",{"title":36112,"description":36113,"authors":36117,"heroImage":35297,"date":36102,"category":6121},[25520],{"slug":36119,"featured":6,"template":736},"sponsorship-update","content:en-us:blog:sponsorship-update.yml","Sponsorship Update","en-us/blog/sponsorship-update.yml","en-us/blog/sponsorship-update",{"_path":36125,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36126,"content":36132,"config":36135,"_id":36137,"_type":16,"title":36138,"_source":17,"_file":36139,"_stem":36140,"_extension":20},"/en-us/blog/remote-communication",{"title":36127,"description":36128,"ogTitle":36127,"ogDescription":36128,"noIndex":6,"ogImage":36129,"ogUrl":36130,"ogSiteName":995,"ogType":996,"canonicalUrls":36130,"schema":36131},"To Work Remotely You Need: Wifi & Good Communication Habits","In this post, we’re looking at how solid communication can be implemented as in a set of rules, like we have here at Gitlab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684641/Blog/Hero%20Images/phones.jpg","https://about.gitlab.com/blog/remote-communication","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"To Work Remotely You Need: Wifi & Good Communication Habits\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-03-23\",\n      }",{"title":36127,"description":36128,"authors":36133,"heroImage":36129,"date":36134,"category":6121},[1000],"2016-03-23",{"slug":36136,"featured":6,"template":736},"remote-communication","content:en-us:blog:remote-communication.yml","Remote Communication","en-us/blog/remote-communication.yml","en-us/blog/remote-communication",{"_path":36142,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36143,"content":36148,"config":36152,"_id":36154,"_type":16,"title":36155,"_source":17,"_file":36156,"_stem":36157,"_extension":20},"/en-us/blog/gitlab-enterprise-edition-price-change",{"title":36144,"description":36145,"ogTitle":36144,"ogDescription":36145,"noIndex":6,"ogImage":11046,"ogUrl":36146,"ogSiteName":995,"ogType":996,"canonicalUrls":36146,"schema":36147},"GitLab Enterprise Edition price change","We are announcing an update to pricing for GitLab Enterprise Edition. We have replaced the three subscription plans with one simplified plan.","https://about.gitlab.com/blog/gitlab-enterprise-edition-price-change","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Enterprise Edition price change\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chad Malchow\"}],\n        \"datePublished\": \"2016-03-21\",\n      }",{"title":36144,"description":36145,"authors":36149,"heroImage":11046,"date":36151,"category":301},[36150],"Chad Malchow","2016-03-21",{"slug":36153,"featured":6,"template":736},"gitlab-enterprise-edition-price-change","content:en-us:blog:gitlab-enterprise-edition-price-change.yml","Gitlab Enterprise Edition Price Change","en-us/blog/gitlab-enterprise-edition-price-change.yml","en-us/blog/gitlab-enterprise-edition-price-change",{"_path":36159,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36160,"content":36166,"config":36168,"_id":36170,"_type":16,"title":36171,"_source":17,"_file":36172,"_stem":36173,"_extension":20},"/en-us/blog/using-omnibus-gitlab-to-ship-gitlab",{"title":36161,"description":36162,"ogTitle":36161,"ogDescription":36162,"noIndex":6,"ogImage":36163,"ogUrl":36164,"ogSiteName":995,"ogType":996,"canonicalUrls":36164,"schema":36165},"Using the Omnibus GitLab package to ship GitLab","Take a look at what kind of decisions we need to make on every release of GitLab and how omnibus-gitlab package fits into this process.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684635/Blog/Hero%20Images/cat-in-the-box.jpg","https://about.gitlab.com/blog/using-omnibus-gitlab-to-ship-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Using the Omnibus GitLab package to ship GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marin Jankovski\"}],\n        \"datePublished\": \"2016-03-21\",\n      }",{"title":36161,"description":36162,"authors":36167,"heroImage":36163,"date":36151,"category":858},[28525],{"slug":36169,"featured":6,"template":736},"using-omnibus-gitlab-to-ship-gitlab","content:en-us:blog:using-omnibus-gitlab-to-ship-gitlab.yml","Using Omnibus Gitlab To Ship Gitlab","en-us/blog/using-omnibus-gitlab-to-ship-gitlab.yml","en-us/blog/using-omnibus-gitlab-to-ship-gitlab",{"_path":36175,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36176,"content":36181,"config":36184,"_id":36186,"_type":16,"title":36187,"_source":17,"_file":36188,"_stem":36189,"_extension":20},"/en-us/blog/fast-search-using-postgresql-trigram",{"title":36177,"description":36178,"ogTitle":36177,"ogDescription":36178,"noIndex":6,"ogImage":11046,"ogUrl":36179,"ogSiteName":995,"ogType":996,"canonicalUrls":36179,"schema":36180},"Fast Search Using PostgreSQL Trigram Text Indexes","In this article we'll look at how these indexes work and how they can be used to speed up queries using LIKE conditions.","https://about.gitlab.com/blog/fast-search-using-postgresql-trigram-indexes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Fast Search Using PostgreSQL Trigram Text Indexes\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yorick Peterse\"}],\n        \"datePublished\": \"2016-03-18\",\n      }",{"title":36177,"description":36178,"authors":36182,"heroImage":11046,"date":36183,"category":858},[25959],"2016-03-18",{"slug":36185,"featured":6,"template":736},"fast-search-using-postgresql-trigram","content:en-us:blog:fast-search-using-postgresql-trigram.yml","Fast Search Using Postgresql Trigram","en-us/blog/fast-search-using-postgresql-trigram.yml","en-us/blog/fast-search-using-postgresql-trigram",{"_path":36191,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36192,"content":36198,"config":36201,"_id":36203,"_type":16,"title":36204,"_source":17,"_file":36205,"_stem":36206,"_extension":20},"/en-us/blog/gitlab-in-case-you-missed-it",{"title":36193,"description":36194,"ogTitle":36193,"ogDescription":36194,"noIndex":6,"ogImage":36195,"ogUrl":36196,"ogSiteName":995,"ogType":996,"canonicalUrls":36196,"schema":36197},"GitLab: In case you missed it","The first two weeks working with GitLab have been full of pleasant surprises and dispelled delusions. If you haven't been following GitLab for the last two years, this post is for you.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684623/Blog/Hero%20Images/key-concepts.jpg","https://about.gitlab.com/blog/gitlab-in-case-you-missed-it","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab: In case you missed it\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ivan Nemytchenko\"}],\n        \"datePublished\": \"2016-03-14\",\n      }",{"title":36193,"description":36194,"authors":36199,"heroImage":36195,"date":36200,"category":8140},[18417],"2016-03-14",{"slug":36202,"featured":6,"template":736},"gitlab-in-case-you-missed-it","content:en-us:blog:gitlab-in-case-you-missed-it.yml","Gitlab In Case You Missed It","en-us/blog/gitlab-in-case-you-missed-it.yml","en-us/blog/gitlab-in-case-you-missed-it",{"_path":36208,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36209,"content":36214,"config":36217,"_id":36219,"_type":16,"title":36220,"_source":17,"_file":36221,"_stem":36222,"_extension":20},"/en-us/blog/setting-up-gitlab-ci-for-ios-projects",{"title":36210,"description":36211,"ogTitle":36210,"ogDescription":36211,"noIndex":6,"ogImage":35843,"ogUrl":36212,"ogSiteName":995,"ogType":996,"canonicalUrls":36212,"schema":36213},"Setting up GitLab CI for iOS projects","Learn how to set up GitLab CI for your iOS projects.","https://about.gitlab.com/blog/setting-up-gitlab-ci-for-ios-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Setting up GitLab CI for iOS projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Angelo Stavrow\"}],\n        \"datePublished\": \"2016-03-10\",\n      }",{"title":36210,"description":36211,"authors":36215,"heroImage":35843,"date":36216,"category":858},[35171],"2016-03-10",{"slug":36218,"featured":6,"template":736},"setting-up-gitlab-ci-for-ios-projects","content:en-us:blog:setting-up-gitlab-ci-for-ios-projects.yml","Setting Up Gitlab Ci For Ios Projects","en-us/blog/setting-up-gitlab-ci-for-ios-projects.yml","en-us/blog/setting-up-gitlab-ci-for-ios-projects",{"_path":36224,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36225,"content":36231,"config":36234,"_id":36236,"_type":16,"title":36226,"_source":17,"_file":36237,"_stem":36238,"_extension":20},"/en-us/blog/commits-do-not-equal-productivity",{"title":36226,"description":36227,"ogTitle":36226,"ogDescription":36227,"noIndex":6,"ogImage":36228,"ogUrl":36229,"ogSiteName":995,"ogType":996,"canonicalUrls":36229,"schema":36230},"Commits Do Not Equal Productivity","In this post we'll consider some ways people evaluate or represent productivity, and I ask for your thoughts on what you track and what you think matters.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684616/Blog/Hero%20Images/racing.png","https://about.gitlab.com/blog/commits-do-not-equal-productivity","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Commits Do Not Equal Productivity\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2016-03-08\",\n      }",{"title":36226,"description":36227,"authors":36232,"heroImage":36228,"date":36233,"category":8140},[34274],"2016-03-08",{"slug":36235,"featured":6,"template":736},"commits-do-not-equal-productivity","content:en-us:blog:commits-do-not-equal-productivity.yml","en-us/blog/commits-do-not-equal-productivity.yml","en-us/blog/commits-do-not-equal-productivity",{"_path":36240,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36241,"content":36246,"config":36248,"_id":36250,"_type":16,"title":36251,"_source":17,"_file":36252,"_stem":36253,"_extension":20},"/en-us/blog/gitlab-tutorial-its-all-connected",{"title":36242,"description":36243,"ogTitle":36242,"ogDescription":36243,"noIndex":6,"ogImage":35723,"ogUrl":36244,"ogSiteName":995,"ogType":996,"canonicalUrls":36244,"schema":36245},"Tutorial: It's all connected in GitLab","In GitLab, everything you do can be cross-linked and referenced. This improves discoverability and reduces duplicate effort.","https://about.gitlab.com/blog/gitlab-tutorial-its-all-connected","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Tutorial: It's all connected in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-03-08\",\n      }",{"title":36242,"description":36243,"authors":36247,"heroImage":35723,"date":36233,"category":858},[36068],{"slug":36249,"featured":6,"template":736},"gitlab-tutorial-its-all-connected","content:en-us:blog:gitlab-tutorial-its-all-connected.yml","Gitlab Tutorial Its All Connected","en-us/blog/gitlab-tutorial-its-all-connected.yml","en-us/blog/gitlab-tutorial-its-all-connected",{"_path":36255,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36256,"content":36261,"config":36264,"_id":36266,"_type":16,"title":36267,"_source":17,"_file":36268,"_stem":36269,"_extension":20},"/en-us/blog/remote-working-gitlab",{"title":36257,"description":36258,"ogTitle":36257,"ogDescription":36258,"noIndex":6,"ogImage":35808,"ogUrl":36259,"ogSiteName":995,"ogType":996,"canonicalUrls":36259,"schema":36260},"Working Remotely at GitLab: An update","You might be curious what it's like to work remotely at GitLab. Watch this video to hear from our team!","https://about.gitlab.com/blog/remote-working-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Working Remotely at GitLab: An update\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-03-04\",\n      }",{"title":36257,"description":36258,"authors":36262,"heroImage":35808,"date":36263,"category":6121},[36068],"2016-03-04",{"slug":36265,"featured":6,"template":736},"remote-working-gitlab","content:en-us:blog:remote-working-gitlab.yml","Remote Working Gitlab","en-us/blog/remote-working-gitlab.yml","en-us/blog/remote-working-gitlab",{"_path":36271,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36272,"content":36278,"config":36281,"_id":36283,"_type":16,"title":36284,"_source":17,"_file":36285,"_stem":36286,"_extension":20},"/en-us/blog/gitlab-todos-feature-highlight",{"title":36273,"description":36274,"ogTitle":36273,"ogDescription":36274,"noIndex":6,"ogImage":36275,"ogUrl":36276,"ogSiteName":995,"ogType":996,"canonicalUrls":36276,"schema":36277},"Feature Highlight: Todos","In this blog post I'll guide you through the Todos feature we introduced in GitLab 8.5 and also tell you how this feature came to life.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684608/Blog/Hero%20Images/taking-notes.jpg","https://about.gitlab.com/blog/gitlab-todos-feature-highlight","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Todos\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Douglas Alexandre\"}],\n        \"datePublished\": \"2016-03-02\",\n      }",{"title":36273,"description":36274,"authors":36279,"heroImage":36275,"date":36280,"category":301},[12769],"2016-03-02",{"slug":36282,"featured":6,"template":736},"gitlab-todos-feature-highlight","content:en-us:blog:gitlab-todos-feature-highlight.yml","Gitlab Todos Feature Highlight","en-us/blog/gitlab-todos-feature-highlight.yml","en-us/blog/gitlab-todos-feature-highlight",{"_path":36288,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36289,"content":36294,"config":36298,"_id":36300,"_type":16,"title":36301,"_source":17,"_file":36302,"_stem":36303,"_extension":20},"/en-us/blog/gitlab-runner-with-docker",{"title":36290,"description":36291,"ogTitle":36290,"ogDescription":36291,"noIndex":6,"ogImage":11046,"ogUrl":36292,"ogSiteName":995,"ogType":996,"canonicalUrls":36292,"schema":36293},"Setting up GitLab Runner For Continuous Integration","This tutorial will demonstrate how to get started with a CI workflow using GitLab Runner.","https://about.gitlab.com/blog/gitlab-runner-with-docker","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Setting up GitLab Runner For Continuous Integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ahmet Kizilay\"}],\n        \"datePublished\": \"2016-03-01\",\n      }",{"title":36290,"description":36291,"authors":36295,"heroImage":11046,"date":36297,"category":858},[36296],"Ahmet Kizilay","2016-03-01",{"slug":36299,"featured":6,"template":736},"gitlab-runner-with-docker","content:en-us:blog:gitlab-runner-with-docker.yml","Gitlab Runner With Docker","en-us/blog/gitlab-runner-with-docker.yml","en-us/blog/gitlab-runner-with-docker",{"_path":36305,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36306,"content":36312,"config":36315,"_id":36317,"_type":16,"title":36318,"_source":17,"_file":36319,"_stem":36320,"_extension":20},"/en-us/blog/gitlab-swag-shop-opened",{"title":36307,"description":36308,"ogTitle":36307,"ogDescription":36308,"noIndex":6,"ogImage":36309,"ogUrl":36310,"ogSiteName":995,"ogType":996,"canonicalUrls":36310,"schema":36311},"GitLab Swag Shop is Open!","We're delighted to announce GitLab Swag Shop is now opened! We're starting with essentials: Some nifty t-shirts and stickers.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684601/Blog/Hero%20Images/tshirts.jpg","https://about.gitlab.com/blog/gitlab-swag-shop-opened","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Swag Shop is Open!\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-02-29\",\n      }",{"title":36307,"description":36308,"authors":36313,"heroImage":36309,"date":36314,"category":301},[36068],"2016-02-29",{"slug":36316,"featured":6,"template":736},"gitlab-swag-shop-opened","content:en-us:blog:gitlab-swag-shop-opened.yml","Gitlab Swag Shop Opened","en-us/blog/gitlab-swag-shop-opened.yml","en-us/blog/gitlab-swag-shop-opened",{"_path":36322,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36323,"content":36328,"config":36331,"_id":36333,"_type":16,"title":36334,"_source":17,"_file":36335,"_stem":36336,"_extension":20},"/en-us/blog/webcast-wrapup",{"title":36324,"description":36325,"ogTitle":36324,"ogDescription":36325,"noIndex":6,"ogImage":35723,"ogUrl":36326,"ogSiteName":995,"ogType":996,"canonicalUrls":36326,"schema":36327},"GitLab 8.5 Release Webcast and step-by-step GitLab workflow","In our latest webcast, we highlighted the new features in GitLab 8.5. This was a really feature-packed release.","https://about.gitlab.com/blog/webcast-wrapup","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 8.5 Release Webcast and step-by-step GitLab workflow\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-02-26\",\n      }",{"title":36324,"description":36325,"authors":36329,"heroImage":35723,"date":36330,"category":301},[36068],"2016-02-26",{"slug":36332,"featured":6,"template":736},"webcast-wrapup","content:en-us:blog:webcast-wrapup.yml","Webcast Wrapup","en-us/blog/webcast-wrapup.yml","en-us/blog/webcast-wrapup",{"_path":36338,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36339,"content":36344,"config":36347,"_id":36349,"_type":16,"title":36350,"_source":17,"_file":36351,"_stem":36352,"_extension":20},"/en-us/blog/making-gitlab-faster",{"title":36340,"description":36341,"ogTitle":36340,"ogDescription":36341,"noIndex":6,"ogImage":11046,"ogUrl":36342,"ogSiteName":995,"ogType":996,"canonicalUrls":36342,"schema":36343},"Making GitLab Faster","In GitLab 8.5 we shipped numerous performance improvements. In this article we'll take a look at some of these changes and the process involved in finding and resolving these issues.","https://about.gitlab.com/blog/making-gitlab-faster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Making GitLab Faster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yorick Peterse\"}],\n        \"datePublished\": \"2016-02-25\",\n      }",{"title":36340,"description":36341,"authors":36345,"heroImage":11046,"date":36346,"category":858},[25959],"2016-02-25",{"slug":36348,"featured":6,"template":736},"making-gitlab-faster","content:en-us:blog:making-gitlab-faster.yml","Making Gitlab Faster","en-us/blog/making-gitlab-faster.yml","en-us/blog/making-gitlab-faster",{"_path":36354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36355,"content":36361,"config":36364,"_id":36366,"_type":16,"title":36367,"_source":17,"_file":36368,"_stem":36369,"_extension":20},"/en-us/blog/rails-girls-summer-of-code-2016",{"title":36356,"description":36357,"ogTitle":36356,"ogDescription":36357,"noIndex":6,"ogImage":36358,"ogUrl":36359,"ogSiteName":995,"ogType":996,"canonicalUrls":36359,"schema":36360},"Rails Girls Summer of Code 2016","We're delighted to announce that GitLab Community Edition has been accepted as a project for the upcoming Rails Girls Summer of Code.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684595/Blog/Hero%20Images/programmer1.jpg","https://about.gitlab.com/blog/rails-girls-summer-of-code-2016","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Rails Girls Summer of Code 2016\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Yorick Peterse\"}],\n        \"datePublished\": \"2016-02-23\",\n      }",{"title":36356,"description":36357,"authors":36362,"heroImage":36358,"date":36363,"category":301},[25959],"2016-02-23",{"slug":36365,"featured":6,"template":736},"rails-girls-summer-of-code-2016","content:en-us:blog:rails-girls-summer-of-code-2016.yml","Rails Girls Summer Of Code 2016","en-us/blog/rails-girls-summer-of-code-2016.yml","en-us/blog/rails-girls-summer-of-code-2016",{"_path":36371,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36372,"content":36377,"config":36380,"_id":36382,"_type":16,"title":36383,"_source":17,"_file":36384,"_stem":36385,"_extension":20},"/en-us/blog/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port",{"title":36373,"description":36374,"ogTitle":36373,"ogDescription":36374,"noIndex":6,"ogImage":35910,"ogUrl":36375,"ogSiteName":995,"ogType":996,"canonicalUrls":36375,"schema":36376},"GitLab.com now supports an alternate git+ssh port","You'd be happy to know that GitLab.com now runs an alternate git+ssh port (443) which you can use whenever you are in a place where port 22 is blocked.","https://about.gitlab.com/blog/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com now supports an alternate git+ssh port\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2016-02-18\",\n      }",{"title":36373,"description":36374,"authors":36378,"heroImage":35910,"date":36379,"category":858},[33451],"2016-02-18",{"slug":36381,"featured":6,"template":736},"gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port","content:en-us:blog:gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port.yml","Gitlab Dot Com Now Supports An Alternate Git Plus Ssh Port","en-us/blog/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port.yml","en-us/blog/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port",{"_path":36387,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36388,"content":36393,"config":36396,"_id":36398,"_type":16,"title":36399,"_source":17,"_file":36400,"_stem":36401,"_extension":20},"/en-us/blog/feature-highlight-create-files-and-directories-from-files-page",{"title":36389,"description":36390,"ogTitle":36389,"ogDescription":36390,"noIndex":6,"ogImage":11046,"ogUrl":36391,"ogSiteName":995,"ogType":996,"canonicalUrls":36391,"schema":36392},"Feature Highlight: Create files and directories from the Files page","In this feature highlight we look at how you can create a new file, directory, branch or tag from the file browser.","https://about.gitlab.com/blog/feature-highlight-create-files-and-directories-from-files-page","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Create files and directories from the Files page\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Drew Blessing\"}],\n        \"datePublished\": \"2016-02-10\",\n      }",{"title":36389,"description":36390,"authors":36394,"heroImage":11046,"date":36395,"category":858},[35557],"2016-02-10",{"slug":36397,"featured":6,"template":736},"feature-highlight-create-files-and-directories-from-files-page","content:en-us:blog:feature-highlight-create-files-and-directories-from-files-page.yml","Feature Highlight Create Files And Directories From Files Page","en-us/blog/feature-highlight-create-files-and-directories-from-files-page.yml","en-us/blog/feature-highlight-create-files-and-directories-from-files-page",{"_path":36403,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36404,"content":36410,"config":36413,"_id":36415,"_type":16,"title":36416,"_source":17,"_file":36417,"_stem":36418,"_extension":20},"/en-us/blog/gitlab-open-strategy",{"title":36405,"description":36406,"ogTitle":36405,"ogDescription":36406,"noIndex":6,"ogImage":36407,"ogUrl":36408,"ogSiteName":995,"ogType":996,"canonicalUrls":36408,"schema":36409},"GitLab's Open Strategy","We've just created and published our Strategy document to make our choices clear as they relate to our strategic objectives.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683642/Blog/Hero%20Images/moving-parts2.jpg","https://about.gitlab.com/blog/gitlab-open-strategy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab's Open Strategy\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-02-09\",\n      }",{"title":36405,"description":36406,"authors":36411,"heroImage":36407,"date":36412,"category":6121},[3701],"2016-02-09",{"slug":36414,"featured":6,"template":736},"gitlab-open-strategy","content:en-us:blog:gitlab-open-strategy.yml","Gitlab Open Strategy","en-us/blog/gitlab-open-strategy.yml","en-us/blog/gitlab-open-strategy",{"_path":36420,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36421,"content":36426,"config":36429,"_id":36431,"_type":16,"title":36432,"_source":17,"_file":36433,"_stem":36434,"_extension":20},"/en-us/blog/gitlab-diversity-sponsorship",{"title":36422,"description":36423,"ogTitle":36422,"ogDescription":36423,"noIndex":6,"ogImage":35297,"ogUrl":36424,"ogSiteName":995,"ogType":996,"canonicalUrls":36424,"schema":36425},"GitLab Offer Sponsorship of $500 for Diversity Events","In order to help to expand these initiatives, we’re offering $500 to any diversity in tech event globally.","https://about.gitlab.com/blog/gitlab-diversity-sponsorship","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Offer Sponsorship of $500 for Diversity Events\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ashley Smith\"}],\n        \"datePublished\": \"2016-02-02\",\n      }",{"title":36422,"description":36423,"authors":36427,"heroImage":35297,"date":36428,"category":301},[35035],"2016-02-02",{"slug":36430,"featured":6,"template":736},"gitlab-diversity-sponsorship","content:en-us:blog:gitlab-diversity-sponsorship.yml","Gitlab Diversity Sponsorship","en-us/blog/gitlab-diversity-sponsorship.yml","en-us/blog/gitlab-diversity-sponsorship",{"_path":36436,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36437,"content":36443,"config":36446,"_id":36448,"_type":16,"title":36449,"_source":17,"_file":36450,"_stem":36451,"_extension":20},"/en-us/blog/future-front-end-development",{"title":36438,"description":36439,"ogTitle":36438,"ogDescription":36439,"noIndex":6,"ogImage":36440,"ogUrl":36441,"ogSiteName":995,"ogType":996,"canonicalUrls":36441,"schema":36442},"Help shape the future of the front end at GitLab","Help shape the future of the front end at GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684579/Blog/Hero%20Images/kitchen.jpg","https://about.gitlab.com/blog/future-front-end-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Help shape the future of the front end at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Schatz\"}],\n        \"datePublished\": \"2016-01-25\",\n      }",{"title":36438,"description":36439,"authors":36444,"heroImage":36440,"date":36445,"category":6121},[29783],"2016-01-25",{"slug":36447,"featured":6,"template":736},"future-front-end-development","content:en-us:blog:future-front-end-development.yml","Future Front End Development","en-us/blog/future-front-end-development.yml","en-us/blog/future-front-end-development",{"_path":36453,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36454,"content":36459,"config":36462,"_id":36464,"_type":16,"title":36465,"_source":17,"_file":36466,"_stem":36467,"_extension":20},"/en-us/blog/making-gitlab-better-for-large-open-source-projects",{"title":36455,"description":36456,"ogTitle":36455,"ogDescription":36456,"noIndex":6,"ogImage":11046,"ogUrl":36457,"ogSiteName":995,"ogType":996,"canonicalUrls":36457,"schema":36458},"Making GitLab Better for Large Open Source Projects","Here we would like to share our thoughts about these issues and what we’re planning to do to make things better with GitLab.","https://about.gitlab.com/blog/making-gitlab-better-for-large-open-source-projects","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Making GitLab Better for Large Open Source Projects\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2016-01-15\",\n      }",{"title":36455,"description":36456,"authors":36460,"heroImage":11046,"date":36461,"category":6121},[34274],"2016-01-15",{"slug":36463,"featured":6,"template":736},"making-gitlab-better-for-large-open-source-projects","content:en-us:blog:making-gitlab-better-for-large-open-source-projects.yml","Making Gitlab Better For Large Open Source Projects","en-us/blog/making-gitlab-better-for-large-open-source-projects.yml","en-us/blog/making-gitlab-better-for-large-open-source-projects",{"_path":36469,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36470,"content":36475,"config":36478,"_id":36479,"_type":16,"title":36480,"_source":17,"_file":36481,"_stem":36482,"_extension":20},"/en-us/blog/webcast",{"title":36471,"description":36472,"ogTitle":36471,"ogDescription":36472,"noIndex":6,"ogImage":34452,"ogUrl":36473,"ogSiteName":995,"ogType":996,"canonicalUrls":36473,"schema":36474},"Our first webcast and our 50th release","On January 22nd we'll release our 50th monthly release. We want to take this time to celebrate this milestone with GitLab users.","https://about.gitlab.com/blog/webcast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our first webcast and our 50th release\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-01-13\",\n      }",{"title":36471,"description":36472,"authors":36476,"heroImage":34452,"date":36477,"category":301},[36068],"2016-01-13",{"slug":3721,"featured":6,"template":736},"content:en-us:blog:webcast.yml","Webcast","en-us/blog/webcast.yml","en-us/blog/webcast",{"_path":36484,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36485,"content":36490,"config":36493,"_id":36495,"_type":16,"title":36496,"_source":17,"_file":36497,"_stem":36498,"_extension":20},"/en-us/blog/being-a-good-open-source-steward",{"title":36486,"description":36487,"ogTitle":36486,"ogDescription":36487,"noIndex":6,"ogImage":35367,"ogUrl":36488,"ogSiteName":995,"ogType":996,"canonicalUrls":36488,"schema":36489},"Open Source Stewardship","We've recently detailed our policy and commitment to open source. We need to think in the interests of the project, while tending to the realities of running a business to support it.","https://about.gitlab.com/blog/being-a-good-open-source-steward","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Open Source Stewardship\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2016-01-11\",\n      }",{"title":36486,"description":36487,"authors":36491,"heroImage":35367,"date":36492,"category":6121},[3701],"2016-01-11",{"slug":36494,"featured":6,"template":736},"being-a-good-open-source-steward","content:en-us:blog:being-a-good-open-source-steward.yml","Being A Good Open Source Steward","en-us/blog/being-a-good-open-source-steward.yml","en-us/blog/being-a-good-open-source-steward",{"_path":36500,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36501,"content":36506,"config":36509,"_id":36511,"_type":16,"title":36512,"_source":17,"_file":36513,"_stem":36514,"_extension":20},"/en-us/blog/feature-highlight-wip",{"title":36502,"description":36503,"ogTitle":36502,"ogDescription":36503,"noIndex":6,"ogImage":11046,"ogUrl":36504,"ogSiteName":995,"ogType":996,"canonicalUrls":36504,"schema":36505},"Feature Highlight: WIP","At GitLab we'll tell you to make small merge requests, review and merge often. But in the real world, you have to build a complex feature that requires weeks and thousands of changes.","https://about.gitlab.com/blog/feature-highlight-wip","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: WIP\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2016-01-08\",\n      }",{"title":36502,"description":36503,"authors":36507,"heroImage":11046,"date":36508,"category":301},[34274],"2016-01-08",{"slug":36510,"featured":6,"template":736},"feature-highlight-wip","content:en-us:blog:feature-highlight-wip.yml","Feature Highlight Wip","en-us/blog/feature-highlight-wip.yml","en-us/blog/feature-highlight-wip",{"_path":36516,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36517,"content":36522,"config":36525,"_id":36527,"_type":16,"title":36528,"_source":17,"_file":36529,"_stem":36530,"_extension":20},"/en-us/blog/our-y-combinator-experience",{"title":36518,"description":36519,"ogTitle":36518,"ogDescription":36519,"noIndex":6,"ogImage":35723,"ogUrl":36520,"ogSiteName":995,"ogType":996,"canonicalUrls":36520,"schema":36521},"Our Y Combinator experience","This time last year, from January until March 2015, GitLab participated in the winter 2015 batch of Y Combinator.","https://about.gitlab.com/blog/our-y-combinator-experience","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Our Y Combinator experience\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2016-01-06\",\n      }",{"title":36518,"description":36519,"authors":36523,"heroImage":35723,"date":36524,"category":6121},[1000],"2016-01-06",{"slug":36526,"featured":6,"template":736},"our-y-combinator-experience","content:en-us:blog:our-y-combinator-experience.yml","Our Y Combinator Experience","en-us/blog/our-y-combinator-experience.yml","en-us/blog/our-y-combinator-experience",{"_path":36532,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36533,"content":36539,"config":36542,"_id":36544,"_type":16,"title":36545,"_source":17,"_file":36546,"_stem":36547,"_extension":20},"/en-us/blog/future-direction-gitlab",{"title":36534,"description":36535,"ogTitle":36534,"ogDescription":36535,"noIndex":6,"ogImage":36536,"ogUrl":36537,"ogSiteName":995,"ogType":996,"canonicalUrls":36537,"schema":36538},"How to see into the future at GitLab","In this post we'll look at how you can find out about the direction of the project.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684561/Blog/Hero%20Images/road.png","https://about.gitlab.com/blog/future-direction-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to see into the future at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2016-01-05\",\n      }",{"title":36534,"description":36535,"authors":36540,"heroImage":36536,"date":36541,"category":301},[36068],"2016-01-05",{"slug":36543,"featured":6,"template":736},"future-direction-gitlab","content:en-us:blog:future-direction-gitlab.yml","Future Direction Gitlab","en-us/blog/future-direction-gitlab.yml","en-us/blog/future-direction-gitlab",{"_path":36549,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36550,"content":36556,"config":36559,"_id":36561,"_type":16,"title":36562,"_source":17,"_file":36563,"_stem":36564,"_extension":20},"/en-us/blog/changes-to-githost",{"title":36551,"description":36552,"ogTitle":36551,"ogDescription":36552,"noIndex":6,"ogImage":36553,"ogUrl":36554,"ogSiteName":995,"ogType":996,"canonicalUrls":36554,"schema":36555},"Big changes coming to GitHost","Today we are announcing two big changes to the GitHost platform and to its plans and pricing.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684552/Blog/Hero%20Images/fireworks.jpg","https://about.gitlab.com/blog/changes-to-githost","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Big changes coming to GitHost\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patricio Cano\"}],\n        \"datePublished\": \"2015-12-30\",\n      }",{"title":36551,"description":36552,"authors":36557,"heroImage":36553,"date":36558,"category":301},[36051],"2015-12-30",{"slug":36560,"featured":6,"template":736},"changes-to-githost","content:en-us:blog:changes-to-githost.yml","Changes To Githost","en-us/blog/changes-to-githost.yml","en-us/blog/changes-to-githost",{"_path":36566,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36567,"content":36573,"config":36575,"_id":36577,"_type":16,"title":36578,"_source":17,"_file":36579,"_stem":36580,"_extension":20},"/en-us/blog/swag-gitlab-plan",{"title":36568,"description":36569,"ogTitle":36568,"ogDescription":36569,"noIndex":6,"ogImage":36570,"ogUrl":36571,"ogSiteName":995,"ogType":996,"canonicalUrls":36571,"schema":36572},"Swag matters - share your #swagportrait","Please let us know about your favourite swag, from stickers to surprises, and don’t forget to share your #swagportrait.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684568/Blog/Hero%20Images/trees-xmas.png","https://about.gitlab.com/blog/swag-gitlab-plan","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Swag matters - share your #swagportrait\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2015-12-30\",\n      }",{"title":36568,"description":36569,"authors":36574,"heroImage":36570,"date":36558,"category":8140},[36068],{"slug":36576,"featured":6,"template":736},"swag-gitlab-plan","content:en-us:blog:swag-gitlab-plan.yml","Swag Gitlab Plan","en-us/blog/swag-gitlab-plan.yml","en-us/blog/swag-gitlab-plan",{"_path":36582,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36583,"content":36589,"config":36593,"_id":36595,"_type":16,"title":36596,"_source":17,"_file":36597,"_stem":36598,"_extension":20},"/en-us/blog/supporting-ruby-together",{"title":36584,"description":36585,"ogTitle":36584,"ogDescription":36585,"noIndex":6,"ogImage":36586,"ogUrl":36587,"ogSiteName":995,"ogType":996,"canonicalUrls":36587,"schema":36588},"GitLab \u003C3 Ruby Together","GitLab has joined Ruby Together as an Emerald member, helping to ensure that everyone who uses Ruby will be able to depend on Bundler, RubyGems.org, and other Ruby infrastructure.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683665/Blog/Hero%20Images/love-the-sun.jpg","https://about.gitlab.com/blog/supporting-ruby-together","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab \u003C3 Ruby Together\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Guest author André Arko of Ruby Together\"}],\n        \"datePublished\": \"2015-12-21\",\n      }",{"title":36584,"description":36585,"authors":36590,"heroImage":36586,"date":36592,"category":301},[36591],"Guest author André Arko of Ruby Together","2015-12-21",{"slug":36594,"featured":6,"template":736},"supporting-ruby-together","content:en-us:blog:supporting-ruby-together.yml","Supporting Ruby Together","en-us/blog/supporting-ruby-together.yml","en-us/blog/supporting-ruby-together",{"_path":36600,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36601,"content":36607,"config":36610,"_id":36612,"_type":16,"title":36613,"_source":17,"_file":36614,"_stem":36615,"_extension":20},"/en-us/blog/gitlab-release-process",{"title":36602,"description":36603,"ogTitle":36602,"ogDescription":36603,"noIndex":6,"ogImage":36604,"ogUrl":36605,"ogSiteName":995,"ogType":996,"canonicalUrls":36605,"schema":36606},"How we managed 49 monthly releases","In this article I’ll give you an overview of how we release our product and how it helps our team improve process and documentation.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684538/Blog/Hero%20Images/leavesonbranch.png","https://about.gitlab.com/blog/gitlab-release-process","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we managed 49 monthly releases\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dmitriy Zaporozhets\"}],\n        \"datePublished\": \"2015-12-17\",\n      }",{"title":36602,"description":36603,"authors":36608,"heroImage":36604,"date":36609,"category":8140},[15363],"2015-12-17",{"slug":36611,"featured":6,"template":736},"gitlab-release-process","content:en-us:blog:gitlab-release-process.yml","Gitlab Release Process","en-us/blog/gitlab-release-process.yml","en-us/blog/gitlab-release-process",{"_path":36617,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36618,"content":36623,"config":36626,"_id":36628,"_type":16,"title":36629,"_source":17,"_file":36630,"_stem":36631,"_extension":20},"/en-us/blog/improving-open-development-for-everyone",{"title":36619,"description":36620,"ogTitle":36619,"ogDescription":36620,"noIndex":6,"ogImage":11046,"ogUrl":36621,"ogSiteName":995,"ogType":996,"canonicalUrls":36621,"schema":36622},"Improving Open Development for Everyone","We want to give everyone that loves GitLab the opportunity to help shape its progress and be empowered to do this effortlessly.","https://about.gitlab.com/blog/improving-open-development-for-everyone","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Improving Open Development for Everyone\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-12-16\",\n      }",{"title":36619,"description":36620,"authors":36624,"heroImage":11046,"date":36625,"category":301},[34274],"2015-12-16",{"slug":36627,"featured":6,"template":736},"improving-open-development-for-everyone","content:en-us:blog:improving-open-development-for-everyone.yml","Improving Open Development For Everyone","en-us/blog/improving-open-development-for-everyone.yml","en-us/blog/improving-open-development-for-everyone",{"_path":36633,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36634,"content":36640,"config":36643,"_id":36645,"_type":16,"title":36646,"_source":17,"_file":36647,"_stem":36648,"_extension":20},"/en-us/blog/getting-started-with-gitlab-and-gitlab-ci",{"title":36635,"description":36636,"ogTitle":36635,"ogDescription":36636,"noIndex":6,"ogImage":36637,"ogUrl":36638,"ogSiteName":995,"ogType":996,"canonicalUrls":36638,"schema":36639},"Getting started with GitLab and GitLab CI","This is the start of a series of posts to get you started with GitLab and GitLab CI.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684532/Blog/Hero%20Images/stairwaycompressed.jpg","https://about.gitlab.com/blog/getting-started-with-gitlab-and-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Getting started with GitLab and GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2015-12-14\",\n      }",{"title":36635,"description":36636,"authors":36641,"heroImage":36637,"date":36642,"category":858},[33451],"2015-12-14",{"slug":36644,"featured":6,"template":736},"getting-started-with-gitlab-and-gitlab-ci","content:en-us:blog:getting-started-with-gitlab-and-gitlab-ci.yml","Getting Started With Gitlab And Gitlab Ci","en-us/blog/getting-started-with-gitlab-and-gitlab-ci.yml","en-us/blog/getting-started-with-gitlab-and-gitlab-ci",{"_path":36650,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36651,"content":36656,"config":36659,"_id":36661,"_type":16,"title":36662,"_source":17,"_file":36663,"_stem":36664,"_extension":20},"/en-us/blog/why-we-shift-objectives-and-not-release-dates-at-gitlab",{"title":36652,"description":36653,"ogTitle":36652,"ogDescription":36653,"noIndex":6,"ogImage":35773,"ogUrl":36654,"ogSiteName":995,"ogType":996,"canonicalUrls":36654,"schema":36655},"Why we shift objectives and not release dates at GitLab","At GitLab we believe you shouldn’t wait for something to be perfect: Release what you have and do it on a schedule.","https://about.gitlab.com/blog/why-we-shift-objectives-and-not-release-dates-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we shift objectives and not release dates at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Heather McNamee\"}],\n        \"datePublished\": \"2015-12-07\",\n      }",{"title":36652,"description":36653,"authors":36657,"heroImage":35773,"date":36658,"category":6121},[36068],"2015-12-07",{"slug":36660,"featured":6,"template":736},"why-we-shift-objectives-and-not-release-dates-at-gitlab","content:en-us:blog:why-we-shift-objectives-and-not-release-dates-at-gitlab.yml","Why We Shift Objectives And Not Release Dates At Gitlab","en-us/blog/why-we-shift-objectives-and-not-release-dates-at-gitlab.yml","en-us/blog/why-we-shift-objectives-and-not-release-dates-at-gitlab",{"_path":36666,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36667,"content":36672,"config":36675,"_id":36677,"_type":16,"title":36678,"_source":17,"_file":36679,"_stem":36680,"_extension":20},"/en-us/blog/gitlab-summit-2015",{"title":36668,"description":36669,"ogTitle":36668,"ogDescription":36669,"noIndex":6,"ogImage":35808,"ogUrl":36670,"ogSiteName":995,"ogType":996,"canonicalUrls":36670,"schema":36671},"SumIt All Up","Welcome to the GitLab 2015 Summit in Amsterdam.","https://about.gitlab.com/blog/gitlab-summit-2015","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"SumIt All Up\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emily Kyle\"}],\n        \"datePublished\": \"2015-11-30\",\n      }",{"title":36668,"description":36669,"authors":36673,"heroImage":35808,"date":36674,"category":6121},[25520],"2015-11-30",{"slug":36676,"featured":6,"template":736},"gitlab-summit-2015","content:en-us:blog:gitlab-summit-2015.yml","Gitlab Summit 2015","en-us/blog/gitlab-summit-2015.yml","en-us/blog/gitlab-summit-2015",{"_path":36682,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36683,"content":36688,"config":36691,"_id":36693,"_type":16,"title":36694,"_source":17,"_file":36695,"_stem":36696,"_extension":20},"/en-us/blog/announcing-git-lfs-support-in-gitlab",{"title":36684,"description":36685,"ogTitle":36684,"ogDescription":36685,"noIndex":6,"ogImage":11046,"ogUrl":36686,"ogSiteName":995,"ogType":996,"canonicalUrls":36686,"schema":36687},"Announcing Git LFS Support in GitLab","Support for Git Large File Storage is now included in GitLab.com, GitLab Community Edition and Enterprise Edition.","https://about.gitlab.com/blog/announcing-git-lfs-support-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Announcing Git LFS Support in GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2015-11-23\",\n      }",{"title":36684,"description":36685,"authors":36689,"heroImage":11046,"date":36690,"category":301},[1000],"2015-11-23",{"slug":36692,"featured":6,"template":736},"announcing-git-lfs-support-in-gitlab","content:en-us:blog:announcing-git-lfs-support-in-gitlab.yml","Announcing Git Lfs Support In Gitlab","en-us/blog/announcing-git-lfs-support-in-gitlab.yml","en-us/blog/announcing-git-lfs-support-in-gitlab",{"_path":36698,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36699,"content":36704,"config":36707,"_id":36709,"_type":16,"title":36710,"_source":17,"_file":36711,"_stem":36712,"_extension":20},"/en-us/blog/feature-highlight-user-preferences",{"title":36700,"description":36701,"ogTitle":36700,"ogDescription":36701,"noIndex":6,"ogImage":11046,"ogUrl":36702,"ogSiteName":995,"ogType":996,"canonicalUrls":36702,"schema":36703},"Feature Highlight: User preferences to customize GitLab behavior","Users requested a few customizations to help the UI better fit their daily use. We are happy to share new user preferences in GitLab 8.1.","https://about.gitlab.com/blog/feature-highlight-user-preferences","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: User preferences to customize GitLab behavior\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Drew Blessing\"}],\n        \"datePublished\": \"2015-11-05\",\n      }",{"title":36700,"description":36701,"authors":36705,"heroImage":11046,"date":36706,"category":8140},[35557],"2015-11-05",{"slug":36708,"featured":6,"template":736},"feature-highlight-user-preferences","content:en-us:blog:feature-highlight-user-preferences.yml","Feature Highlight User Preferences","en-us/blog/feature-highlight-user-preferences.yml","en-us/blog/feature-highlight-user-preferences",{"_path":36714,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36715,"content":36721,"config":36724,"_id":36726,"_type":16,"title":36727,"_source":17,"_file":36728,"_stem":36729,"_extension":20},"/en-us/blog/pivotal-cloud-foundry-tile-for-gitlab-ee",{"title":36716,"description":36717,"ogTitle":36716,"ogDescription":36717,"noIndex":6,"ogImage":36718,"ogUrl":36719,"ogSiteName":995,"ogType":996,"canonicalUrls":36719,"schema":36720},"Pivotal Cloud Foundry Tile for GitLab EE","Today we're excited to announce the Pivotal Cloud Foundry tile for GitLab Enterprise Edition.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684505/Blog/Hero%20Images/fall.jpg","https://about.gitlab.com/blog/pivotal-cloud-foundry-tile-for-gitlab-ee","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pivotal Cloud Foundry Tile for GitLab EE\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2015-11-03\",\n      }",{"title":36716,"description":36717,"authors":36722,"heroImage":36718,"date":36723,"category":301},[1000],"2015-11-03",{"slug":36725,"featured":6,"template":736},"pivotal-cloud-foundry-tile-for-gitlab-ee","content:en-us:blog:pivotal-cloud-foundry-tile-for-gitlab-ee.yml","Pivotal Cloud Foundry Tile For Gitlab Ee","en-us/blog/pivotal-cloud-foundry-tile-for-gitlab-ee.yml","en-us/blog/pivotal-cloud-foundry-tile-for-gitlab-ee",{"_path":36731,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36732,"content":36737,"config":36740,"_id":36742,"_type":16,"title":36743,"_source":17,"_file":36744,"_stem":36745,"_extension":20},"/en-us/blog/one-million-downloads-of-gitlab",{"title":36733,"description":36734,"ogTitle":36733,"ogDescription":36734,"noIndex":6,"ogImage":35215,"ogUrl":36735,"ogSiteName":995,"ogType":996,"canonicalUrls":36735,"schema":36736},"One Million Downloads of GitLab","Today we announced that we have over one million downloads between Gitlab CE and GitLab EE.","https://about.gitlab.com/blog/one-million-downloads-of-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"One Million Downloads of GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-10-29\",\n      }",{"title":36733,"description":36734,"authors":36738,"heroImage":35215,"date":36739,"category":301},[3701],"2015-10-29",{"slug":36741,"featured":6,"template":736},"one-million-downloads-of-gitlab","content:en-us:blog:one-million-downloads-of-gitlab.yml","One Million Downloads Of Gitlab","en-us/blog/one-million-downloads-of-gitlab.yml","en-us/blog/one-million-downloads-of-gitlab",{"_path":36747,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36748,"content":36754,"config":36757,"_id":36759,"_type":16,"title":36760,"_source":17,"_file":36761,"_stem":36762,"_extension":20},"/en-us/blog/gitlab-oscon-challenge-2015",{"title":36749,"description":36750,"ogTitle":36749,"ogDescription":36750,"noIndex":6,"ogImage":36751,"ogUrl":36752,"ogSiteName":995,"ogType":996,"canonicalUrls":36752,"schema":36753},"GitLab OSCON Challenge 2015","GitLab will be sponsoring OSCON in Amsterdam from October 26th to October 28th, 2015. Would you like to join us?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684497/Blog/Hero%20Images/oscon.png","https://about.gitlab.com/blog/gitlab-oscon-challenge-2015","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab OSCON Challenge 2015\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2015-10-14\",\n      }",{"title":36749,"description":36750,"authors":36755,"heroImage":36751,"date":36756,"category":301},[2094],"2015-10-14",{"slug":36758,"featured":6,"template":736},"gitlab-oscon-challenge-2015","content:en-us:blog:gitlab-oscon-challenge-2015.yml","Gitlab Oscon Challenge 2015","en-us/blog/gitlab-oscon-challenge-2015.yml","en-us/blog/gitlab-oscon-challenge-2015",{"_path":36764,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36765,"content":36770,"config":36773,"_id":36775,"_type":16,"title":36776,"_source":17,"_file":36777,"_stem":36778,"_extension":20},"/en-us/blog/perforce-launches-gitswarm-based-on-gitlab",{"title":36766,"description":36767,"ogTitle":36766,"ogDescription":36767,"noIndex":6,"ogImage":11046,"ogUrl":36768,"ogSiteName":995,"ogType":996,"canonicalUrls":36768,"schema":36769},"Perforce launches GitSwarm based on GitLab","Today Perforce launched Helix GitSwarm built on top of GitLab.","https://about.gitlab.com/blog/perforce-launches-gitswarm-based-on-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Perforce launches GitSwarm based on GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2015-10-06\",\n      }",{"title":36766,"description":36767,"authors":36771,"heroImage":11046,"date":36772,"category":301},[1000],"2015-10-06",{"slug":36774,"featured":6,"template":736},"perforce-launches-gitswarm-based-on-gitlab","content:en-us:blog:perforce-launches-gitswarm-based-on-gitlab.yml","Perforce Launches Gitswarm Based On Gitlab","en-us/blog/perforce-launches-gitswarm-based-on-gitlab.yml","en-us/blog/perforce-launches-gitswarm-based-on-gitlab",{"_path":36780,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36781,"content":36787,"config":36790,"_id":36792,"_type":16,"title":36793,"_source":17,"_file":36794,"_stem":36795,"_extension":20},"/en-us/blog/gitlab-announces-4m-series-a-funding-from-khosla-ventures",{"title":36782,"description":36783,"ogTitle":36782,"ogDescription":36783,"noIndex":6,"ogImage":36784,"ogUrl":36785,"ogSiteName":995,"ogType":996,"canonicalUrls":36785,"schema":36786},"GitLab announces $4M series A funding from Khosla Ventures","Today we are proud to announce our $4 million Series A funding from Khosla Ventures.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684454/Blog/Hero%20Images/gitlab-funded.jpg","https://about.gitlab.com/blog/gitlab-announces-4m-series-a-funding-from-khosla-ventures","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab announces $4M series A funding from Khosla Ventures\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2015-09-17\",\n      }",{"title":36782,"description":36783,"authors":36788,"heroImage":36784,"date":36789,"category":301},[1000],"2015-09-17",{"slug":36791,"featured":6,"template":736},"gitlab-announces-4m-series-a-funding-from-khosla-ventures","content:en-us:blog:gitlab-announces-4m-series-a-funding-from-khosla-ventures.yml","Gitlab Announces 4m Series A Funding From Khosla Ventures","en-us/blog/gitlab-announces-4m-series-a-funding-from-khosla-ventures.yml","en-us/blog/gitlab-announces-4m-series-a-funding-from-khosla-ventures",{"_path":36797,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36798,"content":36803,"config":36806,"_id":36808,"_type":16,"title":36809,"_source":17,"_file":36810,"_stem":36811,"_extension":20},"/en-us/blog/remote-agile-at-gitlab",{"title":36799,"description":36800,"ogTitle":36799,"ogDescription":36800,"noIndex":6,"ogImage":35995,"ogUrl":36801,"ogSiteName":995,"ogType":996,"canonicalUrls":36801,"schema":36802},"Remote Agile at GitLab","This is a start in describing the workflow that we've established over the past year at GitLab.","https://about.gitlab.com/blog/remote-agile-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Remote Agile at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-09-14\",\n      }",{"title":36799,"description":36800,"authors":36804,"heroImage":35995,"date":36805,"category":6121},[34274],"2015-09-14",{"slug":36807,"featured":6,"template":736},"remote-agile-at-gitlab","content:en-us:blog:remote-agile-at-gitlab.yml","Remote Agile At Gitlab","en-us/blog/remote-agile-at-gitlab.yml","en-us/blog/remote-agile-at-gitlab",{"_path":36813,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36814,"content":36820,"config":36823,"_id":36825,"_type":16,"title":36826,"_source":17,"_file":36827,"_stem":36828,"_extension":20},"/en-us/blog/a-grant-to-help-us-integrate-gitlab-with-open-source-osf",{"title":36815,"description":36816,"ogTitle":36815,"ogDescription":36816,"noIndex":6,"ogImage":36817,"ogUrl":36818,"ogSiteName":995,"ogType":996,"canonicalUrls":36818,"schema":36819},"A grant to help us integrate GitLab with open source OSF","We would like to facilitate researchers' efforts by integrating GitLab with the Open Science Framework (OSF).","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684475/Blog/Hero%20Images/osf-integration.jpg","https://about.gitlab.com/blog/a-grant-to-help-us-integrate-gitlab-with-open-source-osf","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"A grant to help us integrate GitLab with open source OSF\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2015-09-03\",\n      }",{"title":36815,"description":36816,"authors":36821,"heroImage":36817,"date":36822,"category":301},[2094],"2015-09-03",{"slug":36824,"featured":6,"template":736},"a-grant-to-help-us-integrate-gitlab-with-open-source-osf","content:en-us:blog:a-grant-to-help-us-integrate-gitlab-with-open-source-osf.yml","A Grant To Help Us Integrate Gitlab With Open Source Osf","en-us/blog/a-grant-to-help-us-integrate-gitlab-with-open-source-osf.yml","en-us/blog/a-grant-to-help-us-integrate-gitlab-with-open-source-osf",{"_path":36830,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36831,"content":36836,"config":36839,"_id":36841,"_type":16,"title":36842,"_source":17,"_file":36843,"_stem":36844,"_extension":20},"/en-us/blog/gitlab-dot-com-outage-on-2015-09-01",{"title":36832,"description":36833,"ogTitle":36832,"ogDescription":36833,"noIndex":6,"ogImage":11046,"ogUrl":36834,"ogSiteName":995,"ogType":996,"canonicalUrls":36834,"schema":36835},"GitLab.com outage on 2015-09-01","This morning GitLab.com was offline for one hour while we were investigating what seemed to be a filesystem corruption issue.","https://about.gitlab.com/blog/gitlab-dot-com-outage-on-2015-09-01","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com outage on 2015-09-01\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2015-09-01\",\n      }",{"title":36832,"description":36833,"authors":36837,"heroImage":11046,"date":36838,"category":301},[14315],"2015-09-01",{"slug":36840,"featured":6,"template":736},"gitlab-dot-com-outage-on-2015-09-01","content:en-us:blog:gitlab-dot-com-outage-on-2015-09-01.yml","Gitlab Dot Com Outage On 2015 09 01","en-us/blog/gitlab-dot-com-outage-on-2015-09-01.yml","en-us/blog/gitlab-dot-com-outage-on-2015-09-01",{"_path":36846,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36847,"content":36852,"config":36856,"_id":36858,"_type":16,"title":36859,"_source":17,"_file":36860,"_stem":36861,"_extension":20},"/en-us/blog/quayio",{"title":36848,"description":36849,"ogTitle":36848,"ogDescription":36849,"noIndex":6,"ogImage":11046,"ogUrl":36850,"ogSiteName":995,"ogType":996,"canonicalUrls":36850,"schema":36851},"Integrate GitLab-hosted Docker projects with Quay.io","Continuous Integration of GitLab-Hosted Docker Projects with Quay.io","https://about.gitlab.com/blog/quayio","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Continuous Integration of GitLab-Hosted Docker Projects with Quay.io\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Joseph Schorr from CoreOS\"}],\n        \"datePublished\": \"2015-08-19\",\n      }",{"title":36849,"description":36849,"authors":36853,"heroImage":11046,"date":36855,"category":858},[36854],"Joseph Schorr from CoreOS","2015-08-19",{"slug":36857,"featured":6,"template":736},"quayio","content:en-us:blog:quayio.yml","Quayio","en-us/blog/quayio.yml","en-us/blog/quayio",{"_path":36863,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36864,"content":36869,"config":36872,"_id":36874,"_type":16,"title":36875,"_source":17,"_file":36876,"_stem":36877,"_extension":20},"/en-us/blog/gitlab-loves-mattermost",{"title":36865,"description":36866,"ogTitle":36865,"ogDescription":36866,"noIndex":6,"ogImage":36586,"ogUrl":36867,"ogSiteName":995,"ogType":996,"canonicalUrls":36867,"schema":36868},"GitLab Mattermost, an open source on-premises Slack alternative","We're very excited to announce that we'll ship GitLab Mattermost, an open source, on-premises messaging app (like Slack) along with GitLab.","https://about.gitlab.com/blog/gitlab-loves-mattermost","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Mattermost, an open source on-premises Slack alternative\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-08-18\",\n      }",{"title":36865,"description":36866,"authors":36870,"heroImage":36586,"date":36871,"category":301},[3701],"2015-08-18",{"slug":36873,"featured":6,"template":736},"gitlab-loves-mattermost","content:en-us:blog:gitlab-loves-mattermost.yml","Gitlab Loves Mattermost","en-us/blog/gitlab-loves-mattermost.yml","en-us/blog/gitlab-loves-mattermost",{"_path":36879,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36880,"content":36886,"config":36889,"_id":36891,"_type":16,"title":36892,"_source":17,"_file":36893,"_stem":36894,"_extension":20},"/en-us/blog/towards-a-production-quality-open-source-git-lfs-server",{"title":36881,"description":36882,"ogTitle":36881,"ogDescription":36882,"noIndex":6,"ogImage":36883,"ogUrl":36884,"ogSiteName":995,"ogType":996,"canonicalUrls":36884,"schema":36885},"Towards a production quality open source Git LFS server","At GitLab we would love to be compatible with Git Large File Support (LFS).","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683672/Blog/Hero%20Images/FILENAME.jpg","https://about.gitlab.com/blog/towards-a-production-quality-open-source-git-lfs-server","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Towards a production quality open source Git LFS server\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-08-13\",\n      }",{"title":36881,"description":36882,"authors":36887,"heroImage":36883,"date":36888,"category":301},[3701],"2015-08-13",{"slug":36890,"featured":6,"template":736},"towards-a-production-quality-open-source-git-lfs-server","content:en-us:blog:towards-a-production-quality-open-source-git-lfs-server.yml","Towards A Production Quality Open Source Git Lfs Server","en-us/blog/towards-a-production-quality-open-source-git-lfs-server.yml","en-us/blog/towards-a-production-quality-open-source-git-lfs-server",{"_path":36896,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36897,"content":36902,"config":36905,"_id":36907,"_type":16,"title":36908,"_source":17,"_file":36909,"_stem":36910,"_extension":20},"/en-us/blog/6-reasons-why-pre-is-better-than-post-production-code-review",{"title":36898,"description":36899,"ogTitle":36898,"ogDescription":36899,"noIndex":6,"ogImage":33733,"ogUrl":36900,"ogSiteName":995,"ogType":996,"canonicalUrls":36900,"schema":36901},"6 reasons why pre is better than post production code review","Six good reasons why you should review code before it's being deployed/ released/ merged.","https://about.gitlab.com/blog/6-reasons-why-pre-is-better-than-post-production-code-review","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"6 reasons why pre is better than post production code review\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-08-05\",\n      }",{"title":36898,"description":36899,"authors":36903,"heroImage":33733,"date":36904,"category":8140},[34274],"2015-08-05",{"slug":36906,"featured":6,"template":736},"6-reasons-why-pre-is-better-than-post-production-code-review","content:en-us:blog:6-reasons-why-pre-is-better-than-post-production-code-review.yml","6 Reasons Why Pre Is Better Than Post Production Code Review","en-us/blog/6-reasons-why-pre-is-better-than-post-production-code-review.yml","en-us/blog/6-reasons-why-pre-is-better-than-post-production-code-review",{"_path":36912,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36913,"content":36919,"config":36922,"_id":36924,"_type":16,"title":36925,"_source":17,"_file":36926,"_stem":36927,"_extension":20},"/en-us/blog/almost-everything-we-do-is-now-open",{"title":36914,"description":36915,"ogTitle":36914,"ogDescription":36915,"noIndex":6,"ogImage":36916,"ogUrl":36917,"ogSiteName":995,"ogType":996,"canonicalUrls":36917,"schema":36918},"Almost Everything We Do Will Be Open","We're announcing a move from doing the majority of our development work internally, to almost exclusively working in public issue trackers on GitLab.com.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684463/Blog/Hero%20Images/open.jpg","https://about.gitlab.com/blog/almost-everything-we-do-is-now-open","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Almost Everything We Do Will Be Open\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-08-03\",\n      }",{"title":36914,"description":36915,"authors":36920,"heroImage":36916,"date":36921,"category":6121},[34274],"2015-08-03",{"slug":36923,"featured":6,"template":736},"almost-everything-we-do-is-now-open","content:en-us:blog:almost-everything-we-do-is-now-open.yml","Almost Everything We Do Is Now Open","en-us/blog/almost-everything-we-do-is-now-open.yml","en-us/blog/almost-everything-we-do-is-now-open",{"_path":36929,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36930,"content":36935,"config":36938,"_id":36940,"_type":16,"title":36941,"_source":17,"_file":36942,"_stem":36943,"_extension":20},"/en-us/blog/feature-highlight-merge-request-approvals",{"title":36931,"description":36932,"ogTitle":36931,"ogDescription":36932,"noIndex":6,"ogImage":11046,"ogUrl":36933,"ogSiteName":995,"ogType":996,"canonicalUrls":36933,"schema":36934},"Feature Highlight: Merge Request Approvals","If you want keep code quality high, it is important that you use a code review process. In GitLab, the best way to do this is by using Merge Requests. Read how to approve merge requests here.","https://about.gitlab.com/blog/feature-highlight-merge-request-approvals","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Merge Request Approvals\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-07-29\",\n      }",{"title":36931,"description":36932,"authors":36936,"heroImage":11046,"date":36937,"category":858},[34274],"2015-07-29",{"slug":36939,"featured":6,"template":736},"feature-highlight-merge-request-approvals","content:en-us:blog:feature-highlight-merge-request-approvals.yml","Feature Highlight Merge Request Approvals","en-us/blog/feature-highlight-merge-request-approvals.yml","en-us/blog/feature-highlight-merge-request-approvals",{"_path":36945,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36946,"content":36951,"config":36955,"_id":36957,"_type":16,"title":36958,"_source":17,"_file":36959,"_stem":36960,"_extension":20},"/en-us/blog/1-5m-raised-in-seed-funding-for-gitlab-to-accelerate-growth-and-expand-operations",{"title":36947,"description":36948,"ogTitle":36947,"ogDescription":36948,"noIndex":6,"ogImage":36784,"ogUrl":36949,"ogSiteName":995,"ogType":996,"canonicalUrls":36949,"schema":36950},"$1.5M seed funding for GitLab to sccelerate growth","We are excited to announce that we have raised $1.5M in seed funding for GitLab to accelerate growth and expand operations.","https://about.gitlab.com/blog/1-5m-raised-in-seed-funding-for-gitlab-to-accelerate-growth-and-expand-operations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"1.5M raised in seed funding for GitLab to accelerate growth and expand operations\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2015-07-09\",\n      }",{"title":36952,"description":36948,"authors":36953,"heroImage":36784,"date":36954,"category":301},"1.5M raised in seed funding for GitLab to accelerate growth and expand operations",[1000],"2015-07-09",{"slug":36956,"featured":6,"template":736},"1-5m-raised-in-seed-funding-for-gitlab-to-accelerate-growth-and-expand-operations","content:en-us:blog:1-5m-raised-in-seed-funding-for-gitlab-to-accelerate-growth-and-expand-operations.yml","1 5m Raised In Seed Funding For Gitlab To Accelerate Growth And Expand Operations","en-us/blog/1-5m-raised-in-seed-funding-for-gitlab-to-accelerate-growth-and-expand-operations.yml","en-us/blog/1-5m-raised-in-seed-funding-for-gitlab-to-accelerate-growth-and-expand-operations",{"_path":36962,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36963,"content":36969,"config":36973,"_id":36975,"_type":16,"title":36976,"_source":17,"_file":36977,"_stem":36978,"_extension":20},"/en-us/blog/how-we-use-gitlab-to-build-gitlab",{"title":36964,"description":36965,"ogTitle":36964,"ogDescription":36965,"noIndex":6,"ogImage":36966,"ogUrl":36967,"ogSiteName":995,"ogType":996,"canonicalUrls":36967,"schema":36968},"How we use GitLab to build GitLab","Have you ever wondered how GitLab employees use GitLab? Well read this article and get the inside scoop!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671577/Blog/Hero%20Images/dog-food.jpg","https://about.gitlab.com/blog/how-we-use-gitlab-to-build-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How we use GitLab to build GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Karen Carías\"}],\n        \"datePublished\": \"2015-07-07\",\n      }",{"title":36964,"description":36965,"authors":36970,"heroImage":36966,"date":36972,"category":8140},[36971],"Karen Carías","2015-07-07",{"slug":36974,"featured":6,"template":736},"how-we-use-gitlab-to-build-gitlab","content:en-us:blog:how-we-use-gitlab-to-build-gitlab.yml","How We Use Gitlab To Build Gitlab","en-us/blog/how-we-use-gitlab-to-build-gitlab.yml","en-us/blog/how-we-use-gitlab-to-build-gitlab",{"_path":36980,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36981,"content":36986,"config":36990,"_id":36992,"_type":16,"title":36993,"_source":17,"_file":36994,"_stem":36995,"_extension":20},"/en-us/blog/operating-as-gitlab-inc",{"title":36982,"description":36983,"ogTitle":36982,"ogDescription":36983,"noIndex":6,"ogImage":11046,"ogUrl":36984,"ogSiteName":995,"ogType":996,"canonicalUrls":36984,"schema":36985},"GitLab now operating as US corporation","Today we will begin operating as GitLab, Inc. Read more about this here!","https://about.gitlab.com/blog/operating-as-gitlab-inc","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab now operating as US corporation\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haydn Mackay\"}],\n        \"datePublished\": \"2015-07-01\",\n      }",{"title":36982,"description":36983,"authors":36987,"heroImage":11046,"date":36989,"category":301},[36988],"Haydn Mackay","2015-07-01",{"slug":36991,"featured":6,"template":736},"operating-as-gitlab-inc","content:en-us:blog:operating-as-gitlab-inc.yml","Operating As Gitlab Inc","en-us/blog/operating-as-gitlab-inc.yml","en-us/blog/operating-as-gitlab-inc",{"_path":36997,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":36998,"content":37004,"config":37007,"_id":37009,"_type":16,"title":37010,"_source":17,"_file":37011,"_stem":37012,"_extension":20},"/en-us/blog/release-manager-the-invisible-hero",{"title":36999,"description":37000,"ogTitle":36999,"ogDescription":37000,"noIndex":6,"ogImage":37001,"ogUrl":37002,"ogSiteName":995,"ogType":996,"canonicalUrls":37002,"schema":37003},"Release Manager - The invisible hero","In GitLab we have one invisible hero every month, when we have our release on the 22nd of every month which we have never missed!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684444/Blog/Hero%20Images/rm.jpg","https://about.gitlab.com/blog/release-manager-the-invisible-hero","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Release Manager - The invisible hero\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marin Jankovski\"}],\n        \"datePublished\": \"2015-06-25\",\n      }",{"title":36999,"description":37000,"authors":37005,"heroImage":37001,"date":37006,"category":6121},[28525],"2015-06-25",{"slug":37008,"featured":6,"template":736},"release-manager-the-invisible-hero","content:en-us:blog:release-manager-the-invisible-hero.yml","Release Manager The Invisible Hero","en-us/blog/release-manager-the-invisible-hero.yml","en-us/blog/release-manager-the-invisible-hero",{"_path":37014,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37015,"content":37020,"config":37023,"_id":37025,"_type":16,"title":37026,"_source":17,"_file":37027,"_stem":37028,"_extension":20},"/en-us/blog/gitlab-com-and-logjam",{"title":37016,"description":37017,"ogTitle":37016,"ogDescription":37017,"noIndex":6,"ogImage":11046,"ogUrl":37018,"ogSiteName":995,"ogType":996,"canonicalUrls":37018,"schema":37019},"GitLab.com and Logjam","We've updated the default/recommended SSL ciphers for all GitLab installations and implemented new ciphers on GitLab.com. Read more!","https://about.gitlab.com/blog/gitlab-com-and-logjam","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com and Logjam\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marin Jankovski\"}],\n        \"datePublished\": \"2015-06-17\",\n      }",{"title":37016,"description":37017,"authors":37021,"heroImage":11046,"date":37022,"category":301},[28525],"2015-06-17",{"slug":37024,"featured":6,"template":736},"gitlab-com-and-logjam","content:en-us:blog:gitlab-com-and-logjam.yml","Gitlab Com And Logjam","en-us/blog/gitlab-com-and-logjam.yml","en-us/blog/gitlab-com-and-logjam",{"_path":37030,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37031,"content":37037,"config":37039,"_id":37041,"_type":16,"title":37042,"_source":17,"_file":37043,"_stem":37044,"_extension":20},"/en-us/blog/highlights-to-my-first-remote-job",{"title":37032,"description":37033,"ogTitle":37032,"ogDescription":37033,"noIndex":6,"ogImage":37034,"ogUrl":37035,"ogSiteName":995,"ogType":996,"canonicalUrls":37035,"schema":37036},"Highlights to my first remote job","I started working with GitLab 2 months ago and it has been quite an interesting experience to work remotely with a team that's spread out in the world.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684436/Blog/Hero%20Images/highlights.jpg","https://about.gitlab.com/blog/highlights-to-my-first-remote-job","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Highlights to my first remote job\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Karen Carías\"}],\n        \"datePublished\": \"2015-06-17\",\n      }",{"title":37032,"description":37033,"authors":37038,"heroImage":37034,"date":37022,"category":6121},[36971],{"slug":37040,"featured":6,"template":736},"highlights-to-my-first-remote-job","content:en-us:blog:highlights-to-my-first-remote-job.yml","Highlights To My First Remote Job","en-us/blog/highlights-to-my-first-remote-job.yml","en-us/blog/highlights-to-my-first-remote-job",{"_path":37046,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37047,"content":37052,"config":37055,"_id":37057,"_type":16,"title":37058,"_source":17,"_file":37059,"_stem":37060,"_extension":20},"/en-us/blog/feature-highlight-approve-merge-request",{"title":37048,"description":37049,"ogTitle":37048,"ogDescription":37049,"noIndex":6,"ogImage":11046,"ogUrl":37050,"ogSiteName":995,"ogType":996,"canonicalUrls":37050,"schema":37051},"Feature Highlight: Approve Merge Request","With less than a week until GitLab 7.12, we've got a nice preview for you today: Merge Request Approvals in GitLab EE. View more here!","https://about.gitlab.com/blog/feature-highlight-approve-merge-request","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Approve Merge Request\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dmitriy Zaporozhets\"}],\n        \"datePublished\": \"2015-06-16\",\n      }",{"title":37048,"description":37049,"authors":37053,"heroImage":11046,"date":37054,"category":301},[15363],"2015-06-16",{"slug":37056,"featured":6,"template":736},"feature-highlight-approve-merge-request","content:en-us:blog:feature-highlight-approve-merge-request.yml","Feature Highlight Approve Merge Request","en-us/blog/feature-highlight-approve-merge-request.yml","en-us/blog/feature-highlight-approve-merge-request",{"_path":37062,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37063,"content":37068,"config":37071,"_id":37073,"_type":16,"title":37074,"_source":17,"_file":37075,"_stem":37076,"_extension":20},"/en-us/blog/did-you-install-gitlab-from-source-recently-check-your-git-version",{"title":37064,"description":37065,"ogTitle":37064,"ogDescription":37065,"noIndex":6,"ogImage":11046,"ogUrl":37066,"ogSiteName":995,"ogType":996,"canonicalUrls":37066,"schema":37067},"Did you install GitLab from source? Check your Git version","Although the preferred way to install GitLab is to use our omnibus packages, you can also install GitLab Community Edition or Enterprise Edition 'from source'.","https://about.gitlab.com/blog/did-you-install-gitlab-from-source-recently-check-your-git-version","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Did you install GitLab from source? Check your Git version\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2015-06-12\",\n      }",{"title":37064,"description":37065,"authors":37069,"heroImage":11046,"date":37070,"category":301},[14315],"2015-06-12",{"slug":37072,"featured":6,"template":736},"did-you-install-gitlab-from-source-recently-check-your-git-version","content:en-us:blog:did-you-install-gitlab-from-source-recently-check-your-git-version.yml","Did You Install Gitlab From Source Recently Check Your Git Version","en-us/blog/did-you-install-gitlab-from-source-recently-check-your-git-version.yml","en-us/blog/did-you-install-gitlab-from-source-recently-check-your-git-version",{"_path":37078,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37079,"content":37084,"config":37086,"_id":37088,"_type":16,"title":37089,"_source":17,"_file":37090,"_stem":37091,"_extension":20},"/en-us/blog/price-changes",{"title":37080,"description":37081,"ogTitle":37080,"ogDescription":37081,"noIndex":6,"ogImage":11046,"ogUrl":37082,"ogSiteName":995,"ogType":996,"canonicalUrls":37082,"schema":37083},"Changes to Enterprise Edition subscription pricing","Today we are announcing two changes to GitLab Enterprise Edition subscription pricing. You can learn more here!","https://about.gitlab.com/blog/price-changes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Changes to Enterprise Edition subscription pricing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haydn Mackay\"}],\n        \"datePublished\": \"2015-06-12\",\n      }",{"title":37080,"description":37081,"authors":37085,"heroImage":11046,"date":37070,"category":301},[36988],{"slug":37087,"featured":6,"template":736},"price-changes","content:en-us:blog:price-changes.yml","Price Changes","en-us/blog/price-changes.yml","en-us/blog/price-changes",{"_path":37093,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37094,"content":37099,"config":37102,"_id":37104,"_type":16,"title":37105,"_source":17,"_file":37106,"_stem":37107,"_extension":20},"/en-us/blog/implementing-gitlab-ci-dot-yml",{"title":37095,"description":37096,"ogTitle":37095,"ogDescription":37096,"noIndex":6,"ogImage":11046,"ogUrl":37097,"ogSiteName":995,"ogType":996,"canonicalUrls":37097,"schema":37098},"Implementing .gitlab-ci.yml","We replacing GitLab CI jobs with a .gitlab-ci.yml and wanted to share the details of that process with you and would love to hear what you think.","https://about.gitlab.com/blog/implementing-gitlab-ci-dot-yml","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Implementing .gitlab-ci.yml\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-06-08\",\n      }",{"title":37095,"description":37096,"authors":37100,"heroImage":11046,"date":37101,"category":858},[34274],"2015-06-08",{"slug":37103,"featured":6,"template":736},"implementing-gitlab-ci-dot-yml","content:en-us:blog:implementing-gitlab-ci-dot-yml.yml","Implementing Gitlab Ci Dot Yml","en-us/blog/implementing-gitlab-ci-dot-yml.yml","en-us/blog/implementing-gitlab-ci-dot-yml",{"_path":37109,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37110,"content":37115,"config":37118,"_id":37120,"_type":16,"title":37121,"_source":17,"_file":37122,"_stem":37123,"_extension":20},"/en-us/blog/how-gitlab-uses-unicorn-and-unicorn-worker-killer",{"title":37111,"description":37112,"ogTitle":37111,"ogDescription":37112,"noIndex":6,"ogImage":11046,"ogUrl":37113,"ogSiteName":995,"ogType":996,"canonicalUrls":37113,"schema":37114},"How GitLab uses Unicorn and unicorn-worker-killer","We just wrote some new documentation on how Gitlab uses Unicorn and unicorn-worker-killer, available on doc.gitlab.com. Read here!","https://about.gitlab.com/blog/how-gitlab-uses-unicorn-and-unicorn-worker-killer","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab uses Unicorn and unicorn-worker-killer\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2015-06-05\",\n      }",{"title":37111,"description":37112,"authors":37116,"heroImage":11046,"date":37117,"category":858},[14315],"2015-06-05",{"slug":37119,"featured":6,"template":736},"how-gitlab-uses-unicorn-and-unicorn-worker-killer","content:en-us:blog:how-gitlab-uses-unicorn-and-unicorn-worker-killer.yml","How Gitlab Uses Unicorn And Unicorn Worker Killer","en-us/blog/how-gitlab-uses-unicorn-and-unicorn-worker-killer.yml","en-us/blog/how-gitlab-uses-unicorn-and-unicorn-worker-killer",{"_path":37125,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37126,"content":37131,"config":37134,"_id":37136,"_type":16,"title":37137,"_source":17,"_file":37138,"_stem":37139,"_extension":20},"/en-us/blog/gitlab-dot-com-outage-on-2015-05-29",{"title":37127,"description":37128,"ogTitle":37127,"ogDescription":37128,"noIndex":6,"ogImage":11046,"ogUrl":37129,"ogSiteName":995,"ogType":996,"canonicalUrls":37129,"schema":37130},"GitLab.com outage on 2015-05-29","A quick summary of the causes and solutions regarding the GitLab.com outage on 2015-05-29","https://about.gitlab.com/blog/gitlab-dot-com-outage-on-2015-05-29","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com outage on 2015-05-29\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2015-06-04\",\n      }",{"title":37127,"description":37128,"authors":37132,"heroImage":11046,"date":37133,"category":858},[14315],"2015-06-04",{"slug":37135,"featured":6,"template":736},"gitlab-dot-com-outage-on-2015-05-29","content:en-us:blog:gitlab-dot-com-outage-on-2015-05-29.yml","Gitlab Dot Com Outage On 2015 05 29","en-us/blog/gitlab-dot-com-outage-on-2015-05-29.yml","en-us/blog/gitlab-dot-com-outage-on-2015-05-29",{"_path":37141,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37142,"content":37147,"config":37150,"_id":37152,"_type":16,"title":37153,"_source":17,"_file":37154,"_stem":37155,"_extension":20},"/en-us/blog/security-advisory-for-logjam-vulnerability",{"title":37143,"description":37144,"ogTitle":37143,"ogDescription":37144,"noIndex":6,"ogImage":11046,"ogUrl":37145,"ogSiteName":995,"ogType":996,"canonicalUrls":37145,"schema":37146},"Security advisory for Logjam vulnerability","Find information from GitLab relating to the recently announced Logjam vulnerability which allows an attacker to do a man-in-the-middle attack!","https://about.gitlab.com/blog/security-advisory-for-logjam-vulnerability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Security advisory for Logjam vulnerability\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marin Jankovski\"}],\n        \"datePublished\": \"2015-05-21\",\n      }",{"title":37143,"description":37144,"authors":37148,"heroImage":11046,"date":37149,"category":301},[28525],"2015-05-21",{"slug":37151,"featured":6,"template":736},"security-advisory-for-logjam-vulnerability","content:en-us:blog:security-advisory-for-logjam-vulnerability.yml","Security Advisory For Logjam Vulnerability","en-us/blog/security-advisory-for-logjam-vulnerability.yml","en-us/blog/security-advisory-for-logjam-vulnerability",{"_path":37157,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37158,"content":37163,"config":37167,"_id":37169,"_type":16,"title":37170,"_source":17,"_file":37171,"_stem":37172,"_extension":20},"/en-us/blog/gitlab-gitorious-free-software",{"title":37159,"description":37160,"ogTitle":37159,"ogDescription":37160,"noIndex":6,"ogImage":11046,"ogUrl":37161,"ogSiteName":995,"ogType":996,"canonicalUrls":37161,"schema":37162},"GitLab, Gitorious, and Free Software","This is a guest post by Mike Gerwitz, a free software hacker and activist, and author of GNU ease.js on the free software ideology","https://about.gitlab.com/blog/gitlab-gitorious-free-software","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab, Gitorious, and Free Software\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Mike Gerwitz\"}],\n        \"datePublished\": \"2015-05-20\",\n      }",{"title":37159,"description":37160,"authors":37164,"heroImage":11046,"date":37166,"category":301},[37165],"Mike Gerwitz","2015-05-20",{"slug":37168,"featured":6,"template":736},"gitlab-gitorious-free-software","content:en-us:blog:gitlab-gitorious-free-software.yml","Gitlab Gitorious Free Software","en-us/blog/gitlab-gitorious-free-software.yml","en-us/blog/gitlab-gitorious-free-software",{"_path":37174,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37175,"content":37180,"config":37183,"_id":37185,"_type":16,"title":37186,"_source":17,"_file":37187,"_stem":37188,"_extension":20},"/en-us/blog/version-check",{"title":37176,"description":37177,"ogTitle":37176,"ogDescription":37177,"noIndex":6,"ogImage":11046,"ogUrl":37178,"ogSiteName":995,"ogType":996,"canonicalUrls":37178,"schema":37179},"Version Check Functionality","We're working on a version check function for GitLab to reduce the problem of outdated servers which can be a security problem and provide a bad user experience","https://about.gitlab.com/blog/version-check","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Version Check Functionality\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-05-07\",\n      }",{"title":37176,"description":37177,"authors":37181,"heroImage":11046,"date":37182,"category":858},[3701],"2015-05-07",{"slug":37184,"featured":6,"template":736},"version-check","content:en-us:blog:version-check.yml","Version Check","en-us/blog/version-check.yml","en-us/blog/version-check",{"_path":37190,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37191,"content":37197,"config":37200,"_id":37202,"_type":16,"title":37203,"_source":17,"_file":37204,"_stem":37205,"_extension":20},"/en-us/blog/why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml",{"title":37192,"description":37193,"ogTitle":37192,"ogDescription":37193,"noIndex":6,"ogImage":37194,"ogUrl":37195,"ogSiteName":995,"ogType":996,"canonicalUrls":37195,"schema":37196},"Why we're replacing GitLab CI jobs with .gitlab-ci.yml","Every single GitLab installation ships with a powerful continuous integration tool: GitLab CI. Read how to enable it in 2 minutes.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684407/Blog/Hero%20Images/ci-yml.jpg","https://about.gitlab.com/blog/why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why we're replacing GitLab CI jobs with .gitlab-ci.yml\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-05-06\",\n      }",{"title":37192,"description":37193,"authors":37198,"heroImage":37194,"date":37199,"category":301},[34274],"2015-05-06",{"slug":37201,"featured":6,"template":736},"why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml","content:en-us:blog:why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml.yml","Why Were Replacing Gitlab Ci Jobs With Gitlab Ci Dot Yml","en-us/blog/why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml.yml","en-us/blog/why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml",{"_path":37207,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37208,"content":37213,"config":37216,"_id":37218,"_type":16,"title":37219,"_source":17,"_file":37220,"_stem":37221,"_extension":20},"/en-us/blog/unofficial-runner-becomes-official",{"title":37209,"description":37210,"ogTitle":37209,"ogDescription":37210,"noIndex":6,"ogImage":11046,"ogUrl":37211,"ogSiteName":995,"ogType":996,"canonicalUrls":37211,"schema":37212},"Unofficial runner becomes official one","This blog post about he alternative CI runner written in Go that can be easily run on any server with support for all latest technologies, including Docker.","https://about.gitlab.com/blog/unofficial-runner-becomes-official","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unofficial runner becomes official one\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kamil Trzciński\"}],\n        \"datePublished\": \"2015-05-03\",\n      }",{"title":37209,"description":37210,"authors":37214,"heroImage":11046,"date":37215,"category":301},[36000],"2015-05-03",{"slug":37217,"featured":6,"template":736},"unofficial-runner-becomes-official","content:en-us:blog:unofficial-runner-becomes-official.yml","Unofficial Runner Becomes Official","en-us/blog/unofficial-runner-becomes-official.yml","en-us/blog/unofficial-runner-becomes-official",{"_path":37223,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37224,"content":37229,"config":37232,"_id":37234,"_type":16,"title":37235,"_source":17,"_file":37236,"_stem":37237,"_extension":20},"/en-us/blog/gitlab-on-debian-8",{"title":37225,"description":37226,"ogTitle":37225,"ogDescription":37226,"noIndex":6,"ogImage":11046,"ogUrl":37227,"ogSiteName":995,"ogType":996,"canonicalUrls":37227,"schema":37228},"GitLab on Debian 8","From now on, GitLab Omnibus packages for Debian 8 will be available with every release. Learn more here!","https://about.gitlab.com/blog/gitlab-on-debian-8","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab on Debian 8\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-05-01\",\n      }",{"title":37225,"description":37226,"authors":37230,"heroImage":11046,"date":37231,"category":301},[34274],"2015-05-01",{"slug":37233,"featured":6,"template":736},"gitlab-on-debian-8","content:en-us:blog:gitlab-on-debian-8.yml","Gitlab On Debian 8","en-us/blog/gitlab-on-debian-8.yml","en-us/blog/gitlab-on-debian-8",{"_path":37239,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37240,"content":37245,"config":37248,"_id":37250,"_type":16,"title":37251,"_source":17,"_file":37252,"_stem":37253,"_extension":20},"/en-us/blog/unofficial-gitlab-ci-runner",{"title":37241,"description":37242,"ogTitle":37241,"ogDescription":37242,"noIndex":6,"ogImage":11046,"ogUrl":37243,"ogSiteName":995,"ogType":996,"canonicalUrls":37243,"schema":37244},"Unofficial GitLab CI Runner","GitLab CI Multi-purpose Runner is yet another CI runner, but this time written in Go with a vast number of features that leverage all the latest technologies.","https://about.gitlab.com/blog/unofficial-gitlab-ci-runner","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Unofficial GitLab CI Runner\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Kamil Trzciński\"}],\n        \"datePublished\": \"2015-04-17\",\n      }",{"title":37241,"description":37242,"authors":37246,"heroImage":11046,"date":37247,"category":858},[36000],"2015-04-17",{"slug":37249,"featured":6,"template":736},"unofficial-gitlab-ci-runner","content:en-us:blog:unofficial-gitlab-ci-runner.yml","Unofficial Gitlab Ci Runner","en-us/blog/unofficial-gitlab-ci-runner.yml","en-us/blog/unofficial-gitlab-ci-runner",{"_path":37255,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37256,"content":37262,"config":37265,"_id":37267,"_type":16,"title":37268,"_source":17,"_file":37269,"_stem":37270,"_extension":20},"/en-us/blog/bitbucket-vs-gitlab-com",{"title":37257,"description":37258,"ogTitle":37257,"ogDescription":37258,"noIndex":6,"ogImage":37259,"ogUrl":37260,"ogSiteName":995,"ogType":996,"canonicalUrls":37260,"schema":37261},"Bitbucket vs. GitLab.com","Considering a move from Bitbucket to GitLab? We've compiled a list of our advantages for you to view.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684393/Blog/Hero%20Images/bb.jpg","https://about.gitlab.com/blog/bitbucket-vs-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Bitbucket vs. GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-04-15\",\n      }",{"title":37257,"description":37258,"authors":37263,"heroImage":37259,"date":37264,"category":301},[34274],"2015-04-15",{"slug":37266,"featured":6,"template":736},"bitbucket-vs-gitlab-com","content:en-us:blog:bitbucket-vs-gitlab-com.yml","Bitbucket Vs Gitlab Com","en-us/blog/bitbucket-vs-gitlab-com.yml","en-us/blog/bitbucket-vs-gitlab-com",{"_path":37272,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37273,"content":37279,"config":37282,"_id":37284,"_type":16,"title":37285,"_source":17,"_file":37286,"_stem":37287,"_extension":20},"/en-us/blog/gitlab-dot-com-storage-limit-raised-to-10gb-per-repo",{"title":37274,"description":37275,"ogTitle":37274,"ogDescription":37275,"noIndex":6,"ogImage":37276,"ogUrl":37277,"ogSiteName":995,"ogType":996,"canonicalUrls":37277,"schema":37278},"GitLab.com storage limit raised to 10GB per repo","GitLab celebrate permanently raising our storage limit per repository on GitLab.com from 5GB to an impressive 10GB.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683693/Blog/Hero%20Images/milkyway.jpg","https://about.gitlab.com/blog/gitlab-dot-com-storage-limit-raised-to-10gb-per-repo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com storage limit raised to 10GB per repo\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-04-08\",\n      }",{"title":37274,"description":37275,"authors":37280,"heroImage":37276,"date":37281,"category":301},[3701],"2015-04-08",{"slug":37283,"featured":6,"template":736},"gitlab-dot-com-storage-limit-raised-to-10gb-per-repo","content:en-us:blog:gitlab-dot-com-storage-limit-raised-to-10gb-per-repo.yml","Gitlab Dot Com Storage Limit Raised To 10gb Per Repo","en-us/blog/gitlab-dot-com-storage-limit-raised-to-10gb-per-repo.yml","en-us/blog/gitlab-dot-com-storage-limit-raised-to-10gb-per-repo",{"_path":37289,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37290,"content":37296,"config":37298,"_id":37300,"_type":16,"title":37291,"_source":17,"_file":37301,"_stem":37302,"_extension":20},"/en-us/blog/the-remote-manifesto",{"title":37291,"description":37292,"ogTitle":37291,"ogDescription":37292,"noIndex":6,"ogImage":37293,"ogUrl":37294,"ogSiteName":995,"ogType":996,"canonicalUrls":37294,"schema":37295},"The Remote Manifesto","View the GitLab remote working manifesto and the multitude of life-balance benefits it allows our employees to enjoy. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683688/Blog/Hero%20Images/remote.jpg","https://about.gitlab.com/blog/the-remote-manifesto","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Remote Manifesto\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-04-08\",\n      }",{"title":37291,"description":37292,"authors":37297,"heroImage":37293,"date":37281,"category":6121},[3701],{"slug":37299,"featured":6,"template":736},"the-remote-manifesto","content:en-us:blog:the-remote-manifesto.yml","en-us/blog/the-remote-manifesto.yml","en-us/blog/the-remote-manifesto",{"_path":37304,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37305,"content":37310,"config":37313,"_id":37315,"_type":16,"title":37316,"_source":17,"_file":37317,"_stem":37318,"_extension":20},"/en-us/blog/farewell-google-code-hello-gitlab-dot-com",{"title":37306,"description":37307,"ogTitle":37306,"ogDescription":37307,"noIndex":6,"ogImage":36883,"ogUrl":37308,"ogSiteName":995,"ogType":996,"canonicalUrls":37308,"schema":37309},"Farewell Google Code. Hello GitLab.com","Today GitLab examines Google's announcement that its Google Code project hosting service will be closing in about 10 months.","https://about.gitlab.com/blog/farewell-google-code-hello-gitlab-dot-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Farewell Google Code. Hello GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-03-12\",\n      }",{"title":37306,"description":37307,"authors":37311,"heroImage":36883,"date":37312,"category":301},[3701],"2015-03-12",{"slug":37314,"featured":6,"template":736},"farewell-google-code-hello-gitlab-dot-com","content:en-us:blog:farewell-google-code-hello-gitlab-dot-com.yml","Farewell Google Code Hello Gitlab Dot Com","en-us/blog/farewell-google-code-hello-gitlab-dot-com.yml","en-us/blog/farewell-google-code-hello-gitlab-dot-com",{"_path":37320,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37321,"content":37327,"config":37330,"_id":37332,"_type":16,"title":37333,"_source":17,"_file":37334,"_stem":37335,"_extension":20},"/en-us/blog/gitlab-ami",{"title":37322,"description":37323,"ogTitle":37322,"ogDescription":37323,"noIndex":6,"ogImage":37324,"ogUrl":37325,"ogSiteName":995,"ogType":996,"canonicalUrls":37325,"schema":37326},"GitLab AMI","We're happy to announce that GitLab now has Amazon Web Services Machines Images (AMIs) available for GitLab CE.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684381/Blog/Hero%20Images/mac.jpg","https://about.gitlab.com/blog/gitlab-ami","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab AMI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-03-11\",\n      }",{"title":37322,"description":37323,"authors":37328,"heroImage":37324,"date":37329,"category":301},[34274],"2015-03-11",{"slug":37331,"featured":6,"template":736},"gitlab-ami","content:en-us:blog:gitlab-ami.yml","Gitlab Ami","en-us/blog/gitlab-ami.yml","en-us/blog/gitlab-ami",{"_path":37337,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37338,"content":37344,"config":37347,"_id":37349,"_type":16,"title":37350,"_source":17,"_file":37351,"_stem":37352,"_extension":20},"/en-us/blog/moving-all-your-data",{"title":37339,"description":37340,"ogTitle":37339,"ogDescription":37340,"noIndex":6,"ogImage":37341,"ogUrl":37342,"ogSiteName":995,"ogType":996,"canonicalUrls":37342,"schema":37343},"Moving all your data, 9TB edition","At GitLab B.V. we are working on an infrastructure upgrade to give more CPU power and storage space to GitLab.com. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684774/Blog/Hero%20Images/van.jpg","https://about.gitlab.com/blog/moving-all-your-data","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Moving all your data, 9TB edition\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2015-03-09\",\n      }",{"title":37339,"description":37340,"authors":37345,"heroImage":37341,"date":37346,"category":858},[14315],"2015-03-09",{"slug":37348,"featured":6,"template":736},"moving-all-your-data","content:en-us:blog:moving-all-your-data.yml","Moving All Your Data","en-us/blog/moving-all-your-data.yml","en-us/blog/moving-all-your-data",{"_path":37354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37355,"content":37361,"config":37364,"_id":37366,"_type":16,"title":37367,"_source":17,"_file":37368,"_stem":37369,"_extension":20},"/en-us/blog/gitlab-is-part-of-the-y-combinator-family",{"title":37356,"description":37357,"ogTitle":37356,"ogDescription":37357,"noIndex":6,"ogImage":37358,"ogUrl":37359,"ogSiteName":995,"ogType":996,"canonicalUrls":37359,"schema":37360},"GitLab is part of the Y Combinator family","Y Combinator is a Silicon Valley based seed fund that provides mentorship, advice and connections to a meticulously selected group of startups","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683704/Blog/Hero%20Images/yc.jpg","https://about.gitlab.com/blog/gitlab-is-part-of-the-y-combinator-family","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is part of the Y Combinator family\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-03-04\",\n      }",{"title":37356,"description":37357,"authors":37362,"heroImage":37358,"date":37363,"category":301},[3701],"2015-03-04",{"slug":37365,"featured":6,"template":736},"gitlab-is-part-of-the-y-combinator-family","content:en-us:blog:gitlab-is-part-of-the-y-combinator-family.yml","Gitlab Is Part Of The Y Combinator Family","en-us/blog/gitlab-is-part-of-the-y-combinator-family.yml","en-us/blog/gitlab-is-part-of-the-y-combinator-family",{"_path":37371,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37372,"content":37378,"config":37382,"_id":37384,"_type":16,"title":37385,"_source":17,"_file":37386,"_stem":37387,"_extension":20},"/en-us/blog/gitlab-acquires-gitorious",{"title":37373,"description":37374,"ogTitle":37373,"ogDescription":37374,"noIndex":6,"ogImage":37375,"ogUrl":37376,"ogSiteName":995,"ogType":996,"canonicalUrls":37376,"schema":37377},"GitLab acquires Gitorious to strengthen on-premises offerings","GitLab and Gitorious announce today they are joining forces to strengthen the development of GitLab’s open source Git management application.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683712/Blog/Hero%20Images/water.jpg","https://about.gitlab.com/blog/gitlab-acquires-gitorious","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab acquires Gitorious to bolster its on premises code collaboration platform\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-03-03\",\n      }",{"title":37379,"description":37374,"authors":37380,"heroImage":37375,"date":37381,"category":301},"GitLab acquires Gitorious to bolster its on premises code collaboration platform",[3701],"2015-03-03",{"slug":37383,"featured":6,"template":736},"gitlab-acquires-gitorious","content:en-us:blog:gitlab-acquires-gitorious.yml","Gitlab Acquires Gitorious","en-us/blog/gitlab-acquires-gitorious.yml","en-us/blog/gitlab-acquires-gitorious",{"_path":37389,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37390,"content":37396,"config":37399,"_id":37401,"_type":16,"title":37402,"_source":17,"_file":37403,"_stem":37404,"_extension":20},"/en-us/blog/how-to-install-gitlab",{"title":37391,"description":37392,"ogTitle":37391,"ogDescription":37392,"noIndex":6,"ogImage":37393,"ogUrl":37394,"ogSiteName":995,"ogType":996,"canonicalUrls":37394,"schema":37395},"How to install GitLab on your own domain","Want to get your first own GitLab instance running? Use these easy to follow instructions and you will be active in no time!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684373/Blog/Hero%20Images/installing.jpg","https://about.gitlab.com/blog/how-to-install-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to install GitLab on your own domain\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-02-24\",\n      }",{"title":37391,"description":37392,"authors":37397,"heroImage":37393,"date":37398,"category":858},[34274],"2015-02-24",{"slug":37400,"featured":6,"template":736},"how-to-install-gitlab","content:en-us:blog:how-to-install-gitlab.yml","How To Install Gitlab","en-us/blog/how-to-install-gitlab.yml","en-us/blog/how-to-install-gitlab",{"_path":37406,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37407,"content":37413,"config":37416,"_id":37418,"_type":16,"title":37419,"_source":17,"_file":37420,"_stem":37421,"_extension":20},"/en-us/blog/8-tips-to-help-you-work-better-with-git",{"title":37408,"description":37409,"ogTitle":37408,"ogDescription":37409,"noIndex":6,"ogImage":37410,"ogUrl":37411,"ogSiteName":995,"ogType":996,"canonicalUrls":37411,"schema":37412},"8 Tips to help you work better with Git","Read our eight tips that will ensure you perform better with git and help to improve your workflow today. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684361/Blog/Hero%20Images/leaves.jpg","https://about.gitlab.com/blog/8-tips-to-help-you-work-better-with-git","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"8 Tips to help you work better with Git\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patricio Cano\"}],\n        \"datePublished\": \"2015-02-19\",\n      }",{"title":37408,"description":37409,"authors":37414,"heroImage":37410,"date":37415,"category":1388},[36051],"2015-02-19",{"slug":37417,"featured":6,"template":736},"8-tips-to-help-you-work-better-with-git","content:en-us:blog:8-tips-to-help-you-work-better-with-git.yml","8 Tips To Help You Work Better With Git","en-us/blog/8-tips-to-help-you-work-better-with-git.yml","en-us/blog/8-tips-to-help-you-work-better-with-git",{"_path":37423,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37424,"content":37430,"config":37434,"_id":37436,"_type":16,"title":37437,"_source":17,"_file":37438,"_stem":37439,"_extension":20},"/en-us/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git",{"title":37425,"description":37426,"ogTitle":37425,"ogDescription":37426,"noIndex":6,"ogImage":37427,"ogUrl":37428,"ogSiteName":995,"ogType":996,"canonicalUrls":37428,"schema":37429},"GitLab Annex enables versioning of large binaries with git","GitLab solves the biggest limitation of git compared to some older centralized version control systems has been the maximum size of the repositories.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666750/Blog/Hero%20Images/annex.jpg","https://about.gitlab.com/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Annex solves the problem of versioning large binaries with git\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-02-17\",\n      }",{"title":37431,"description":37426,"authors":37432,"heroImage":37427,"date":37433,"category":301},"GitLab Annex solves the problem of versioning large binaries with git",[3701],"2015-02-17",{"slug":37435,"featured":6,"template":736},"gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git","content:en-us:blog:gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git.yml","Gitlab Annex Solves The Problem Of Versioning Large Binaries With Git","en-us/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git.yml","en-us/blog/gitlab-annex-solves-the-problem-of-versioning-large-binaries-with-git",{"_path":37441,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37442,"content":37448,"config":37451,"_id":37453,"_type":16,"title":37454,"_source":17,"_file":37455,"_stem":37456,"_extension":20},"/en-us/blog/why-ship-on-premises-in-the-saas-era",{"title":37443,"description":37444,"ogTitle":37443,"ogDescription":37444,"noIndex":6,"ogImage":37445,"ogUrl":37446,"ogSiteName":995,"ogType":996,"canonicalUrls":37446,"schema":37447},"Why deploy on-premises in the SaaS era?","Take a moment to view some highlights of the reasons why deploying on-premises in SAAS era is not such a bad idea after all.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684779/Blog/Hero%20Images/on_premises.jpg","https://about.gitlab.com/blog/why-ship-on-premises-in-the-saas-era","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why deploy on-premises in the SaaS era?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haydn Mackay\"}],\n        \"datePublished\": \"2015-02-12\",\n      }",{"title":37443,"description":37444,"authors":37449,"heroImage":37445,"date":37450,"category":8140},[36988],"2015-02-12",{"slug":37452,"featured":6,"template":736},"why-ship-on-premises-in-the-saas-era","content:en-us:blog:why-ship-on-premises-in-the-saas-era.yml","Why Ship On Premises In The Saas Era","en-us/blog/why-ship-on-premises-in-the-saas-era.yml","en-us/blog/why-ship-on-premises-in-the-saas-era",{"_path":37458,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37459,"content":37465,"config":37468,"_id":37470,"_type":16,"title":37471,"_source":17,"_file":37472,"_stem":37473,"_extension":20},"/en-us/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders",{"title":37460,"description":37461,"ogTitle":37460,"ogDescription":37461,"noIndex":6,"ogImage":37462,"ogUrl":37463,"ogSiteName":995,"ogType":996,"canonicalUrls":37463,"schema":37464},"GitLab reduced merge conflicts by 90% with changelog placeholders","By utilising changelog placeholders GitLab reduced merge conflicts by 90 percent! Read more here.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683633/Blog/Hero%20Images/changelog.jpg","https://about.gitlab.com/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab reduced merge conflicts by 90% with changelog placeholders\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-02-10\",\n      }",{"title":37460,"description":37461,"authors":37466,"heroImage":37462,"date":37467,"category":858},[3701],"2015-02-10",{"slug":37469,"featured":6,"template":736},"gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders","content:en-us:blog:gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders.yml","Gitlab Reduced Merge Conflicts By 90 Percent With Changelog Placeholders","en-us/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders.yml","en-us/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders",{"_path":37475,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37476,"content":37482,"config":37486,"_id":37488,"_type":16,"title":37489,"_source":17,"_file":37490,"_stem":37491,"_extension":20},"/en-us/blog/why-move-to-a-single-code-collaboration-tool",{"title":37477,"description":37478,"ogTitle":37477,"ogDescription":37478,"noIndex":6,"ogImage":37479,"ogUrl":37480,"ogSiteName":995,"ogType":996,"canonicalUrls":37480,"schema":37481},"Why move to a single code collaboration tool?","Moving to a single code coolaboration tool streamlines process and allows you to free up valuable resources. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684346/Blog/Hero%20Images/one_instance.jpg","https://about.gitlab.com/blog/why-move-to-a-single-code-collaboration-tool","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Why move to a single code collaboration tool?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marc Radulescu\"}],\n        \"datePublished\": \"2015-02-06\",\n      }",{"title":37477,"description":37478,"authors":37483,"heroImage":37479,"date":37485,"category":8140},[37484],"Marc Radulescu","2015-02-06",{"slug":37487,"featured":6,"template":736},"why-move-to-a-single-code-collaboration-tool","content:en-us:blog:why-move-to-a-single-code-collaboration-tool.yml","Why Move To A Single Code Collaboration Tool","en-us/blog/why-move-to-a-single-code-collaboration-tool.yml","en-us/blog/why-move-to-a-single-code-collaboration-tool",{"_path":37493,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37494,"content":37500,"config":37503,"_id":37505,"_type":16,"title":37506,"_source":17,"_file":37507,"_stem":37508,"_extension":20},"/en-us/blog/7-reasons-why-you-should-be-using-ci",{"title":37495,"description":37496,"ogTitle":37495,"ogDescription":37496,"noIndex":6,"ogImage":37497,"ogUrl":37498,"ogSiteName":995,"ogType":996,"canonicalUrls":37498,"schema":37499},"7 reasons why you should be using Continuous Integration","View the 7 resons why you and your business should be using Continuous Integration for exceptional results!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684339/Blog/Hero%20Images/vespa.jpg","https://about.gitlab.com/blog/7-reasons-why-you-should-be-using-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"7 reasons why you should be using Continuous Integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patricio Cano\"}],\n        \"datePublished\": \"2015-02-03\",\n      }",{"title":37495,"description":37496,"authors":37501,"heroImage":37497,"date":37502,"category":858},[36051],"2015-02-03",{"slug":37504,"featured":6,"template":736},"7-reasons-why-you-should-be-using-ci","content:en-us:blog:7-reasons-why-you-should-be-using-ci.yml","7 Reasons Why You Should Be Using Ci","en-us/blog/7-reasons-why-you-should-be-using-ci.yml","en-us/blog/7-reasons-why-you-should-be-using-ci",{"_path":37510,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37511,"content":37516,"config":37519,"_id":37521,"_type":16,"title":37522,"_source":17,"_file":37523,"_stem":37524,"_extension":20},"/en-us/blog/stop-waiting-for-your-ci-server-by-making-them-3x-faster",{"title":37512,"description":37513,"ogTitle":37512,"ogDescription":37513,"noIndex":6,"ogImage":37276,"ogUrl":37514,"ogSiteName":995,"ogType":996,"canonicalUrls":37514,"schema":37515},"Stop waiting for your tests by making them 3x faster","Are you working on a serious software project? Run only directly related unit tests locally while your CI server takes care of the rest 3x faster than you could","https://about.gitlab.com/blog/stop-waiting-for-your-ci-server-by-making-them-3x-faster","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Stop waiting for your tests by making them 3x faster\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2015-01-29\",\n      }",{"title":37512,"description":37513,"authors":37517,"heroImage":37276,"date":37518,"category":301},[3701],"2015-01-29",{"slug":37520,"featured":6,"template":736},"stop-waiting-for-your-ci-server-by-making-them-3x-faster","content:en-us:blog:stop-waiting-for-your-ci-server-by-making-them-3x-faster.yml","Stop Waiting For Your Ci Server By Making Them 3x Faster","en-us/blog/stop-waiting-for-your-ci-server-by-making-them-3x-faster.yml","en-us/blog/stop-waiting-for-your-ci-server-by-making-them-3x-faster",{"_path":37526,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37527,"content":37532,"config":37535,"_id":37537,"_type":16,"title":37538,"_source":17,"_file":37539,"_stem":37540,"_extension":20},"/en-us/blog/responding-to-ghost",{"title":37528,"description":37529,"ogTitle":37528,"ogDescription":37529,"noIndex":6,"ogImage":11046,"ogUrl":37530,"ogSiteName":995,"ogType":996,"canonicalUrls":37530,"schema":37531},"Responding to Ghost","A response from GitLab to the announcem,ent of the glibc vulnerability 2015, this had liitle impacty on GitLab, but latest OS updates are recomended.","https://about.gitlab.com/blog/responding-to-ghost","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Responding to Ghost\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2015-01-28\",\n      }",{"title":37528,"description":37529,"authors":37533,"heroImage":11046,"date":37534,"category":301},[14315],"2015-01-28",{"slug":37536,"featured":6,"template":736},"responding-to-ghost","content:en-us:blog:responding-to-ghost.yml","Responding To Ghost","en-us/blog/responding-to-ghost.yml","en-us/blog/responding-to-ghost",{"_path":37542,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37543,"content":37549,"config":37552,"_id":37554,"_type":16,"title":37555,"_source":17,"_file":37556,"_stem":37557,"_extension":20},"/en-us/blog/7-git-personalities",{"title":37544,"description":37545,"ogTitle":37544,"ogDescription":37545,"noIndex":6,"ogImage":37546,"ogUrl":37547,"ogSiteName":995,"ogType":996,"canonicalUrls":37547,"schema":37548},"7 Git personalities, which one are you?","Working on an open source projects we receive many merge and pull requests and see a number of different git personalities. Do you recognize yourself?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684330/Blog/Hero%20Images/git_personalities.jpg","https://about.gitlab.com/blog/7-git-personalities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"7 Git personalities, which one are you?\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-01-27\",\n      }",{"title":37544,"description":37545,"authors":37550,"heroImage":37546,"date":37551,"category":8140},[34274],"2015-01-27",{"slug":37553,"featured":6,"template":736},"7-git-personalities","content:en-us:blog:7-git-personalities.yml","7 Git Personalities","en-us/blog/7-git-personalities.yml","en-us/blog/7-git-personalities",{"_path":37559,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37560,"content":37566,"config":37569,"_id":37571,"_type":16,"title":37572,"_source":17,"_file":37573,"_stem":37574,"_extension":20},"/en-us/blog/how-to-turn-screw-ups-to-your-advantage",{"title":37561,"description":37562,"ogTitle":37561,"ogDescription":37562,"noIndex":6,"ogImage":37563,"ogUrl":37564,"ogSiteName":995,"ogType":996,"canonicalUrls":37564,"schema":37565},"How to turn screw-ups to your advantage","In this post, we look at two instances where we at GitLab dropped the ball, and how we used these errors to learn and improve. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684352/Blog/Hero%20Images/screwup.jpg","https://about.gitlab.com/blog/how-to-turn-screw-ups-to-your-advantage","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How to turn screw-ups to your advantage\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marc Radulescu\"}],\n        \"datePublished\": \"2015-01-23\",\n      }",{"title":37561,"description":37562,"authors":37567,"heroImage":37563,"date":37568,"category":6121},[37484],"2015-01-23",{"slug":37570,"featured":6,"template":736},"how-to-turn-screw-ups-to-your-advantage","content:en-us:blog:how-to-turn-screw-ups-to-your-advantage.yml","How To Turn Screw Ups To Your Advantage","en-us/blog/how-to-turn-screw-ups-to-your-advantage.yml","en-us/blog/how-to-turn-screw-ups-to-your-advantage",{"_path":37576,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37577,"content":37583,"config":37586,"_id":37588,"_type":16,"title":37589,"_source":17,"_file":37590,"_stem":37591,"_extension":20},"/en-us/blog/github-enterprise-vs-gitlab-enterprise-edition",{"title":37578,"description":37579,"ogTitle":37578,"ogDescription":37579,"noIndex":6,"ogImage":37580,"ogUrl":37581,"ogSiteName":995,"ogType":996,"canonicalUrls":37581,"schema":37582},"GitHub Enterprise vs GitLab Enterprise Edition","In this post we discuss the advantages of running GitLab Enterprise Edition, our paid version of GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683801/Blog/Hero%20Images/city_highway_at_night.jpg","https://about.gitlab.com/blog/github-enterprise-vs-gitlab-enterprise-edition","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitHub Enterprise vs GitLab Enterprise Edition\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2015-01-20\",\n      }",{"title":37578,"description":37579,"authors":37584,"heroImage":37580,"date":37585,"category":8140},[1000],"2015-01-20",{"slug":37587,"featured":6,"template":736},"github-enterprise-vs-gitlab-enterprise-edition","content:en-us:blog:github-enterprise-vs-gitlab-enterprise-edition.yml","Github Enterprise Vs Gitlab Enterprise Edition","en-us/blog/github-enterprise-vs-gitlab-enterprise-edition.yml","en-us/blog/github-enterprise-vs-gitlab-enterprise-edition",{"_path":37593,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37594,"content":37600,"config":37604,"_id":37606,"_type":16,"title":37607,"_source":17,"_file":37608,"_stem":37609,"_extension":20},"/en-us/blog/pragmatic-redesign-for-gitlab",{"title":37595,"description":37596,"ogTitle":37595,"ogDescription":37596,"noIndex":6,"ogImage":37597,"ogUrl":37598,"ogSiteName":995,"ogType":996,"canonicalUrls":37598,"schema":37599},"Pragmatic Redesign for GitLab","In this post, we'll show you why we're changingthe the GitLab 7.7 user interface, how we did it and what the end result is.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684299/Blog/Hero%20Images/big.png","https://about.gitlab.com/blog/pragmatic-redesign-for-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Pragmatic Redesign for GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dmitriy, Job\"}],\n        \"datePublished\": \"2015-01-16\",\n      }",{"title":37595,"description":37596,"authors":37601,"heroImage":37597,"date":37603,"category":6121},[37602],"Dmitriy, Job","2015-01-16",{"slug":37605,"featured":6,"template":736},"pragmatic-redesign-for-gitlab","content:en-us:blog:pragmatic-redesign-for-gitlab.yml","Pragmatic Redesign For Gitlab","en-us/blog/pragmatic-redesign-for-gitlab.yml","en-us/blog/pragmatic-redesign-for-gitlab",{"_path":37611,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37612,"content":37618,"config":37621,"_id":37623,"_type":16,"title":37624,"_source":17,"_file":37625,"_stem":37626,"_extension":20},"/en-us/blog/gitlab-community-forum",{"title":37613,"description":37614,"ogTitle":37613,"ogDescription":37614,"noIndex":6,"ogImage":37615,"ogUrl":37616,"ogSiteName":995,"ogType":996,"canonicalUrls":37616,"schema":37617},"GitLab Community Forum","View the GitLab forum. More and more people interact within the community as GitLab grows, new contributors appear every day. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684289/Blog/Hero%20Images/community.png","https://about.gitlab.com/blog/gitlab-community-forum","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Community Forum\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2015-01-12\",\n      }",{"title":37613,"description":37614,"authors":37619,"heroImage":37615,"date":37620,"category":301},[33451],"2015-01-12",{"slug":37622,"featured":6,"template":736},"gitlab-community-forum","content:en-us:blog:gitlab-community-forum.yml","Gitlab Community Forum","en-us/blog/gitlab-community-forum.yml","en-us/blog/gitlab-community-forum",{"_path":37628,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37629,"content":37635,"config":37639,"_id":37641,"_type":16,"title":37642,"_source":17,"_file":37643,"_stem":37644,"_extension":20},"/en-us/blog/writing-the-gitlab-book-part-1",{"title":37630,"description":37631,"ogTitle":37630,"ogDescription":37631,"noIndex":6,"ogImage":37632,"ogUrl":37633,"ogSiteName":995,"ogType":996,"canonicalUrls":37633,"schema":37634},"Writing the GitLab book: part 1","Join me in this series of blog articles which explore the process of me writing a book about GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684280/Blog/Hero%20Images/writing.jpg","https://about.gitlab.com/blog/writing-the-gitlab-book-part-1","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Writing the GitLab book: part 1\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jeroen van Baarsen\"}],\n        \"datePublished\": \"2015-01-05\",\n      }",{"title":37630,"description":37631,"authors":37636,"heroImage":37632,"date":37638,"category":6121},[37637],"Jeroen van Baarsen","2015-01-05",{"slug":37640,"featured":6,"template":736},"writing-the-gitlab-book-part-1","content:en-us:blog:writing-the-gitlab-book-part-1.yml","Writing The Gitlab Book Part 1","en-us/blog/writing-the-gitlab-book-part-1.yml","en-us/blog/writing-the-gitlab-book-part-1",{"_path":37646,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37647,"content":37653,"config":37656,"_id":37658,"_type":16,"title":37659,"_source":17,"_file":37660,"_stem":37661,"_extension":20},"/en-us/blog/the-hardware-that-powers-100k-git-repos",{"title":37648,"description":37649,"ogTitle":37648,"ogDescription":37649,"noIndex":6,"ogImage":37650,"ogUrl":37651,"ogSiteName":995,"ogType":996,"canonicalUrls":37651,"schema":37652},"The hardware that powers 100,000 git repositories","Want to host your public and private repositories somewhere for free? You can on GitLab.com. Learn more here!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684271/Blog/Hero%20Images/hardware.jpg","https://about.gitlab.com/blog/the-hardware-that-powers-100k-git-repos","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The hardware that powers 100,000 git repositories\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2015-01-03\",\n      }",{"title":37648,"description":37649,"authors":37654,"heroImage":37650,"date":37655,"category":301},[34274],"2015-01-03",{"slug":37657,"featured":6,"template":736},"the-hardware-that-powers-100k-git-repos","content:en-us:blog:the-hardware-that-powers-100k-git-repos.yml","The Hardware That Powers 100k Git Repos","en-us/blog/the-hardware-that-powers-100k-git-repos.yml","en-us/blog/the-hardware-that-powers-100k-git-repos",{"_path":37663,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37664,"content":37669,"config":37672,"_id":37674,"_type":16,"title":37675,"_source":17,"_file":37676,"_stem":37677,"_extension":20},"/en-us/blog/gitlab-got-bit-mysql-fails-at-rails-migrations-that-work-in-postgresql",{"title":37665,"description":37666,"ogTitle":37665,"ogDescription":37666,"noIndex":6,"ogImage":11046,"ogUrl":37667,"ogSiteName":995,"ogType":996,"canonicalUrls":37667,"schema":37668},"GitLab got bit: MySQL fails at Rails migrations that work in PostgreSQL","One day after releasing GitLab 7.6 we had to release a patch. This is how we got bit by a failing migration and why it was our own fault.","https://about.gitlab.com/blog/gitlab-got-bit-mysql-fails-at-rails-migrations-that-work-in-postgresql","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab got bit: MySQL fails at Rails migrations that work in PostgreSQL\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-12-30\",\n      }",{"title":37665,"description":37666,"authors":37670,"heroImage":11046,"date":37671,"category":301},[34274],"2014-12-30",{"slug":37673,"featured":6,"template":736},"gitlab-got-bit-mysql-fails-at-rails-migrations-that-work-in-postgresql","content:en-us:blog:gitlab-got-bit-mysql-fails-at-rails-migrations-that-work-in-postgresql.yml","Gitlab Got Bit Mysql Fails At Rails Migrations That Work In Postgresql","en-us/blog/gitlab-got-bit-mysql-fails-at-rails-migrations-that-work-in-postgresql.yml","en-us/blog/gitlab-got-bit-mysql-fails-at-rails-migrations-that-work-in-postgresql",{"_path":37679,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37680,"content":37685,"config":37688,"_id":37690,"_type":16,"title":37691,"_source":17,"_file":37692,"_stem":37693,"_extension":20},"/en-us/blog/gitlab-not-affected-by-cve-2014-9390-git-vulnerability",{"title":37681,"description":37682,"ogTitle":37681,"ogDescription":37682,"noIndex":6,"ogImage":11046,"ogUrl":37683,"ogSiteName":995,"ogType":996,"canonicalUrls":37683,"schema":37684},"GitLab not affected by Git vulnerability CVE-2014-9390","GitLab.com, GitLab Community Edition and Enterprise Edition are not directly affected by Git vulnerability CVE-2014-9390.","https://about.gitlab.com/blog/gitlab-not-affected-by-cve-2014-9390-git-vulnerability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab not affected by Git vulnerability CVE-2014-9390\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patricio Cano\"}],\n        \"datePublished\": \"2014-12-19\",\n      }",{"title":37681,"description":37682,"authors":37686,"heroImage":11046,"date":37687,"category":301},[36051],"2014-12-19",{"slug":37689,"featured":6,"template":736},"gitlab-not-affected-by-cve-2014-9390-git-vulnerability","content:en-us:blog:gitlab-not-affected-by-cve-2014-9390-git-vulnerability.yml","Gitlab Not Affected By Cve 2014 9390 Git Vulnerability","en-us/blog/gitlab-not-affected-by-cve-2014-9390-git-vulnerability.yml","en-us/blog/gitlab-not-affected-by-cve-2014-9390-git-vulnerability",{"_path":37695,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37696,"content":37701,"config":37704,"_id":37706,"_type":16,"title":37707,"_source":17,"_file":37708,"_stem":37709,"_extension":20},"/en-us/blog/my-first-months-at-gitlab-bv",{"title":37697,"description":37698,"ogTitle":37697,"ogDescription":37698,"noIndex":6,"ogImage":11046,"ogUrl":37699,"ogSiteName":995,"ogType":996,"canonicalUrls":37699,"schema":37700},"My first months at GitLab B.V.","I would like to share with you how I got here and how this time has affected my view on a lot of different subjects.","https://about.gitlab.com/blog/my-first-months-at-gitlab-bv","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"My first months at GitLab B.V.\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Patricio Cano\"}],\n        \"datePublished\": \"2014-12-18\",\n      }",{"title":37697,"description":37698,"authors":37702,"heroImage":11046,"date":37703,"category":6121},[36051],"2014-12-18",{"slug":37705,"featured":6,"template":736},"my-first-months-at-gitlab-bv","content:en-us:blog:my-first-months-at-gitlab-bv.yml","My First Months At Gitlab Bv","en-us/blog/my-first-months-at-gitlab-bv.yml","en-us/blog/my-first-months-at-gitlab-bv",{"_path":37711,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37712,"content":37717,"config":37720,"_id":37722,"_type":16,"title":37723,"_source":17,"_file":37724,"_stem":37725,"_extension":20},"/en-us/blog/three-reasons-gitlab-is-not-vulnerable-to-the-gollum-vulnerability",{"title":37713,"description":37714,"ogTitle":37713,"ogDescription":37714,"noIndex":6,"ogImage":11046,"ogUrl":37715,"ogSiteName":995,"ogType":996,"canonicalUrls":37715,"schema":37716},"3 reasons GitLab isn't vulnerable to Gollum + 1 tip","3 reasons why GitLab is not vulnerable to the Gollum vulnerability and 1 tip","https://about.gitlab.com/blog/three-reasons-gitlab-is-not-vulnerable-to-the-gollum-vulnerability","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"3 reasons why GitLab is not vulnerable to the Gollum vulnerability and 1 tip\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-12-09\",\n      }",{"title":37714,"description":37714,"authors":37718,"heroImage":11046,"date":37719,"category":301},[34274],"2014-12-09",{"slug":37721,"featured":6,"template":736},"three-reasons-gitlab-is-not-vulnerable-to-the-gollum-vulnerability","content:en-us:blog:three-reasons-gitlab-is-not-vulnerable-to-the-gollum-vulnerability.yml","Three Reasons Gitlab Is Not Vulnerable To The Gollum Vulnerability","en-us/blog/three-reasons-gitlab-is-not-vulnerable-to-the-gollum-vulnerability.yml","en-us/blog/three-reasons-gitlab-is-not-vulnerable-to-the-gollum-vulnerability",{"_path":37727,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37728,"content":37733,"config":37736,"_id":37738,"_type":16,"title":37739,"_source":17,"_file":37740,"_stem":37741,"_extension":20},"/en-us/blog/explaining-gitlab-bugs",{"title":37729,"description":37730,"ogTitle":37729,"ogDescription":37730,"noIndex":6,"ogImage":11046,"ogUrl":37731,"ogSiteName":995,"ogType":996,"canonicalUrls":37731,"schema":37732},"Explaining GitLab bugs","This blog post will give a short overview on how GitLab bugs are handled, and what you can do after you identify a potential bug in GitLab.","https://about.gitlab.com/blog/explaining-gitlab-bugs","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Explaining GitLab bugs\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marc Radulescu\"}],\n        \"datePublished\": \"2014-12-08\",\n      }",{"title":37729,"description":37730,"authors":37734,"heroImage":11046,"date":37735,"category":8140},[37484],"2014-12-08",{"slug":37737,"featured":6,"template":736},"explaining-gitlab-bugs","content:en-us:blog:explaining-gitlab-bugs.yml","Explaining Gitlab Bugs","en-us/blog/explaining-gitlab-bugs.yml","en-us/blog/explaining-gitlab-bugs",{"_path":37743,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37744,"content":37749,"config":37751,"_id":37753,"_type":16,"title":37754,"_source":17,"_file":37755,"_stem":37756,"_extension":20},"/en-us/blog/ship-log-data-off-site-using-udp",{"title":37745,"description":37746,"ogTitle":37745,"ogDescription":37746,"noIndex":6,"ogImage":11046,"ogUrl":37747,"ogSiteName":995,"ogType":996,"canonicalUrls":37747,"schema":37748},"How you can send your logs ballistically using UDP","With GitLab Enterprise Edition 7.1 and up Omnibus packages, we introduced UDP log shipping.","https://about.gitlab.com/blog/ship-log-data-off-site-using-udp","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How you can send your logs ballistically using UDP\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-12-08\",\n      }",{"title":37745,"description":37746,"authors":37750,"heroImage":11046,"date":37735,"category":858},[34274],{"slug":37752,"featured":6,"template":736},"ship-log-data-off-site-using-udp","content:en-us:blog:ship-log-data-off-site-using-udp.yml","Ship Log Data Off Site Using Udp","en-us/blog/ship-log-data-off-site-using-udp.yml","en-us/blog/ship-log-data-off-site-using-udp",{"_path":37758,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37759,"content":37765,"config":37768,"_id":37770,"_type":16,"title":37771,"_source":17,"_file":37772,"_stem":37773,"_extension":20},"/en-us/blog/keeping-your-code-protected",{"title":37760,"description":37761,"ogTitle":37760,"ogDescription":37761,"noIndex":6,"ogImage":37762,"ogUrl":37763,"ogSiteName":995,"ogType":996,"canonicalUrls":37763,"schema":37764},"How GitLab Permissions and Protected Branches Keep Your Code Safe","At GitLab we believe that by preventing force pushes and by stimulating code review practices, mistakes can be easily avoided and code quality will improve.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684249/Blog/Hero%20Images/how-permissions-and-protected-branches-keep-your-code-safe.jpg","https://about.gitlab.com/blog/keeping-your-code-protected","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab Permissions and Protected Branches Keep Your Code Safe\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-11-26\",\n      }",{"title":37760,"description":37761,"authors":37766,"heroImage":37762,"date":37767,"category":8140},[34274],"2014-11-26",{"slug":37769,"featured":6,"template":736},"keeping-your-code-protected","content:en-us:blog:keeping-your-code-protected.yml","Keeping Your Code Protected","en-us/blog/keeping-your-code-protected.yml","en-us/blog/keeping-your-code-protected",{"_path":37775,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37776,"content":37781,"config":37784,"_id":37786,"_type":16,"title":37787,"_source":17,"_file":37788,"_stem":37789,"_extension":20},"/en-us/blog/gitlab-omnibus-packages-now-include-gitlab-ci",{"title":37777,"description":37778,"ogTitle":37777,"ogDescription":37778,"noIndex":6,"ogImage":11046,"ogUrl":37779,"ogSiteName":995,"ogType":996,"canonicalUrls":37779,"schema":37780},"GitLab Omnibus packages now include GitLab CI","Today we are excited to announce that our Omnibus packages now include the GitLab CI Coordinator.","https://about.gitlab.com/blog/gitlab-omnibus-packages-now-include-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Omnibus packages now include GitLab CI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"}],\n        \"datePublished\": \"2014-11-06\",\n      }",{"title":37777,"description":37778,"authors":37782,"heroImage":11046,"date":37783,"category":858},[14315],"2014-11-06",{"slug":37785,"featured":6,"template":736},"gitlab-omnibus-packages-now-include-gitlab-ci","content:en-us:blog:gitlab-omnibus-packages-now-include-gitlab-ci.yml","Gitlab Omnibus Packages Now Include Gitlab Ci","en-us/blog/gitlab-omnibus-packages-now-include-gitlab-ci.yml","en-us/blog/gitlab-omnibus-packages-now-include-gitlab-ci",{"_path":37791,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37792,"content":37797,"config":37800,"_id":37802,"_type":16,"title":37803,"_source":17,"_file":37804,"_stem":37805,"_extension":20},"/en-us/blog/happiness-at-gitlab",{"title":37793,"description":37794,"ogTitle":37793,"ogDescription":37794,"noIndex":6,"ogImage":11046,"ogUrl":37795,"ogSiteName":995,"ogType":996,"canonicalUrls":37795,"schema":37796},"Happiness at GitLab","People are happy at GitLab. Happy people are more productive.","https://about.gitlab.com/blog/happiness-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Happiness at GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-10-09\",\n      }",{"title":37793,"description":37794,"authors":37798,"heroImage":11046,"date":37799,"category":6121},[34274],"2014-10-09",{"slug":37801,"featured":6,"template":736},"happiness-at-gitlab","content:en-us:blog:happiness-at-gitlab.yml","Happiness At Gitlab","en-us/blog/happiness-at-gitlab.yml","en-us/blog/happiness-at-gitlab",{"_path":37807,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37808,"content":37813,"config":37816,"_id":37818,"_type":16,"title":37819,"_source":17,"_file":37820,"_stem":37821,"_extension":20},"/en-us/blog/letter-from-shareholders",{"title":37809,"description":37810,"ogTitle":37809,"ogDescription":37810,"noIndex":6,"ogImage":11046,"ogUrl":37811,"ogSiteName":995,"ogType":996,"canonicalUrls":37811,"schema":37812},"Letter from shareholders","We strongly believe that the best years are still ahead and want to share our vision for GitLab.","https://about.gitlab.com/blog/letter-from-shareholders","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Letter from shareholders\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2014-10-08\",\n      }",{"title":37809,"description":37810,"authors":37814,"heroImage":11046,"date":37815,"category":301},[3701],"2014-10-08",{"slug":37817,"featured":6,"template":736},"letter-from-shareholders","content:en-us:blog:letter-from-shareholders.yml","Letter From Shareholders","en-us/blog/letter-from-shareholders.yml","en-us/blog/letter-from-shareholders",{"_path":37823,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37824,"content":37829,"config":37833,"_id":37835,"_type":16,"title":37836,"_source":17,"_file":37837,"_stem":37838,"_extension":20},"/en-us/blog/wandisco-integrates-gitlab-enterprise-edition-in-their-git-multisite-offering",{"title":37825,"description":37826,"ogTitle":37825,"ogDescription":37826,"noIndex":6,"ogImage":11046,"ogUrl":37827,"ogSiteName":995,"ogType":996,"canonicalUrls":37827,"schema":37828},"WANdisco integrates GitLab Enterprise in Git MultiSite","GitLab, the world’s leader open source version control, announced today that GitLab is partnering with WANdisco.","https://about.gitlab.com/blog/wandisco-integrates-gitlab-enterprise-edition-in-their-git-multisite-offering","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"WANdisco integrates GitLab Enterprise Edition in their Git MultiSite offering\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2014-09-22\",\n      }",{"title":37830,"description":37826,"authors":37831,"heroImage":11046,"date":37832,"category":301},"WANdisco integrates GitLab Enterprise Edition in their Git MultiSite offering",[3701],"2014-09-22",{"slug":37834,"featured":6,"template":736},"wandisco-integrates-gitlab-enterprise-edition-in-their-git-multisite-offering","content:en-us:blog:wandisco-integrates-gitlab-enterprise-edition-in-their-git-multisite-offering.yml","Wandisco Integrates Gitlab Enterprise Edition In Their Git Multisite Offering","en-us/blog/wandisco-integrates-gitlab-enterprise-edition-in-their-git-multisite-offering.yml","en-us/blog/wandisco-integrates-gitlab-enterprise-edition-in-their-git-multisite-offering",{"_path":37840,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37841,"content":37846,"config":37849,"_id":37851,"_type":16,"title":37852,"_source":17,"_file":37853,"_stem":37854,"_extension":20},"/en-us/blog/innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization",{"title":37842,"description":37843,"ogTitle":37842,"ogDescription":37843,"noIndex":6,"ogImage":9726,"ogUrl":37844,"ogSiteName":995,"ogType":996,"canonicalUrls":37844,"schema":37845},"The 7 Most Important Open Source Workflow Practices for Enterprises","Learn about the 7 most important open source workflow practices for enterprises.","https://about.gitlab.com/blog/innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The 7 Most Important Open Source Workflow Practices for Enterprises\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2014-09-05\",\n      }",{"title":37842,"description":37843,"authors":37847,"heroImage":9726,"date":37848,"category":1388},[3701],"2014-09-05",{"slug":37850,"featured":6,"template":736},"innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization","content:en-us:blog:innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization.yml","Innersourcing Using The Open Source Workflow To Improve Collaboration Within An Organization","en-us/blog/innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization.yml","en-us/blog/innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization",{"_path":37856,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37857,"content":37862,"config":37866,"_id":37868,"_type":16,"title":37869,"_source":17,"_file":37870,"_stem":37871,"_extension":20},"/en-us/blog/feature-highlight-branded-login-gitlab-ee",{"title":37858,"description":37859,"ogTitle":37858,"ogDescription":37859,"noIndex":6,"ogImage":11046,"ogUrl":37860,"ogSiteName":995,"ogType":996,"canonicalUrls":37860,"schema":37861},"Feature Highlight: Branded login in GitLab Enterprise Edition","In GitLab Enterprise edition, you can easily customize the login page of your GitLab server.","https://about.gitlab.com/blog/feature-highlight-branded-login-gitlab-ee","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: Branded login in GitLab Enterprise Edition\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marin, Job\"}],\n        \"datePublished\": \"2014-09-02\",\n      }",{"title":37858,"description":37859,"authors":37863,"heroImage":11046,"date":37865,"category":301},[37864],"Marin, Job","2014-09-02",{"slug":37867,"featured":6,"template":736},"feature-highlight-branded-login-gitlab-ee","content:en-us:blog:feature-highlight-branded-login-gitlab-ee.yml","Feature Highlight Branded Login Gitlab Ee","en-us/blog/feature-highlight-branded-login-gitlab-ee.yml","en-us/blog/feature-highlight-branded-login-gitlab-ee",{"_path":37873,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37874,"content":37879,"config":37882,"_id":37884,"_type":16,"title":37885,"_source":17,"_file":37886,"_stem":37887,"_extension":20},"/en-us/blog/feature-highlight-git-hooks",{"title":37875,"description":37876,"ogTitle":37875,"ogDescription":37876,"noIndex":6,"ogImage":11046,"ogUrl":37877,"ogSiteName":995,"ogType":996,"canonicalUrls":37877,"schema":37878},"Feature highlight: Git Hooks in GitLab Enterprise Edition","Sometimes you need additional control over pushes to your repository. For each project you can have unique Git Hooks.","https://about.gitlab.com/blog/feature-highlight-git-hooks","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature highlight: Git Hooks in GitLab Enterprise Edition\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-08-25\",\n      }",{"title":37875,"description":37876,"authors":37880,"heroImage":11046,"date":37881,"category":8140},[34274],"2014-08-25",{"slug":37883,"featured":6,"template":736},"feature-highlight-git-hooks","content:en-us:blog:feature-highlight-git-hooks.yml","Feature Highlight Git Hooks","en-us/blog/feature-highlight-git-hooks.yml","en-us/blog/feature-highlight-git-hooks",{"_path":37889,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37890,"content":37895,"config":37898,"_id":37900,"_type":16,"title":37901,"_source":17,"_file":37902,"_stem":37903,"_extension":20},"/en-us/blog/feature-highlight-ldap-sync",{"title":37891,"description":37892,"ogTitle":37891,"ogDescription":37892,"noIndex":6,"ogImage":11046,"ogUrl":37893,"ogSiteName":995,"ogType":996,"canonicalUrls":37893,"schema":37894},"Feature Highlight: LDAP Integration","In GitLab Enterprise Edition it is possible to sync your GitLab groups with your LDAP groups, making it super easy to manage access to projects.","https://about.gitlab.com/blog/feature-highlight-ldap-sync","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Feature Highlight: LDAP Integration\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"},{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-07-10\",\n      }",{"title":37891,"description":37892,"authors":37896,"heroImage":11046,"date":37897,"category":301},[14315,34274],"2014-07-10",{"slug":37899,"featured":6,"template":736},"feature-highlight-ldap-sync","content:en-us:blog:feature-highlight-ldap-sync.yml","Feature Highlight Ldap Sync","en-us/blog/feature-highlight-ldap-sync.yml","en-us/blog/feature-highlight-ldap-sync",{"_path":37905,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37906,"content":37911,"config":37914,"_id":37916,"_type":16,"title":37917,"_source":17,"_file":37918,"_stem":37919,"_extension":20},"/en-us/blog/how-gitlab-works-remotely",{"title":37907,"description":37908,"ogTitle":37907,"ogDescription":37908,"noIndex":6,"ogImage":11046,"ogUrl":37909,"ogSiteName":995,"ogType":996,"canonicalUrls":37909,"schema":37910},"How GitLab works remotely","GitLab is a fully remote company, meaning that all of us work 100% of our time from home or any other place in the world.","https://about.gitlab.com/blog/how-gitlab-works-remotely","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"How GitLab works remotely\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-07-03\",\n      }",{"title":37907,"description":37908,"authors":37912,"heroImage":11046,"date":37913,"category":6121},[34274],"2014-07-03",{"slug":37915,"featured":6,"template":736},"how-gitlab-works-remotely","content:en-us:blog:how-gitlab-works-remotely.yml","How Gitlab Works Remotely","en-us/blog/how-gitlab-works-remotely.yml","en-us/blog/how-gitlab-works-remotely",{"_path":37921,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37922,"content":37927,"config":37930,"_id":37932,"_type":16,"title":37933,"_source":17,"_file":37934,"_stem":37935,"_extension":20},"/en-us/blog/feature-highlight-groups",{"title":37923,"description":37924,"ogTitle":37923,"ogDescription":37924,"noIndex":6,"ogImage":11046,"ogUrl":37925,"ogSiteName":995,"ogType":996,"canonicalUrls":37925,"schema":37926},"GitLab Feature Highlight: Groups","GitLab groups allow you to group projects into directories and give users access to several projects at once.","https://about.gitlab.com/blog/feature-highlight-groups","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Feature Highlight: Groups\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jacob Vosmaer\"},{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-06-30\",\n      }",{"title":37923,"description":37924,"authors":37928,"heroImage":11046,"date":37929,"category":8140},[14315,34274],"2014-06-30",{"slug":37931,"featured":6,"template":736},"feature-highlight-groups","content:en-us:blog:feature-highlight-groups.yml","Feature Highlight Groups","en-us/blog/feature-highlight-groups.yml","en-us/blog/feature-highlight-groups",{"_path":37937,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37938,"content":37943,"config":37946,"_id":37948,"_type":16,"title":37949,"_source":17,"_file":37950,"_stem":37951,"_extension":20},"/en-us/blog/gitlab-com-runs-ee",{"title":37939,"description":37940,"ogTitle":37939,"ogDescription":37940,"noIndex":6,"ogImage":11046,"ogUrl":37941,"ogSiteName":995,"ogType":996,"canonicalUrls":37941,"schema":37942},"GitLab.com now runs GitLab Enterprise Edition","GitLab.com now runs GitLab Enterprise Edition. You now get to use the most fully featured GitLab edition on GitLab.com.","https://about.gitlab.com/blog/gitlab-com-runs-ee","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab.com now runs GitLab Enterprise Edition\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2014-06-27\",\n      }",{"title":37939,"description":37940,"authors":37944,"heroImage":11046,"date":37945,"category":301},[3701],"2014-06-27",{"slug":37947,"featured":6,"template":736},"gitlab-com-runs-ee","content:en-us:blog:gitlab-com-runs-ee.yml","Gitlab Com Runs Ee","en-us/blog/gitlab-com-runs-ee.yml","en-us/blog/gitlab-com-runs-ee",{"_path":37953,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37954,"content":37960,"config":37963,"_id":37965,"_type":16,"title":37966,"_source":17,"_file":37967,"_stem":37968,"_extension":20},"/en-us/blog/10k-commits",{"title":37955,"description":37956,"ogTitle":37955,"ogDescription":37956,"noIndex":6,"ogImage":37957,"ogUrl":37958,"ogSiteName":995,"ogType":996,"canonicalUrls":37958,"schema":37959},"10k commits","GitLab recently grow past 10k commits. And even more amazing is that almost half of them were made during last year.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099646/Blog/Hero%20Images/Blog/Hero%20Images/logoforblogpost_21mOmoq0dnepgpLzqI703C_1750099645885.jpg","https://about.gitlab.com/blog/10k-commits","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"10k commits\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dmitriy Zaporozhets\"}],\n        \"datePublished\": \"2014-06-10\",\n      }",{"title":37955,"description":37956,"authors":37961,"heroImage":37957,"date":37962,"category":301},[15363],"2014-06-10",{"slug":37964,"featured":6,"template":736},"10k-commits","content:en-us:blog:10k-commits.yml","10k Commits","en-us/blog/10k-commits.yml","en-us/blog/10k-commits",{"_path":37970,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37971,"content":37976,"config":37979,"_id":37981,"_type":16,"title":37982,"_source":17,"_file":37983,"_stem":37984,"_extension":20},"/en-us/blog/students-now-free",{"title":37972,"description":37973,"ogTitle":37972,"ogDescription":37973,"noIndex":6,"ogImage":11046,"ogUrl":37974,"ogSiteName":995,"ogType":996,"canonicalUrls":37974,"schema":37975},"Subscriptions update: Students do not count as GitLab users anymore","We have decided to change the subscription model, so as to match the needs of educational institutions.","https://about.gitlab.com/blog/students-now-free","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Subscriptions update: Students do not count as GitLab users anymore\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marc Radulescu\"}],\n        \"datePublished\": \"2014-05-19\",\n      }",{"title":37972,"description":37973,"authors":37977,"heroImage":11046,"date":37978,"category":301},[37484],"2014-05-19",{"slug":37980,"featured":6,"template":736},"students-now-free","content:en-us:blog:students-now-free.yml","Students Now Free","en-us/blog/students-now-free.yml","en-us/blog/students-now-free",{"_path":37986,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":37987,"content":37992,"config":37995,"_id":37997,"_type":16,"title":37998,"_source":17,"_file":37999,"_stem":38000,"_extension":20},"/en-us/blog/gitlab-cloud-becomes-gitlab-com",{"title":37988,"description":37989,"ogTitle":37988,"ogDescription":37989,"noIndex":6,"ogImage":11046,"ogUrl":37990,"ogSiteName":995,"ogType":996,"canonicalUrls":37990,"schema":37991},"GitLab Cloud becomes GitLab.com","Today we rename our Software as a Service (SaaS) offering from GitLab Cloud to GitLab.com.","https://about.gitlab.com/blog/gitlab-cloud-becomes-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Cloud becomes GitLab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2014-04-18\",\n      }",{"title":37988,"description":37989,"authors":37993,"heroImage":11046,"date":37994,"category":301},[3701],"2014-04-18",{"slug":37996,"featured":6,"template":736},"gitlab-cloud-becomes-gitlab-com","content:en-us:blog:gitlab-cloud-becomes-gitlab-com.yml","Gitlab Cloud Becomes Gitlab Com","en-us/blog/gitlab-cloud-becomes-gitlab-com.yml","en-us/blog/gitlab-cloud-becomes-gitlab-com",{"_path":38002,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38003,"content":38008,"config":38011,"_id":38013,"_type":16,"title":38014,"_source":17,"_file":38015,"_stem":38016,"_extension":20},"/en-us/blog/add-ssh-key-screencast",{"title":38004,"description":38005,"ogTitle":38004,"ogDescription":38005,"noIndex":6,"ogImage":11046,"ogUrl":38006,"ogSiteName":995,"ogType":996,"canonicalUrls":38006,"schema":38007},"Adding a SSH key to GitLab Screencast","In this screencast we show you that adding a SSH key to GitLab is very simple, allowing everyone to push and pull to GitLab without your username and password every time.","https://about.gitlab.com/blog/add-ssh-key-screencast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Adding a SSH key to GitLab Screencast\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-03-04\",\n      }",{"title":38004,"description":38005,"authors":38009,"heroImage":11046,"date":38010,"category":301},[34274],"2014-03-04",{"slug":38012,"featured":6,"template":736},"add-ssh-key-screencast","content:en-us:blog:add-ssh-key-screencast.yml","Add Ssh Key Screencast","en-us/blog/add-ssh-key-screencast.yml","en-us/blog/add-ssh-key-screencast",{"_path":38018,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38019,"content":38024,"config":38026,"_id":38028,"_type":16,"title":38029,"_source":17,"_file":38030,"_stem":38031,"_extension":20},"/en-us/blog/gitlab-flow-screencast",{"title":38020,"description":38021,"ogTitle":38020,"ogDescription":38021,"noIndex":6,"ogImage":11046,"ogUrl":38022,"ogSiteName":995,"ogType":996,"canonicalUrls":38022,"schema":38023},"Issues and Merge Requests in GitLab Screencast","We are excited to show you some of the possibilities in our new screencast.","https://about.gitlab.com/blog/gitlab-flow-screencast","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Issues and Merge Requests in GitLab Screencast\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Job van der Voort\"}],\n        \"datePublished\": \"2014-03-04\",\n      }",{"title":38020,"description":38021,"authors":38025,"heroImage":11046,"date":38010,"category":8140},[34274],{"slug":38027,"featured":6,"template":736},"gitlab-flow-screencast","content:en-us:blog:gitlab-flow-screencast.yml","Gitlab Flow Screencast","en-us/blog/gitlab-flow-screencast.yml","en-us/blog/gitlab-flow-screencast",{"_path":38033,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38034,"content":38039,"config":38042,"_id":38044,"_type":16,"title":38045,"_source":17,"_file":38046,"_stem":38047,"_extension":20},"/en-us/blog/markdown-newline-behaviour",{"title":38035,"description":38036,"ogTitle":38035,"ogDescription":38036,"noIndex":6,"ogImage":6170,"ogUrl":38037,"ogSiteName":995,"ogType":996,"canonicalUrls":38037,"schema":38038},"Markdown newline behaviour","Currently GitLab renders line-breaks in markdown files as line-breaks. We propose to change this behaviour to conform to the markdown specification.","https://about.gitlab.com/blog/markdown-newline-behaviour","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Markdown newline behaviour\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2014-02-21\",\n      }",{"title":38035,"description":38036,"authors":38040,"heroImage":6170,"date":38041,"category":301},[1000],"2014-02-21",{"slug":38043,"featured":6,"template":736},"markdown-newline-behaviour","content:en-us:blog:markdown-newline-behaviour.yml","Markdown Newline Behaviour","en-us/blog/markdown-newline-behaviour.yml","en-us/blog/markdown-newline-behaviour",{"_path":38049,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38050,"content":38055,"config":38058,"_id":38060,"_type":16,"title":38061,"_source":17,"_file":38062,"_stem":38063,"_extension":20},"/en-us/blog/gitlab-is-now-simple-to-install",{"title":38051,"description":38052,"ogTitle":38051,"ogDescription":38052,"noIndex":6,"ogImage":6170,"ogUrl":38053,"ogSiteName":995,"ogType":996,"canonicalUrls":38053,"schema":38054},"GitLab is now simple to install","Today we can announce that installing GitLab is also greatly simplified.","https://about.gitlab.com/blog/gitlab-is-now-simple-to-install","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab is now simple to install\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2014-02-14\",\n      }",{"title":38051,"description":38052,"authors":38056,"heroImage":6170,"date":38057,"category":301},[1000],"2014-02-14",{"slug":38059,"featured":6,"template":736},"gitlab-is-now-simple-to-install","content:en-us:blog:gitlab-is-now-simple-to-install.yml","Gitlab Is Now Simple To Install","en-us/blog/gitlab-is-now-simple-to-install.yml","en-us/blog/gitlab-is-now-simple-to-install",{"_path":38065,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38066,"content":38071,"config":38074,"_id":38076,"_type":16,"title":38077,"_source":17,"_file":38078,"_stem":38079,"_extension":20},"/en-us/blog/gitlab-ee-license-change",{"title":38067,"description":38068,"ogTitle":38067,"ogDescription":38068,"noIndex":6,"ogImage":11046,"ogUrl":38069,"ogSiteName":995,"ogType":996,"canonicalUrls":38069,"schema":38070},"GitLab Enterprise Edition license change","We are now introducing a change to the EE license. Read this article to learn more.","https://about.gitlab.com/blog/gitlab-ee-license-change","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Enterprise Edition license change\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sid Sijbrandij\"}],\n        \"datePublished\": \"2014-02-11\",\n      }",{"title":38067,"description":38068,"authors":38072,"heroImage":11046,"date":38073,"category":301},[3701],"2014-02-11",{"slug":38075,"featured":6,"template":736},"gitlab-ee-license-change","content:en-us:blog:gitlab-ee-license-change.yml","Gitlab Ee License Change","en-us/blog/gitlab-ee-license-change.yml","en-us/blog/gitlab-ee-license-change",{"_path":38081,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38082,"content":38087,"config":38090,"_id":38092,"_type":16,"title":38093,"_source":17,"_file":38094,"_stem":38095,"_extension":20},"/en-us/blog/high-availability-white-paper",{"title":38083,"description":38084,"ogTitle":38083,"ogDescription":38084,"noIndex":6,"ogImage":11046,"ogUrl":38085,"ogSiteName":995,"ogType":996,"canonicalUrls":38085,"schema":38086},"GitLab High Availability Solutions","We've just published an overview of GitLab High Availability Solutions. This web-page gives you a rough idea on what kind of HA setups to expect from us.","https://about.gitlab.com/blog/high-availability-white-paper","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab High Availability Solutions\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Marc Radulescu\"}],\n        \"datePublished\": \"2013-12-17\",\n      }",{"title":38083,"description":38084,"authors":38088,"heroImage":11046,"date":38089,"category":301},[37484],"2013-12-17",{"slug":38091,"featured":6,"template":736},"high-availability-white-paper","content:en-us:blog:high-availability-white-paper.yml","High Availability White Paper","en-us/blog/high-availability-white-paper.yml","en-us/blog/high-availability-white-paper",{"_path":38097,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38098,"content":38103,"config":38106,"_id":38108,"_type":16,"title":38109,"_source":17,"_file":38110,"_stem":38111,"_extension":20},"/en-us/blog/integrating-gitlab-ci-with-gitlab",{"title":38099,"description":38100,"ogTitle":38099,"ogDescription":38100,"noIndex":6,"ogImage":6170,"ogUrl":38101,"ogSiteName":995,"ogType":996,"canonicalUrls":38101,"schema":38102},"Integrating GitLab CI with GitLab to enable distributed builds","Integrating GitLab CI with GitLab to enable distributed builds.","https://about.gitlab.com/blog/integrating-gitlab-ci-with-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Integrating GitLab CI with GitLab to enable distributed builds\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2013-06-20\",\n      }",{"title":38099,"description":38100,"authors":38104,"heroImage":6170,"date":38105,"category":301},[1000],"2013-06-20",{"slug":38107,"featured":6,"template":736},"integrating-gitlab-ci-with-gitlab","content:en-us:blog:integrating-gitlab-ci-with-gitlab.yml","Integrating Gitlab Ci With Gitlab","en-us/blog/integrating-gitlab-ci-with-gitlab.yml","en-us/blog/integrating-gitlab-ci-with-gitlab",{"_path":38113,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38114,"content":38119,"config":38122,"_id":38124,"_type":16,"title":38125,"_source":17,"_file":38126,"_stem":38127,"_extension":20},"/en-us/blog/packaging-gitlab-for-fedora-a-gsoc-2013-project",{"title":38115,"description":38116,"ogTitle":38115,"ogDescription":38116,"noIndex":6,"ogImage":11046,"ogUrl":38117,"ogSiteName":995,"ogType":996,"canonicalUrls":38117,"schema":38118},"Packaging GitLab for Fedora: A GSoC 2013 project","It is with great excitement that I announce you the involvement of GitLab in this year's Google Summer of Code through the Fedora project.","https://about.gitlab.com/blog/packaging-gitlab-for-fedora-a-gsoc-2013-project","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Packaging GitLab for Fedora: A GSoC 2013 project\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Achilleas Pipinellis\"}],\n        \"datePublished\": \"2013-05-28\",\n      }",{"title":38115,"description":38116,"authors":38120,"heroImage":11046,"date":38121,"category":301},[33451],"2013-05-28",{"slug":38123,"featured":6,"template":736},"packaging-gitlab-for-fedora-a-gsoc-2013-project","content:en-us:blog:packaging-gitlab-for-fedora-a-gsoc-2013-project.yml","Packaging Gitlab For Fedora A Gsoc 2013 Project","en-us/blog/packaging-gitlab-for-fedora-a-gsoc-2013-project.yml","en-us/blog/packaging-gitlab-for-fedora-a-gsoc-2013-project",{"_path":38129,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38130,"content":38135,"config":38138,"_id":38140,"_type":16,"title":38141,"_source":17,"_file":38142,"_stem":38143,"_extension":20},"/en-us/blog/donations",{"title":38131,"description":38132,"ogTitle":38131,"ogDescription":38132,"noIndex":6,"ogImage":6170,"ogUrl":38133,"ogSiteName":995,"ogType":996,"canonicalUrls":38133,"schema":38134},"Donations large and small","In the last few months many people have donated to support the development of GitLab. We appreciate all these donations.","https://about.gitlab.com/blog/donations","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Donations large and small\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2013-03-01\",\n      }",{"title":38131,"description":38132,"authors":38136,"heroImage":6170,"date":38137,"category":301},[1000],"2013-03-01",{"slug":38139,"featured":6,"template":736},"donations","content:en-us:blog:donations.yml","Donations","en-us/blog/donations.yml","en-us/blog/donations",{"_path":38145,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38146,"content":38151,"config":38154,"_id":38156,"_type":16,"title":38157,"_source":17,"_file":38158,"_stem":38159,"_extension":20},"/en-us/blog/gitlab-without-gitolite",{"title":38147,"description":38148,"ogTitle":38147,"ogDescription":38148,"noIndex":6,"ogImage":6170,"ogUrl":38149,"ogSiteName":995,"ogType":996,"canonicalUrls":38149,"schema":38150},"GitLab without gitolite","Yeap GitLab 5.0 will be without gitolite. Read this artlicle to learn more.","https://about.gitlab.com/blog/gitlab-without-gitolite","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab without gitolite\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2013-02-12\",\n      }",{"title":38147,"description":38148,"authors":38152,"heroImage":6170,"date":38153,"category":858},[1000],"2013-02-12",{"slug":38155,"featured":6,"template":736},"gitlab-without-gitolite","content:en-us:blog:gitlab-without-gitolite.yml","Gitlab Without Gitolite","en-us/blog/gitlab-without-gitolite.yml","en-us/blog/gitlab-without-gitolite",{"_path":38161,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38162,"content":38167,"config":38170,"_id":38172,"_type":16,"title":38173,"_source":17,"_file":38174,"_stem":38175,"_extension":20},"/en-us/blog/gitlab-com-pricing-thoughts",{"title":38163,"description":38164,"ogTitle":38163,"ogDescription":38164,"noIndex":6,"ogImage":6170,"ogUrl":38165,"ogSiteName":995,"ogType":996,"canonicalUrls":38165,"schema":38166},"Your thoughts on Gitlab.com pricing","People asked about the pricing of Gitlab.com and I would love to hear what you think about this subject.","https://about.gitlab.com/blog/gitlab-com-pricing-thoughts","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Your thoughts on Gitlab.com pricing\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2012-10-19\",\n      }",{"title":38163,"description":38164,"authors":38168,"heroImage":6170,"date":38169,"category":301},[1000],"2012-10-19",{"slug":38171,"featured":6,"template":736},"gitlab-com-pricing-thoughts","content:en-us:blog:gitlab-com-pricing-thoughts.yml","Gitlab Com Pricing Thoughts","en-us/blog/gitlab-com-pricing-thoughts.yml","en-us/blog/gitlab-com-pricing-thoughts",{"_path":38177,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38178,"content":38183,"config":38186,"_id":38188,"_type":16,"title":38189,"_source":17,"_file":38190,"_stem":38191,"_extension":20},"/en-us/blog/gitlab-io-is-now-gitlab-com",{"title":38179,"description":38180,"ogTitle":38179,"ogDescription":38180,"noIndex":6,"ogImage":6170,"ogUrl":38181,"ogSiteName":995,"ogType":996,"canonicalUrls":38181,"schema":38182},"Gitlab.io is now Gitlab.com","Since announcing Gitlab.io, we've acquired the Gitlab.com domain name.","https://about.gitlab.com/blog/gitlab-io-is-now-gitlab-com","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Gitlab.io is now Gitlab.com\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2012-09-03\",\n      }",{"title":38179,"description":38180,"authors":38184,"heroImage":6170,"date":38185,"category":301},[1000],"2012-09-03",{"slug":38187,"featured":6,"template":736},"gitlab-io-is-now-gitlab-com","content:en-us:blog:gitlab-io-is-now-gitlab-com.yml","Gitlab Io Is Now Gitlab Com","en-us/blog/gitlab-io-is-now-gitlab-com.yml","en-us/blog/gitlab-io-is-now-gitlab-com",{"_path":38193,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":38194,"content":38199,"config":38202,"_id":38204,"_type":16,"title":38205,"_source":17,"_file":38206,"_stem":38207,"_extension":20},"/en-us/blog/gitlab-wallpaper",{"title":38195,"description":38196,"ogTitle":38195,"ogDescription":38196,"noIndex":6,"ogImage":6170,"ogUrl":38197,"ogSiteName":995,"ogType":996,"canonicalUrls":38197,"schema":38198},"GITLAB Wallpaper","See the GitLab wallpaper","https://about.gitlab.com/blog/gitlab-wallpaper","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GITLAB Wallpaper\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2012-06-20\",\n      }",{"title":38195,"description":38196,"authors":38200,"heroImage":6170,"date":38201,"category":301},[1000],"2012-06-20",{"slug":38203,"featured":6,"template":736},"gitlab-wallpaper","content:en-us:blog:gitlab-wallpaper.yml","Gitlab Wallpaper","en-us/blog/gitlab-wallpaper.yml","en-us/blog/gitlab-wallpaper",{"post":38209,"posts":38210},null,["Reactive",38211],[38212,38213,38214,38215,38216,38217,38218,38219,38220,38221,38222],["Reactive",1657],["Reactive",2363],["Reactive",2580],["Reactive",2617],["Reactive",3939],["Reactive",4449],["Reactive",4759],["Reactive",5369],["Reactive",5456],["Reactive",5616],["Reactive",5882],1761814376477]