[{"data":1,"prerenderedAt":961},["ShallowReactive",2],{"/blog/feature-highlight-create-files-and-directories-from-files-page":3,"navigation-en-us":198,"banner-en-us":630,"footer-en-us":640,"blog-post-authors-en-us-Drew Blessing":901,"blog-related-posts-en-us-feature-highlight-create-files-and-directories-from-files-page":916,"blog-share-wrapper-en-us":941,"next-steps-en-us":951},{"id":4,"title":5,"authors":6,"body":8,"category":176,"date":177,"description":178,"extension":179,"externalUrl":180,"faq":180,"featured":181,"heroImage":182,"meta":183,"navigation":188,"path":189,"seo":190,"slug":194,"stem":195,"tags":180,"template":196,"updatedDate":180,"__hash__":197},"blogPosts/en-us/blog/feature-highlight-create-files-and-directories-from-files-page.md","Feature Highlight: Create files and directories from the Files page",[7],"Drew Blessing",{"type":9,"value":10,"toc":166},"minimark",[11,15,20,23,30,33,36,42,46,49,52,58,61,64,70,74,77,80,86,89,95,99,102,108,112,115,121,124,130,133,139,143,146,152,160],[12,13,14],"p",{},"Sometimes it's easier to make quick changes directly from the GitLab interface\nthan to clone the project and use the Git command line tool. In this feature\nhighlight we look at how you can create a new file, directory, branch or\ntag from the file browser. All of these actions are available from a single\ndropdown menu.",[16,17,19],"h2",{"id":18},"create-a-file","Create a file",[12,21,22],{},"From a project's files page, click the '+' button to the right of the branch selector.\nChoose 'New file' from the dropdown.",[12,24,25],{},[26,27],"img",{"alt":28,"src":29},"New file dropdown menu","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404840/site/Content%20Images/create_files/new_file_dropdown.png",[12,31,32],{},"Enter a file name in the 'File name' box. Then, add file content in the editor\narea. Add a descriptive commit message and choose a branch. The branch field\nwill default to the branch you were viewing in the file browser. If you enter\na new branch name, a checkbox will appear allowing you to start a new merge\nrequest after you commit the changes.",[12,34,35],{},"When you are satisfied with your new file, click 'Commit Changes' at the bottom.",[12,37,38],{},[26,39],{"alt":40,"src":41},"Create file editor","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404841/site/Content%20Images/create_files/new_file_editor.png",[16,43,45],{"id":44},"upload-a-file","Upload a file",[12,47,48],{},"The ability to create a file is great when the content is text. However, this\ndoesn't work well for binary data such as images, PDFs or other file types. In\nthis case you need to upload a file.",[12,50,51],{},"From a project's files page, click the '+' button to the right of the branch\nselector. Choose 'Upload file' from the dropdown.",[12,53,54],{},[26,55],{"alt":56,"src":57},"Upload file dropdown menu","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404843/site/Content%20Images/create_files/upload_file_dropdown.png",[12,59,60],{},"Once the upload dialog pops up there are two ways to upload your file. Either\ndrag and drop a file on the pop up or use the 'click to upload' link. A file\npreview will appear once you have selected a file to upload.",[12,62,63],{},"Enter a commit message, choose a branch, and click 'Upload file' when you are\nready.",[12,65,66],{},[26,67],{"alt":68,"src":69},"Upload file dialog","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404842/site/Content%20Images/create_files/upload_file_dialog.png",[16,71,73],{"id":72},"create-a-directory","Create a directory",[12,75,76],{},"To keep files in the repository organized it is often helpful to create a new\ndirectory.",[12,78,79],{},"From a project's files page, click the '+' button to the right of the branch selector.\nChoose 'New directory' from the dropdown.",[12,81,82],{},[26,83],{"alt":84,"src":85},"New directory dropdown","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404840/site/Content%20Images/create_files/new_directory_dropdown.png",[12,87,88],{},"In the new directory dialog enter a directory name, a commit message and choose\nthe target branch. Click 'Create directory' to finish.",[12,90,91],{},[26,92],{"alt":93,"src":94},"New directory dialog","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404839/site/Content%20Images/create_files/new_directory_dialog.png",[16,96,98],{"id":97},"tip","Tip",[12,100,101],{},"When creating or uploading a new file, or creating a new directory, you can\ntrigger a new merge request rather than committing directly to master. Enter\na new branch name in the 'Target branch' field. You will notice a checkbox\nappear that is labeled 'Start a new merge request with these changes'. After\nyou commit the changes you will be taken to a new merge request form.",[12,103,104],{},[26,105],{"alt":106,"src":107},"Start a new merge request with these changes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404842/site/Content%20Images/create_files/start_new_merge_request.png",[16,109,111],{"id":110},"create-a-new-branch","Create a new branch",[12,113,114],{},"If you want to make changes to several files before creating a new merge\nrequest, you can create a new branch up front. From a project's files page,\nchoose 'New branch' from the dropdown.",[12,116,117],{},[26,118],{"alt":119,"src":120},"New branch dropdown","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404838/site/Content%20Images/create_files/new_branch_dropdown.png",[12,122,123],{},"Enter a new 'Branch name'. Optionally, change the 'Create from' field\nto choose which branch, tag or commit SHA this new branch will originate from.\nThis field will autocomplete if you start typing an existing branch or tag.\nClick 'Create branch' and you will be returned to the file browser on this new\nbranch.",[12,125,126],{},[26,127],{"alt":128,"src":129},"New branch page","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404839/site/Content%20Images/create_files/new_branch_page.png",[12,131,132],{},"You can now make changes to any files, as needed. When you're ready to merge\nthe changes back to master you can use the widget at the top of the screen.\nThis widget only appears for a period of time after you create the branch or\nmodify files.",[12,134,135],{},[26,136],{"alt":137,"src":138},"New push widget","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404841/site/Content%20Images/create_files/new_push_widget.png",[16,140,142],{"id":141},"create-a-new-tag","Create a new tag",[12,144,145],{},"Tags are useful for marking major milestones such as production releases,\nrelease candidates, and more. You can create a tag from a branch or a commit\nSHA. From a project's files page, choose 'New tag' from the dropdown.",[12,147,148],{},[26,149],{"alt":150,"src":151},"New tag dropdown","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404841/site/Content%20Images/create_files/new_tag_dropdown.png",[12,153,154,155,159],{},"Give the tag a name such as ",[156,157,158],"code",{},"v1.0.0",". Choose the branch or SHA from which you\nwould like to create this new tag. You can optionally add a message and\nrelease notes. The release notes section supports markdown format and you can\nalso upload an attachment. Click 'Create tag' and you will be taken to the tag\nlist page.",[12,161,162],{},[26,163],{"alt":164,"src":165},"New tag page","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404841/site/Content%20Images/create_files/new_tag_page.png",{"title":167,"searchDepth":168,"depth":168,"links":169},"",2,[170,171,172,173,174,175],{"id":18,"depth":168,"text":19},{"id":44,"depth":168,"text":45},{"id":72,"depth":168,"text":73},{"id":97,"depth":168,"text":98},{"id":110,"depth":168,"text":111},{"id":141,"depth":168,"text":142},"engineering","2016-02-10","In this feature highlight we look at how you can create a new file, directory, branch or tag from the file browser.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{"excerpt":184},{"type":9,"value":185},[186],[12,187,14],{},true,"/en-us/blog/feature-highlight-create-files-and-directories-from-files-page",{"title":5,"description":178,"ogTitle":5,"ogDescription":178,"noIndex":181,"ogImage":182,"ogUrl":191,"ogSiteName":192,"ogType":193,"canonicalUrls":191},"https://about.gitlab.com/blog/feature-highlight-create-files-and-directories-from-files-page","https://about.gitlab.com","article","feature-highlight-create-files-and-directories-from-files-page","en-us/blog/feature-highlight-create-files-and-directories-from-files-page","BlogPost","kHbXk19j48f8KaDy74XWnDcdehD2wJT5V-DBMNgfG1Q",{"logo":199,"freeTrial":204,"sales":209,"login":214,"items":219,"search":550,"minimal":581,"duo":600,"switchNav":609,"pricingDeployment":620},{"config":200},{"href":201,"dataGaName":202,"dataGaLocation":203},"/","gitlab logo","header",{"text":205,"config":206},"Get free trial",{"href":207,"dataGaName":208,"dataGaLocation":203},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":210,"config":211},"Request a demo",{"href":212,"dataGaName":213,"dataGaLocation":203},"/request-a-demo/","sales",{"text":215,"config":216},"Sign in",{"href":217,"dataGaName":218,"dataGaLocation":203},"https://gitlab.com/users/sign_in/","sign in",[220,306,394,399,474,528],{"text":221,"left":188,"config":222,"menu":224},"Platform",{"dataNavLevelOne":223},"platform",{"type":225,"link":226,"columns":230,"feature":295},"lists",{"text":227,"config":228},"Explore the Platform",{"href":229,"dataGaName":223,"dataGaLocation":203},"/platform/",[231,254,277],{"title":232,"items":233},"Execution & Workflows",[234,239,244,249],{"text":235,"config":236},"CI/CD",{"href":237,"dataGaLocation":203,"dataGaName":238},"/solutions/continuous-integration/","ci/cd",{"text":240,"config":241},"Source Code Management",{"href":242,"dataGaLocation":203,"dataGaName":243},"/solutions/source-code-management/","source code management",{"text":245,"config":246},"Agile Delivery",{"href":247,"dataGaLocation":203,"dataGaName":248},"/solutions/agile-delivery/","agile delivery",{"text":250,"config":251},"Artifact Management",{"href":252,"dataGaLocation":203,"dataGaName":253},"/artifact-central/","artifact management",{"title":255,"items":256},"Security & Governance",[257,262,267,272],{"text":258,"config":259},"Application Security Testing",{"href":260,"dataGaLocation":203,"dataGaName":261},"/solutions/application-security-testing/","application security testing",{"text":263,"config":264},"Governance & Compliance",{"href":265,"dataGaLocation":203,"dataGaName":266},"/solutions/software-compliance/","governance and compliance",{"text":268,"config":269},"Secrets Management",{"href":270,"dataGaLocation":203,"dataGaName":271},"/gitlab-secrets-manager/","secrets management",{"text":273,"config":274},"Supply Chain Security",{"href":275,"dataGaLocation":203,"dataGaName":276},"/solutions/supply-chain/","supply chain security",{"title":278,"items":279},"Context & AI",[280,285,290],{"text":281,"config":282},"Agentic Orchestration",{"href":283,"dataGaLocation":203,"dataGaName":284},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":286,"config":287},"Context Graph",{"href":288,"dataGaLocation":203,"dataGaName":289},"/gitlab-orbit/","context graph",{"text":291,"config":292},"Visibility & Measurement",{"href":293,"dataGaLocation":203,"dataGaName":294},"/solutions/visibility-measurement/","visibility and measurement",{"config":296,"title":299,"text":300,"link":301},{"background":297,"textColor":298},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":302,"config":303},"Learn more",{"href":304,"dataGaName":305,"dataGaLocation":203},"/why-gitlab/","why gitlab",{"text":307,"left":188,"config":308,"menu":310},"Solutions",{"dataNavLevelOne":309},"solutions",{"type":225,"link":311,"columns":315,"feature":385},{"text":312,"config":313},"View all Solutions",{"href":314,"dataGaName":309,"dataGaLocation":203},"/solutions/",[316,334,352],{"title":317,"items":318},"Outcomes",[319,324,329],{"text":320,"config":321},"DevOps Modernization",{"href":322,"dataGaLocation":203,"dataGaName":323},"/assessments/devops-modernization-assessment/","devops modernization",{"text":325,"config":326},"Security Modernization",{"href":327,"dataGaLocation":203,"dataGaName":328},"/assessments/security-modernization-assessment/","security modernization",{"text":330,"config":331},"AI Modernization",{"href":332,"dataGaLocation":203,"dataGaName":333},"/assessments/ai-modernization-assessment/","ai modernization",{"title":335,"items":336},"By size",[337,342,347],{"text":338,"config":339},"Enterprise",{"href":340,"dataGaLocation":203,"dataGaName":341},"/enterprise/","enterprise",{"text":343,"config":344},"Small Business",{"href":345,"dataGaLocation":203,"dataGaName":346},"/small-business/","small business",{"text":348,"config":349},"Startups",{"href":350,"dataGaLocation":203,"dataGaName":351},"/solutions/startups/","startups",{"title":353,"items":354},"Industries",[355,360,365,370,375,380],{"text":356,"config":357},"Financial Services",{"href":358,"dataGaLocation":203,"dataGaName":359},"/solutions/finance/","financial services",{"text":361,"config":362},"Public Sector",{"href":363,"dataGaLocation":203,"dataGaName":364},"/solutions/public-sector/","public sector",{"text":366,"config":367},"Telecommunications",{"href":368,"dataGaLocation":203,"dataGaName":369},"/solutions/telecommunications/","telecommunications",{"text":371,"config":372},"Automotive",{"href":373,"dataGaLocation":203,"dataGaName":374},"/solutions/automotive/","automotive",{"text":376,"config":377},"Education",{"href":378,"dataGaLocation":203,"dataGaName":379},"/solutions/education/","education",{"text":381,"config":382},"Aerospace",{"href":383,"dataGaLocation":203,"dataGaName":384},"/solutions/aerospace/","aerospace",{"config":386,"title":387,"text":388,"link":389},{"background":297,"textColor":298},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":390,"config":391},"Explore the standard",{"href":392,"dataGaName":393,"dataGaLocation":203},"/gitlab-security-standard/","gitlab security standard",{"text":395,"config":396},"Pricing",{"href":397,"dataGaName":398,"dataGaLocation":203,"dataNavLevelOne":398},"/pricing/","pricing",{"text":400,"config":401,"menu":403},"Resources",{"dataNavLevelOne":402},"resources",{"type":225,"link":404,"columns":408,"feature":465},{"text":405,"config":406},"View all resources",{"href":407,"dataGaName":402,"dataGaLocation":203},"/resources/",[409,437],{"title":410,"items":411},"Discover",[412,417,422,427,432],{"text":413,"config":414},"Docs",{"href":415,"dataGaName":416,"dataGaLocation":203},"https://docs.gitlab.com/","docs",{"text":418,"config":419},"University",{"href":420,"dataGaName":421,"dataGaLocation":203},"https://university.gitlab.com/","university",{"text":423,"config":424},"Demo Series",{"href":425,"dataGaName":426,"dataGaLocation":203},"/gitlab-technical-demo-series/","demo series",{"text":428,"config":429},"Demo Hub",{"href":430,"dataGaName":431,"dataGaLocation":203},"/demo-hub/","demo hub",{"text":433,"config":434},"Services",{"href":435,"dataGaName":436,"dataGaLocation":203},"/services/","services",{"title":438,"items":439},"Connect",[440,445,450,455,460],{"text":441,"config":442},"Blog",{"href":443,"dataGaName":444,"dataGaLocation":203},"/blog/","blog",{"text":446,"config":447},"Community",{"href":448,"dataGaName":449,"dataGaLocation":203},"/community/","community",{"text":451,"config":452},"Customers",{"href":453,"dataGaName":454,"dataGaLocation":203},"/customers/","customers",{"text":456,"config":457},"Partners",{"href":458,"dataGaName":459,"dataGaLocation":203},"/partners/","partners",{"text":461,"config":462},"Events",{"href":463,"dataGaName":464,"dataGaLocation":203},"/events/","events",{"config":466,"title":467,"text":468,"link":469},{"background":297,"textColor":298},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":470,"config":471},"Read the latest",{"href":472,"dataGaName":473,"dataGaLocation":203},"/whats-new/","whats new",{"text":475,"config":476,"menu":478},"Company",{"dataNavLevelOne":477},"company",{"type":225,"columns":479},[480],{"items":481},[482,487,493,498,503,508,513,518,523],{"text":483,"config":484},"About",{"href":485,"dataGaName":486,"dataGaLocation":203},"/company/","about",{"text":488,"config":489,"footerGa":492},"Jobs",{"href":490,"dataGaName":491,"dataGaLocation":203},"/jobs/","jobs",{"dataGaName":491},{"text":494,"config":495},"Press",{"href":496,"dataGaName":497,"dataGaLocation":203},"/press/","press",{"text":499,"config":500},"Handbook",{"href":501,"dataGaName":502,"dataGaLocation":203},"https://handbook.gitlab.com/","handbook",{"text":504,"config":505},"Leadership",{"href":506,"dataGaName":507,"dataGaLocation":203},"/company/team/e-group/","leadership",{"text":509,"config":510},"Investor relations",{"href":511,"dataGaName":512,"dataGaLocation":203},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":514,"config":515},"Trust Center",{"href":516,"dataGaName":517,"dataGaLocation":203},"/security/","trust center",{"text":519,"config":520},"AI Transparency Center",{"href":521,"dataGaName":522,"dataGaLocation":203},"/ai-transparency-center/","ai transparency center",{"text":524,"config":525},"Newsletter",{"href":526,"dataGaName":527,"dataGaLocation":203},"/company/contact/#contact-forms","newsletter",{"text":529,"config":530,"menu":531},"Contact us",{"dataNavLevelOne":477},{"type":225,"columns":532},[533],{"items":534},[535,540,545],{"text":536,"config":537},"Talk to sales",{"href":538,"dataGaName":539,"dataGaLocation":203},"/sales/","talk to sales",{"text":541,"config":542},"Support portal",{"href":543,"dataGaName":544,"dataGaLocation":203},"https://support.gitlab.com/hc/en-us","support portal",{"text":546,"config":547},"Customer portal",{"href":548,"dataGaName":549,"dataGaLocation":203},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":551,"login":552,"suggestions":559},"Close",{"text":553,"link":554},"To search repositories and projects, login to",{"text":555,"config":556},"gitlab.com",{"href":217,"dataGaName":557,"dataGaLocation":558},"search login","search",{"text":560,"default":561},"Suggestions",[562,565,568,570,574,578],{"text":563,"config":564},"GitLab Duo Agent Platform",{"href":283,"dataGaName":563,"dataGaLocation":558},{"text":566,"config":567},"Code Suggestions (AI)",{"href":283,"dataGaName":566,"dataGaLocation":558},{"text":235,"config":569},{"href":237,"dataGaName":235,"dataGaLocation":558},{"text":571,"config":572},"GitLab on AWS",{"href":573,"dataGaName":571,"dataGaLocation":558},"/partners/technology-partners/aws/",{"text":575,"config":576},"GitLab on Google Cloud",{"href":577,"dataGaName":575,"dataGaLocation":558},"/partners/technology-partners/google-cloud-platform/",{"text":579,"config":580},"Why GitLab?",{"href":304,"dataGaName":579,"dataGaLocation":558},{"freeTrial":582,"mobileIcon":587,"desktopIcon":592,"secondaryButton":595},{"text":583,"config":584},"Start free trial",{"href":585,"dataGaName":208,"dataGaLocation":586},"https://gitlab.com/-/trials/new/","nav",{"altText":588,"config":589},"Gitlab Icon",{"src":590,"dataGaName":591,"dataGaLocation":586},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":588,"config":593},{"src":594,"dataGaName":591,"dataGaLocation":586},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":596,"config":597},"Get Started",{"href":598,"dataGaName":599,"dataGaLocation":586},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":601,"mobileIcon":605,"desktopIcon":607},{"text":602,"config":603},"Learn more about GitLab Duo",{"href":283,"dataGaName":604,"dataGaLocation":586},"gitlab duo",{"altText":588,"config":606},{"src":590,"dataGaName":591,"dataGaLocation":586},{"altText":588,"config":608},{"src":594,"dataGaName":591,"dataGaLocation":586},{"button":610,"mobileIcon":615,"desktopIcon":617},{"text":611,"config":612},"/switch",{"href":613,"dataGaName":614,"dataGaLocation":586},"#contact","switch",{"altText":588,"config":616},{"src":590,"dataGaName":591,"dataGaLocation":586},{"altText":588,"config":618},{"src":619,"dataGaName":591,"dataGaLocation":586},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":621,"mobileIcon":626,"desktopIcon":628},{"text":622,"config":623},"Back to pricing",{"href":397,"dataGaName":624,"dataGaLocation":586,"icon":625},"back to pricing","GoBack",{"altText":588,"config":627},{"src":590,"dataGaName":591,"dataGaLocation":586},{"altText":588,"config":629},{"src":594,"dataGaName":591,"dataGaLocation":586},{"title":631,"button":632,"config":638},"Ship at agent speed. Prove every step. Transcend is here.",{"text":633,"config":634},"Watch now",{"href":635,"dataGaName":636,"dataGaLocation":637},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":639,"disabled":181},"release",{"data":641},{"text":642,"source":643,"edit":649,"contribute":654,"config":659,"items":664,"minimal":890},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":644,"config":645},"View page source",{"href":646,"dataGaName":647,"dataGaLocation":648},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":650,"config":651},"Edit this page",{"href":652,"dataGaName":653,"dataGaLocation":648},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":655,"config":656},"Please contribute",{"href":657,"dataGaName":658,"dataGaLocation":648},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":660,"facebook":661,"youtube":662,"linkedin":663},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[665,712,770,817,858],{"title":395,"links":666,"subMenu":681},[667,671,676],{"text":668,"config":669},"View plans",{"href":397,"dataGaName":670,"dataGaLocation":648},"view plans",{"text":672,"config":673},"Why Premium?",{"href":674,"dataGaName":675,"dataGaLocation":648},"/pricing/premium/","why premium",{"text":677,"config":678},"Why Ultimate?",{"href":679,"dataGaName":680,"dataGaLocation":648},"/pricing/ultimate/","why ultimate",[682],{"title":683,"links":684},"Contact Us",[685,688,690,692,697,702,707],{"text":686,"config":687},"Contact sales",{"href":538,"dataGaName":213,"dataGaLocation":648},{"text":541,"config":689},{"href":543,"dataGaName":544,"dataGaLocation":648},{"text":546,"config":691},{"href":548,"dataGaName":549,"dataGaLocation":648},{"text":693,"config":694},"Status",{"href":695,"dataGaName":696,"dataGaLocation":648},"https://status.gitlab.com/","status",{"text":698,"config":699},"Terms of use",{"href":700,"dataGaName":701,"dataGaLocation":648},"/terms/","terms of use",{"text":703,"config":704},"Privacy statement",{"href":705,"dataGaName":706,"dataGaLocation":648},"/privacy/","privacy statement",{"text":708,"config":709},"Cookie preferences",{"dataGaName":710,"dataGaLocation":648,"id":711,"isOneTrustButton":188},"cookie preferences","ot-sdk-btn",{"title":221,"links":713,"subMenu":727},[714,717,719,721,723,725],{"text":715,"config":716},"Explore the platform",{"href":229,"dataGaName":223,"dataGaLocation":648},{"text":281,"config":718},{"href":283,"dataGaName":284,"dataGaLocation":648},{"text":235,"config":720},{"href":237,"dataGaName":238,"dataGaLocation":648},{"text":286,"config":722},{"href":288,"dataGaName":289,"dataGaLocation":648},{"text":268,"config":724},{"href":270,"dataGaName":271,"dataGaLocation":648},{"text":299,"config":726},{"href":304,"dataGaName":305,"dataGaLocation":648},[728],{"title":729,"links":730},"Topics",[731,735,740,745,750,755,760,765],{"text":235,"config":732},{"href":733,"dataGaName":734,"dataGaLocation":648},"/topics/ci-cd/","cicd",{"text":736,"config":737},"GitOps",{"href":738,"dataGaName":739,"dataGaLocation":648},"/topics/gitops/","gitops",{"text":741,"config":742},"DevOps",{"href":743,"dataGaName":744,"dataGaLocation":648},"/topics/devops/","devops",{"text":746,"config":747},"Version Control",{"href":748,"dataGaName":749,"dataGaLocation":648},"/topics/version-control/","version control",{"text":751,"config":752},"DevSecOps",{"href":753,"dataGaName":754,"dataGaLocation":648},"/topics/devsecops/","devsecops",{"text":756,"config":757},"Cloud Native",{"href":758,"dataGaName":759,"dataGaLocation":648},"/topics/cloud-native/","cloud native",{"text":761,"config":762},"AI for Coding",{"href":763,"dataGaName":764,"dataGaLocation":648},"/topics/devops/ai-for-coding/","ai for coding",{"text":766,"config":767},"Agentic AI",{"href":768,"dataGaName":769,"dataGaLocation":648},"/topics/agentic-ai/","agentic ai",{"title":307,"links":771},[772,775,778,781,784,787,789,791,793,795,797,800,802,805,809,813],{"text":773,"config":774},"DevOps modernization",{"href":322,"dataGaName":323,"dataGaLocation":648},{"text":776,"config":777},"Security modernization",{"href":327,"dataGaName":328,"dataGaLocation":648},{"text":779,"config":780},"AI modernization",{"href":332,"dataGaName":333,"dataGaLocation":648},{"text":782,"config":783},"Financial services",{"href":358,"dataGaName":359,"dataGaLocation":648},{"text":785,"config":786},"Public sector",{"href":363,"dataGaName":364,"dataGaLocation":648},{"text":366,"config":788},{"href":368,"dataGaName":369,"dataGaLocation":648},{"text":371,"config":790},{"href":373,"dataGaName":374,"dataGaLocation":648},{"text":376,"config":792},{"href":378,"dataGaName":379,"dataGaLocation":648},{"text":381,"config":794},{"href":383,"dataGaName":384,"dataGaLocation":648},{"text":338,"config":796},{"href":340,"dataGaName":341,"dataGaLocation":648},{"text":798,"config":799},"Small business",{"href":345,"dataGaName":346,"dataGaLocation":648},{"text":348,"config":801},{"href":350,"dataGaName":351,"dataGaLocation":648},{"text":736,"config":803},{"href":804,"dataGaName":739,"dataGaLocation":648},"/solutions/gitops/",{"text":806,"config":807},"Software composition analysis",{"href":275,"dataGaName":808,"dataGaLocation":648},"software composition analysis",{"text":810,"config":811},"Value stream management",{"href":293,"dataGaName":812,"dataGaLocation":648},"value stream management",{"text":814,"config":815},"All solutions",{"href":314,"dataGaName":816,"dataGaLocation":648},"all solutions",{"title":400,"links":818},[819,824,829,831,833,835,837,839,841,843,845,847,849,851,854],{"text":820,"config":821},"Install",{"href":822,"dataGaName":823,"dataGaLocation":648},"/install/","install",{"text":825,"config":826},"Quick start guides",{"href":827,"dataGaName":828,"dataGaLocation":648},"/get-started/","quick setup checklists",{"text":413,"config":830},{"href":415,"dataGaName":416,"dataGaLocation":648},{"text":418,"config":832},{"href":420,"dataGaName":421,"dataGaLocation":648},{"text":423,"config":834},{"href":425,"dataGaName":426,"dataGaLocation":648},{"text":428,"config":836},{"href":430,"dataGaName":431,"dataGaLocation":648},{"text":433,"config":838},{"href":435,"dataGaName":436,"dataGaLocation":648},{"text":441,"config":840},{"href":443,"dataGaName":444,"dataGaLocation":648},{"text":446,"config":842},{"href":448,"dataGaName":449,"dataGaLocation":648},{"text":451,"config":844},{"href":453,"dataGaName":454,"dataGaLocation":648},{"text":456,"config":846},{"href":458,"dataGaName":459,"dataGaLocation":648},{"text":461,"config":848},{"href":463,"dataGaName":464,"dataGaLocation":648},{"text":524,"config":850},{"href":526,"dataGaName":527,"dataGaLocation":648},{"text":852,"config":853},"What's new",{"href":472,"dataGaName":473,"dataGaLocation":648},{"text":855,"config":856},"All resources",{"href":407,"dataGaName":857,"dataGaLocation":648},"all resources",{"title":475,"links":859},[860,862,864,866,868,870,872,874,876,880,885],{"text":483,"config":861},{"href":485,"dataGaName":477,"dataGaLocation":648},{"text":488,"config":863},{"href":490,"dataGaName":491,"dataGaLocation":648},{"text":494,"config":865},{"href":496,"dataGaName":497,"dataGaLocation":648},{"text":499,"config":867},{"href":501,"dataGaName":502,"dataGaLocation":648},{"text":504,"config":869},{"href":506,"dataGaName":507,"dataGaLocation":648},{"text":509,"config":871},{"href":511,"dataGaName":512,"dataGaLocation":648},{"text":514,"config":873},{"href":516,"dataGaName":517,"dataGaLocation":648},{"text":519,"config":875},{"href":521,"dataGaName":522,"dataGaLocation":648},{"text":877,"config":878},"Sustainability",{"href":879,"dataGaName":877,"dataGaLocation":648},"/sustainability/",{"text":881,"config":882},"Diversity, inclusion and belonging (DIB)",{"href":883,"dataGaName":884,"dataGaLocation":648},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":886,"config":887},"Modern Slavery Transparency Statement",{"href":888,"dataGaName":889,"dataGaLocation":648},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":891},[892,895,898],{"text":893,"config":894},"Terms",{"href":700,"dataGaName":701,"dataGaLocation":648},{"text":896,"config":897},"Cookies",{"dataGaName":710,"dataGaLocation":648,"id":711,"isOneTrustButton":188},{"text":899,"config":900},"Privacy",{"href":705,"dataGaName":706,"dataGaLocation":648},[902],{"id":903,"title":7,"body":180,"config":904,"content":906,"description":180,"extension":910,"meta":911,"navigation":188,"path":912,"seo":913,"stem":914,"__hash__":915},"blogAuthors/en-us/blog/authors/drew-blessing.yml",{"template":905},"BlogAuthor",{"name":7,"config":907},{"headshot":908,"ctfId":909},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Drew-Blessing","yml",{},"/en-us/blog/authors/drew-blessing",{},"en-us/blog/authors/drew-blessing","aJqiXJcAS0OIQUBAm79ZUXyTlzHnUJxp8AFtIAOqJgo",[917,925,933],{"title":918,"description":919,"heroImage":920,"category":176,"date":921,"authors":922,"slug":924,"externalUrl":180},"Two front doors: Module-level access in a Django GRC app","A technical deep-dive on restructuring a Django internal tool to support two distinct GitLab teams: Security Compliance and Internal Audit.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097663/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097663612.png","2026-10-05",[923],"Donovan Felton","module-level-access-in-a-django-grc-app",{"title":926,"description":927,"heroImage":928,"category":176,"date":929,"authors":930,"slug":932,"externalUrl":180},"How GitLab reduced code-per-agentic-flow ratio by 45%","Learn how Flow Registry, a component-based framework that compiles YAML configurations into fully functional LangGraph flows, helped improve scalability and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-09-22",[931],"Mikolaj Wawrzyniak","how-gitlab-reduced-code-per-agentic-flow-ratio",{"title":934,"description":935,"heroImage":936,"category":176,"date":937,"authors":938,"slug":940,"externalUrl":180},"Co-Create: Building GitLab with our users","How GitLab users collaborated with us to build practical product improvements in the first half of 2026.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-09-10",[939],"Isa Huerga","co-create-h1-2026",{"header":942,"text":943,"button":947,"disclaimer":950},"Start your free\n\n30-day GitLab trial\n",[944,945,946],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":205,"config":948},{"href":949,"dataGaName":208,"dataGaLocation":444},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":952,"blurb":953,"button":954,"secondaryButton":959},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":955,"config":956},"Get your free trial",{"href":957,"dataGaName":208,"dataGaLocation":958},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":686,"config":960},{"href":538,"dataGaName":213,"dataGaLocation":958},1791990513767]