[{"data":1,"prerenderedAt":2394},["ShallowReactive",2],{"/en-us/blog/tags/workflow":3,"navigation-en-us":18,"banner-en-us":418,"footer-en-us":428,"workflow-tag-posts-en-us":670},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":9,"description":6,"extension":11,"meta":12,"navigation":13,"path":14,"seo":15,"slug":6,"stem":16,"testContent":6,"type":6,"__hash__":17},"blogTags/en-us/blog/tags/workflow.yml","Workflow",null,{"template":8},"BlogTag",{"tag":10,"tagSlug":10},"workflow","yml",{},true,"/en-us/blog/tags/workflow",{},"en-us/blog/tags/workflow","Wx4OsNsGjZCUfZ60yfgsuwwpldK8PUvPOH3PHEN4sjM",{"data":19},{"logo":20,"freeTrial":25,"sales":30,"login":35,"items":40,"search":348,"minimal":379,"duo":398,"pricingDeployment":408},{"config":21},{"href":22,"dataGaName":23,"dataGaLocation":24},"/","gitlab logo","header",{"text":26,"config":27},"Get free trial",{"href":28,"dataGaName":29,"dataGaLocation":24},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":31,"config":32},"Talk to sales",{"href":33,"dataGaName":34,"dataGaLocation":24},"/sales/","sales",{"text":36,"config":37},"Sign in",{"href":38,"dataGaName":39,"dataGaLocation":24},"https://gitlab.com/users/sign_in/","sign in",[41,68,163,168,269,329],{"text":42,"config":43,"cards":45},"Platform",{"dataNavLevelOne":44},"platform",[46,52,60],{"title":42,"description":47,"link":48},"The intelligent orchestration platform for DevSecOps",{"text":49,"config":50},"Explore our Platform",{"href":51,"dataGaName":44,"dataGaLocation":24},"/platform/",{"title":53,"description":54,"link":55},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":56,"config":57},"Meet GitLab Duo",{"href":58,"dataGaName":59,"dataGaLocation":24},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":61,"description":62,"link":63},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":64,"config":65},"Learn more",{"href":66,"dataGaName":67,"dataGaLocation":24},"/why-gitlab/","why gitlab",{"text":69,"left":13,"config":70,"link":72,"lists":76,"footer":145},"Product",{"dataNavLevelOne":71},"solutions",{"text":73,"config":74},"View all Solutions",{"href":75,"dataGaName":71,"dataGaLocation":24},"/solutions/",[77,101,124],{"title":78,"description":79,"link":80,"items":85},"Automation","CI/CD and automation to accelerate deployment",{"config":81},{"icon":82,"href":83,"dataGaName":84,"dataGaLocation":24},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[86,90,93,97],{"text":87,"config":88},"CI/CD",{"href":89,"dataGaLocation":24,"dataGaName":87},"/solutions/continuous-integration/",{"text":53,"config":91},{"href":58,"dataGaLocation":24,"dataGaName":92},"gitlab duo agent platform - product menu",{"text":94,"config":95},"Source Code Management",{"href":96,"dataGaLocation":24,"dataGaName":94},"/solutions/source-code-management/",{"text":98,"config":99},"Automated Software Delivery",{"href":83,"dataGaLocation":24,"dataGaName":100},"Automated software delivery",{"title":102,"description":103,"link":104,"items":109},"Security","Deliver code faster without compromising security",{"config":105},{"href":106,"dataGaName":107,"dataGaLocation":24,"icon":108},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[110,114,119],{"text":111,"config":112},"Application Security Testing",{"href":106,"dataGaName":113,"dataGaLocation":24},"Application security testing",{"text":115,"config":116},"Software Supply Chain Security",{"href":117,"dataGaLocation":24,"dataGaName":118},"/solutions/supply-chain/","Software supply chain security",{"text":120,"config":121},"Software Compliance",{"href":122,"dataGaName":123,"dataGaLocation":24},"/solutions/software-compliance/","software compliance",{"title":125,"link":126,"items":131},"Measurement",{"config":127},{"icon":128,"href":129,"dataGaName":130,"dataGaLocation":24},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[132,136,140],{"text":133,"config":134},"Visibility & Measurement",{"href":129,"dataGaLocation":24,"dataGaName":135},"Visibility and Measurement",{"text":137,"config":138},"Value Stream Management",{"href":139,"dataGaLocation":24,"dataGaName":137},"/solutions/value-stream-management/",{"text":141,"config":142},"Analytics & Insights",{"href":143,"dataGaLocation":24,"dataGaName":144},"/solutions/analytics-and-insights/","Analytics and insights",{"title":146,"items":147},"GitLab for",[148,153,158],{"text":149,"config":150},"Enterprise",{"href":151,"dataGaLocation":24,"dataGaName":152},"/enterprise/","enterprise",{"text":154,"config":155},"Small Business",{"href":156,"dataGaLocation":24,"dataGaName":157},"/small-business/","small business",{"text":159,"config":160},"Public Sector",{"href":161,"dataGaLocation":24,"dataGaName":162},"/solutions/public-sector/","public sector",{"text":164,"config":165},"Pricing",{"href":166,"dataGaName":167,"dataGaLocation":24,"dataNavLevelOne":167},"/pricing/","pricing",{"text":169,"config":170,"link":172,"lists":176,"feature":256},"Resources",{"dataNavLevelOne":171},"resources",{"text":173,"config":174},"View all resources",{"href":175,"dataGaName":171,"dataGaLocation":24},"/resources/",[177,210,228],{"title":178,"items":179},"Getting started",[180,185,190,195,200,205],{"text":181,"config":182},"Install",{"href":183,"dataGaName":184,"dataGaLocation":24},"/install/","install",{"text":186,"config":187},"Quick start guides",{"href":188,"dataGaName":189,"dataGaLocation":24},"/get-started/","quick setup checklists",{"text":191,"config":192},"Learn",{"href":193,"dataGaLocation":24,"dataGaName":194},"https://university.gitlab.com/","learn",{"text":196,"config":197},"Product documentation",{"href":198,"dataGaName":199,"dataGaLocation":24},"https://docs.gitlab.com/","product documentation",{"text":201,"config":202},"Best practice videos",{"href":203,"dataGaName":204,"dataGaLocation":24},"/getting-started-videos/","best practice videos",{"text":206,"config":207},"Integrations",{"href":208,"dataGaName":209,"dataGaLocation":24},"/integrations/","integrations",{"title":211,"items":212},"Discover",[213,218,223],{"text":214,"config":215},"Customer success stories",{"href":216,"dataGaName":217,"dataGaLocation":24},"/customers/","customer success stories",{"text":219,"config":220},"Blog",{"href":221,"dataGaName":222,"dataGaLocation":24},"/blog/","blog",{"text":224,"config":225},"Remote",{"href":226,"dataGaName":227,"dataGaLocation":24},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":229,"items":230},"Connect",[231,236,241,246,251],{"text":232,"config":233},"GitLab Services",{"href":234,"dataGaName":235,"dataGaLocation":24},"/services/","services",{"text":237,"config":238},"Community",{"href":239,"dataGaName":240,"dataGaLocation":24},"/community/","community",{"text":242,"config":243},"Forum",{"href":244,"dataGaName":245,"dataGaLocation":24},"https://forum.gitlab.com/","forum",{"text":247,"config":248},"Events",{"href":249,"dataGaName":250,"dataGaLocation":24},"/events/","events",{"text":252,"config":253},"Partners",{"href":254,"dataGaName":255,"dataGaLocation":24},"/partners/","partners",{"backgroundColor":257,"textColor":258,"text":259,"image":260,"link":264},"#2f2a6b","#fff","Insights for the future of software development",{"altText":261,"config":262},"the source promo card",{"src":263},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":265,"config":266},"Read the latest",{"href":267,"dataGaName":268,"dataGaLocation":24},"/the-source/","the source",{"text":270,"config":271,"lists":273},"Company",{"dataNavLevelOne":272},"company",[274],{"items":275},[276,281,287,289,294,299,304,309,314,319,324],{"text":277,"config":278},"About",{"href":279,"dataGaName":280,"dataGaLocation":24},"/company/","about",{"text":282,"config":283,"footerGa":286},"Jobs",{"href":284,"dataGaName":285,"dataGaLocation":24},"/jobs/","jobs",{"dataGaName":285},{"text":247,"config":288},{"href":249,"dataGaName":250,"dataGaLocation":24},{"text":290,"config":291},"Leadership",{"href":292,"dataGaName":293,"dataGaLocation":24},"/company/team/e-group/","leadership",{"text":295,"config":296},"Team",{"href":297,"dataGaName":298,"dataGaLocation":24},"/company/team/","team",{"text":300,"config":301},"Handbook",{"href":302,"dataGaName":303,"dataGaLocation":24},"https://handbook.gitlab.com/","handbook",{"text":305,"config":306},"Investor relations",{"href":307,"dataGaName":308,"dataGaLocation":24},"https://ir.gitlab.com/","investor relations",{"text":310,"config":311},"Trust Center",{"href":312,"dataGaName":313,"dataGaLocation":24},"/security/","trust center",{"text":315,"config":316},"AI Transparency Center",{"href":317,"dataGaName":318,"dataGaLocation":24},"/ai-transparency-center/","ai transparency center",{"text":320,"config":321},"Newsletter",{"href":322,"dataGaName":323,"dataGaLocation":24},"/company/contact/#contact-forms","newsletter",{"text":325,"config":326},"Press",{"href":327,"dataGaName":328,"dataGaLocation":24},"/press/","press",{"text":330,"config":331,"lists":332},"Contact us",{"dataNavLevelOne":272},[333],{"items":334},[335,338,343],{"text":31,"config":336},{"href":33,"dataGaName":337,"dataGaLocation":24},"talk to sales",{"text":339,"config":340},"Support portal",{"href":341,"dataGaName":342,"dataGaLocation":24},"https://support.gitlab.com","support portal",{"text":344,"config":345},"Customer portal",{"href":346,"dataGaName":347,"dataGaLocation":24},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":349,"login":350,"suggestions":357},"Close",{"text":351,"link":352},"To search repositories and projects, login to",{"text":353,"config":354},"gitlab.com",{"href":38,"dataGaName":355,"dataGaLocation":356},"search login","search",{"text":358,"default":359},"Suggestions",[360,362,366,368,372,376],{"text":53,"config":361},{"href":58,"dataGaName":53,"dataGaLocation":356},{"text":363,"config":364},"Code Suggestions (AI)",{"href":365,"dataGaName":363,"dataGaLocation":356},"/solutions/code-suggestions/",{"text":87,"config":367},{"href":89,"dataGaName":87,"dataGaLocation":356},{"text":369,"config":370},"GitLab on AWS",{"href":371,"dataGaName":369,"dataGaLocation":356},"/partners/technology-partners/aws/",{"text":373,"config":374},"GitLab on Google Cloud",{"href":375,"dataGaName":373,"dataGaLocation":356},"/partners/technology-partners/google-cloud-platform/",{"text":377,"config":378},"Why GitLab?",{"href":66,"dataGaName":377,"dataGaLocation":356},{"freeTrial":380,"mobileIcon":385,"desktopIcon":390,"secondaryButton":393},{"text":381,"config":382},"Start free trial",{"href":383,"dataGaName":29,"dataGaLocation":384},"https://gitlab.com/-/trials/new/","nav",{"altText":386,"config":387},"Gitlab Icon",{"src":388,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":386,"config":391},{"src":392,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":394,"config":395},"Get Started",{"href":396,"dataGaName":397,"dataGaLocation":384},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":399,"mobileIcon":404,"desktopIcon":406},{"text":400,"config":401},"Learn more about GitLab Duo",{"href":402,"dataGaName":403,"dataGaLocation":384},"/gitlab-duo/","gitlab duo",{"altText":386,"config":405},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":407},{"src":392,"dataGaName":389,"dataGaLocation":384},{"freeTrial":409,"mobileIcon":414,"desktopIcon":416},{"text":410,"config":411},"Back to pricing",{"href":166,"dataGaName":412,"dataGaLocation":384,"icon":413},"back to pricing","GoBack",{"altText":386,"config":415},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":417},{"src":392,"dataGaName":389,"dataGaLocation":384},{"title":419,"button":420,"config":425},"See how agentic AI transforms software delivery",{"text":421,"config":422},"Watch GitLab Transcend now",{"href":423,"dataGaName":424,"dataGaLocation":24},"/events/transcend/virtual/","transcend event",{"layout":426,"icon":427},"release","AiStar",{"data":429},{"text":430,"source":431,"edit":437,"contribute":442,"config":447,"items":452,"minimal":659},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":432,"config":433},"View page source",{"href":434,"dataGaName":435,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":438,"config":439},"Edit this page",{"href":440,"dataGaName":441,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":443,"config":444},"Please contribute",{"href":445,"dataGaName":446,"dataGaLocation":436},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":448,"facebook":449,"youtube":450,"linkedin":451},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[453,500,554,598,625],{"title":164,"links":454,"subMenu":469},[455,459,464],{"text":456,"config":457},"View plans",{"href":166,"dataGaName":458,"dataGaLocation":436},"view plans",{"text":460,"config":461},"Why Premium?",{"href":462,"dataGaName":463,"dataGaLocation":436},"/pricing/premium/","why premium",{"text":465,"config":466},"Why Ultimate?",{"href":467,"dataGaName":468,"dataGaLocation":436},"/pricing/ultimate/","why ultimate",[470],{"title":471,"links":472},"Contact Us",[473,476,478,480,485,490,495],{"text":474,"config":475},"Contact sales",{"href":33,"dataGaName":34,"dataGaLocation":436},{"text":339,"config":477},{"href":341,"dataGaName":342,"dataGaLocation":436},{"text":344,"config":479},{"href":346,"dataGaName":347,"dataGaLocation":436},{"text":481,"config":482},"Status",{"href":483,"dataGaName":484,"dataGaLocation":436},"https://status.gitlab.com/","status",{"text":486,"config":487},"Terms of use",{"href":488,"dataGaName":489,"dataGaLocation":436},"/terms/","terms of use",{"text":491,"config":492},"Privacy statement",{"href":493,"dataGaName":494,"dataGaLocation":436},"/privacy/","privacy statement",{"text":496,"config":497},"Cookie preferences",{"dataGaName":498,"dataGaLocation":436,"id":499,"isOneTrustButton":13},"cookie preferences","ot-sdk-btn",{"title":69,"links":501,"subMenu":510},[502,506],{"text":503,"config":504},"DevSecOps platform",{"href":51,"dataGaName":505,"dataGaLocation":436},"devsecops platform",{"text":507,"config":508},"AI-Assisted Development",{"href":402,"dataGaName":509,"dataGaLocation":436},"ai-assisted development",[511],{"title":512,"links":513},"Topics",[514,519,524,529,534,539,544,549],{"text":515,"config":516},"CICD",{"href":517,"dataGaName":518,"dataGaLocation":436},"/topics/ci-cd/","cicd",{"text":520,"config":521},"GitOps",{"href":522,"dataGaName":523,"dataGaLocation":436},"/topics/gitops/","gitops",{"text":525,"config":526},"DevOps",{"href":527,"dataGaName":528,"dataGaLocation":436},"/topics/devops/","devops",{"text":530,"config":531},"Version Control",{"href":532,"dataGaName":533,"dataGaLocation":436},"/topics/version-control/","version control",{"text":535,"config":536},"DevSecOps",{"href":537,"dataGaName":538,"dataGaLocation":436},"/topics/devsecops/","devsecops",{"text":540,"config":541},"Cloud Native",{"href":542,"dataGaName":543,"dataGaLocation":436},"/topics/cloud-native/","cloud native",{"text":545,"config":546},"AI for Coding",{"href":547,"dataGaName":548,"dataGaLocation":436},"/topics/devops/ai-for-coding/","ai for coding",{"text":550,"config":551},"Agentic AI",{"href":552,"dataGaName":553,"dataGaLocation":436},"/topics/agentic-ai/","agentic ai",{"title":555,"links":556},"Solutions",[557,559,561,566,570,573,577,580,582,585,588,593],{"text":111,"config":558},{"href":106,"dataGaName":111,"dataGaLocation":436},{"text":100,"config":560},{"href":83,"dataGaName":84,"dataGaLocation":436},{"text":562,"config":563},"Agile development",{"href":564,"dataGaName":565,"dataGaLocation":436},"/solutions/agile-delivery/","agile delivery",{"text":567,"config":568},"SCM",{"href":96,"dataGaName":569,"dataGaLocation":436},"source code management",{"text":515,"config":571},{"href":89,"dataGaName":572,"dataGaLocation":436},"continuous integration & delivery",{"text":574,"config":575},"Value stream management",{"href":139,"dataGaName":576,"dataGaLocation":436},"value stream management",{"text":520,"config":578},{"href":579,"dataGaName":523,"dataGaLocation":436},"/solutions/gitops/",{"text":149,"config":581},{"href":151,"dataGaName":152,"dataGaLocation":436},{"text":583,"config":584},"Small business",{"href":156,"dataGaName":157,"dataGaLocation":436},{"text":586,"config":587},"Public sector",{"href":161,"dataGaName":162,"dataGaLocation":436},{"text":589,"config":590},"Education",{"href":591,"dataGaName":592,"dataGaLocation":436},"/solutions/education/","education",{"text":594,"config":595},"Financial services",{"href":596,"dataGaName":597,"dataGaLocation":436},"/solutions/finance/","financial services",{"title":169,"links":599},[600,602,604,606,609,611,613,615,617,619,621,623],{"text":181,"config":601},{"href":183,"dataGaName":184,"dataGaLocation":436},{"text":186,"config":603},{"href":188,"dataGaName":189,"dataGaLocation":436},{"text":191,"config":605},{"href":193,"dataGaName":194,"dataGaLocation":436},{"text":196,"config":607},{"href":198,"dataGaName":608,"dataGaLocation":436},"docs",{"text":219,"config":610},{"href":221,"dataGaName":222,"dataGaLocation":436},{"text":214,"config":612},{"href":216,"dataGaName":217,"dataGaLocation":436},{"text":224,"config":614},{"href":226,"dataGaName":227,"dataGaLocation":436},{"text":232,"config":616},{"href":234,"dataGaName":235,"dataGaLocation":436},{"text":237,"config":618},{"href":239,"dataGaName":240,"dataGaLocation":436},{"text":242,"config":620},{"href":244,"dataGaName":245,"dataGaLocation":436},{"text":247,"config":622},{"href":249,"dataGaName":250,"dataGaLocation":436},{"text":252,"config":624},{"href":254,"dataGaName":255,"dataGaLocation":436},{"title":270,"links":626},[627,629,631,633,635,637,639,643,648,650,652,654],{"text":277,"config":628},{"href":279,"dataGaName":272,"dataGaLocation":436},{"text":282,"config":630},{"href":284,"dataGaName":285,"dataGaLocation":436},{"text":290,"config":632},{"href":292,"dataGaName":293,"dataGaLocation":436},{"text":295,"config":634},{"href":297,"dataGaName":298,"dataGaLocation":436},{"text":300,"config":636},{"href":302,"dataGaName":303,"dataGaLocation":436},{"text":305,"config":638},{"href":307,"dataGaName":308,"dataGaLocation":436},{"text":640,"config":641},"Sustainability",{"href":642,"dataGaName":640,"dataGaLocation":436},"/sustainability/",{"text":644,"config":645},"Diversity, inclusion and belonging (DIB)",{"href":646,"dataGaName":647,"dataGaLocation":436},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":310,"config":649},{"href":312,"dataGaName":313,"dataGaLocation":436},{"text":320,"config":651},{"href":322,"dataGaName":323,"dataGaLocation":436},{"text":325,"config":653},{"href":327,"dataGaName":328,"dataGaLocation":436},{"text":655,"config":656},"Modern Slavery Transparency Statement",{"href":657,"dataGaName":658,"dataGaLocation":436},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":660},[661,664,667],{"text":662,"config":663},"Terms",{"href":488,"dataGaName":489,"dataGaLocation":436},{"text":665,"config":666},"Cookies",{"dataGaName":498,"dataGaLocation":436,"id":499,"isOneTrustButton":13},{"text":668,"config":669},"Privacy",{"href":493,"dataGaName":494,"dataGaLocation":436},[671,684,695,706,717,727,737,747,757,767,777,786,796,805,815,825,835,844,854,863,873,882,889,899,909,918,928,937,948,957,966,975,985,995,1005,1014,1024,1034,1044,1052,1063,1073,1082,1091,1101,1110,1121,1131,1140,1149,1159,1169,1178,1187,1196,1205,1215,1225,1233,1243,1252,1263,1273,1283,1293,1301,1311,1321,1330,1340,1350,1359,1369,1376,1385,1395,1404,1414,1423,1433,1442,1452,1462,1473,1482,1492,1501,1510,1519,1528,1538,1548,1557,1567,1577,1586,1594,1602,1611,1621,1629,1637,1646,1655,1663,1672,1680,1689,1699,1708,1718,1727,1735,1744,1753,1762,1771,1779,1788,1797,1806,1815,1823,1832,1842,1850,1860,1868,1877,1887,1895,1904,1913,1923,1933,1943,1953,1963,1973,1983,1992,2001,2011,2020,2029,2039,2048,2057,2066,2073,2083,2092,2102,2110,2119,2128,2137,2147,2156,2166,2176,2186,2196,2205,2215,2225,2235,2245,2254,2263,2272,2282,2292,2301,2309,2319,2330,2339,2348,2357,2366,2376,2385],{"content":672,"config":682},{"title":673,"heroImage":674,"category":675,"description":676,"authors":677,"date":681},"Embedded views: The future of work tracking in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099072/Blog/Hero%20Images/Blog/Hero%20Images/agile_agile.png_1750099072322.png","agile-planning","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.",[678,679,680],"Matthew Macfarlane","Himanshu Kapoor","Alex Fracazo","2025-08-21",{"slug":683,"externalUrl":-1},"embedded-views-the-future-of-work-tracking-in-gitlab",{"content":685,"config":693},{"title":686,"heroImage":687,"category":688,"description":689,"authors":690,"date":692},"Tutorial: Secure and optimize your Maven Repository in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666187/Blog/Hero%20Images/blog-image-template-1800x945__6_.png","security","Learn the best practices, advanced techniques, and upcoming features that improve the efficiency of your DevSecOps workflow.",[691],"Tim Rizzi","2025-05-22",{"slug":694,"externalUrl":-1},"tutorial-secure-and-optimize-your-maven-repository-in-gitlab",{"content":696,"config":704},{"title":697,"heroImage":698,"category":699,"description":700,"authors":701,"date":703},"Automate tedious coding tasks with GitLab Duo Workflow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662465/Blog/Hero%20Images/GitLab_Duo_Workflow_Unified_Data_Store__1_.png","ai-ml","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.",[702],"Jeff Park","2025-05-06",{"slug":705,"externalUrl":-1},"automate-tedious-coding-tasks-with-gitlab-duo-workflow",{"content":707,"config":715},{"title":708,"heroImage":709,"category":710,"description":711,"authors":712,"date":714},"Tutorial: Secure BigQuery data publishing with GitLab ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659756/Blog/Hero%20Images/REFERENCE_-_display_preview_for_blog_images.png","engineering","Learn how to create repeatable, auditable, and efficient processes for automating and securing BigQuery data exports.",[713],"Regnard Raquedan","2025-03-25",{"slug":716,"externalUrl":-1},"tutorial-secure-bigquery-data-publishing-with-gitlab",{"content":718,"config":725},{"title":719,"heroImage":720,"category":699,"description":721,"authors":722,"date":724},"GitLab Duo Workflow: Enterprise visibility and control for agentic AI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660174/Blog/Hero%20Images/Workflow_1800x945.png","Secure, autonomous, context-aware AI agents take on complex tasks, freeing developers to ship innovative software faster. Private beta waitlist now open.",[723],"Pini Wietchner","2025-02-24",{"slug":726,"externalUrl":-1},"gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai",{"content":728,"config":735},{"title":729,"heroImage":730,"category":710,"description":731,"authors":732,"date":734},"How we reduced MR review time with Value Stream Management ","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","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.",[733],"Haim Snir","2025-02-20",{"slug":736,"externalUrl":-1},"how-we-reduced-mr-review-time-with-value-stream-management",{"content":738,"config":745},{"title":739,"heroImage":740,"category":675,"description":741,"authors":742,"date":744},"How to harmonize Agile sprints with product roadmaps","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","Apply best practices and GitLab features to your product journey, including creating centralized roadmaps, conducting review sessions, and tracking sprint lifecycles.",[743],"Amanda Rueda","2025-02-04",{"slug":746,"externalUrl":-1},"how-to-harmonize-agile-sprints-with-product-roadmaps",{"content":748,"config":754},{"title":749,"heroImage":750,"category":538,"description":751,"authors":752,"date":753},"Overcome AI sprawl with a Value Stream Management approach","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665000/Blog/Hero%20Images/display-the-source-article-overcome-ai-sprawl-image-0492-1800x945-fy25.png","From The Source: Learn how an AI strategy based on Value Stream Management can stop AI sprawl and supply chain constraints and drive ROI.",[],"2025-01-06",{"slug":755,"externalUrl":756},"","https://about.gitlab.com/the-source/ai/overcome-ai-sprawl-with-a-value-stream-management-approach/",{"content":758,"config":765},{"title":759,"heroImage":760,"category":699,"description":761,"authors":762,"date":764},"Chat about your merge request with GitLab Duo","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675536/Blog/Hero%20Images/blog-image-template-1800x945__2_.png","Learn how to use AI-powered Chat to quickly understand complex merge requests by asking about implementation choices, potential risks, and architectural decisions.",[763],"Torsten Linz","2024-11-22",{"slug":766,"externalUrl":-1},"chat-about-your-merge-request-with-gitlab-duo",{"content":768,"config":775},{"title":769,"heroImage":709,"category":770,"description":771,"authors":772,"date":774},"Kingfisher transforming the developer experience with GitLab","customer-stories","Learn how the international company focuses on DevSecOps, including automation, to reduce complexity in workflows for better efficiency.",[773],"Sharon Gaudin","2024-11-12",{"slug":776,"externalUrl":-1},"kingfisher-transforming-the-developer-experience-with-gitlab",{"content":778,"config":784},{"title":779,"heroImage":780,"category":699,"description":781,"authors":782,"date":783},"5 ways GitLab Duo Chat AI can supercharge product management","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666405/Blog/Hero%20Images/GitLab_Duo_Blog_Hero_1800x945_r2_B__1_.png","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.",[691],"2024-09-25",{"slug":785,"externalUrl":-1},"5-ways-gitlab-duo-chat-ai-can-supercharge-product-management",{"content":787,"config":794},{"title":788,"heroImage":789,"category":699,"description":790,"authors":791,"date":793},"Use GitLab AI features out-of-the-box in a GitLab Workspace","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098843/Blog/Hero%20Images/Blog/Hero%20Images/securitylifecycle-light_securitylifecycle-light.png_1750098843047.png","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.",[792],"Safwan Ahmed","2024-07-24",{"slug":795,"externalUrl":-1},"use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace",{"content":797,"config":803},{"title":798,"heroImage":799,"category":675,"description":800,"authors":801,"date":802},"Unveiling a new epic experience for improved Agile planning","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660011/Blog/Hero%20Images/blog-image-template-1800x945__21_.png","Explore the update for GitLab epics that enhances planning and improves workflows – all with seamless migration for better project management.",[743],"2024-07-03",{"slug":804,"externalUrl":-1},"unveiling-a-new-epic-experience-for-improved-agile-planning",{"content":806,"config":813},{"title":807,"heroImage":808,"category":699,"description":809,"authors":810,"date":812},"Meet GitLab Duo Workflow - the future of AI-driven development","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658912/Blog/Hero%20Images/blog-image-template-1800x945__20_.png","Workflow, our autonomous AI agent, will transform the way teams build and ship software – our first bold step towards AI-driven DevSecOps.",[811],"David DeSanto, Chief Product Officer, GitLab","2024-06-27",{"slug":814,"externalUrl":-1},"meet-gitlab-duo-workflow-the-future-of-ai-driven-development",{"content":816,"config":823},{"title":817,"heroImage":818,"category":699,"description":819,"authors":820,"date":822},"Developing GitLab Duo: How we are dogfooding our AI features","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","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.",[821],"David O'Regan","2024-05-20",{"slug":824,"externalUrl":-1},"developing-gitlab-duo-how-we-are-dogfooding-our-ai-features",{"content":826,"config":833},{"title":827,"heroImage":828,"category":538,"description":829,"authors":830,"date":832},"Interactive: Take a guided tour of the DevSecOps workflow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668969/Blog/Hero%20Images/blog-image-template-1800x945__1800_x_945_px_.png","Explore GitLab's recommended best practices for DevSecOps with a detailed visual depiction of the main steps in the development lifecycle.",[831],"Itzik Gan Baruch","2024-04-16",{"slug":834,"externalUrl":-1},"interactive-take-a-guided-tour-of-the-devsecops-workflow",{"content":836,"config":842},{"title":837,"heroImage":838,"category":538,"description":839,"authors":840,"date":841},"Top 10 GitLab workflow hacks you need to know","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099361/Blog/Hero%20Images/Blog/Hero%20Images/lightvisibility_lightvisibility.png_1750099361252.png","A GitLab product manager shares her favorite tricks to navigate quickly and efficiently around the GitLab DevSecOps Platform and to boost team collaboration.",[743],"2024-04-09",{"slug":843,"externalUrl":-1},"top-10-gitlab-workflow-hacks-you-need-to-know",{"content":845,"config":852},{"title":846,"heroImage":847,"category":699,"description":848,"authors":849,"date":851},"Learning Python with a little help from AI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663918/Blog/Hero%20Images/aipower.jpg","Use this guided tutorial, along with GitLab Duo Code Suggestions, to learn a new programming language.",[850],"Michael Friedrich","2023-11-09",{"slug":853,"externalUrl":-1},"learning-python-with-a-little-help-from-ai-code-suggestions",{"content":855,"config":861},{"title":856,"heroImage":857,"category":699,"description":858,"authors":859,"date":860},"Learn advanced Rust programming with a little help from AI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662439/Blog/Hero%20Images/codewithheart.png","Use this guided tutorial, along with AI-powered GitLab Duo Code Suggestions, to continue learning advanced Rust programming.",[850],"2023-10-12",{"slug":862,"externalUrl":-1},"learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions",{"content":864,"config":871},{"title":865,"heroImage":866,"category":699,"description":867,"authors":868,"date":870},"Explore the Dragon Realm: Build a C++ adventure game with a little help from AI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663344/Blog/Hero%20Images/compassinfield.jpg","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++.",[869],"Fatima Sarah Khalid","2023-08-24",{"slug":872,"externalUrl":-1},"building-a-text-adventure-using-cplusplus-and-code-suggestions",{"content":874,"config":880},{"title":875,"heroImage":876,"category":710,"description":877,"authors":878,"date":879},"Behind the scenes of the Remote Development Beta release","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679888/Blog/Hero%20Images/remotedevelopment.jpg","Discover the epic journey of GitLab's Remote Development team as they navigate last-minute pivots, adapt, and deliver new features for users worldwide.",[821],"2023-08-16",{"slug":881,"externalUrl":-1},"remote-development-beta",{"content":883,"config":887},{"title":884,"heroImage":847,"category":699,"description":848,"authors":885,"date":886},"Learning Rust with a little help from AI",[850],"2023-08-10",{"slug":888,"externalUrl":-1},"learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started",{"content":890,"config":897},{"title":891,"heroImage":892,"category":538,"description":893,"authors":894,"date":896},"How to migrate GitLab groups and projects more efficiently","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668760/Blog/Hero%20Images/migration2.jpg","Learn about performance improvements to GitLab migration by direct transfer and what's next.",[895],"Magdalena Frankiewicz","2023-08-02",{"slug":898,"externalUrl":-1},"how-to-migrate-gitlab-groups-and-projects-more-efficiently",{"content":900,"config":907},{"title":901,"heroImage":902,"category":710,"description":903,"authors":904,"date":906},"Contributor how-to: Remote Development workspaces and GitLab Developer Kit","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg","This tutorial helps you get GDK working inside Remote Development workspaces to begin contributing to GitLab.",[905],"Raimund Hook","2023-07-31",{"slug":908,"externalUrl":-1},"gitlab-gdk-remote-development",{"content":910,"config":916},{"title":911,"heroImage":912,"category":710,"description":913,"authors":914,"date":915},"Set up your infrastructure for on-demand, cloud-based development environments in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659883/Blog/Hero%20Images/post-cover-image.jpg","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.",[850],"2023-07-13",{"slug":917,"externalUrl":-1},"set-up-infrastructure-for-cloud-development-environments",{"content":919,"config":926},{"title":920,"heroImage":921,"category":710,"description":922,"authors":923,"date":925},"How to automate the creation of GitLab Runners","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664087/Blog/Hero%20Images/tanukicover.jpg","Follow this step-by-step guide for automating runner setup using new runner creation workflows.",[924],"Darren Eastman","2023-07-06",{"slug":927,"externalUrl":-1},"how-to-automate-creation-of-runners",{"content":929,"config":935},{"title":930,"heroImage":931,"category":538,"description":932,"authors":933,"date":934},"GitLab's 3 steps to optimizing software value streams","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667893/Blog/Hero%20Images/workflow.jpg","Discover the power of GitLab Value Streams Dashboard (VSD) for optimizing software delivery workflows.",[733],"2023-06-26",{"slug":936,"externalUrl":-1},"three-steps-to-optimize-software-value-streams",{"content":938,"config":946},{"title":939,"heroImage":940,"category":941,"description":942,"authors":943,"date":945},"GitLab extends Omnibus package signing key expiration to 2024","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669863/Blog/Hero%20Images/security-pipelines.jpg","news","Our GPG key will now expire on July 1, 2024. Here's what you need to know.",[944],"João Alexandre Prado Tavares Cunha","2023-06-14",{"slug":947,"externalUrl":-1},"gitlab-extends-omnibus-package-signing-key-expiration",{"content":949,"config":955},{"title":950,"heroImage":951,"category":710,"description":952,"authors":953,"date":954},"Getting started with the new GitLab Value Streams Dashboard","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671793/Blog/Hero%20Images/16_0-cover-image.png","Benchmark your value stream lifecycle, DORA, and vulnerabilities metrics to gain valuable insights and uncover patterns for continuous improvements.",[733],"2023-06-12",{"slug":956,"externalUrl":-1},"getting-started-with-value-streams-dashboard",{"content":958,"config":964},{"title":959,"heroImage":960,"category":538,"description":961,"authors":962,"date":963},"Value stream management: Total Time Chart simplifies top-down optimization flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667913/Blog/Hero%20Images/clocks.jpg","Learn how this new analytics feature provides immediate insights about the time spent in each stage of your workstream.",[733],"2023-06-01",{"slug":965,"externalUrl":-1},"value-stream-total-time-chart",{"content":967,"config":973},{"title":968,"heroImage":969,"category":538,"description":970,"authors":971,"date":972},"GitLab project migration and automation - a perfect pair for faster, easier transfers","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668857/Blog/Hero%20Images/migration.jpg","Learn how our new direct transfer feature, in beta, is speeding migrations.",[895],"2023-01-18",{"slug":974,"externalUrl":-1},"try-out-new-way-to-migrate-projects",{"content":976,"config":983},{"title":977,"heroImage":978,"category":272,"description":979,"authors":980,"date":982},"A first look at the new GitLab Web IDE and remote development experience","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682545/Blog/Hero%20Images/navin-beta-unsplash.jpg","The next-generation GitLab Web IDE, available to everyone, will enable faster and more efficient contributions right from your browser.",[981],"Eric Schurter","2022-12-15",{"slug":984,"externalUrl":-1},"get-ready-for-new-gitlab-web-ide",{"content":986,"config":993},{"title":987,"heroImage":988,"category":710,"description":989,"authors":990,"date":992},"How to use Git rebase in real life","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682486/Blog/Hero%20Images/rebase-in-real-life.jpg","From fixup to autosquash here are real world ways to leverage Git rebase.",[991],"Toon Claes","2022-11-08",{"slug":994,"externalUrl":-1},"rebase-in-real-life",{"content":996,"config":1003},{"title":997,"heroImage":998,"category":710,"description":999,"authors":1000,"date":1002},"Take advantage of Git rebase","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665560/Blog/Hero%20Images/speedmonorepo.jpg","Tap into the Git rebase features to improve your workflow.",[1001],"Christian Couder","2022-10-06",{"slug":1004,"externalUrl":-1},"take-advantage-of-git-rebase",{"content":1006,"config":1012},{"title":1007,"heroImage":998,"category":710,"description":1008,"authors":1009,"date":1011},"Speed up your monorepo workflow in Git","Tap into the features that can reap huge savings in the long run for any developer team.",[1010],"John Cai","2022-09-06",{"slug":1013,"externalUrl":-1},"speed-up-your-monorepo-workflow-in-git",{"content":1015,"config":1022},{"title":1016,"heroImage":1017,"category":710,"description":1018,"authors":1019,"date":1021},"Postman integration with GitLab makes API workflows easier","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671434/Blog/Hero%20Images/introducing-continuous-workflows.jpg","Learn how to use the git integration to link APIs in Postman to GitLab cloud repos.",[1020],"Andy Rogers","2022-08-24",{"slug":1023,"externalUrl":-1},"postman-integration-with-gitlab-makes-your-api-workflows-easier",{"content":1025,"config":1032},{"title":1026,"heroImage":1027,"category":710,"description":1028,"authors":1029,"date":1031},"5 Tips for managing monorepos in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667591/Blog/Hero%20Images/code-review-blog.jpg","Learn the benefits of operating a monolothic repository and how to get the most out of this structure.",[1030],"Sarah Waldner","2022-07-12",{"slug":1033,"externalUrl":-1},"tips-for-managing-monorepos-in-gitlab",{"content":1035,"config":1042},{"title":1036,"heroImage":1037,"category":538,"description":1038,"authors":1039,"date":1041},"Battling toolchain technical debt","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667845/Blog/Hero%20Images/gl15.jpg","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.",[1040],"Sandra Gittlen","2022-06-21",{"slug":1043,"externalUrl":-1},"battling-toolchain-technical-debt",{"content":1045,"config":1050},{"title":1046,"heroImage":1037,"category":538,"description":1047,"authors":1048,"date":1049},"Break the black box of software delivery with GitLab Value Stream Management and DORA Metrics","Optimize DevOps with the new DORA metrics in GitLab Value Stream Management.",[733],"2022-06-20",{"slug":1051,"externalUrl":-1},"gitlab-value-stream-management-and-dora",{"content":1053,"config":1061},{"title":1054,"heroImage":1055,"category":1056,"description":1057,"authors":1058,"date":1060},"3 keys to success for product operations","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682313/Blog/Hero%20Images/prodops-keys-elena-mozhvilo-Lp9uH9s9fss-unsplash.jpg","culture","Learn how to set a foundation for product operations at your organization.",[1059],"Farnoosh Seifoddini","2022-05-24",{"slug":1062,"externalUrl":-1},"keys-to-success-for-product-operations",{"content":1064,"config":1071},{"title":1065,"heroImage":1066,"category":710,"description":1067,"authors":1068,"date":1070},"How to enhance supply chain security with GitLab and TestifySec","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","New alliance partner TestifySec makes Witness available in GitLab",[1069],"Nicole Schwartz","2022-03-16",{"slug":1072,"externalUrl":-1},"gitlab-and-testify-sec-witness-alliance",{"content":1074,"config":1080},{"title":1075,"heroImage":1066,"category":710,"description":1076,"authors":1077,"date":1079},"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.",[1078],"Bob Van Landuyt","2022-03-10",{"slug":1081,"externalUrl":-1},"sharing-slis-across-departments",{"content":1083,"config":1089},{"title":1084,"heroImage":1085,"category":538,"description":1086,"authors":1087,"date":1088},"The role of Value Stream Analytics in GitLab's DevOps Platform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668041/Blog/Hero%20Images/Understand-Highly-Technical-Spaces.jpg","Better DevOps teams start with value stream management. Here's how to get the most out of GitLab's Value Stream Analytics.",[831],"2022-01-24",{"slug":1090,"externalUrl":-1},"gitlab-value-stream-analytics",{"content":1092,"config":1099},{"title":1093,"heroImage":1094,"category":538,"description":1095,"authors":1096,"date":1098},"Adopt ModelOps within DevOps to solve data science challenges","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668437/Blog/Hero%20Images/faster-cycle-times.jpg","The ModelOps stage of DevOps applies AI and ML to address complex data science challenges.",[1097],"Taylor McCaslin","2022-01-21",{"slug":1100,"externalUrl":-1},"introducing-modelops-to-solve-data-science-challenges",{"content":1102,"config":1108},{"title":1103,"heroImage":1104,"category":538,"description":1105,"authors":1106,"date":1107},"How to get the most out of software documentation","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668339/Blog/Hero%20Images/a-tale-of-two-editors.jpg","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.",[773],"2022-01-11",{"slug":1109,"externalUrl":-1},"16-ways-to-get-the-most-out-of-software-documentation",{"content":1111,"config":1119},{"title":1112,"heroImage":1113,"category":1114,"description":1115,"authors":1116,"date":1118},"Want secure software development? Our top 5 tips to bring dev and sec together","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679444/Blog/Hero%20Images/twotogether.jpg","insights","Every DevOps team wants secure software development but it's surprisingly hard to achieve. Here are 5 strategies to bring dev and sec together.",[1117],"Valerie Silverthorne","2022-01-10",{"slug":1120,"externalUrl":-1},"want-secure-software-development-our-top-5-tips-to-bring-dev-and-sec-together",{"content":1122,"config":1129},{"title":1123,"heroImage":1124,"category":710,"description":1125,"authors":1126,"date":1128},"GitOps with GitLab: The CI/CD Tunnel","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667236/Blog/Hero%20Images/Learn-at-GL.jpg","This is the fifth in a series of tutorials on how to do GitOps with GitLab.",[1127],"Viktor Nagy","2022-01-07",{"slug":1130,"externalUrl":-1},"gitops-with-gitlab-using-ci-cd",{"content":1132,"config":1138},{"title":1133,"heroImage":1134,"category":688,"description":1135,"authors":1136,"date":1137},"How elite DevOps teams secure the software supply chain","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667466/Blog/Hero%20Images/GitLab-Sec.png","The time is now to integrate security into your DevOps processes - your business will be better for it.",[1040],"2022-01-06",{"slug":1139,"externalUrl":-1},"elite-team-strategies-to-secure-software-supply-chains",{"content":1141,"config":1147},{"title":1142,"heroImage":1143,"category":538,"description":1144,"authors":1145,"date":1146},"The road to smarter code reviewer recommendations","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668426/Blog/Hero%20Images/retrospectivesgitlabpost.jpg","Machine learning is coming to GitLab's code review process. Here's what you need to know, and how you can help!",[1097],"2022-01-04",{"slug":1148,"externalUrl":-1},"the-road-to-smarter-code-reviewer-recommendations",{"content":1150,"config":1157},{"title":1151,"heroImage":1152,"category":710,"description":1153,"authors":1154,"date":1156},"GitLab Chart works towards Kubernetes 1.22","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670178/Blog/Hero%20Images/GitLab-Ops.png","New minimum version is 1.19 for in-chart NGINX Ingress Controller.",[1155],"GitLab","2021-12-17",{"slug":1158,"externalUrl":-1},"gitlab-chart-works-towards-kubernetes-1-22",{"content":1160,"config":1167},{"title":1161,"heroImage":1162,"category":538,"description":1163,"authors":1164,"date":1166},"Don’t confuse these 12 shortcuts with iteration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663383/Blog/Hero%20Images/tanuki-bg-full.png","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.",[1165],"Sid Sijbrandij","2021-12-01",{"slug":1168,"externalUrl":-1},"dont-confuse-these-twelve-shortcuts-with-iteration",{"content":1170,"config":1176},{"title":1171,"heroImage":1172,"category":1114,"description":1173,"authors":1174,"date":1175},"Situational Leadership Strategy","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679453/Blog/Hero%20Images/remote-work.png","GitLab CEO Sid Sijbrandij shares how he incorporates situational leadership in his management style.",[1165],"2021-11-19",{"slug":1177,"externalUrl":-1},"situational-leadership-strategy",{"content":1179,"config":1185},{"title":1180,"heroImage":1066,"category":272,"description":1181,"authors":1182,"date":1184},"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.",[1183],"Seth Berger","2021-11-16",{"slug":1186,"externalUrl":-1},"engineering-managers-automate-their-jobs",{"content":1188,"config":1194},{"title":1189,"heroImage":1190,"category":538,"description":1191,"authors":1192,"date":1193},"Top ten GitLab hacks for all stages of the DevOps Platform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667482/Blog/Hero%20Images/cover-image-unsplash.jpg","Get the most out of the GitLab DevOps Platform with our ten best tips for enhanced productivity.",[850],"2021-10-19",{"slug":1195,"externalUrl":-1},"top-10-gitlab-hacks",{"content":1197,"config":1203},{"title":1198,"heroImage":1066,"category":710,"description":1199,"authors":1200,"date":1202},"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.",[1201],"Cesar Saavedra","2021-10-04",{"slug":1204,"externalUrl":-1},"how-to-status-checks",{"content":1206,"config":1213},{"title":1207,"heroImage":1066,"category":710,"description":1208,"authors":1209,"date":1212},"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.",[1210,1211],"Christina Hupy, Ph.D.","Neil McCorrison","2021-09-23",{"slug":1214,"externalUrl":-1},"best-practices-customer-feature-request",{"content":1216,"config":1223},{"title":1217,"heroImage":1218,"category":1056,"description":1219,"authors":1220,"date":1222},"The benefits of DevOps practices for IBM Z","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666262/Blog/Hero%20Images/default-blog-image.png","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.",[1221],"Vick Kelkar","2021-09-10",{"slug":1224,"externalUrl":-1},"adopt-agile-and-devops-for-ibm-z",{"content":1226,"config":1231},{"title":1227,"heroImage":1190,"category":710,"description":1228,"authors":1229,"date":1230},"How teams can use the Gitpod integration in GitLab to speed up their development process","Learn about Gitpod as cloud development environment, and how its integration into Gitpod helps teams to get more efficient in their DevOps lifecycle.",[850],"2021-07-19",{"slug":1232,"externalUrl":-1},"teams-gitpod-integration-gitlab-speed-up-development",{"content":1234,"config":1241},{"title":1235,"heroImage":1236,"category":710,"description":1237,"authors":1238,"date":1240},"GitLab's data migration process for Advanced Search","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682017/Blog/Hero%20Images/advanced-search-migrations.jpg","We needed a more streamlined data migration process for Advanced search.\nHere's what we did.",[1239],"Dmitry Gruzd","2021-06-01",{"slug":1242,"externalUrl":-1},"advanced-search-data-migrations",{"content":1244,"config":1250},{"title":1245,"heroImage":1246,"category":710,"description":1247,"authors":1248,"date":1249},"Can DevOps and project management co-exist? Yes, on the daily at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669575/Blog/Hero%20Images/agilemultipleteams.jpg","Stay agile by using GitLab for DevOps project management",[1221],"2021-05-11",{"slug":1251,"externalUrl":-1},"project-management-using-gitlab-platform",{"content":1253,"config":1261},{"title":1254,"heroImage":1255,"category":1256,"description":1257,"authors":1258,"date":1260},"How we are closing the gap on replicating *everything* in GitLab Geo","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669673/Blog/Hero%20Images/engineering.png","unfiltered","Developing an internal framework to enable other teams to add Geo support for their features",[1259],"Michael Kozono","2021-04-29",{"slug":1262,"externalUrl":-1},"how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo",{"content":1264,"config":1271},{"title":1265,"heroImage":1266,"category":1256,"description":1267,"authors":1268,"date":1270},"How we tested a feature that affected (almost) all parts of GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749677856/Blog/Hero%20Images/collaboration.png","Crowd-sourcing testing across teams",[1269],"Aakriti Gupta","2021-03-17",{"slug":1272,"externalUrl":-1},"collaborating-on-a-cross-stage-feature",{"content":1274,"config":1281},{"title":1275,"heroImage":1276,"category":710,"description":1277,"authors":1278,"date":1280},"10 tips to make you a productive GitLab user","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666717/Blog/Hero%20Images/cover-image.jpg","Learn how quick actions can make you a more efficient GitLab user.",[850,1279],"Roman Kuba","2021-02-18",{"slug":1282,"externalUrl":-1},"improve-your-gitlab-productivity-with-these-10-tips",{"content":1284,"config":1291},{"title":1285,"heroImage":1286,"category":1256,"description":1287,"authors":1288,"date":1290},"How to Read Open Source: Finding Middleman Callbacks","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","Open source empowers you to learn beyond existing documentation. Getting started can be confusing. This is a demonstration finding unlisted Middleman callbacks.",[1289],"Tyler Williams","2021-01-20",{"slug":1292,"externalUrl":-1},"how-to-read-open-source-finding-middleman-callbacks",{"content":1294,"config":1299},{"title":1295,"heroImage":1276,"category":710,"description":1296,"authors":1297,"date":1290},"How we used parallel CI/CD jobs to increase our productivity","GitLab uses parallel jobs to help long-running jobs run faster.",[1298],"Miguel Rincon",{"slug":1300,"externalUrl":-1},"using-run-parallel-jobs",{"content":1302,"config":1309},{"title":1303,"heroImage":1304,"category":1114,"description":1305,"authors":1306,"date":1308},"Why you should move from centralized version control to distributed version control","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681766/Blog/Hero%20Images/distributedvcs.jpg","We share a few reasons why high-performing software development teams use distributed version control systems over centralized version control.",[1307],"Suri Patel","2020-11-19",{"slug":1310,"externalUrl":-1},"move-to-distributed-vcs",{"content":1312,"config":1319},{"title":1313,"heroImage":1314,"category":1256,"description":1315,"authors":1316,"date":1318},"From user, to advocate, to contributor: my GitLab journey","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681735/Blog/Hero%20Images/cover_photo.jpg","Three years (as a user and as a contributor) with GitLab.",[1317],"Lee Tickett","2020-11-13",{"slug":1320,"externalUrl":-1},"lee-tickett-my-gitlab-journey",{"content":1322,"config":1328},{"title":1323,"heroImage":1324,"category":1114,"description":1325,"authors":1326,"date":1327},"Migrating your version control to Git? Here’s what you need to know","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681731/Blog/Hero%20Images/migrategit.jpg","Change is hard, but moving to Git doesn’t have to be if you read these tips.",[1307],"2020-11-12",{"slug":1329,"externalUrl":-1},"migrating-your-version-control-to-git",{"content":1331,"config":1338},{"title":1332,"heroImage":1246,"category":710,"description":1333,"authors":1334,"date":1337},"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.",[1335,1336],"Victor Hernandez","Julie Byrne","2020-11-11",{"slug":1339,"externalUrl":-1},"gitlab-for-agile-portfolio-planning-project-management",{"content":1341,"config":1348},{"title":1342,"heroImage":1343,"category":710,"description":1344,"authors":1345,"date":1347},"Lessons in iteration from a new team in infrastructure","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681724/Blog/Hero%20Images/skateboard-iteration.jpg","A new, small team at GitLab discovered that minimum viable change applies to scaling problems too.",[1346],"Sean McGivern","2020-11-09",{"slug":1349,"externalUrl":-1},"lessons-in-iteration-from-new-infrastructure-team",{"content":1351,"config":1357},{"title":1352,"heroImage":1286,"category":1256,"description":1353,"authors":1354,"date":1356},"Scaling down: How we shrank image transfers by 93%","Our approach to delivering an image scaling solution to speed up GitLab site\nrendering",[1355],"Matthias Käppler","2020-11-02",{"slug":1358,"externalUrl":-1},"scaling-down-how-we-prototyped-an-image-scaler-at-gitlab",{"content":1360,"config":1367},{"title":1361,"heroImage":1362,"category":1256,"description":1363,"authors":1364,"date":1366},"Migrate composer packages to GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681586/Blog/Hero%20Images/gitlab-composer-package-migration.jpg","GitLab Packages now ships with a composer registry",[1365],"Jochen Roth","2020-09-22",{"slug":1368,"externalUrl":-1},"gitlab-composer-packages-migration-path",{"content":1370,"config":1374},{"title":1371,"heroImage":1218,"category":710,"description":1372,"authors":1373,"date":1366},"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.",[1127],{"slug":1375,"externalUrl":-1},"introducing-the-gitlab-kubernetes-agent",{"content":1377,"config":1383},{"title":1378,"heroImage":1379,"category":1114,"description":1380,"authors":1381,"date":1382},"DevOps terminology: 10 terms that might surprise you","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681526/Blog/Hero%20Images/devopsterms.jpg","From Yoda to yaks and even baklava, here are 10 DevOps terms we’re betting you’ve never heard of.",[1117],"2020-08-25",{"slug":1384,"externalUrl":-1},"ten-devops-terms",{"content":1386,"config":1393},{"title":1387,"heroImage":1388,"category":710,"description":1389,"authors":1390,"date":1392},"How developer-centric AppSec testing can dramatically change your DevOps team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681513/Blog/Hero%20Images/stackhawk.jpg","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.",[1391],"Joni Klippert","2020-08-21",{"slug":1394,"externalUrl":-1},"align-engineering-security-appsec-tests-in-ci",{"content":1396,"config":1402},{"title":1397,"heroImage":1218,"category":941,"description":1398,"authors":1399,"date":1401},"GitLab named a Visionary in 2020 Gartner Magic Quadrant for Enterprise Agile Planning Tools","For the second consecutive year, Gartner validates our product vision.",[1400],"Cormac Foster","2020-08-03",{"slug":1403,"externalUrl":-1},"gitlab-named-visionary-in-gartner-agile-planning-magic-quadrant",{"content":1405,"config":1412},{"title":1406,"heroImage":1407,"category":1114,"description":1408,"authors":1409,"date":1411},"DevSecOps basics: 5 steps to standardize (and then scale) security","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663613/Blog/Hero%20Images/devsecops-security-standardization.jpg","DevSecOps is incomplete without speed and scale. Standardize security to make it happen.",[1410],"Vanessa Wegner","2020-07-20",{"slug":1413,"externalUrl":-1},"devsecops-security-standardization",{"content":1415,"config":1421},{"title":1416,"heroImage":1417,"category":1114,"description":1418,"authors":1419,"date":1420},"Automated security testing for DevSecOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662504/Blog/Hero%20Images/devsecops-automated-security.jpg","We share four fool-proof ways to bring your security automation to the next level and five reasons why it's critical.",[1410],"2020-07-08",{"slug":1422,"externalUrl":-1},"devsecops-security-automation",{"content":1424,"config":1431},{"title":1425,"heroImage":1426,"category":710,"description":1427,"authors":1428,"date":1430},"How GitLab's application security dashboard helps AppSec engineers","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663482/Blog/Hero%20Images/ralph-kayden-4Cg5T03B_8s-unsplash.jpg","GitLab Security features help application security engineers collaborate more efficiently and better assess the security posture of the projects they oversee.",[1429],"Fernando Diaz","2020-07-07",{"slug":1432,"externalUrl":-1},"secure-stage-for-appsec",{"content":1434,"config":1440},{"title":1435,"heroImage":1218,"category":688,"description":1436,"authors":1437,"date":1439},"GitLab will extend package signing key expiration by one year","Our GPG key will now expire on July 1, 2021. Here's what you need to know.",[1438],"Gerard Hickey","2020-06-25",{"slug":1441,"externalUrl":-1},"package-key-extension",{"content":1443,"config":1450},{"title":1444,"heroImage":1445,"category":710,"description":1446,"authors":1447,"date":1449},"How we scaled async workload processing at GitLab.com using Sidekiq","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667068/Blog/Hero%20Images/sidekiqmountain.jpg","Sidekiq was a great tool for async processing until it couldn't keep up. Here's how we made it scale.",[1448],"Rachel Nienaber","2020-06-24",{"slug":1451,"externalUrl":-1},"scaling-our-use-of-sidekiq",{"content":1453,"config":1460},{"title":1454,"heroImage":1455,"category":1114,"description":1456,"authors":1457,"date":1459},"How to make small changes using GitLab’s Web IDE","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678812/Blog/Hero%20Images/web-ide-cover.jpg","A quick three minute demo shows how teams can deliver better apps faster using GitLab CI/CD.",[1458],"Chrissie Buchanan","2020-05-28",{"slug":1461,"externalUrl":-1},"using-gitlab-web-ide-gitlab-ci-cd",{"content":1463,"config":1471},{"title":1464,"heroImage":1465,"category":710,"description":1466,"authors":1467,"date":1470},"How we created a dark UI for GitLab's Web IDE","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669611/Blog/Hero%20Images/ide-dark-post-banner.png","The Web IDE now has a Dark Mode, and we've put together a few learnings from a design perspective.",[1468,1469],"Marcel van Remmerden","Jeremy Elder","2020-05-20",{"slug":1472,"externalUrl":-1},"creating-a-dark-ui-for-gitlabs-web-ide",{"content":1474,"config":1480},{"title":1475,"heroImage":1476,"category":1114,"description":1477,"authors":1478,"date":1479},"How GitLab CI helps solve common DevSecOps challenges","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681305/Blog/Hero%20Images/ci-use-case-web-header.png","How single application continuous integration helps team automate and collaborate.",[1458],"2020-05-12",{"slug":1481,"externalUrl":-1},"solve-devsecops-challenges-with-gitlab-ci-cd",{"content":1483,"config":1490},{"title":1484,"heroImage":1485,"category":1486,"description":1487,"authors":1488,"date":1489},"15 Git tips to improve your workflow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681222/Blog/Hero%20Images/git-15th-anniversary-cover.png","open-source","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!",[1307],"2020-04-07",{"slug":1491,"externalUrl":-1},"15-git-tips-improve-workflow",{"content":1493,"config":1499},{"title":1494,"heroImage":1218,"category":710,"description":1495,"authors":1496,"date":1498},"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.",[1497],"Jordi Mon","2020-03-31",{"slug":1500,"externalUrl":-1},"conan-c-cpp-package-management-integration",{"content":1502,"config":1508},{"title":1503,"heroImage":1504,"category":1114,"description":1505,"authors":1506,"date":1507},"The role low code app development tools may play at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681170/Blog/Hero%20Images/lowcodenocode.jpg","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.",[1117],"2020-03-26",{"slug":1509,"externalUrl":-1},"low-code-no-code",{"content":1511,"config":1517},{"title":1512,"heroImage":1513,"category":1114,"description":1514,"authors":1515,"date":1516},"Why implementing security as code is important for DevSecOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663618/Blog/Hero%20Images/how-to-implement-security-as-code.jpg","We created a DevSecOps assessment to help your company level up its DevSecOps capabilities.",[1410],"2020-03-12",{"slug":1518,"externalUrl":-1},"how-to-security-as-code",{"content":1520,"config":1526},{"title":1521,"heroImage":1522,"category":1486,"description":1523,"authors":1524,"date":1525},"The problem with Git flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681121/Blog/Hero%20Images/whatisgitlabflow.jpg","Learn why Git flow complicates the lifecycle and discover an alternative to streamline development.",[1307],"2020-03-05",{"slug":1527,"externalUrl":-1},"what-is-gitlab-flow",{"content":1529,"config":1536},{"title":1530,"heroImage":1531,"category":710,"description":1532,"authors":1533,"date":1535},"How to limit access to manual pipeline gates and deployments using GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681105/Blog/Hero%20Images/protect_manual_jobs.jpg","Let's look at how to use protected environments to set up access controls for production deployments and manual gates.",[1534],"Thao Yeager","2020-02-20",{"slug":1537,"externalUrl":-1},"protecting-manual-jobs",{"content":1539,"config":1546},{"title":1540,"heroImage":1541,"category":710,"description":1542,"authors":1543,"date":1545},"How starting merge trains improve efficiency for DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678419/Blog/Hero%20Images/merge_trains.jpg","No more queuing and waiting for pipeline results! Read how merge trains will speed up your deployments while making sure master stays green.",[1544],"Orit Golowinski","2020-01-30",{"slug":1547,"externalUrl":-1},"all-aboard-merge-trains",{"content":1549,"config":1555},{"title":1550,"heroImage":1551,"category":1256,"description":1552,"authors":1553,"date":1545},"One simple trick to make your screenshots 80% smaller","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666775/Blog/Hero%20Images/cover.jpg","How to compress your screenshots automatically with pngquant and zopfli",[1554],"James Ramsay",{"slug":1556,"externalUrl":-1},"simple-trick-for-smaller-screenshots",{"content":1558,"config":1565},{"title":1559,"heroImage":1560,"category":1114,"description":1561,"authors":1562,"date":1564},"Securing next generation software","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673038/Blog/Hero%20Images/ciso-secure-next-gen-software.jpg","Scale your security efforts by understanding and integrating with the DevOps workflow.",[1563],"Cindy Blake","2020-01-27",{"slug":1566,"externalUrl":-1},"ciso-secure-next-gen-software",{"content":1568,"config":1575},{"title":1569,"heroImage":1570,"category":710,"description":1571,"authors":1572,"date":1574},"Why we scoped down to build up error tracking ","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665440/Blog/Hero%20Images/automate-ce-ee-merges.jpg","We dig into how shipping small iterations is accelerating delivery on our error tracking product.",[1573],"Sara Kassabian","2020-01-23",{"slug":1576,"externalUrl":-1},"iteration-on-error-tracking",{"content":1578,"config":1584},{"title":1579,"heroImage":1580,"category":941,"description":1581,"authors":1582,"date":1583},"3 Major improvements coming to GitLab Epics","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671891/Blog/Hero%20Images/epicsimprovements.jpg","Explore three new features of GitLab Epics to enhance your workflow.",[1307],"2020-01-21",{"slug":1585,"externalUrl":-1},"epics-three-features-accelerate-your-workflow",{"content":1587,"config":1592},{"title":1588,"heroImage":1589,"category":1114,"description":1590,"authors":1591,"date":1583},"Introducing: Resource groups","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679102/Blog/Hero%20Images/resource-groups.jpg","How we’re improving deployments by limiting pipeline concurrency.",[1458],{"slug":1593,"externalUrl":-1},"introducing-resource-groups",{"content":1595,"config":1600},{"title":1596,"heroImage":1143,"category":272,"description":1597,"authors":1598,"date":1599},"How GitLab handles retrospectives","Take a peek at how the GitLab team holds monthly retrospectives.",[1307],"2019-12-19",{"slug":1601,"externalUrl":-1},"how-gitlab-handles-retrospectives",{"content":1603,"config":1609},{"title":1604,"heroImage":1605,"category":272,"description":1606,"authors":1607,"date":1608},"Agile for developers: Refactoring code","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680945/Blog/Hero%20Images/refactorpost.jpg","The time commitment involved in refactoring may cause hesitation, but the impact on developer productivity and efficiency outweighs the initial discomfort.",[1307],"2019-12-18",{"slug":1610,"externalUrl":-1},"agile-for-developers-refactor-code",{"content":1612,"config":1619},{"title":1613,"heroImage":1614,"category":1256,"description":1615,"authors":1616,"date":1618},"How to optimize your value exchange system","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672701/Blog/Hero%20Images/post-1-cover.jpg","Part one of a pragmatic, business-driven guide to help teams transition from fixating on output to optimizing the value exchange with their customers.",[1617],"Gabe Weaver","2019-12-16",{"slug":1620,"externalUrl":-1},"optimizing-the-value-exchange-a-gentle-introduction",{"content":1622,"config":1627},{"title":1623,"heroImage":1624,"category":1256,"description":1625,"authors":1626,"date":1618},"Optimizing The Value Exchange: Reduce Waste To Increase Flow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672713/Blog/Hero%20Images/post-2-cover.jpg","Part two of a pragmatic, business-driven guide to help teams transition from fixating on output to optimizing the value exchange with their customers.",[1617],{"slug":1628,"externalUrl":-1},"optimizing-the-value-exchange-reduce-waste-to-increase-flow",{"content":1630,"config":1635},{"title":1631,"heroImage":1632,"category":1256,"description":1633,"authors":1634,"date":1618},"Optimizing The Value Exchange: The Compounding Value Of Shorter Feedback Loops","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672726/Blog/Hero%20Images/post-3-cover.jpg","Part three of a pragmatic, business-driven guide to help teams transition from fixating on output to optimizing the value exchange with their customers.",[1617],{"slug":1636,"externalUrl":-1},"optimizing-the-value-exchange-the-compounding-value-of-shorter-feedback-loops",{"content":1638,"config":1644},{"title":1639,"heroImage":1640,"category":272,"description":1641,"authors":1642,"date":1643},"Strengthen your Agile teams with Tuckman's stages of group development","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680924/Blog/Hero%20Images/tuckmansstages.jpg","Learn how to build up your agile teams  teams after breaking down silos for further group development",[1307],"2019-12-13",{"slug":1645,"externalUrl":-1},"how-to-strengthen-agile-teams-with-tuckmans-model",{"content":1647,"config":1653},{"title":1648,"heroImage":1649,"category":710,"description":1650,"authors":1651,"date":1652},"2 Examples of how marketing uses GitLab to manage complex projects","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680908/Blog/Hero%20Images/stickynotes.jpg","How GitLab technology powers integrated marketing campaigns and product marketing projects.",[1573],"2019-12-11",{"slug":1654,"externalUrl":-1},"gl-for-pm-prt-2",{"content":1656,"config":1661},{"title":1657,"heroImage":1649,"category":710,"description":1658,"authors":1659,"date":1660},"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.",[1573],"2019-12-06",{"slug":1662,"externalUrl":-1},"gitlab-for-project-management-one",{"content":1664,"config":1670},{"title":1665,"heroImage":1666,"category":272,"description":1667,"authors":1668,"date":1669},"Managing multiple product categories in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680898/Blog/Hero%20Images/filing-cabinet.jpg","Exploring issue mangement options for product teams that are all contributing to a single repository.",[1617],"2019-12-05",{"slug":1671,"externalUrl":-1},"how-to-setup-gitlab-for-multiple-product-teams",{"content":1673,"config":1678},{"title":1674,"heroImage":1286,"category":1256,"description":1675,"authors":1676,"date":1677},"How to improve your daily GitLab experience","Personal tools and tips for a more productive GitLab experience",[1127],"2019-11-26",{"slug":1679,"externalUrl":-1},"gitlab-daily-tools",{"content":1681,"config":1687},{"title":1682,"heroImage":1683,"category":1114,"description":1684,"authors":1685,"date":1686},"GitLab CI/CD is for multi-cloud","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678401/Blog/Hero%20Images/gitlab-for-multicloud.jpg","Can cloud providers (and their tools) ever be cloud agnostic? We discuss GitHub Actions and GitLab CI/CD.",[1458],"2019-11-06",{"slug":1688,"externalUrl":-1},"gitlab-ci-cd-is-for-multi-cloud",{"content":1690,"config":1697},{"title":1691,"heroImage":1692,"category":710,"description":1693,"authors":1694,"date":1696},"Reviewer Roulette: (Just about) one year on","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672195/Blog/Hero%20Images/play-reviewer-roulette.jpg","Learn how Reviewer Roulette has evolved at GitLab over the last year.",[1695],"Nick Thomas","2019-10-23",{"slug":1698,"externalUrl":-1},"reviewer-roulette-one-year-on",{"content":1700,"config":1706},{"title":1701,"heroImage":1702,"category":1114,"description":1703,"authors":1704,"date":1705},"Unlock better DevOps with GitLab CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670652/Blog/Hero%20Images/dev-to-devops-cover.png","Why a single application helps to eliminate silos and knowledge gaps.",[1458],"2019-10-18",{"slug":1707,"externalUrl":-1},"better-devops-with-gitlab-ci-cd",{"content":1709,"config":1716},{"title":1710,"heroImage":1711,"category":710,"description":1712,"authors":1713,"date":1715},"How to avoid broken master with Pipelines for Merged Results and Merge Trains","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678366/Blog/Hero%20Images/merge-train.jpg","Do you still run pipelines on source branches? Let's start running them on merge commits!",[1714],"Shinya Maeda","2019-09-11",{"slug":1717,"externalUrl":-1},"how-to-avoid-broken-master-with-pipelines-for-merge-requests",{"content":1719,"config":1725},{"title":1720,"heroImage":1721,"category":1114,"description":1722,"authors":1723,"date":1724},"An inside look at software testing at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680800/Blog/Hero%20Images/softwaretestlaunch.jpg","Director of quality engineering Mek Stittri talks test technology and the future of automation at GitLab.",[1117],"2019-08-30",{"slug":1726,"externalUrl":-1},"software-test-at-gitlab",{"content":1728,"config":1733},{"title":1729,"heroImage":1246,"category":1114,"description":1730,"authors":1731,"date":1732},"How to manage Agile teams with microservices","GitLab Groups and Projects can help teams divide work by product or system.",[1307],"2019-08-23",{"slug":1734,"externalUrl":-1},"manage-agile-teams-with-microservices",{"content":1736,"config":1742},{"title":1737,"heroImage":1738,"category":1114,"description":1739,"authors":1740,"date":1741},"Improving pair programming with pairing sessions","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665897/Blog/Hero%20Images/incrementalcodedevelopment.jpg","Pairing with a teammate can increase delivery. Here we look at what pairing sessions are, what they involve and what they're good for.",[1307],"2019-08-20",{"slug":1743,"externalUrl":-1},"agile-pairing-sessions",{"content":1745,"config":1751},{"title":1746,"heroImage":1747,"category":1114,"description":1748,"authors":1749,"date":1750},"Why building compliance as code in DevOps will benefit your entire company","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680734/Blog/Hero%20Images/compliance-as-code-header.jpg","Read here on how to integrate compliance as code into your DevOps cycle and why it's important to have in your business",[1410],"2019-08-19",{"slug":1752,"externalUrl":-1},"get-started-compliance-as-code",{"content":1754,"config":1760},{"title":1755,"heroImage":1756,"category":1114,"description":1757,"authors":1758,"date":1759},"5 Agile best practices","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678597/Blog/Hero%20Images/run-agile-in-gitlab.jpg","Make the most out of Agile development with these technical best practices.",[1307],"2019-08-13",{"slug":1761,"externalUrl":-1},"agile-best-practices",{"content":1763,"config":1769},{"title":1764,"heroImage":1765,"category":710,"description":1766,"authors":1767,"date":1768},"How to trigger multiple pipelines using GitLab CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666903/Blog/Hero%20Images/pipeline.jpg","Discover how to trigger and visualize pipelines when you set up GitLab CI/CD across multiple projects.",[831],"2019-07-24",{"slug":1770,"externalUrl":-1},"cross-project-pipeline",{"content":1772,"config":1777},{"title":1773,"heroImage":1066,"category":1114,"description":1774,"authors":1775,"date":1776},"A quick guide to GitLab CI/CD pipelines","How GitLab is making a better pipeline with Auto DevOps.",[1458],"2019-07-12",{"slug":1778,"externalUrl":-1},"guide-to-ci-cd-pipelines",{"content":1780,"config":1786},{"title":1781,"heroImage":1782,"category":1114,"description":1783,"authors":1784,"date":1785},"4 Benefits of CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670016/Blog/Hero%20Images/modernize-cicd.jpg","Learn how to implement and measure a successful CI/CD pipeline strategy and help your DevOps team deliver higher quality software, faster!",[1458],"2019-06-27",{"slug":1787,"externalUrl":-1},"positive-outcomes-ci-cd",{"content":1789,"config":1795},{"title":1790,"heroImage":1782,"category":1114,"description":1791,"authors":1792,"date":1794},"The business impact of CI/CD","How a good CI/CD strategy generates revenue and keeps developers happy.",[1458,1793],"William Chia","2019-06-21",{"slug":1796,"externalUrl":-1},"business-impact-ci-cd",{"content":1798,"config":1804},{"title":1799,"heroImage":1800,"category":1114,"description":1801,"authors":1802,"date":1803},"Issue labels can now be scoped!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679729/Blog/Hero%20Images/scopedlabels.jpg","A small change with a huge impact: Scoped Labels can help teams customize their workflow and speed up delivery.",[1307],"2019-06-20",{"slug":1805,"externalUrl":-1},"issue-labels-can-now-be-scoped",{"content":1807,"config":1813},{"title":1808,"heroImage":1809,"category":1114,"description":1810,"authors":1811,"date":1812},"What is an Agile mindset?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680634/Blog/Hero%20Images/agilemind.jpg","Learn how embracing change can help you speed up software delivery.",[1307],"2019-06-13",{"slug":1814,"externalUrl":-1},"agile-mindset",{"content":1816,"config":1821},{"title":1817,"heroImage":1782,"category":1114,"description":1818,"authors":1819,"date":1820},"3 CI/CD challenges to consider","If these DevOps challenges hit close to home, the right CI/CD could be the answer.",[1458],"2019-06-05",{"slug":1822,"externalUrl":-1},"modernize-your-ci-cd",{"content":1824,"config":1830},{"title":1825,"heroImage":1826,"category":1114,"description":1827,"authors":1828,"date":1829},"3 Trends in test automation","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663662/Blog/Hero%20Images/trends-in-test-automation.jpg","Faster deployments, fewer bugs, better user experiences – see the latest trends in test automation and what they're bringing to the table.",[1458],"2019-05-01",{"slug":1831,"externalUrl":-1},"trends-in-test-automation",{"content":1833,"config":1840},{"title":1834,"heroImage":1835,"category":1114,"description":1836,"authors":1837,"date":1839},"How to avoid foreclosure on your technical debt","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671258/Blog/Hero%20Images/just-commit-blog-cover.png","There’s no need to be embarrassed — we all have technical debt. Here’s how you pay it off.",[1838],"John Jeremiah","2019-04-29",{"slug":1841,"externalUrl":-1},"avoiding-foreclosure-on-your-technical-debt",{"content":1843,"config":1848},{"title":1844,"heroImage":1835,"category":1114,"description":1845,"authors":1846,"date":1847},"Deliver business value at the speed of business","Read here on how DevOps helps delivering business value with faster cycle times",[1838],"2019-04-23",{"slug":1849,"externalUrl":-1},"align-business-strategy-and-app-delivery",{"content":1851,"config":1858},{"title":1852,"heroImage":1853,"category":688,"description":1854,"authors":1855,"date":1857},"GitLab's security 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","A closer look at GitLab’s security scanning tools and the HIPAA risk analysis.",[1856],"Luka Trbojevic","2019-04-10",{"slug":1859,"externalUrl":-1},"gitlab-security-tools-and-the-hipaa-risk-analysis",{"content":1861,"config":1866},{"title":1862,"heroImage":1835,"category":1114,"description":1863,"authors":1864,"date":1865},"Why improving continuously speeds up delivery","How do you keep pace with rapid changes in technology? The answer is continuous improvement.",[1838],"2019-04-09",{"slug":1867,"externalUrl":-1},"why-improving-continuously-speeds-up-delivery",{"content":1869,"config":1875},{"title":1870,"heroImage":1871,"category":272,"description":1872,"authors":1873,"date":1874},"Why GitLab CI/CD?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678657/Blog/Hero%20Images/ci-cd-competitive-campaign-blog-cover.png","With GitLab’s out-of-the-box CI/CD, you can spend less time maintaining and more time creating.",[1458],"2019-04-02",{"slug":1876,"externalUrl":-1},"why-gitlab-ci-cd",{"content":1878,"config":1885},{"title":1879,"heroImage":1880,"category":710,"description":1881,"authors":1882,"date":1884},"How to connect GitLab and Pantheon to streamline Drupal and WordPress workflows","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680516/Blog/Hero%20Images/gitlab-pantheon.png","Our guest author, a Developer Programs Engineer at Pantheon, shares how to automate WordPress deployments using GitLab CI/CD.",[1883],"Andrew Taylor","2019-03-26",{"slug":1886,"externalUrl":-1},"connecting-gitlab-and-pantheon-streamline-wordpress-drupal-workflows",{"content":1888,"config":1893},{"title":1889,"heroImage":1835,"category":1114,"description":1890,"authors":1891,"date":1892},"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?",[1838],"2019-03-19",{"slug":1894,"externalUrl":-1},"reduce-cycle-time-digital-transformation",{"content":1896,"config":1902},{"title":1897,"heroImage":1898,"category":272,"description":1899,"authors":1900,"date":1901},"What’s your plan?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680500/Blog/Hero%20Images/planpost.jpg"," GitLab integrates planning every step of the way",[1155],"2019-03-18",{"slug":1903,"externalUrl":-1},"atlassian-acquires-agilecraft",{"content":1905,"config":1911},{"title":1906,"heroImage":1907,"category":710,"description":1908,"authors":1909,"date":1910},"How we use GitLab to automate our monthly retrospectives","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670529/Blog/Hero%20Images/automate-retrospectives.jpg","How one engineering team is using GitLab CI to automate asynchronous retrospectives, making collaboration across four continents a breeze.",[1346],"2019-03-07",{"slug":1912,"externalUrl":-1},"how-we-used-gitlab-to-automate-our-monthly-retrospectives",{"content":1914,"config":1921},{"title":1915,"heroImage":1916,"category":1056,"description":1917,"authors":1918,"date":1920},"How remote work enables rapid innovation at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678666/Blog/Hero%20Images/paper-lanterns.jpg","At GitLab, remote isn’t a business operations risk, it’s a competitive advantage.",[1919],"Victor Wu","2019-02-27",{"slug":1922,"externalUrl":-1},"remote-enables-innovation",{"content":1924,"config":1931},{"title":1925,"heroImage":1926,"category":1486,"description":1927,"authors":1928,"date":1930},"How Verizon Connect reduced datacenter rebuilds from 30 days to under 8 hours with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678933/Blog/Hero%20Images/verizon_video_blog.jpg","Verizon utilized microservices, automation, and GitLab to reduce datacenter rebuilds to under 8 hours.",[1929],"Kim Lock","2019-02-14",{"slug":1932,"externalUrl":-1},"verizon-customer-story",{"content":1934,"config":1941},{"title":1935,"heroImage":1936,"category":688,"description":1937,"authors":1938,"date":1940},"A deep dive into the Security Analyst persona","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663736/Blog/Hero%20Images/a-deep-dive-into-the-security-analyst-persona.jpg","See how we created our new Security Analyst persona, and how we are already putting it to use.",[1939],"Andy Volpe","2019-02-12",{"slug":1942,"externalUrl":-1},"a-deep-dive-into-the-security-analyst-persona",{"content":1944,"config":1951},{"title":1945,"heroImage":1946,"category":710,"description":1947,"authors":1948,"date":1950},"How to tidy up your merge requests with Git","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672243/Blog/Hero%20Images/git-tricks-cover-image.png","Here's how to use a Git feature that saves a lot of time and cleans up your MRs.",[1949],"Ronald van Zon","2019-02-07",{"slug":1952,"externalUrl":-1},"start-using-git",{"content":1954,"config":1961},{"title":1955,"heroImage":1956,"category":710,"description":1957,"authors":1958,"date":1960},"Pre-commit and post-deploy code reviews are dead","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678861/Blog/Hero%20Images/pre-commit.jpg","In a world with Git, pre-commit and post-deploy code reviews are relics that can be eliminated from your workflow.",[1959],"Aricka Flowers","2019-01-31",{"slug":1962,"externalUrl":-1},"pre-commit-post-deploy-is-dead",{"content":1964,"config":1971},{"title":1965,"heroImage":1966,"category":1486,"description":1967,"authors":1968,"date":1970},"Streamline and shorten error remediation with Sentry’s new GitLab integration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679964/Blog/Hero%20Images/sentry-io-blog.jpg","Your code has bugs, my code has bugs, everyone’s code has bugs (probably). Let’s fix that.",[1969],"Eva Sasson","2019-01-25",{"slug":1972,"externalUrl":-1},"sentry-integration-blog-post",{"content":1974,"config":1981},{"title":1975,"heroImage":1976,"category":710,"description":1977,"authors":1978,"date":1980},"What are the best and worst parts about being a development team lead?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668224/Blog/Hero%20Images/inside-our-new-development-team-lead-persona.jpg","Dev leads, we feel you. Here's a deep dive into our interviews with development team leads, and the new persona they informed.",[1979],"Katherine Okpara","2019-01-18",{"slug":1982,"externalUrl":-1},"inside-our-new-development-team-lead-persona",{"content":1984,"config":1990},{"title":1985,"heroImage":1986,"category":1486,"description":1987,"authors":1988,"date":1989},"How Wag! cut their release process from 40 minutes to just 6","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678923/Blog/Hero%20Images/dog-walking.jpg","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.",[1959],"2019-01-16",{"slug":1991,"externalUrl":-1},"wag-labs-blog-post",{"content":1993,"config":1999},{"title":1994,"heroImage":1995,"category":1056,"description":1996,"authors":1997,"date":1998},"How we use Git as the blockchain for process changes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679971/Blog/Hero%20Images/git-blockchain.jpg","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.",[1959],"2019-01-15",{"slug":2000,"externalUrl":-1},"git-for-business-processes",{"content":2002,"config":2009},{"title":2003,"heroImage":2004,"category":710,"description":2005,"authors":2006,"date":2008},"How to radically simplify bug reporting in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679899/Blog/Hero%20Images/gitlab-marker-io.png","Marie Hargitt from Marker.io shares how product teams can empower colleagues to report actionable issues in GitLab, without driving developers crazy.",[2007],"Marie Hargitt","2019-01-09",{"slug":2010,"externalUrl":-1},"marker-io-gitlab-integration",{"content":2012,"config":2018},{"title":2013,"heroImage":2014,"category":710,"description":2015,"authors":2016,"date":2017},"Friends don't let friends add options to code","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678953/Blog/Hero%20Images/options.jpg","Creating optional features burdens users and applications – here's how we avoid adding options.",[1307],"2018-12-10",{"slug":2019,"externalUrl":-1},"friends-dont-let-friends-add-options-to-code",{"content":2021,"config":2027},{"title":2022,"heroImage":2023,"category":1114,"description":2024,"authors":2025,"date":2026},"What do product managers need to do their best work?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678857/Blog/Hero%20Images/investigating-how-product-managers-use-gitlab.jpg","Check out some of the findings that led to our new Product Manager Persona.",[1979],"2018-11-12",{"slug":2028,"externalUrl":-1},"inside-our-new-product-manager-persona",{"content":2030,"config":2037},{"title":2031,"heroImage":2032,"category":272,"description":2033,"authors":2034,"date":2036},"How do we handle engineering-led issues that don't belong to one team?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678916/Blog/Hero%20Images/how-do-we-handle-engineering-led-initiatives.jpg","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.",[2035],"Emily von Hoffmann","2018-10-30",{"slug":2038,"externalUrl":-1},"how-do-we-handle-engineering-led-initiatives-that-dont-belong-to-one-team",{"content":2040,"config":2046},{"title":2041,"heroImage":2042,"category":272,"description":2043,"authors":2044,"date":2045},"Why we use Ruby on Rails to build GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668296/Blog/Hero%20Images/gitlab-ruby.jpg","Here's our CEO on GitLab’s inception using Rails, and how challenges are being handled along the way.",[1959],"2018-10-29",{"slug":2047,"externalUrl":-1},"why-we-use-rails-to-build-gitlab",{"content":2049,"config":2055},{"title":2050,"heroImage":2051,"category":1114,"description":2052,"authors":2053,"date":2054},"An ode to stable counterparts","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679002/Blog/Hero%20Images/stablecounterparts.jpg","Our workflow model streamlines decision making, cultivates trust, and promotes cross-functional collaboration.",[1307],"2018-10-16",{"slug":2056,"externalUrl":-1},"an-ode-to-stable-counterparts",{"content":2058,"config":2064},{"title":2059,"heroImage":2060,"category":710,"description":2061,"authors":2062,"date":2063},"How we use personas to build empathy for different types of users","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678789/Blog/Hero%20Images/how-we-use-personas-to-gain-empathy.jpg","Welcome to our series on the new GitLab personas!",[1979],"2018-10-12",{"slug":2065,"externalUrl":-1},"personas-and-empathy-building",{"content":2067,"config":2071},{"title":2068,"heroImage":1094,"category":710,"description":2069,"authors":2070,"date":2063},"10 strategies for cycle time reduction","Engineering leads share strategies on how to speed up cycle times.",[1307],{"slug":2072,"externalUrl":-1},"strategies-to-reduce-cycle-times",{"content":2074,"config":2081},{"title":2075,"heroImage":2076,"category":710,"description":2077,"authors":2078,"date":2080},"New Meltano personas, priorities, and updates from the team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678847/Blog/Hero%20Images/meltano-fgu.jpg","There's a lot going on — here are some of the highlights on user research, dogfooding Meltano, embedding engineers, and hiring!",[2079],"Jacob Schatz","2018-10-08",{"slug":2082,"externalUrl":-1},"meltano-functional-group-update-post",{"content":2084,"config":2090},{"title":2085,"heroImage":2086,"category":710,"description":2087,"authors":2088,"date":2089},"How to work on two Git branches at the same time","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678782/Blog/Hero%20Images/working-on-two-git-branches-at-the-same-time.jpg","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.",[1793],"2018-10-03",{"slug":2091,"externalUrl":-1},"working-on-two-git-branches-at-the-same-time",{"content":2093,"config":2100},{"title":2094,"heroImage":2095,"category":272,"description":2096,"authors":2097,"date":2099},"Customer story: Driving better developer and customer experiences with a single application","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663655/Blog/Hero%20Images/gitlab-live-sept-2018.png","Director of Product Integration Michael Sobota of Charter Communications shares how they're using GitLab to simplify their toolchain, with big results.",[2098],"Rebecca Dodd","2018-09-26",{"slug":2101,"externalUrl":-1},"customer-interview-charter-communications",{"content":2103,"config":2108},{"title":2104,"heroImage":1455,"category":272,"description":2105,"authors":2106,"date":2107},"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.",[1554],"2018-09-21",{"slug":2109,"externalUrl":-1},"create-vision",{"content":2111,"config":2117},{"title":2112,"heroImage":2113,"category":272,"description":2114,"authors":2115,"date":2116},"Coming in 11.3: Seamless top-down and bottom-up planning with epics and roadmap","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672146/Blog/Hero%20Images/epics-issues-milestones-planning.jpg","See how you can plan and track larger initiatives even more easily with milestone dates integrated into epics.",[1919],"2018-08-23",{"slug":2118,"externalUrl":-1},"epics-roadmap",{"content":2120,"config":2126},{"title":2121,"heroImage":2122,"category":1486,"description":2123,"authors":2124,"date":2125},"Welcome to GitLab, freedesktop.org!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671252/Blog/Hero%20Images/gitlab-desktop-org-cover.png","Freedesktop.org, the home of open source desktop technology development, has migrated to GitLab to improve their workflow and modernize their service.",[2098],"2018-08-20",{"slug":2127,"externalUrl":-1},"freedesktop-org-migrates-to-gitlab",{"content":2129,"config":2135},{"title":2130,"heroImage":2131,"category":710,"description":2132,"authors":2133,"date":2134},"GitLab Auto DevOps in action","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664015/Blog/Hero%20Images/laptop.jpg","See how the only single application for the entire DevOps lifecycle helps you deliver better software, faster.",[1959],"2018-08-10",{"slug":2136,"externalUrl":-1},"gitlab-auto-devops-in-action",{"content":2138,"config":2145},{"title":2139,"heroImage":2140,"category":710,"description":2141,"authors":2142,"date":2144},"How DevOps and GitLab CI/CD enhance a frontend workflow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679026/Blog/Hero%20Images/frontendworkflow.jpg","The GitLab frontend team uses DevOps and CI/CD to ensure code consistency, fast delivery, and simple automation.",[2143],"José Iván Vargas","2018-08-09",{"slug":2146,"externalUrl":-1},"how-devops-and-gitlab-cicd-enhance-a-frontend-workflow",{"content":2148,"config":2154},{"title":2149,"heroImage":2150,"category":272,"description":2151,"authors":2152,"date":2153},"4 ways to use GitLab Issue Boards","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671759/Blog/Hero%20Images/gitlab-issue-board-cover.png","By leveraging the power of labels, GitLab Issue Boards can be easily customized to support any workflow. Here are four examples.",[1919],"2018-08-02",{"slug":2155,"externalUrl":-1},"4-ways-to-use-gitlab-issue-boards",{"content":2157,"config":2164},{"title":2158,"heroImage":2159,"category":272,"description":2160,"authors":2161,"date":2163},"Demo: GitLab + Jira + Jenkins","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680048/Blog/Hero%20Images/gitlab-jira-jenkins-cover.png","See how you can use our Jira and Jenkins integrations to reduce context switching and streamline your workflow.",[2162],"Joel Krooswyk","2018-07-30",{"slug":2165,"externalUrl":-1},"gitlab-workflow-with-jira-jenkins",{"content":2167,"config":2174},{"title":2168,"heroImage":2169,"category":710,"description":2170,"authors":2171,"date":2173},"How we solved GitLab's CHANGELOG conflict crisis","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672139/Blog/Hero%20Images/solving-gitlab-changelog-crisis.jpg","How we eliminated changelog-related merge conflicts and automated a crucial part of our release process.",[2172],"Robert Speicher","2018-07-03",{"slug":2175,"externalUrl":-1},"solving-gitlabs-changelog-conflict-crisis",{"content":2177,"config":2184},{"title":2178,"heroImage":2179,"category":710,"description":2180,"authors":2181,"date":2183},"How (and why!) to keep your Git commit history clean","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659457/Blog/Hero%20Images/keep-git-commit-history-clean.jpg","Git commit history is very easy to mess up, here's how you can fix it!",[2182],"Kushal Pandya","2018-06-07",{"slug":2185,"externalUrl":-1},"keeping-git-commit-history-clean",{"content":2187,"config":2194},{"title":2188,"heroImage":2189,"category":1056,"description":2190,"authors":2191,"date":2193},"GitLab People Ops: Getting drunk on our own wine","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678697/Blog/Hero%20Images/how-people-ops-uses-gitlab.jpg","How our People Ops team uses GitLab day to day: from onboarding new GitLab team-members to keeping our handbook up to date.",[2192],"Chloe Whitestone","2018-05-25",{"slug":2195,"externalUrl":-1},"people-ops-using-gitlab",{"content":2197,"config":2203},{"title":2198,"heroImage":2199,"category":1114,"description":2200,"authors":2201,"date":2202},"Top 5 takeaways from the 2018 Developer Survey","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680105/Blog/Hero%20Images/top-five-takeaways-blog-image.jpg","GitLab's director of product marketing discusses the challenges facing DevOps adoption and other key findings from our 2018 Developer Survey.",[1959],"2018-05-14",{"slug":2204,"externalUrl":-1},"top-five-takeaways-from-the-developer-survey",{"content":2206,"config":2213},{"title":2207,"heroImage":2208,"category":1056,"description":2209,"authors":2210,"date":2212},"High-efficiency innovation: 3 lessons to learn from GitLab's culture of rapid execution","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680169/Blog/Hero%20Images/high-efficiency-innovation.jpg","Guest author Jay Newman recently shadowed our CEO to discover how we move so quickly.",[2211],"Jay Newman","2018-03-27",{"slug":2214,"externalUrl":-1},"high-efficiency-innovation",{"content":2216,"config":2223},{"title":2217,"heroImage":2218,"category":710,"description":2219,"authors":2220,"date":2222},"How the GitLab UX team uses epics","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680187/Blog/Hero%20Images/how-ux-team-uses-epics.jpg","UX Manager Sarrah Vesselov shares how the UX team is using epics to manage their workflow.",[2221],"Sarrah Vesselov","2018-03-19",{"slug":2224,"externalUrl":-1},"use-cases-for-epics",{"content":2226,"config":2233},{"title":2227,"heroImage":2228,"category":1056,"description":2229,"authors":2230,"date":2232},"Remote work, done right","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679812/Blog/Hero%20Images/remote-work-done-right.jpg","Guest author Nolan Myers hated conference calls. Here's how we changed his mind.",[2231],"Nolan Myers","2018-03-16",{"slug":2234,"externalUrl":-1},"remote-work-done-right",{"content":2236,"config":2243},{"title":2237,"heroImage":2238,"category":1114,"description":2239,"authors":2240,"date":2242},"Global Developer Report confirms 2018 is the year for open source and DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663993/Blog/Hero%20Images/2018-developer-report-cover.jpg","We surveyed over 5,000 software professionals to examine current attitudes and perception of the state of culture, workflow, and tooling within IT organizations.",[2241],"Erica Lindberg","2018-03-07",{"slug":2244,"externalUrl":-1},"2018-global-developer-report",{"content":2246,"config":2252},{"title":2247,"heroImage":2248,"category":675,"description":2249,"authors":2250,"date":2251},"How to use GitLab for Agile software development","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","How Agile artifacts map to GitLab features and how an Agile iteration looks in GitLab.",[1919,743],"2018-03-05",{"slug":2253,"externalUrl":-1},"gitlab-for-agile-software-development",{"content":2255,"config":2261},{"title":2256,"heroImage":2257,"category":1114,"description":2258,"authors":2259,"date":2260},"3 things that are wrong with DevOps today","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680211/Blog/Hero%20Images/what-is-wrong-with-devops.jpg","Why are collaboration woes, shift-left waste, and tooling admin costs still plaguing DevOps?",[2162],"2018-02-20",{"slug":2262,"externalUrl":-1},"whats-wrong-with-devops",{"content":2264,"config":2270},{"title":2265,"heroImage":2266,"category":1056,"description":2267,"authors":2268,"date":2269},"Cross-functional ≠ dysfunctional","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671305/Blog/Hero%20Images/tasktop-integration-cover.png","Don't let process hold you back – here are our best practices for working cross-functionally.",[2098],"2017-11-08",{"slug":2271,"externalUrl":-1},"tasktop-webcast-recap",{"content":2273,"config":2280},{"title":2274,"heroImage":1907,"category":1056,"description":2275,"authors":2276,"date":2279},"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.",[2277,2278],"Sebastian Latacz","Lasse Schuirmann","2017-10-26",{"slug":2281,"externalUrl":-1},"triage-issues-gitmate",{"content":2283,"config":2290},{"title":2284,"heroImage":2285,"category":1056,"description":2286,"authors":2287,"date":2289},"How to spot development issues and fix them fast","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680343/Blog/Hero%20Images/spot-dev-issues.jpg","Guest author Patrick Foster shares how to get things back on track when a development project starts to go awry.",[2288],"Patrick Foster","2017-10-16",{"slug":2291,"externalUrl":-1},"how-to-spot-development-issues",{"content":2293,"config":2299},{"title":2294,"heroImage":2295,"category":272,"description":2296,"authors":2297,"date":2298},"There's a Zap for that. Automate your workflows with GitLab + Zapier","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671323/Blog/Hero%20Images/zapier-gitlab-integration.jpg","With Zapier's GitLab integration you can create new Issues directly from within Gmail, get Slack notifications for new Issues and much more.",[2098],"2017-08-23",{"slug":2300,"externalUrl":-1},"gitlab-zapier-integration",{"content":2302,"config":2307},{"title":2303,"heroImage":2304,"category":272,"description":2305,"authors":2306,"date":2298},"The evolution of the GitLab Issue Board","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680378/Blog/Hero%20Images/issue-boards-anniversary.jpg","Celebrating one year of flexible, integrated project and release management workflows inside GitLab.",[2241],{"slug":2308,"externalUrl":-1},"issue-boards-anniversary",{"content":2310,"config":2317},{"title":2311,"heroImage":2312,"category":710,"description":2313,"authors":2314,"date":2316},"Migrating your JIRA issues to GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667509/Blog/Hero%20Images/continuous-integration-from-jenkins-to-gitlab-using-docker.jpg","We're migrating all of our working tools to open-source ones, and moving to GitLab has made all the difference.",[2315],"Abdulkader Benchi","2017-08-21",{"slug":2318,"externalUrl":-1},"migrating-your-jira-issues-into-gitlab",{"content":2320,"config":2328},{"title":2321,"heroImage":2322,"category":1114,"description":2323,"authors":2324,"date":2327},"How we introduced DevOps at the province of Nova Scotia","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670214/Blog/Hero%20Images/devops-nova-scotia-cover.jpg","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.",[2325,2326],"Steven Zinck","Paul Badcock","2017-08-14",{"slug":2329,"externalUrl":-1},"devops-at-nova-scotia-province",{"content":2331,"config":2337},{"title":2332,"heroImage":2333,"category":1056,"description":2334,"authors":2335,"date":2336},"Why your code review process is broken, and how to fix it","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","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?",[2035],"2017-07-25",{"slug":2338,"externalUrl":-1},"why-your-code-review-process-is-broken-and-how-to-fix-it",{"content":2340,"config":2346},{"title":2341,"heroImage":2342,"category":710,"description":2343,"authors":2344,"date":2345},"How we use GitLab at the Province of Nova Scotia","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670226/Blog/Hero%20Images/how-we-use-gitlab-at-nova-scotia.jpg","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.",[2325,2326],"2017-07-18",{"slug":2347,"externalUrl":-1},"how-we-use-gitlab-at-the-province-of-nova-scotia",{"content":2349,"config":2355},{"title":2350,"heroImage":2351,"category":1114,"description":2352,"authors":2353,"date":2354},"Why deadlines get missed (and how to fix it)","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671344/Blog/Hero%20Images/obstacles-to-getting-work-done.jpg","These are the biggest obstacles preventing developers from getting work done – and how to tackle them.",[2098],"2017-06-27",{"slug":2356,"externalUrl":-1},"biggest-obstacles-to-getting-work-done",{"content":2358,"config":2364},{"title":2359,"heroImage":2360,"category":1056,"description":2361,"authors":2362,"date":2363},"How to shorten the conversation cycle","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671350/Blog/Hero%20Images/shorten-conversation-cycle.jpg","Four simple steps to move faster from idea to production.",[2098],"2017-06-19",{"slug":2365,"externalUrl":-1},"how-to-shorten-conversation-cycle",{"content":2367,"config":2374},{"title":2368,"heroImage":2369,"category":1056,"description":2370,"authors":2371,"date":2373},"On-Calliday: A guide to unsucking your on-call experience","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680447/Blog/Hero%20Images/on-calliday.jpg","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.",[2372],"Amanda Folson","2017-06-14",{"slug":2375,"externalUrl":-1},"on-calliday-unsucking-your-on-call-experience",{"content":2377,"config":2383},{"title":2378,"heroImage":2379,"category":1056,"description":2380,"authors":2381,"date":2382},"3 Ways to foster collaboration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669991/Blog/Hero%20Images/ways-to-encourage-collaboration.jpg","Want to know how we encourage everyone to contribute?",[2098],"2017-06-12",{"slug":2384,"externalUrl":-1},"ways-to-encourage-collaboration",{"content":2386,"config":2392},{"title":2387,"heroImage":2388,"category":1056,"description":2389,"authors":2390,"date":2391},"Workflow tips to ship faster without sacrificing security or quality","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671606/Blog/Hero%20Images/workflow-tips-security-quality-cover.jpg","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.",[2241],"2017-06-05",{"slug":2393,"externalUrl":-1},"speed-security-quality-with-hackerone",1772652085162]